一.首先在网上下载一个dnw for linux 安装包。拷进fedora后解压。
二.解压后可以看到有dnw,secbulk两个文件夹,然后进入到secbulk这个目录后,有makefile和secbulk这两个文件夹。
之后直接make就可以了。
问题:如果make不了,出现 make -C /lib/modules/'uname -r'/build M='pwd' modules 编译不了,有可能内核有问题,则需要重新下载一个内核,重启linux系统之后使用新的内核进入系统。
然后再进入secbulk目录下make就可以成功了(前提是makefile没有问题),编译成功后在当前目录下可以看到secbulk.ko了。
然后就是加载模块到内核了:insmod ./secbulk.ko 了,此时如果出现错误,加载不了,则可能是内核缺少东西,使用命令:sudo yum install kernel-PAE-devel 之后,就可以成功的insmod了(在root权限下面)。
之后使用dmesg(查看是否加载成功).
信息如下: secbulk:secbulk loaded
usbcore:registered new interface driver secbulk(看到这样两行就说明成功了)
查看 /dev目录下并没有 secbulk0设备,是因为我的secbulk.c文件中的设备号(主设备号,次设备号)没有改为本机的设备号,如下图:
可以看出设备号分别为 5345 1234.
查看设备号使用lsusb
如下图:
如上图所示:设备号分别为 5345 1234. 改后再重新make一下生成secbulk.ko,之后再insmod secbulk.ko.
最后就是编译dnw.c文件了,需要注意的是:
如上图中的 load address,根据不同的开发板绑定不同的内存地址.
编译完dnw.c之后生成dnw后,就可以使用 dnw 下载文件到开发板了.