Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172625
  • 博文数量: 75
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-25 01:16
文章分类

全部博文(75)

文章存档

2013年(2)

2012年(73)

我的朋友

分类:

2012-06-10 01:57:59

把镜像做好了 要跑回XP下 刷系统 很是麻烦
到处找在LINUX 下 替换的2个工具 超级终端 和 USB 工具 DNW 
1。首先  超级终端 我用的是 Gtkterm  感觉界面还可以 进去后  点下 configration -port 改成15200          OK   
然后2440 用NORM 启动 界面如下 :


再看下 linux 启动好后的 后台 界面 很是舒服





2。下载Linux下DNW的PC端USB驱动和写入工具
下载地址:
文件名: dnw_linux.zip
下载后把后缀名改成.tgz
#或者搜索 linux dnw
编译PC端USB驱动和写入工具
2.1 解压缩
$ tar xzvf /home/haozi/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
#此处使用命令写入,无界面
具体命令见下

写入环境如下

root@haozi-desktop:/home/haozi/桌面/dnw_linux/dnw# sudo ./dnw /home/haozi/ruanjian/linux/supervivi-128M

file name : /home/haozi/ruanjian/linux/supervivi-128M
file size : 253912 bytes
Writing data...
100%     253922 bytes     OK

root@haozi-desktop:/home/haozi/桌面/dnw_linux/dnw# sudo ./dnw /home/haozi/ruanjian/linux/zImage_T35
file name : /home/haozi/ruanjian/linux/zImage_T35
file size : 2022348 bytes
Writing data...
100%     2022358 bytes     OK

root@haozi-desktop:/home/haozi/桌面/dnw_linux/dnw# sudo ./dnw /home/haozi/ruanjian/linux/root_qtopia-128M.img
file name : /home/haozi/ruanjian/linux/root_qtopia-128M.img
file size : 58487616 bytes
Writing data...
26%      58487626 bytes     OK
(前面的supervivi 和内核 写的时候 还可以 后面的 QT文件系统 写入的时候 速度超级慢 文件大了点)



#$sudo insmod ./secbulk.ko 为加载模块进内核
开机的时候不会自动加载,这样每次都要先加载才可以使用,此时将其加入开机脚本,
使其得到自动加载,编辑/etc/init.d/rc.local 在最后加上 insmod /所在路径/secbulk.ko。

gedit  /etc/init.d/rc.local
insmod/home/haozi/桌面/dnw_linux/secbulk/secbulk.ko


#调用dnw时只能在当前目录使用./dnw执行,对此情况,将dnw添加到/usr/local/sbin中,这样可以在
任何目录,使用  sudo dnw filename来调用。

至此 在linux 下刷机完成
阅读(1192) | 评论(0) | 转发(0) |
0

上一篇:u-boot通过NFS启动系统

下一篇:ioremap()函数

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