问题标签 [initramfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

linux - 在 Linux 启动时,我多久可以将数据发送到串行端口?

我有一个外部串行外围设备,需要在 Linux 启动时在嵌入式系统上进行设置。我需要的是在系统启动期间尽早发送一个简短的配置字符串,所以我的程序很简单

  • 将端口设置为 115200 bps
  • 发送一个字符串,例如 "ABCDE\r\n"

我看到最近的内核支持早期的串行控制台,但我需要的不是控制台(我的外围设备也可以在那个阶段发送无意义的数据,另外我将在图形模式下显示启动画面),只是一个快速外围设备的初始化。

怎么做到呢?

0 投票
1 回答
200 浏览

linux-kernel - Yocto面临内核恐慌问题:内核恐慌 - 不同步:VFS:无法在未知块(0,0)上挂载root fs

场景:我在 Yocto linux 项目中工作。我创建了自己的带有 tar.gz 扩展名的 rootfs。而且我已经构建了 linux 内核(使用 bitbake linux-kernel-rt)。我无法加载内核和 rootfs。

谁能解释可能是什么问题。

以下是相同的日志。

0 投票
1 回答
92 浏览

linux - 如何在 tty 上运行程序?

我需要在 linuxkit 的启动时进行 tty 交互。

现在,setsid -w agetty -a root -L 38400 ttyS0 vt100正在工作。但我想运行一个特定的程序。有办法吗?


感谢“Mahdy Mirzade”的回复,

这工作得很好,但它不能控制 tty。

因此,无法运行通过 tty 接收用户输入的程序。有没有办法解决这个问题?

0 投票
0 回答
60 浏览

embedded - RaspberryPi 4:udpsvd / qemu 的 tftp 启动问题

我用 buildroot 构建了一个最小的 linux 系统来提供一些服务,比如 tftp 和其他东西。从那我想用initramfs通过网络启动我的rpi4。目前我从 ubuntu 虚拟机执行此操作,但占用空间有点太大。

来自主机的网络连接通过 qemu 的 tap0 接口桥接,因此系统在路由器中可见。为了服务 tftp,我使用 'udpsvd',所以,当 qemu 系统运行时,它看起来像这样:

尝试手动连接到此 tftp 服务器时,它可以下载文件。从那里启动 PI 时,我收到完全相同的输出,然后在 Ubuntu tftp 上执行它:

在此处输入图像描述

你可能想知道:它声称 start4.elf 或 recovery.elf 丢失了,但别担心,这个声明也出现在 ubuntu tftp 服务中,他抓住了 start.elf,大约 2 分钟后引导过程继续。

我的问题是,当下载引导文件时,qemu 变体卡住了引导(您可以在 udpsvd 日志中看到正在发生的事情并且文件已传输)。我的问题是,我该如何调试这个问题?来自 PI 的日志在两种变体中看起来相同,qemu tftp 正在工作,引导文件完全相同。如果您需要更多信息,请告诉我。

0 投票
0 回答
130 浏览

buildroot - 使用更大的 initramfs 对 populate_rootfs 感到恐慌

我正在使用带有 initramfs 的 buildroot。它适用于小于 14M 的 uImage。

但是当我添加包并变大时,就会发生这种内核恐慌。

这是使用的 env.txt

uBoot 报告这些 mtdparts

NAND布局

/proc/iomem 来自工作/较小的 uImage

15M 构建 BR2_LINUX_KERNEL_LZMA=y, BR2_TARGET_ROOTFS_CPIO_LZMA=y, CONFIG_KERNEL_LZMA=y, CONFIG_RD_LZMA=y, CONFIG_DECOMPRESS_LZMA=y

ARM 上 initramfs 的大小限制?提到没有大小限制。

我尝试了几件事,例如在 linux 中增加 CONFIG_BLK_DEV_RAM_SIZE 并在 uboot 中增加 CONFIG_SYS_BOOTM_LEN,但这没有帮助。

我正在使用的 BSP 基于 buildroot 2016.11.1 如果需要更多信息/上下文,请告诉我。TIA

内核配置 Buildroot 配置

0 投票
0 回答
122 浏览

usb - USB 主机在 initramfs 中不起作用 [Yocto]

我写信给你是想问你以下问题:我正在为基于 Zynq700 的开发板开发一个定制的嵌入式 Linux 发行版。要添加的功能之一是在主机模式下支持 USB,我已经实现了这一点。

这样,通过 rootfs,我结合了 udev 规则和 fstab 条目,允许在特定条件下自动挂载给定的 USB 记忆棒。但是,如果我们将文件系统更改为 initramfs,闪存驱动器不仅不会自动挂载,而且不会被识别。

我查看了 dmesg、lsusb 和 lsmod 的输出以确保这一点并确认没有调用驱动程序函数。此外,我还注意到 U 盘没有接收任何电源(硬件是正确的,因为使用相同的 hdf 和屋顶我可以使用它)。

与我缺少的具有这种效果的 rootfs 相比,initramfs 是否有一些特殊性?

提前致谢

0 投票
1 回答
94 浏览

buildroot - buildroot 中的 initramfs 工具

我正在使用 initramfs-tools 挂钩在 Ubuntu 上的预启动或启动后运行自定义命令。(https://manpages.ubuntu.com/manpages/xenial/man8/initramfs-tools.8.html

现在我想为我在 buildroot 环境中运行 Linux 的嵌入式设备尝试同样的事情。我没有找到任何用于 buildroot 配置的 initramfs-tools。

问题:

  1. 如何在 buildroot 环境中包含 initramfs-tools
  2. 是否有任何现有的方法来调用来自 buildroot 中的 initramfs 的脚本?

谢谢

0 投票
0 回答
26 浏览

linux - 在 initramfs 下通过 LKCF 在用户空间中使用 cmac(aes) 不可用,但在正常启动时有效

我正在使用内核 raspberrypi 5.10.17-v7l+ 的 Raspberry Pi 4 硬件平台上的 libkcapi 从用户空间使用 Linux Kernel Crypto API。我正在使用在 LKCF 中​​注册并在用户空间中可用的 cmac(aes) 算法:

一切正常,但我必须在 initramfs 中使用这个应用程序的一部分。所以我构建了 initramfs,添加了下面列出的内核模块(有很多不必要的,但我试图通过添加更多模块来让事情正常工作):

并确认上面的模块是通过lsmod命令加载到initramfs中的。问题是在 initramfs 中 /proc/crypto 中没有 cmac(aes) 条目,因此使用此 LKCF API 失败,并在套接字绑定时出错。我的问题是为什么在正常启动中 API 可用而 initramfs 中不可用。?我怎样才能让它在 initramfs 中工作?我厌倦了用 aes_arm 模块代替 aes-generic 没有运气。

  1. 我想以与上述相同的方式在用户空间中使用 hmac(sha256) 算法。我在 /proc/crypto 中没有看到这个算法,所以我决定用适当的模块重新编译内核。但是 HMAC 默认编译到内核中。无论如何,我使用所需的配置构建内核,使用它运行系统(更改内核名称并通过 uname 检查),但在 /proc/crypto 中没有找到 hmac(sha256) 算法。查看内核源代码,我看到外部硬件加速器正在导出此算法,但默认情况下,软件实现对用户空间不可用。有没有机会在用户空间中通过 LKCF 使用 hmac(sha256) 而无需编写自己的实现来导出可用的实现?
0 投票
0 回答
342 浏览

linux-kernel - 内核恐慌 - 不同步:请求的 init /init 失败(错误 -2)

附加更多的引导日志。

我正在为实验性 FPGA 平台构建嵌入式 linux 操作系统。我使用了上游 U-boot(boot-loader)、linux(kernel) 和 buildroot(仅用于文件系统)。

我遵循了一些示例,并在我的 linux 配置中启用了所需的 initrd/initramfs 支持。

我在 u-boot 中使用 bootm 命令加载了一个 FIT 映像,该映像由 linux 内核、dtb 和 rootfs.cpio(从 buildroot 编译)组成。相关信息:FIT测试

这些是传递给内核的引导参数:

笔记:

我尝试了其他几件事,但导致了同样的错误。

  • 分别传递内核、dtb 和 fs 映像。
  • 尝试通过 init=/bin/sh , /sbin/init , /etc/init , /bin/init
  • 尝试了一个基本的 initramfs,只有一个 init 脚本、简单的目录结构和一个单独编译的busybox,放在 /bin/busybox 中,带有符号链接。
  • 我没有传递外部 FS,而是传递了 initramfs 源的路径,并使用CONFIG_INITRAMFS_SOURCE将其编译到内核中。

我将不胜感激任何关于我可能遗漏的反馈/指针,现在一直停留在这个问题上。

0 投票
1 回答
35 浏览

centos8 - 静态 IP 地址 - GRUB - Dracut - Rocky 8.5

拜托,我需要一些帮助。我有 Rocky 8.5 和 clevis luks 的设置。出于某种原因,在 GRUB 或 dracut 中配置的静态 IP 地址似乎根本不起作用。只有我可以使用 DHCP 进行引导和解密(“配置”了 IP 静态配置)。

我的感觉是由于某种原因它没有采用这些值并回退到 DHCP。我的配置就是其中之一,没有一个工作:

在选项 1 或 2 之后,我执行了: dracut -fv --regenerate-all

在选项 3 之后: grub2-mkconfig -o /boot/grub2/grub.cfg

顺便说一句,VM 开机和询问 luks 密码之间有 1.5 分钟的延迟。我不知道它是否与此有关。我使用 rd.break=cmdline 进行了 rd.debug,并在日志报告中搜索了 IP 地址,但那里什么也没有。另外,我从 /proc/cmdline 获得了信息,它与开始时在 grub 菜单中看到的选项相同。

欢迎任何帮助。谢谢