Chinaunix首页 | 论坛 | 博客
  • 博客访问: 93176
  • 博文数量: 38
  • 博客积分: 1640
  • 博客等级: 上尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-25 08:02
文章分类

全部博文(38)

文章存档

2011年(5)

2010年(19)

2009年(14)

我的朋友

分类: LINUX

2009-09-25 08:06:00

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!
阅读(750) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:yum

给主人留下些什么吧!~~