Single

H618 buildroot rootfs移植记录

前言

前面编译了u-boot和Kernel,接下来试着编译buildroot的rootfs

准备

首先是下载buildroot

wget https://buildroot.org/downloads/buildroot-2023.05.1.tar.gz
tar -xzvf buildroot-2023.05.1.tar.gz
cd buildroot-2023.05.1

配置

make menuconfig
配置芯片类型

Target options  --->
    Target Architecture (AArch64 (little endian))  --->
    Target Architecture Variant (cortex-A53)  --->
    Floating point strategy (VFPv4)  --->
    Target Binary Format (ELF)  --->

配置Filesystem选项

Filesystem images  --->
    [*] ext2/3/4 root filesystem
        ext2/3/4 variant (ext4)  --->
    (rootfs) filesystem label (NEW)
    (128M) exact size

    [*] ubi image containing an ubifs root filesystem

保存

路径:/home/qubot/BPI-H618-BSP/buildroot-2023.05.1/configs/qubot_m2h_defconfig

编译

make qubot_m2h_defconfig
make -j12

编译成功

放入卡内

将卡插上电脑
lsblk

可以看到设备是/dev/sdd

sudo fdisk /dev/sdd

新建分区


Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (2048-31116287, default 2048): 303106                         //起始地址
Last sector, +/-sectors or +/-size{K,M,G,T,P} (303106-31116287, default 31116287): +262144     在起始地址后面加128M的空间

Created a new partition 2 of type 'Linux' and of size 128 MiB.

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

格式化分区,并将rootfs复制进卡里

sudo mkfs.ext4 /dev/sdd2        //格式化分区
sudo mount /dev/sdd2 /mnt/rootfs     //挂载分区
sudo cp ./output/images/rootfs.tar /mnt/rootfs/   //复制
sudo tar -vxf /mnt/rootfs/rootfs.tar -C /mnt/rootfs    //解压
sudo rm /mnt/rootfs/rootfs.tar    //删除
sudo umount /mnt/rookfs

测试文件系统

将卡插到板子上面,,按空格进入u-boot

检查rootfs是否存在(不知道为啥,有时候复制好像会失败)

ext4ls mmc 0:2

# 设置启动命令,这里是kernel的配置
setenv bootcmd 'fatload mmc 0:1 0x40200000 Image;fatload mmc 0:1 0x4fa00000 sun50i-h616-orangepi-zero2.dtb;booti 0x40200000 - 0x4fa00000'

# 设置bootargs变量,这个是rootfs,波特率等设置
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw  init=/sbin/init debug panic=30'

# 启动
boot

启动到这个时候,突然卡在了,先记录到这里

Waiting for root device /dev/mmcblk0p2 ...

2023-08-07两天之后继续:
这两天重新做了好几遍前面的步骤,包括重新编译所有东西,在opi的镜像上面改,都不太行,有点绝望了,突然在rootfs那一步看到了问题所在

这里的设备变成了mmcblk1p2,如果是这样,那是不是应该把bootargs里面的mmcblk0p2改成mmcblk1p2?
改完之后:

setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk1p2 rootfstype=ext4 rootwait rw  init=/sbin/init debug panic=30'

启动成功了!

暂无评论

发表评论