树莓派4B初级6-移植bootloader和rootfs
ninehua 2025-05-03 15:55 81 浏览
后面想使用buildroot和yocto来构建raspberry os。这里用手动的方式来移植bootloader和rootfs,通过这种方式和自动化方式做对比,更能突出后者的优势。
系统从上电到界面显示大致的流程如下,其中必备的3个阶段:bootloader、kernel和rootfs。RomCode是内嵌在CPU或者GPU中的,开发者无法进行修改。
在这里通过移植bootloader和rootfs,对该启动过程有更深入的了解。
环境:
- ubuntu 22.04
- raspiberry 4B
- U盘 64G
U盘格式化
Raspberry4B默认是支持U盘启动的,启动前需要进行格式化,创建2个分区,ROOT和BOOT。
- BOOT - 启动分区,该分区包含了bootloader,kernel,dtb和一些配置文件如cmdline.txt和config.txt等;
- ROOT -根分区,主要包含根文件系统
步骤如下:
1.查看U盘设备:fdisk -l
2.通过parted命令对其进行格式化并创建2个分区:
- boot分区格式为fat32,start位置为1M,end位置为100M;
- root分区格式为ext4,start位置为100M,end位置为U盘剩余空间。
sudo umount /dev/sdb1
sudo parted -s /dev/sdb mklabel msdos mkpart primary fat32 1M 100M mkpart primary ext4 100M 100%
查看结果是否成功:lsblk
3.对创建的分区进行格式化,即创建文件系统
sudo mkfs.vfat /dev/sdb1
sudo mkfs.ext4 /dev/sdb2
4.对分区创建卷标,对应window的C\D等盘符
sudo fatlabel /dev/sdb1 BOOT
sudo e2label /dev/sdb2 ROOT
5.创建2个文件夹,分别挂载分区到主机
sudo mkdir /mnt/BOOT
sudo mkdir /mnt/ROOT
sudo mount /dev/sdb1 /mnt/BOOT
sudo mount /dev/sdb2 /mnt/ROOT
查询分区UUID
每个分区都对应有一个UUID,可以通过blkid查看,由于这里会移植rootfs,移植的文件中会带有分区的静态信息(/etc/fstab),启动的时候系统会读取该文件并相应的挂载各个目录,如果说创建的分区的UUID和rootfs的不对应,会导致起不来。
sudo blkid
- BOOT - PARTUUID=caa6cd92-01
- ROOT - PARTUUID=caa6cd92-02
Bootloader
下载bootloader文件并copy到BOOT分区,github国内较慢,也可以直接gitee
git clone https://github.com/raspberrypi/firmware.git
或者
git clone https://gitee.com/KisChang/raspberrypi_firmware.git
把firmware文件夹中的boot所有文件copy到BOOT分区:
sudo cp -r firmware/boot/* /mnt/BOOT/
系统系统后的console输出需要借助cmdline.txt文件,正常刷镜像后也是存在该文件的,现在需要手动创建,其中xxx为root分区的PARTUUID:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxx rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
启动
启动后系统会有报错,[end Kernel panic] --not syncing: no working init found.xxx。
这里发生了panic,主要原因是找不到init进程,该文件存在于rootfs中,还没有移植rootfs的原因。
移植rootfs
上面步骤已经完成了bootloader移植的工作,接下来移植rootfs。
由于这里还没有用buildroot和yocto编译rootfs,需要借助NOOBS安装系统中的。
下载入口:
https://downloads.raspberrypi.org/NOOBS/images/NOOBS-2022-04-07/NOOBS_v3_8_1.zip。
把下载好的rootfs.tar.xz复制到U盘的ROOT分区,并进行解压,由于文件较多,并且和U盘的性能有关系,解压过程比较耗时,本人的环境下1h左右。
sudo cp root.tar.xz /mnt/ROOT/
tar xvf root.tar.xz
开机
解压完成后插到开发板上启动,正常情况下会报错:Cannot open access to console, the root account is locked,是由于rootfs中的/etc/fstab分区信息和手动创建PARTUUID不对应,需要进行修改。
编辑/etc/fstab,按照blkid中获取到的PARTUUID进行修改,在VM中进行编辑:vim /etc/fstab:
proc /proc proc defaults 0 0
PARTUUID=caa6cd92-01 /boot vfat defaults 0 2
PARTUUID=caa6cd92-02 / ext4 defaults,noatime 0 1
编辑完后即可重启完成。
相关推荐
- 适合在任何地方使用的 Linux:15 个小型 Linux 发行版
-
如果你有一台老旧的PC或超小型设备,这些Linux发行版中的一个应该适合你。来源:https://linux.cn/article-12281-1.html作者:DavidGewirtz译者...
- 4种方案供你选,微软发布《如何下载和安装Linux》教程
-
IT之家10月14日消息,微软近日发布了一个教程指南《如何下载和安装Linux》,介绍了使用WSL、本地安装、本地虚拟机和云端虚拟机4种方案。该指南重点介绍了用户在PC上运行Li...
- 如何下载Linux系统(linux车机系统通用包下载)
-
Linux系统有多种发行版,不同发行版有各自的官方下载渠道,以下是一些常见Linux发行版的下载方式:-CentOS:可从CentOS官方网站下载,根据自身需求选择适合的版本和镜像源。-Fedor...
- 【JAVA教程】JAVA入门及开发环境安装
-
一、Java开发环境概述Java开发需要三个核心组件:JDK(JavaDevelopmentKit)-Java开发工具包,开发、编译、调试Java程序JRE(JavaRuntimeE...
- 自媒体人必备!文章找不到合适的配图?一套AI提示词3分钟搞定
-
本次分享的内容纯粹干货,让你的自媒体创作不再为图片发愁,适用于今日头条、小红书、公众号等等平台。你需要做的只是修改你的文章介绍,先看效果~上面两种图的效果相当不错吧,比自己在网上找图片省去很多时间,还...
- 新字推荐丨方正鱼乐体:古朴活泼,灵动有趣!
-
方正鱼乐体方正鱼乐体,字体灵感取自《庄子·秋水》中“子非鱼,安知鱼之乐”的意味。方正鱼乐体是一款将现代黑体与传统隶书元素巧妙融合的创意字体,笔形融入了古朴的隶书特征,笔触饱满圆润,折笔处流畅灵动宛若鱼...
- 「插画干货」插画师必备素材库—免费商用字体
-
字体使用Tips:字体是有版权哒~大家在使用字体来装饰插画和排版海报的时候,记得注意字体的版权情况。我来整理了一些【免费商用】的字体给大家,快收藏进灵感库!~-1.阿里巴巴普惠体2.庞门正道字体系列—...
- 乙巳蛇年春晚定制字体“方正春晚如意体”正式发布
-
随着2025年乙巳蛇年脚步的临近,中央广播电视总台春节联欢晚会与方正字库联合宣布,专为今年春晚定制的方正春晚如意体已正式上线。这款字体是方正字库继方正春晚龙行体后再次携手央视春晚,联合打造的字体,该款...
- 方正字库与春晚再度携手,打造乙巳蛇年定制字体:方正春晚如意体已上线!
-
在2025年乙巳蛇年即将到来之际,继方正春晚龙行体后,方正字库再度携手春晚,推出全新定制字体——方正春晚如意体,以字迎新春!这款字体承载着对新年“巳巳如意,生生不息”的美好祝愿,汲取传统艺术中的蛇纹与...
- 字体方正深朴,与《张迁碑》可以伯仲——隶书《衡方碑》赏析
-
文◎赵磊小知识东汉建宁元年(公元168年),《汉故卫尉卿衡府君之碑》(后世简称《衡方碑》)立于山东汶上平原郭家楼前。历经汶水泛滥、野田湮没,至清咸丰年间方移置学宫,今存泰安岱庙东庑。此碑自宋代即有著录...
- 公文正文部分究竟是用GB/2312字体还是GBK、GB18030或方正字体?
-
问题缘起有人提出,根据公文格式国家标准规定,公文正文部分和版记部分分别使用3号仿宋体字和4号仿宋体字,实践中有的批转、转发性通知的正文部分和落款又使用3号楷体字(但并非国标规定),究竟是使用GB/23...
- Ai机甲风格姓氏头像,方正字体艺术之美!
-
生活或许会有波折,但就像海浪,有起有落才更精彩。带着勇气,迎接每一个挑战。用心灵去探索未知的奥秘。像鹰一样飞翔,目标只有蓝天。回忆是条不归路,我却在路上迷失了自己。生活不只有忙碌,还有诗和远方,偶...
- 美股持有以太币个股盘前集体上扬 GameSquare飙涨超30%
-
每经AI快讯,7月16日,美股持有以太币个股盘前集体上扬,GameSquare飙涨超30%,BTCS、BMNR涨超17%,SharpLinkGaming涨超15%,BTBT涨超6%。每日经济新闻...
- 郑钦文完成右肘手术,期待满血回归
-
新京报讯(记者孙海光)7月19日,郑钦文通过社交媒体宣布,已于昨天进行了右肘手术,并期待满血回归。温网过后,郑钦文按计划准备出战WTA500华盛顿赛。但7月17日,赛事组委会宣布2号种子郑钦文退出比赛...