新唐那些事之根文件系统篇-NUC980 ubifs文件系统使用指引(基于5.10内核+spinand flash启动)

新唐NUC980 sdk开发,原厂推荐使用ubuntu 20.04,文章下面的操作,我是使用ubuntu20.04构建的。
一. 代码下载
新唐官网下载使用5.10内核的buildroot
git clone https://github.com/OpenNuvoton/buildroot_2024.git
二. 固件构建
构建支持nuc980 SPI NAND的初始镜像(构建完可以在output/images/目录下找到镜像)
首先选择配置文件,因这里使用的开发板对应的配置是nuvoton_nuc980_eth2uart_defconfig(在buildroot根目录的下一级目录configs里面)
make nuvoton_nuc980_eth2uart_defconfig
make
三. 创建ubifs文件系统的步骤
-
修改buildroot的配置:
在buildroot根目录下执行 make menuconfig
(1)在System configuration,选择‘Run a getty (login prompt) after boot’

(2)在Bootloader下 Install U-Boot SPL binary image

(3)在Filesystem images下,只保留以下配置:

2. 修改kernel的配置
make linux-menuconfig
(1)取消 RAM根文件系统设置,见下图。
先取消
[ ] Boot config support,
再取消
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

(2)使能 Command line partition table parsing

(3)使能 Caching block device access to MTD devices

(4)使能 Enable UBI - Unsorted block images

(5)使能 UBIFS file system support

(6)取消jffs2文件系统设置,见下图。

(7)QSPI NAND,Nuvoton NUC980 FMI function selection不要选。

(8)使能SPI NAND device Support

3. mdev设备挂载修改
取消 ubifs的重复挂载
vim board/nuvoton/nuc9x0/rootfs-eth2uart/etc/mdev.conf

修改之后如下所示:

4. 修改设备树
修改设备树文件
vim output/build/linux-custom/arch/arm/boot/dts/nuc980-eth2uart.dts

四 重新构建固件
make
构建成功之后,在output/images/ 下找到以下文件
u-boot.bin uImage rootfs.ubi nuc980-eth2uart.dtb
在output/build/uboot-custom/spl/ 找到以下文件
u-boot-spl.bin
五. 烧录固件到开发板
烧录需要参考官网文章Power-On-Setting切换到USB启动,使用NuWriter烧录,这里不再赘述。
文件 类型 image start offset
u-boot-spl.bin Loader 0x200
u-boot.bin Data 0x100000
uImage Data 0x200000
nuc980-eth2uart.dtb Data 0x600000
rootfs.ubi Data 0x700000
env.txt ENV 0x80000
环境变量env文件如下:
baudrate=115200
bootdelay=1
loadkernel=nand read 0x7fc0 0x200000 0x400000;nand read 0x1400000 0x600000 0x100000
setupspi=sf probe 0 75000000
stderr=serial
stdin=serial
stdout=serial
bootcmd=run setupspi;run loadkernel;bootm 0x7fc0 - 0x1400000
bootargs=noinitrd ubi.mtd=3 root=ubi0:rootfs rw rootfstype=ubifs rdinit=/sbin/init mem=64M console=ttyS0,115200n8 ignore_loglevel
六.开发板启动,选择spinand启动,部分log如下:
spinand需要参考官网文章Power-On-Setting切换到spinand启动。
以上文章纯属个人学习心得,若有疑问以及错误之处,在所难免,欢迎指正,谢谢!
更多推荐


所有评论(0)