cazureopi 发表于 2016-12-23 11:16:04

OrangePi 编译 mianline主线u-boot

本帖最后由 cazureopi 于 2016-12-23 14:33 编辑

我使用的编译环境如下
Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-86-generic x86_64)
arm-linux-gnueabihf-gcc 4.8版本



用git 下载uboot的源码
git clone https://git.oschina.net/cazure/orangepi-u-boot-2017.01.git编译uboot时还会编译dts,所以要安装 device-tree-compiler
sudo apt-get install device-tree-compiler

然后进入源码目录,配置源码
make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfigmake CROSS_COMPILE=arm-linux-gnueabihf- menuconfig开始编译啦make CROSS_COMPILE=arm-linux-gnueabihf-
最后会在源码根目录生成下面这些文件

u-boot                     u-boot.lds
u-boot.bin               uboot.log
u-boot.cfg               u-boot.map
u-boot.dtb               u-boot-nodtb.bin
u-boot-dtb.bin             u-boot.srec
u-boot-dtb.img             u-boot-sunxi-with-spl.bin
u-boot.img               u-boot.sym


然后把生成的 u-boot-sunxi-with-spl.bin写到SD卡去准备用sd卡启动dd if=/dev/zero of=/dev/sdX bs=1k seek=8 count=1015dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1k seek=8
uboot启动后会找分区里的boot.scr,然后解析执行里面的命令,boot.scr里就有加载启动内核的命令
配置uboot的脚本(boot.scr) 设置启动内核的环境
mainline kernel主线内核的boot.cmd
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
load mmc 0:1 0x43000000 ${fdtfile} || load mmc 0:1 0x43000000 boot/${fdtfile}
load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
bootm 0x42000000 - 0x43000000


sunxi-3.4 kernel 全志3.4内核的boot.cmd
setenv bootm_boot_mode sec
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
load mmc 0:1 0x43000000 script.bin || load mmc 0:1 0x43000000 boot/script.bin
load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
bootm 0x42000000
用mkimage工具生成boot.scr
mkimage -C none -A arm -T script -d boot.cmd boot.scr

在SD卡上建立一个在1024K以后的fat32分区,再把boot.scr和内核的相关文件放在这个分区
在sd卡的第二分区创建一个ext4文件系统把根文件系统存放在这
然后sd卡启动的任务就完成了,可以轻松用sd卡启动一个linux系统





izumiko 发表于 2017-3-11 22:31:06

还有个省事儿的方法,直接下载armbian的beta源里的deb包,基本上是每天构建,解压后就有u-boot-sunxi-with-spl.bin,dd到SD卡就完成了
https://beta.armbian.com/pool/main/l/
页: [1]
查看完整版本: OrangePi 编译 mianline主线u-boot