叙述下这两天折腾的一个事情--tftp搭建,uboot,rootfs烧写的折腾

题记:一个多月之前在淘宝上买了一块开发板,带wifi功能,之前我的那块板子因为焊接问题导致焊接孔变小,无法再次焊接,因此又买了块直接焊好的wifi模块的板子,但是3月24日的一次打篮球受伤,导致膝盖两组韧带撕裂,4月13日在上海六院手术,现在已经手术后6周了(将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能)但愿是这样吧,5月23日回校,开始捣鼓毕业的东东,眼看着就要马上毕业了呀的,时间紧迫啊.这两天在捣鼓新板子.发现了问题.现在描述下所遇到的问题.

问题1: 我按照原来的方式,nfs挂载后,进入ko文件,然后./load3518,发现如下问题


一直无限次循环,然后问卖家,卖家说要按照以下重新进行uboot和rootfs的烧写:(我都没搞过,问卖家,爱答不理的,烦人)

编译内核
cd ./linux-3.0.y
./mk3518.sh


mk3518.sh 脚本里面包含了编译linux内核所需的所有的命令,具体看mk3518.sh文件,编译成功将生成在目录arch/arm/boot/uImage文件,这个就是要烧录到板子上的


制作rootfs文件系统
./mkfs.jffs2 -d ./rootfs-ov9712 -l -e 0x10000 -o rootfs-ov9712-c.jffs2
./mkfs.jffs2 -d ./rootfs-ar0130 -l -e 0x10000 -o rootfs-ar0130-c.jffs2
./mkfs.jffs2 -d ./rootfs-imx122 -l -e 0x10000 -o rootfs-imx122-c.jffs2
这个就是要烧录到板子上的文件




uboot请使用压缩包里面的,256k boot分区
地址空间说明
        |     256K   |      1M       |      4M               |  剩下2.75M供用户自由使用
        |------------|---------------|-----------------------|
        |    boot    |     kernel    |     rootfs            |
uboot烧写内核
set serverip 192.168.1.104;mw.b 0x82000000 0xFF 0x100000;tftp 0x82000000 uImage;sf probe 0;sf erase 0x40000 0x100000;sf write 0x82000000 0x40000 0x100000


烧写rootfs文件系统
mw.b 0x82000000 0xFF 0x400000;tftp 0x82000000 rootfs-ov9712-c.jffs2;sf probe 0;sf erase 0x140000 0x400000;sf write 0x82000000 0x140000 0x400000 //ov9712 sensor烧写这个
mw.b 0x82000000 0xFF 0x400000;tftp 0x82000000 rootfs-ar0130-c.jffs2;sf probe 0;sf erase 0x140000 0x400000;sf write 0x82000000 0x140000 0x400000 //ar0130 sensor烧写这个
mw.b 0x82000000 0xFF 0x400000;tftp 0x82000000 rootfs-imx122-c.jffs2;sf probe 0;sf erase 0x140000 0x400000;sf write 0x82000000 0x140000 0x400000 //imx122 sensor烧写这个


设置启动参数和启动命令
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:256K(boot),1M(kernel),4096K(rootfs),2816K(user)';setenv bootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x100000;bootm 0x82000000';saveenv;reset


2 开始摸索着如何进行烧写 

首先要进行tftp服务器的搭建 按照http://blog.chinaunix.net/uid-29094179-id-3864671.html 进行搭建.然后在本地试了以下.hi3518c-wifi/rootfs-ar0130/lib目录里面,然后按照用这个命令./mkfs.jffs2 -d ./rootfs-ar0130 -l -e 0x10000 -o rootfs-ar0130-c.jffs2再生成一个rootfs文件系统..

烧写的时候要将uImage和rootfs-ar0130-c.jffs2;放到tftpboot文件夹里面,这样才能下载下来.烧写之后然后,再重试,还是到了./load3518那就卡了然后就问卖家,他现在才说不用./load3518,提供的wifi的rootfs,已经把会自动运行load3518了,不需要在运行load3518.Oh,,my god.半天多废了啊.不过学回来如何烧写等等.

发现在lib里面没有libstdc++.so.6..然后问卖家说一般客户都是用c,我用才c++,并且libstdc++.so很大有5M,而设置的rootfs才只有4M,空间不足,要通过两个方法去改,一个是把libstdc++.so.6(是一个软链接文件)和libstdc++.so都要重新放到hi3518c-wifi/rootfs-ar0130/lib目录里面,然后按照用这个命令./mkfs.jffs2 -d ./rootfs-ar0130 -l -e 0x10000 -o rootfs-ar0130-c.jffs2再生成一个rootfs文件系统.然后把这个文件系统重新烧写..要修改烧写命令和启动命令

烧写命令修改--mw.b 0x82000000 0xFF 0x400000;tftp 0x82000000 rootfs-ar0130-c.jffs2;sf probe 0;sf erase 0x140000 0x540000;sf write 0x82000000 0x140000 0x640000 

启动命令修改-setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:256K(boot),1M(kernel),6M(rootfs),2816K(user)';setenv bootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x100000;bootm 0x82000000';saveenv;reset

最后再进行烧写--然后可以,,晚上再试试wifi行不行..















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank范

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值