Bootstrap

orangepi lite(全志H3) centos7环境下编译 u-boot kernel5.4 rootfs过程记录(非shell脚本方式)

编译前准备

orangepi lite sdk资料下载:

官网:Orange Pi Lite - 香橙派

资料下载地址:http://www.orangepi.cn/downloadresourcescn/

rootfs 版本下载:busybox-1.33.2.tar

交叉编译工具:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

1,安装交叉编译工具,具体方法请百度。

2,编译u-boot

      解压u-boot-orangepi-2020.04.zip压缩包,进入目录u-boot-orangepi-2020.04/,终端执行命令,如下:

           1,make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- orangepi_lite_defconfig 

           2,make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- uboot

3,编译内核,编译命令如下:

      1,make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- sunxi_defconfig //编译配置

      2,make ARCH=arm LOADADDR=0x30008000 CROSS_COMPILE=arm-none-linux-gnueabihf- zImage -j4 //编译内核镜像

      3,make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- dtbs //编译设备树文件

      4,make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-  modules //编译内核模块

遇到缺库的问题:yum install openssl-devel

  上述编译生成的烧写固件主要有:

             1,u-boot-sunxi-with-spl.bin (u-boot烧写固件)

             2,zImage (kernel 烧写固件)

             3,sun8i-h3-orangepi-lite.dtb

 3 烧录u-boot 和 内核

       准备一张8G以上内存的sd 卡 

          1,将sdk分为两个区,第一个分区为fat32格式,第二个分区为ext4格式,具体方法自行百度

          2,使用dd命令将uboot 写入sd卡中,然后将内核和sun8i-h3-orangepi-lite.dtb 放入第一个分区

          3,将文件系统放入第二个分区

   准备好上述操作后,将sd 卡插入H3,重新上电,系统自动加载

  使用串口设置引导内核文件系统命令,如下:

        1,setenv bootcmd "fatload mmc 0:1 0x42000000 zImage;fatload mmc 0:1 0x43000000 sun8i-h3-orangepi-lite.dtb;bootz 0x42000000 - 0x43000000"
        2,setenv bootargs "root=/dev/mmcblk0p2 rootwait rw init=/linuxrc rootfstype=ext4,console=ttyS0,115200"
        3,env save

        4,reset

   启动命令  若不加 rootwait 会找不到文件系统,个人猜测可能是内核sd卡驱动还没起来就找文件系统,找不到分区所致 

;