请选择 进入手机版 | 继续访问电脑版
查看: 8385|回复: 1

OrangePi 编译 mianline主线u-boot

[复制链接]

11

主题

44

帖子

2059

积分

金牌会员

Rank: 6Rank: 6

积分
2059
发表于 2016-12-23 11:16:04 | 显示全部楼层 |阅读模式
本帖最后由 cazureopi 于 2016-12-23 14:33 编辑
  1. 我使用的编译环境如下
  2. Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-86-generic x86_64)
  3. arm-linux-gnueabihf-gcc 4.8版本
复制代码



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

然后进入源码目录,配置源码
  1. make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig
复制代码
  1. make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
复制代码
开始编译啦
  1. 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卡启动
  1. dd if=/dev/zero of=/dev/sdX bs=1k seek=8 count=1015
复制代码
  1. dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1k seek=8
复制代码

[size=33.6271px]uboot启动后会找分区里的boot.scr,然后解析执行里面的命令,boot.scr里就有加载启动内核的命令
配置uboot的脚本(boot.scr) 设置启动内核的环境
mainline kernel  主线内核的boot.cmd
  1. setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
  2. load mmc 0:1 0x43000000 ${fdtfile} || load mmc 0:1 0x43000000 boot/${fdtfile}
  3. load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
  4. bootm 0x42000000 - 0x43000000
复制代码


sunxi-3.4 kernel 全志3.4内核的boot.cmd
  1. setenv bootm_boot_mode sec
  2. setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
  3. load mmc 0:1 0x43000000 script.bin || load mmc 0:1 0x43000000 boot/script.bin
  4. load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
  5. bootm 0x42000000
复制代码

用mkimage工具生成boot.scr
  1. mkimage -C none -A arm -T script -d boot.cmd boot.scr
复制代码


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





0

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2017-3-11 22:31:06 | 显示全部楼层
还有个省事儿的方法,直接下载armbian的beta源里的deb包,基本上是每天构建,解压后就有u-boot-sunxi-with-spl.bin,dd到SD卡就完成了
https://beta.armbian.com/pool/main/l/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表