A20网络机顶盒移植4.5内核+U-Boot+rootfs

A20网络机顶盒移植4.5内核+U-Boot+rootfs

没什么时间,来慢慢更

这里我的机器是“灵云Q3”,100来块钱,全志A20双核,512M内存,支持TF卡,8GNand……


一、先来把需要用的东西下载好。

U-boot:

git://git.denx.de/u-boot.git

kernel:

git://github.com/torvalds/linux.git

工具链:

https://releases.linaro.org/components/toolchain/binaries/latest-5.1/arm-linux-gnueabihf/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar.xz

imgrepacker:

http://forum.xda-developers.com/showthread.php?t=1753473

再把需要用的东西准备好。

这里我是把所有东西放到TF卡里启动的。新内核都是使用Dtb的启动方式,所以要准备好Q3用的Dts。一般来说移植是先把相近板子的Dts拿过来改,这里我选择的cubietruck的Dts。所有Dts在内核arch/arm/boot/dts目录下,cubietruck的Dts名字叫sun7i-a20-cubietruck.dts,把它复制过来改名字为sun7i-a20-lingyunq3.dts,当然里面的也最改掉cubietruck。

把由于没有具体的原理图,只能拿原来的厂家的升级固件,用imgrepacker来解包寻找答案。

升级包包名字:sun7i_android_rainbowbox.img。

解包命令:$ ./imgrepacker sun7i_android_rainbowbox.img

然后就可以得到一堆fex的文件,其中sys_config.fex就是我需要的文件了,里面记录了所有驱动用到的IO口。根据它来修改Dts文件。

三、编译U-boot。

0.进入U-boot目录

1.清理

$ make distclean

2.复制

$ cd configs/

$ cp Cubietruck_defconfig lingyunq3_defconfig

$ cd ../arch/arm/dts/

$ cp 修改好的dts sun7i-a20-lingyunq3.dts

3.修改

$ vim configs/lingyunq3_defconfig

改默认设备树

CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-lingyunq3"

根据sys_config.fex可知mmc0的cd脚接PD4

CONFIG_MMC0_CD_PIN="PD4"

4.编译

$ export CROSS_COMPILE=arm-linux-gnueabihf-

$ make lingyunq3_defconfig

$ make all -j$(nproc)

5.安装

插入TF卡并找到它在/dev目录下的名字,这里的X就是

$ export card=/dev/sdX

清理:不保留TF卡分区表

$ dd if=/dev/zero of=${card} bs=1M count=1
保留分区表
$ dd if=/dev/zero of=${card} bs=1k count=1023 seek=1

写入TF卡

$ dd if=u-boot-sunxi-with-spl.bin of=${card} bs=1024 seek=8



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值