1. 下载Linux下DNW的PC端USB驱动和写入工具
下载地址:
文件名: dnw_linux.zip
下载后把后缀名改成.tgz
2. 编译PC端USB驱动和写入工具
2.1 解压缩
$ tar xzvf /path/to/dnw_linux.tgz
dnw_linux/
dnw_linux/secbulk/
dnw_linux/secbulk/Makefile
dnw_linux/secbulk/secbulk.c
dnw_linux/dnw/
dnw_linux/dnw/dnw.c
其中secbulk.c是PC端USB驱动, dnw.c是写入工具
2.2 编译并加载secbulk.c内核模块
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules
编译成功后在当前目录下可以看到secbulk.ko
alex@alex-desktop:~/project3/qq2440/dnw_linux/dnw_linux/secbulk$ ls
Makefile Module.symvers secbulk.c secbulk.ko secbulk.mod.c secbulk.mod.o secbulk.o
用insmod命令加载模块,这需要root权限
$sudo insmod ./secbulk.ko
加载后用dmesg命令可以看到模块已经成功加载
[ 238.007970] secbulk:secbulk loaded
[ 238.009101] usbcore: registered new interface driver secbulk
2.3 编译dnw写入工具
$cd dnw
$gcc -o dnw dnw.c
编译成功后生成可执行档dnw
3 使用DNW下载
3.1 启动开发板,进入Supervivi,并将开发板和PC用USB电缆连接,此时用dmesg命令可以看到secbulk驱动加载:
[ 283.677772] usb 1-1: new full speed USB device using uhci_hcd and address 2
[ 284.084835] usb 1-1: configuration #1 chosen from 1 choice
[ 284.140430] secbulk:secbulk probing...
[ 284.140482] secbulk:bulk out endpoint found!
3.2 此时可以用supervivi进行USB下载,vivi上步骤请参考用户手册,当出现“USB host is connected. Waiting a download.”时,在PC端Linux上用dnw工具写入要下载的文件
$sudo ./dnw /path/to/what/you/want/download
写入完成后提示成功
100% xxxxxxx bytes OK
什么是kernel-devel如果某个程序需要内核提供的一些功能,它就需要内核的 C header 来编译程序,这个时候 linux-devel 里面的东西就用上了。
比如 nvidia 和 ati 的官方显卡驱动,alsa-driver 声卡驱动,他们都需要编译一个放在内核里面运行的模块,编译这个模块就需要内核的 header 文件才能顺利编译。
当然,kernel-devel 不光是 C Header 文件,它还有内核的配置文件,以及其他的开发用的资料。
错语如下:
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make: *** /lib/modules/*****/build : cannot find file
很明显这是缺少kernel-source和kernel-header的表现
#>yum install kernel-devel ------------
#>uname -a ----------------kernel-2.6.27.5
#>ls /lib/moudules/[runny@localhost modules]$ ll
总计 8
drwxr-xr-x 7 root root 4096 03-26 14:18 2.6.27.19-170.2.35.fc10.i686
drwxr-xr-x 7 root root 4096 03-10 02:30 2.6.27.5-117.fc10.i686
[runny@localhost modules]$ cd 2.6.27.19-170.2.35.fc10.i686/
[runny@localhost 2.6.27.19-170.2.35.fc10.i686]$ ll
总计 3044
lrwxrwxrwx 1 root root 53 03-26 14:18 build -> ../../../usr/src/kernels/2.6.27.19-170.2.35.fc10.i686
drwxr-xr-x 2 root root 4096 02-24 02:30 extra
drwxr-xr-x 9 root root 4096 03-26 14:18 kernel
-rw-r--r-- 1 root root 433114 03-26 14:18 modules.alias
-rw-r--r-- 1 root root 373531 03-26 14:18 modules.alias.bin
-rw-r--r-- 1 root root 1571 02-24 02:31 modules.block
-rw-r--r-- 1 root root 69 03-26 14:18 modules.ccwmap
-rw-r--r-- 1 root root 373090 03-26 14:18 modules.dep
-rw-r--r-- 1 root root 471605 03-26 14:18 modules.dep.bin
-rw-r--r-- 1 root root 147 03-26 14:18 modules.ieee1394map
-rw-r--r-- 1 root root 375 03-26 14:18 modules.inputmap
-rw-r--r-- 1 root root 13391 03-26 14:18 modules.isapnpmap
-rw-r--r-- 1 root root 10 02-24 02:31 modules.modesetting
-rw-r--r-- 1 root root 1697 02-24 02:31 modules.networking
-rw-r--r-- 1 root root 74 03-26 14:18 modules.ofmap
-rw-r--r-- 1 root root 65832 02-24 02:30 modules.order
-rw-r--r-- 1 root root 290025 03-26 14:18 modules.pcimap
-rw-r--r-- 1 root root 1135 03-26 14:18 modules.seriomap
-rw-r--r-- 1 root root 144619 03-26 14:18 modules.symbols
-rw-r--r-- 1 root root 192499 03-26 14:18 modules.symbols.bin
-rw-r--r-- 1 root root 643463 03-26 14:18 modules.usbmap
lrwxrwxrwx 1 root root 5 03-26 14:18 source -> build
drwxr-xr-x 2 root root 4096 02-24 02:30 updat
发现在kernel相关的source,神奇啊!
yum install kernel-devel装的是新版本的内核开发source,而当前运行的是没有升级的内核,重启了一下机器,有两个版本的内核可以选择,果然如是,开机再次运行,一切OK!
阅读(777) | 评论(0) | 转发(0) |