感谢支持
我们一直在努力

Linux下使用DNW工具通过USB下载镜像

(secbulk目录下是PC端USB驱动, dnw目录是下载工具)

1.首先解压缩文件:


  1. # tar xvf dnw_for_linux.tar.gz
复制代码2.然后切换到下面的目录,编译usb驱动模块:


  1. # cd dnw_for_linux/secbulk

  2. # 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命令查看内核版本)。
       
3.编译完成后,会生成secbulk.ko文件:


  1. # ls

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

  3. modules.order  secbulk.c       secbulk.mod.c  secbulk.o
复制代码4.加载模块到Linux内核:


  1. # insmod ./secbulk.ko        (注意要在root权限下)

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

  3. secbulk:secbulk loaded

  4. usbcore: registered new interface driver secbulk        (看到这样两行就说明成功了)
复制代码5.下面开始编译dnw工具


  1. # cd ../dnw

  2. # gcc -o dnw dnw.c
复制代码(编译完成,会看到dnw可执行文件)

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


  1. # cp dnw /usr/local/bin
复制代码(这样就可以在shell下面直接使用dnw命令了)

使用方法如下:
1.在minicom下,从Nor Flash启动TQ2440,选择3功能:


  1. [3] Download Linux Kernel (zImage.bin) to Nand Flash
复制代码2.此时,打开另一个终端:


  1. # su

  2. # dnw work/linux-2.6.30.4/zImage.bin

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

  4. file size : 2305544 bytes

  5. Writing data…

  6. 100%     2305554 bytes     OK        (此时就将zImage镜像下载到开发板了)
复制代码3.再看下minicom的输出信息


  1. Enter your selection: 3                                                         

  2. USB host is connected. Waiting a download.                                      

  3.                                                                                 

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

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

  6.                                                                                 

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

  8. Erasing at 0x4e0000 — 100% complete.                                          

  9. OK                                                                              

  10.                                                                                 

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

  12.                                                                                 

  13. Writing data at 0x432800 — 100% complete.                                      

  14. 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模块,大家可以自己将它写到开机脚本里,省去了每次都要手动加载的麻烦!

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下使用DNW工具通过USB下载镜像
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏