陈工-创龙科技 发表于 2026-5-22 11:15:42

基于 RV1126B 评估板的 Linux 系统开发详解(二)

2 U-Boot开发2.1 U-Boot源码说明进入U-Boot源码目录,执行如下命令,查看U-Boot源码目录。Host# ls -lhttps://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPv9yALlmeAAEYMJCptnM008.png2.2配置U-BootU-Boot可使用menuconfig进行配置,请参考“配置内核选项”章节,配置menuconfconfig所需依赖环境。在LinuxSDK源码目录下,执行如下命令先编译一次U-Boot,脚本会在U-Boot目录下执行"make rv1126b_defconfig"生成".config"文件。Host# ./build.sh uboothttps://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv-KABmE5AAEkddVfUPc341.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv-KATesiAAENLCfsgmI144.png
在LinuxSDK源码目录下,执行如下命令,进入"u-boot"目录,通过menuconfig配置U-Boot。Host# cd u-boot/Host# make menuconfig //通过menuconfig进行U-Boot配置https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPv-mAEs9IAADAH-IJDd0129.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv-mALYdPAAGoiXXHLY0221.png
在U-Boot目录下执行如下命令,更新defconfig文件。Host# make savedefconfig //在U-Boot目录下生成新的defconfig文件Host# mv defconfig configs/rv1126b_defconfig //更新U-Boot的defconfig配置文件https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPv-6Ac_jcAACkxspoADA361.png
2.3编译U-Boot在LinuxSDK源码目录下执行如下命令,配置编译选项,并单独编译U-Boot镜像。Host# ./build.sh uboot //执行build.sh脚本编译U-Boothttps://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv_aAYYSMAAEOyJBzGjQ325.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv_aAepEpAAEOyJBzGjQ059.png
备注:U-Boot编译会将"rkbin/bin/rk35/"目录下的bl31固件一起编译。编译后在LinuxSDK源码"u-boot"目录下生成U-Boot SPL镜像rv1126b_spl_loader_v1.09.105.bin、和U-Boot镜像uboot.img。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPv_uAMSagAAEoS01woYs096.png
2.4替换U-Boot我司已提供U-Boot镜像uboot.img文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-\”目录下。其中uboot.img文件可通过评估板文件系统固化至系统启动卡或eMMC。亦可通过瑞芯微开发工具RKDevTool固化至eMMC。备注:通过瑞芯微开发工具RKDevTool替换方式不支持固化U-Boot镜像至系统启动卡。(1)通过命令行替换请从系统启动卡或eMMC启动系统,请将U-Boot镜像uboot.img文件拷贝至评估板root目录下,执行如下命令将其固化至系统启动卡或eMMC。备注:如需固化至系统启动卡,请将设备节点修改为"/dev/mmcblk1p1"。Target#dd if=uboot.img of=/dev/mmcblk0p1 conv=fsync //替换U-Boot镜像到对应存储分区Target#reboothttps://file1.elecfans.com/web3/M00/60/E5/wKgZPGoPv_-AKmotAAAVm_OvB_8579.png
(2)通过瑞芯微开发工具替换请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB 3.0 DRD接口连接至PC机USB接口。备注:在进行本次操作前,需确保eMMC已固化完整系统镜像。请参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将U-Boot镜像uboot.img文件拷贝至Windows非中文工作目录下。a)打开瑞芯微开发工具,点击选择待替换的U-Boot镜像uboot.img,并勾选对应选项。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwASAENE4AAA59nS0U3c697.png
b)长按评估板的USER1(KEY3)按键,将评估板上电启动,等待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwAmAdk6hAAA5lY3RWWM959.png
c)点击“设备分区表”,在弹出的询问窗口中点击“是(Y)”。https://file1.elecfans.com/web3/M00/60/E6/wKgZPGoPwA-AJXD5AAA6NzM9dB0755.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwA-AVGarAABcim_5Vp8421.png
d)点击“确定”完成分区表更新。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwBeAeqqBAABXqMWIy74941.png
e)点击“执行”按钮,固化镜像,固化完成后,瑞芯微开发工具提示“下载完成”,评估板会自动重启,等待评估板重启进入系统后,即可生效。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwBuAFrRZAAA7cx65e4o498.png
2.5 U-Boot使用说明2.5.1 U-Boot命令进入方式评估板上电启动后,在U-Boot倒计时结束之前按下"Ctrl + C"进入U-Boot命令行模式。U-Boot# helphttps://file1.elecfans.com/web3/M00/60/E6/wKgZPGoPwCKAMM2SAACTrli-iUM005.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwCKACJWXAADJDtgzwXY158.png

https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwCqAMaTbAAAnswNY7CI555.png2.5.2环境变量说明(1)环境变量存储执行命令"setenv"或"env default -f -a"修改的是运行空间中的环境变量值,须使用saveenv命令将修改后的环境变量保存起来。否则U-Boot重启后,将会使用修改前的环境变量值。环境变量修改完成后,执行reset命令,即可使用修改后的U-Boot环境变量启动。U-Boot# env default -f -aU-Boot# saveenvU-Boot# resethttps://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwC-ADGKWAAAMXKLRYM4442.png
(2)默认配置信息在U-Boot命令行执行printenv命令可查看环境变量,如下提供主要U-Boot环境变量的解析说明。不同版本的U-Boot,环境变量可能会有所不同,内容仅供参考。
/*系统启动时,记录启动次数,默认不开启这个功能,需设置boottest环境变量为1才会开启*/boottestcount=if test $boottest = 1;then setexpr bootcount ${bootcount} + 1;saveenv;echo boottest=1 bootcount: ${bootcount};fi/*根据环境变量devtype、devnum,从eMMC或Micro SD读取内核镜像以及设备树镜像,然后启动Linux*/bootcmd=boot_fit;boot_android ${devtype} ${devnum};/*评估板名字为evb_rv1126b*/board_name=evb_rv1126b/*启动延时为0秒*/bootdelay=0/*读取设备树文件至DDR地址0x48300000*/fdt_addr_r=0x48300000/*读取内核镜像至DDR地址0x45480000*/kernel_addr_r=0x45480000/*mmc启动命令。配置mmc启动参数*/mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi/*USB启动命令。配置USB启动参数*/usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
(3)环境变量修改本次修改以修改启动延时为1秒为例。U-Boot# setenv bootdelay 1https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwDaAQsrqAABPlxXURIo084.png
2.5.3Kernel参数传递通过U-Boot命令行使用printenv命令看到Kernel参数。https://file1.elecfans.com/web3/M00/60/E6/wKgZPGoPwDuAE2CYAABpoDqQ-N8523.png
亦可观察内核启动阶段的Kernel参数。https://file1.elecfans.com/web3/M00/60/E5/wKgZO2oPwEGAIFmqAAAetgPtD00791.png
(1)root参数指定根文件系统位置,如"root=/dev/mmcblk0p6"表示根文件系统位于eMMC中的第6分区。(2)console参数指定内核启动时的控制台设备,如"console=ttyFIQ0"表示使用串口FIQ0作为控制台。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

页: [1]
查看完整版本: 基于 RV1126B 评估板的 Linux 系统开发详解(二)