荔枝派Zero学习笔记--系统构建篇

系统构建

  • U-Boot
  • Linux
  • rootfs

U-Boot移植

获取源码

  • 码云
    $ git clone https://gitee.com/cnfu/LicheePi_u-boot.git -b v3s-current
  • GitHub
    $ git clon https://gitee.com/cnfu/LicheePi_u-boot.git -b v3s-current
    推荐使用码云下载,速度比较快。

配置编译

  • 如果需要从SD卡启动,需要配置 /include/configs/sun8i.h 如下:
#define CONFIG_BOOTCOMMAND   "setenv bootm_boot_mode sec; "
							 "load mmc 0:1 0x41000000 zImage; "
							 "load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; "
							 "bootz 0x41000000 - 0x41800000;"
#define CONFIG_BOOTARGS      "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0"

注意:添加在 #include <configs/sunxi-common.h> 之前位置。添加后如果报错,把换行符去掉试试。

  • 代码作用:

    • setenv bootm_boot_mode sec; //设置 boot模式为sec
    • load mmc 0:1 0x41000000 zImage; //加载zImage到ram中
    • load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; //加载设备树文件到ram中
    • bootz 0x41000000 - 0x41800000; //引导linux从指定地址运行
    • #define CONFIG_BOOTARGS “console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0” //设置linux控制台串口参数,注意串口选择如果和uboot不一致,会看不到linux运行信息,让你感觉一直卡在starting kernal。
      配置bootcmd内容,从SD卡读取Zimage,设备树文件复制到ram指定地址中,然后引导程序从指定地址开始运行。
  • 配置uboot选项,编译

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-  LicheePi_Zero_480x272LCD_defconfig
$ make -j12  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

执行完成后即可生成uboot文件,最终使用的是 u-boot-sunxi-with-spl.bin文件。生成的u-boot-sunxi-with-spl.bin文件在uboot根目录下。

Linux

获取源码

  • 码云
$ git clone https://gitee.com/cnfu/LicheePi_linux.git  -b  zero-4.13.y
  • GitHub
$ git clone  https://github.com/Lichee-Pi/linux.git  -b  zero-4.13.y

配置编译

  • 生成配置文件:
$  make  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- licheepi_zero_defconfig
  • 编译内核:

    $  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
    
  • 编译设备树:

     $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
    
  • 提取文件
    我们需要生成的文件时:zImage和sun8i-v3s-licheepi-zero-dock.dtb。
    zImage文件位置:/arch/arm/boot/
    设备树文件位置:/arch/arm/boot/dts/

rootfs

获取源码

https://buildroot.org/downloads/buildroot-2017.08.1.tar.gz

配置编译

  • 用此链接下载配置文件,解压重命名为.config放到buildroot根目录下。
https://whycan.cn/files/members/4/buildroot-v3s-20171122.zip
  • 输入指令编译rootfs
sudo  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-  -j12

制作TF卡启动盘

磁盘分区

  • 准备工作:将前面生成的 u-boot-sunxi-with-spl.bin ,zImage, sun8i-v3s-licheepi-zero-dock.dtb, rootfs.tar文件提取出来,将TF卡插入读卡器,接入PC格式化。
  • 插入USB读卡器+TF卡,打开gparted,删除TF卡所有分区。
  • 将u-boot写入SD卡8K偏移处。
$ sudo dd if=u-boot-sunxi-with-spl_480800.bin of=/dev/sdc bs=1024 seek=8
  • 建立第一个分区,大小32MB,格式FAT16,命名为kernal。并将zImage, sun8i-v3s-licheepi-zero-dock.dtb拷贝到此分区。
$ sudo cp -i zImage /media/book/KERNAL
$ sudo cp -i sun8i-v3s-licheepi-zero-dock.dtb /media/book/KERNAL
  • 建立第二个分区,命名为root,用尽剩余空间,格式为ext4,把rootfs.tar解压到该分区根目录。
sudo tar -xvf rootfs.tar -C /media/book/root
  • 将TF卡弹出,插入荔枝派,接入串口,上电即可启动。
  • 测试LCD,随机花屏
cat /dev/urandom > /dev/fb0
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值