0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

radxa initrd

分享:

在 Radxa 设备(如 Rock Pi 或 Rockchip 开发板)中,initrd(Initial RAM Disk)是一个临时根文件系统,它在 Linux 内核启动过程中加载,负责挂载真正的根文件系统。以下是关于 Radxa 设备中 initrd 的关键点及操作指南:


1. initrd 的作用

  • 驱动加载:提供内核启动所需的硬件驱动(如存储、网络驱动)。
  • 挂载根文件系统:执行脚本挂载实际的根文件系统(如 eMMC、SD 卡或 NVMe)。
  • 初始化任务:运行早期用户空间脚本(如解密磁盘、加载模块)。

2. 常见操作

(1) 查看 initrd 内容

Radxa 的 initrd 通常是 gzip 压缩的 cpio 归档文件。解压命令:

mkdir initrd-root && cd initrd-root
zcat /boot/initrd.img-* | cpio -idmv

(2) 重建 initrd

  • 方法 1:使用 update-initramfs(Debian/Ubuntu 系统)

    sudo update-initramfs -u -k $(uname -r)

    生成的 initrd 位于 /boot/initrd.img-<内核版本>

  • 方法 2:手动创建(需在解压后的 initrd 目录内操作)

    find . | cpio -H newc -ov | gzip -9 > ../new-initrd.img

(3) 修改 initrd 脚本

编辑解压后的 initrd 中的脚本(如 /scripts/init-top/init),例如:

  • 添加自定义驱动模块。
  • 修改根文件系统挂载参数(如从 NVMe 而非 SD 卡启动)。

3. Radxa 启动配置

在 U-Boot 中指定 initrd 的引导参数(通常在 /boot/extlinux/extlinux.conf 或 U-Boot 环境变量中):

# 示例 extlinux.conf 配置
label linux
  kernel /boot/vmlinuz-*
  initrd /boot/initrd.img-*  # 指定 initrd 路径
  append root=/dev/mmcblk0p2 rootwait console=ttyS2,1500000

4. 故障排查

  • 问题:内核无法挂载根文件系统
    解决:检查 initrd 中是否包含正确的存储驱动(如 sdhci-of-dwcmshc 用于 SD 卡)。

  • 问题:启动卡在 Loading initial ramdisk
    解决

    1. 确认 initrd 文件未被破坏:gzip -t /boot/initrd.img-*
    2. 重新生成 initrdsudo update-initramfs -u
    3. 检查 U-Boot 是否正确加载 initrd 到内存地址。

5. 高级技巧

  • 压缩方式优化
    使用更高压缩率的工具(如 lz4)减少启动时间:
    sudo update-initramfs -u -v --compress lz4
  • 精简 initrd
    移除未使用的模块(编辑 /etc/initramfs-tools/modules)。

总结

在 Radxa 设备中,initrd 是系统启动的关键环节。通过维护 initrd 的驱动、脚本和配置,可确保设备可靠启动。操作时注意:

  • 备份原始文件。
  • 使用 update-initramfs 工具管理 Debian/Ubuntu 系统。
  • 通过 U-Boot 日志(dmesg)诊断启动问题。

遇到具体问题可提供启动日志或配置文件,以便进一步分析!

如何从官方的boot.img里解包得到initrd镜像

的朋友。今天我们继续来坑填,抚慰下处女座朋友那颗爱完美的心灵吧。 问题出现在根文件系统挂载方面,挂载的节点不存在,问题可以定位在ramdisk镜像上。推测是官方固件的initrd里处理分区这一块做了更

LEON1985 2022-06-02 15:43:22

deepin 25 Beta版本成功适配Radxa ROCK 5系列开发板

近日,deepin(深度)社区宣布,deepin 25 Beta 版本已正式适配 Radxa ROCK 5 系列开发板,包括 ROCK 5B、ROCK 5B+ 和 ROCK 5 ITX 等型号。

2025-06-06 17:25:17

瑞莎科技推介Radxa Rock 5C/5C Lite开发板,搭载瑞芯微RK3处理器

Radxa Rock 5C在尺寸上为85 x 56毫米,装载了四核Cortex-A76、四核Cortex-A55及Mali-G610 MP4图形处理单元(GPU)的RK3588S2芯片,支持LPDDR4x内存规格,最大容量达32GB。

2024-04-08 11:31:38

瑞莎科技近日推出Radxa Rock 5C/Rock 5C Lite开发板

4 月 7 日消息,瑞莎科技近日推出 Radxa Rock 5C / Rock 5C Lite 开发板,搭载瑞芯微 RK3588S2 / RK3582 芯片,售价 29.9 美元(IT之家备注:当前约 216 元人民币)起。

2024-04-09 14:05:47

Linux配置kernel使用ramdisk文件系统

配置kernel使用ramdisk文件系统 修改 uboot 的环境变量: setenv initrd_high= 0 xffffffff setenv bootargs console=ttyS

2023-10-04 14:48:00

zynq开发中的文件系统类型

在Petalinux配置工程时,会遇到如下类型文件系统。常用的有INITRAMFS、INITRD和EXT4。

2023-05-25 11:28:31

欧时RS的多款ROCK单板计算机技术优势

OKdo是物联网(IoT)和单板计算机领域的专家,ROCK由Radxa提供支持并基于可信赖的Rockchip处理器构建。

2023-05-11 11:04:52

分享一下RK3288 ubuntu-16.10系统的制作过程

initrd.img打包成linux-boot.img烧到boot分区,resource.img单独烧到一个分区;2.zImage、initrd.img、resource.img合起来打包

hsdou月半 2022-07-27 17:33:25

你是否了解Linux中的Ramdisk与Initrd

Ramdisk与硬盘分区有其不同的地方,例如RAM disk不适合作为长期保存文件的介质,掉电后Ramdisk的内容会随内存内容的消失而消失。

2019-05-05 14:35:38

想问一下kernel开机log是怎么输出的啊

= "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; linux,initrd-start = ; linux,initrd-end = ;};

飞毛腿452 2022-01-04 06:17:05

浅析Ramdisk制作供linux挂载的根文件系统过程

,调用VFS,而VFS会根据文件所处的文件系统,调用文件系统的驱动函数。而文件系统的驱动函数,会调用块设备的驱动程序,从外部块设备读取数据。五、linux的initrd(虚拟文件系统)linux从2.6

h1654155957.9921 2022-07-21 15:26:22

构建openstlinux-5.4-dunfell-mp1-20-06-24时为什么找不到 `update-desktop-database` 命令?

在构建 openstlinux-5.4-dunfell-mp1-20-06-24 时,我总是遇到以下错误:ERROR: st-image-resize-initrd-1.0-r0 do_rootfs

hucc 2023-02-03 06:32:01

嵌入式系统中的几种文件系统分别有哪些优缺点呢

RAM file system(CRAMFS),journaling flash file system v2(jiffs2),NFS,initrd,YAFFS2,ext4,squashfs,and ...

yu1004402274 2021-12-15 08:08:03

请问存储位置的内容如何固话到emmc中呢?

。update_emmc=mmc rescan;fatload mmc 0 ${loadaddr} /sdrun/${image}; fatload mmc 0 ${initrd_addr} /sdrun

jerry181855 2022-01-11 07:52:37

基于USB接口的移动存储设备构建微型操作系统

压缩,最后通过grub和initrd 实现系统的启动。2 微型桌面系统的构成本文是在LFS Live CD 6.3 宿主系统上,通过LFS技术构建基本Linux 系统后,使用chroot 命令转入

asd012 2019-06-10 05:00:05

bitbake期间出错这是个问题吗?我错过了什么?

/images/ st-image-resize-initrd.bb:ENABLE_PARTITIONS_IMAGE 未启用这是个问题吗?我错过了什么?谢谢

lining870815844 2022-12-01 07:05:05

如何使用分发包构建Linux映像?

吗?*************************************错误:st-image-resize-initrd-1.0-r0 do_rootfs:无法更新包索引文件。命令'['/home/toku

DengQilong 2022-12-05 07:25:42

构建Open ST Linux发行版时收到警告如何处理呢

你好!当我构建 Open ST Linux 发行版时,我收到以下警告:WARNING: st-initrd-1.0-r0 do_package: Manifest /home/ubuntu

法规处发 2022-12-23 10:22:33

在local.conf文件中更改yocto项目下载目录时会弹出注释如何处理呢

/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/layers/meta-st/meta-st-openstlinux/recipes-st/images/st-image-resize-initrd.bb: ENABLE_PARTITIONS_IMAGE not enabled:45

iiiegsd 2022-12-06 06:52:41

如何去解决ping服务器报错的问题

} ${initrd_addr} ${fdt_addr};bootdelay=3bootdev=mmc2bootscript=echo Running bootscript from mmc

他在笑 2022-01-12 07:58:15

为什么无法为uuu工具编译一个可用的u-boot?

- 使用 mfgtools 的默认环境,使用默认环境运行 bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr}; 然后如果测试 ${tee} = yes

sansamp 2023-04-19 08:06:19

LS1046A从qspi闪存启动显示“FDT 和 ATAGS支持未编译 - 挂起”如何修理?

'ls1046aa518' configurationTrying 'initrd' ramdisk subimageDescription:initrd for arm64Type:RAMDisk

jf_1689824260.1465 2023-04-06 08:11:03

从零开始制作Linux

让初学者遇到挫拆,攻破LFS的信心越来越低。本文教大家制作一个比LFS更简单的Linux系统,只有Grub、Linux kernel和最小的根文件系统initrd,原理和过程都非常简单。大家可以在这

andrewxuda 2019-07-04 09:00:00

RK3399使用Linaro编译器编译u-boot与kernel

),0x00002000@0x002BA000(baseparamer),-@0x002BC000(userdata)制作一个大小位8M的ext2格式镜像文件,并挂载到/mnt/initrd目录下 拷贝

牛牛爱吃草 2022-09-05 17:50:52

请问uboot中内核启动参数问题该怎么解决

;structtag_initrd initrd;structtag_serialnr serialnr;structtag_revision revision;structtag_videolfb

DDT6 2019-07-17 05:45:19

RockPi-S Ruby-HAT扩展板资料分享

描述RockPi-S Ruby-HAT项目描述Ruby-HAT 是 Radxa RockPi-S的扩展板。它的设计旨在与 RockPi-S 一起装入紧凑的体积中。眼镜Ruby-HAT 由以下外围设备

jfsdfa 2022-08-04 06:14:42

怎样才能将Uboot烧录到板上的emmc中?

bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr}; 然后如果测试 ${tee} = yes; 然后 bootm ${tee_addr

heks 2023-06-08 08:28:58

在TS-7970板 (i.MX6 Quad) 上使用initrd启动时内核崩溃的原因?如何解决?

(使用无 initrd 的 Buildroot 映像进行测试)。为了允许启动生成 /boot/extlinux/extlinux.conf 文件的 Guix 系统,我调整了来自 U-Boot

阿兵888824 2023-03-21 07:44:04

Linux:QEMU的网络配置

。/linux-3.2/arch/arm/boot/zImage -initrd 。./initramfs -serial stdio -append 5.配置 qemu的网络: 主机和虚拟机之间可以相互ping通了。

2020-06-23 09:22:05

加载更多
相关标签