Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2633908
  • 博文数量: 333
  • 博客积分: 4817
  • 博客等级: 上校
  • 技术积分: 4413
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 10:51
文章分类

全部博文(333)

文章存档

2017年(20)

2016年(57)

2015年(27)

2014年(20)

2013年(21)

2012年(164)

2011年(24)

分类: LINUX

2011-11-10 14:18:19

1.解压缩文件: # tar xvf dnw_for_linux.tar.gz

  2.然后切换到下面的目录,编译usb驱动模块: # cd dnw_for_linux/secbulk

  # make -C /lib/modules/2.6.33.6-147.fc13.i686/build/ M=/home/lhc/Desktop/dnw_for_linux/secbulk/ modules

  (注 意:相应路径要替换成你机器的路径。/lib/modules/2.6.33.6-147.fc13.i686/build/目录中 “2.6.33.6-147.fc13.i686”是当前启动内核版本,如果你是多内核要注意了(不确定可以终端uname -r命令查看内核版本)。或者利用命令:make -C /lib/modules/`uname -r`/build M=`pwd` modules)

  3.编译完成后,会生成secbulk.ko文件: # ls

  Makefile Module.symvers secbulk.ko secbulk.mod.o

  modules.order secbulk.c secbulk.mod.c secbulk.o

  4.加载模块到Linux内核: # insmod ./secbulk.ko (注意要在root权限下)

  # dmesg (查看是否加载成功)

  secbulk:secbulk loaded

  usbcore: registered new interface driver secbulk (看到这样两行就说明成功了)

  5.下面开始编译dnw工具 # cd ../dnw

  # gcc -o dnw dnw.c

  (编译完成,会看到dnw可执行文件)

  6.将文件copy到/usr/local/bin目录 # cp dnw /usr/local/bin

  (这样就可以在shell下面直接使用dnw命令了)

DNW的使用

  1.在minicom下,从Nor Flash启动TQ2440,选择3功能: [3] Download Linux Kernel (zImage.bin) to Nand Flash

  2.此时,打开另一个终端: # su

  # dnw work/linux-2.6.30.4/zImage.bin

  file name : work/linux-2.6.30.4/zImage.bin

  file size : 2305544 bytes

  Writing data...

  100% 2305554 bytes OK (此时就将zImage镜像下载到开发板了)

  3.再看下minicom的输出信息 Enter your selection: 3

  USB host is connected. Waiting a download.

  Now, Downloading [ADDRESS:30000000h,TOTAL:2305554]

  RECEIVED FILE SIZE: 2305554 (562KB/S, 4S)

  NAND erase: device 0 offset 0x200000, size 0x300000

  Erasing at 0x4e0000 -- 100% complete.

  OK

  NAND write: device 0 offset 0x200000, size 0x232e08

  Writing data at 0x432800 -- 100% complete.

  2305544 bytes written: OK

  由于每次重启都需要加载一次secbulk.ko模块,为了实现自动加载,可作以下操作:

  1.修改secbulk.ko的权限成755

  2.修改etc/rc.local文件,添加下面一行

  sudo sbin/insmod /usr/bin/secbulk.ko

  说明:将secbulk.ko拷贝到了/usr/bin目录下边,为了防止意外删除,你要是不想动原来的文件夹的话,直接将“usr/bin/secbulk.ko”改成你的secbulk.ko的全路经即可。

  重启后,用lsmod|grep secbulk来验证一下,看模块是否自动加载了 不过每次开机都要加载一次那个.ko模块,大家可以自己将它写到开机脚本里,省去了每次都要手动加载的麻烦!


转载:http://archive.cnblogs.com/a/2186724/

阅读(1130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~