问题标签 [rootfs]
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.
linux - buildroot rootfs 可以使用 opkg 安装 angstrom 包吗?
我正在使用 beagleboard-xm,并使用 buildroot 创建了 rootfs,添加了opkg 包。现在,我想在 angstrom 中添加一些包,所以我在 /etc/opkg/base-feed.conf 中添加 opkg 更新源...</p>
src/gz base http://www.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv7a/base/
“opkg update”命令报告许多错误消息“没有有效的体系结构,忽略。”
[root@beagleboard-xm ~]# opkg-cl update
Downloading http://www.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv7a/base//Packages.gz.
Collected errors:
* pkg_hash_add_from_file: Package a52dec-doc version 0.7.4-r4.7 has no valid architecture, ignoring.
* pkg_hash_add_from_file: Package a52dec version 0.7.4-r4.7 has no valid architecture, ignoring.
* pkg_hash_add_from_file: Package abiword-dev version 2.8.6-r7.17 has no valid architecture, ignoring.
* pkg_hash_add_from_file: Package abiword-doc version 2.8.6-r7.17 has no valid architecture, ignoring.
* pkg_hash_add_from_file: Package abiword-meta version 2.8.6-r7.17 has no valid architecture, ignoring.
* pkg_hash_add_from_file: Package abiword-plugin-applix version 2.8.6-r7.17 has no valid architecture, ignoring.
......
然后我手动下载包,并将其解压缩为这个链接,并复制到 beagleboard-xm。运行时报“No such file or directory”</p>
[root@beagleboard-xm ~]# fbi
-bash: /usr/bin/fbi: No such file or directory
但是在这个链接中,opkg 可以安装自己构建的 ipk 包。ipk控制文件有什么不同吗?
为什么程序在埃中运行正常,但在buildroot系统中无法运行?
我得到它。当我添加“/etc/opkg/arch.conf”时,似乎没问题。
linux-kernel - 如何为 iMX6 saber lite 板准备新的 SD 卡以运行 linux
我最近购买了 i.MX6 Sabrelite 板,我正在学习内核交叉编译和板启动。
u-boot 已经存在于闪存中,并且已配置为从 SD 卡加载内核。在使用 dd 在 SD 卡上刷新这些图像后,我尝试了一些预构建的图像,并且板子成功启动。
现在,我想学习如何使用内核和 rootfs 准备整个 SD 卡。
我可以使用此处提到的以下步骤构建内核的 uImage:http: //boundarydevices.com/cross-compile-i-mx6-kernel-using-ltib-toolchain/
现在,问题是:
如何创建 rootfs ?
如何对 SD 卡进行分区?
linux - 在 Nandflash 中挂载 jffs2 文件系统时出错
我正在使用 at91sam9m10g45ek 板。我想从 Nandflash 启动。linux 3.12 在从 nandflash 引导期间无法挂载 jffs2。我的 u-boot 参数:
bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro, -(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2
错误:
VFS:无法打开根设备“mtdblock7”或未知块(31,7):错误-19 请附加正确的“root=”引导选项;
如何解决这个问题?请帮助我在这方面是新手。提前致谢。
linux - 如何在 ARM 板上获得有效的 rootfs (initrd)?
我正在尝试使用 AT91RM9200 (ARM920T) 在 CSB337 板上制作嵌入式 linux。我使用 at91rm9200_defconfig 编译内核 3.2.63。我看到内核正在启动,但我遇到了 rootfs (initrd) 的问题。我将尝试解释上下文,但如果没有必要,您可以直接转到主题末尾的内核消息。
据我了解(我是嵌入式 linux 世界的新手),我可以选择安装 rootfs:initramfs、initrd、nfs 或 jffs2(直接来自闪存)。我的第一个目标是让 linux 工作,无论如何。所以所有解决方案对我来说都是可以接受的,但我必须选择一个开始。jffs2 的解决方案似乎是最困难的,因为我的闪存已经格式化为 TFS(来自 MicroMonitor 引导加载程序的几乎未知的文件系统)。使用 nfs 的解决方案可能很棒(至少对于测试而言),但即使在两台 linux PC 之间我也很难使 nfs 工作。所以,最后,我必须在 initramfs 和 initrd 之间做出选择。我决定从 initrd 开始,因为我相信修改比 initramfs 更灵活。
为了创建rootfs,我使用了具有最低配置的busybox(删除了除“初始化实用程序”之外的所有小程序,静态编译)。之后,我将 rootfs 压缩为 img.gz 并通过 tftp 将其发送到目标内存(与 zImage 相同)。我使用内核启动参数:“root=/dev/ram0 rw initrd=0x20100000,307331”。结果,我有这个内核输出:
问题是:我的问题是什么?我可以想象没有文件系统支持,但在我的内核配置中我有:
如果有必要,我可以提供我的 .config 文件。
预先感谢您的所有评论。
在这篇文章中留下评论后(见下文),我尝试通过 buildroot 和集成的 initramfs 编译内核。现在它看起来更好但仍然无法正常工作。
linux-kernel - 嵌入式 Linux 新手问题
所以我正在学习嵌入式 Linux 并且有一些我似乎无法找到答案的问题。
1)编译时内核是否依赖dtb/dts文件?我认为内核只需要知道芯片架构(即arm)并且dtb文件由引导加载程序(uBoot)加载,因此内核只需要加载由dtb文件配置的驱动程序。
2)混合和匹配:我的印象是我可以混合和匹配引导加载程序、dtb、内核、rootfs和模块的任何组合,给出以下
- 内核:必须知道它是为哪个芯片编译的
- dtb:必须知道板子细节和芯片,即多少ram,为SPI配置一个GPIO
- 引导加载程序:必须知道芯片和 uEnv.txt 必须有内核和 dtb 位置的参数
- rootfs:完全独立
- 模块:必须使用特定版本的内核编译
3) 驱动程序:如果我想加载一个 SPI 驱动程序,我是否需要任何特定的东西,或者内核是否知道如何操作它,因为 dtb 文件设置了所需的寄存器?
4)模块:这些只是依赖于内核还是他们需要了解芯片和电路板(当我说芯片时,我的意思是他们需要了解的不仅仅是简单的 arm 或 x86 架构)?
在此先感谢您,我知道这些是一些基本问题,但感谢您提供任何帮助。
linux - ARM Linux 启动的一些细节
我试图了解 linux 在 arm 架构上启动的细节。我在互联网上进行了大量搜索,到目前为止了解了一些细节,尽管我觉得每次阅读一篇文章都会带来很多其他新术语,这让事情变得更加复杂。我确实有 2 个运行 linux 的板,一个 olimex 9261 和一个 beaglebone black。我在嵌入式系统尤其是 arm 方面的专业知识非常好,但在 linux 上玩的并不多(除了一些用户空间程序和内核中的 char 驱动程序)。
以下是我的问题:
一块一块板我有以下uboot输出(linux 2.6.30):
该板有 64MB RAM(映射在 0x20000000)、512MB nand flash(目前没有找到映射)和 2MB 数据闪存(映射在 0xc0000000)。
我在这里不明白的是:
- 为什么 bootargs 中有 mem=64?这不应该作为 ATAG 或 DTB 给出吗?
- 当我们将控制权传递给内核时,为什么会有一个控制台作为参数?使用 tty 的内核是否已经由 uboot 配置?
- initrd 与 rootfs。这对我来说仍然不清楚。我知道 initrd 可以作为块设备或单独的映像包含在内核中,uboot 必须将地址详细信息传递给内核(真的吗?)。我们能否拥有一个不包含 initrd 的内核 + 另一个文件系统,如 jffs2,内核将从该文件系统运行其余驱动程序?实际上我无法理解内核在启动时使用的文件系统的全部细节。在我的这个设置中,有 4 个文件:uImage、bootstrap、env.bin 和 jffs2 文件系统。所以没有initrd。这是如何工作的?以及上述 bootargs 中指向的文件系统的 root 过程如何?在我的理解中,内核应该首先访问 jffs2 文件系统,然后抓取 /dev/mtdblock1 中的映像并挂载它。也许我的理解是错误的。实际上内核和文件系统之间的这种交互是我似乎不理解的。在上面的 bootcmd 中,内核从 nand 复制到 sdram,然后 bootm 跳转到它。但是内核如何在引导时找到 jffs 呢?我在引导期间看到此输出行:VFS: Mounted root (jffs2 filesystem) on device 31:1。
在董事会用户指南中,我发现了这一点:
警告:由于 AT91SAM9261 芯片勘误表不支持从 NAND 闪存引导。
...
512MB NAND 闪存(在 Linux 中被视为硅驱动器)。
- 编译内核后,我观察到 System.map 没有所有符号。我检查了vmlinux,它是一样的。有谁知道为什么?也许编译器没有正确配置?
非常感谢,丹尼尔。
linux - 使用 ramdisk 作为 rootfs 引导时找不到初始化进程
我正在尝试为使用 AT91SAM9261 和 2.6.30 内核的设置设置 ramdisk。我知道你会说我为什么不使用 initramfs?我也将使用那个,到目前为止,我想检查是否可以使用 ramdisk 作为 rootfs 启动。
我已经有一个根 fs 在这个系统上以 jffs2 格式运行良好。我使用了以下教程:
http://www.ibm.com/developerworks/library/l-initrd/
所以我直接在嵌入式目标上创建了 ramdisk,大小为 4MB。我使用了“dd”和“mkefs”,如果我在 rootfs 是我的 jffs2 时将它挂载为循环,则 ramdisk 映像工作正常。我可以浏览 mount_point 并在里面做一些事情。内容是根据上述链接中的“手动构建初始 RAM 磁盘”部分创建的。
在 /dev 中,我放置了 null 和控制台,在 /bin 中,我复制了 busybox 并创建了链接。我也将execute属性设置为init脚本,当我在这里运行它时效果很好(作为循环设备,jffs2作为rootfs)
在我的内核配置中,我启用了 ramdisk 支持,如下所示:
使用 tftp 我将 ramdisk 映像下载到 0x21100000。在 0x20008000 我有未压缩的内核,在 0x22000000 复制了 zImage。
但是,我无法成功启动系统,因为它在检查 init 进程时挂起。正如我所提到的,我多次检查了我的 init 是否可以执行,
我还在 bootargs init=/bin/busybox 或其他脚本/二进制文件中使用来检查是否有任何可以用作 init。
我现在使用的命令行:
bootargs=64M 控制台=ttyS0,115200 root=/dev/ram0 rw initrd=0x21100000,4194304 init=/init
对于某些人,我将所有权设置为“nobody”只是为了检查它是否有任何区别。从日志输出中可以看出,ramdisk 已挂载,但 init 失败。它给出了检查 ext2 图像的警告,这是我在复制它之前所做的,我没有报告错误。
tftp 服务器在 Windows7 上。如果我将 ramdisk 映像从 linux 复制到 Windows,然后从 Windows 服务器执行 tftp,我可能会有一些不兼容。所以我再次将图像从 Windows 复制到 linux,安装它并检查 FS 是否报告任何错误并且可以执行脚本 - 一切看起来都很正常。
所以我确实有所有文件,属性设置,ramdisk 被报告为作为 rootfs 安装正常,但找不到 init。
我计划重建busybox并再试一次,但是由于我当前的ramdisk映像在我将其挂载为循环时可以正常工作,因此我没有太多信心它会改变一些东西。我没主意了。我一整天都在努力让这个工作。
非常感谢您的帮助。
谢谢。
linux - 对 rootfs 进行修改(zynq 上的 petalinux)
我已经在我的 Zynq 板上安装了 Petalinux 2014.4,但是当我启动板子时没有安装 NAND 闪存。我想知道是否可以通过提取包来更改 rootfs.cpio,然后对 fstab 进行更改,从而使 cpio arhcive 恢复。如果是,那之后只运行 petalinux-build 就足够了吗?
谢谢 :)
backup - 如何获取嵌入式 Linux rootfs 的备份?
我有一个运行良好的嵌入式 Linux 环境,希望保存 rootfs 部分,然后用空的 nand 闪存其他新板。
所以,我尝试了什么。从barebox(在kernell启动之前),我把/dev/nand0.root.bb 放到我PC的tftp服务器上。
然后我尝试在 rootfs.ubifs 中重命名它,并在另一个(和一个新的)板上调用“update -t rootfs”脚本的好地方。
大小不同:17301504 原rootfs.ubifs 264630784 /dev/nand0.root.bb
问题是系统无法正确启动。
这里有人以这种方式工作吗?我需要帮助...
linux-kernel - 使用静态编译的 C 文件作为 rootfs
我想启动我的 imx53-qsb 板,而不是使用普通的 rootfs,而是使用静态编译的hello_world.c文件,换句话说就是hello_world_static.out。为此,我编写了一个hello_world.c文件,对其进行静态交叉编译,然后将其放入我的 sd 卡的mmcblk0p1 ext4分区中。我将uImage和u-boot.imx放在 mmcblk0 中。启动我的系统后,我遇到了内核恐慌:
内核恐慌 - 未同步:未找到初始化。尝试将 init= 选项传递给内核。有关指导,请参阅 Linux 文档/init.txt。
有什么解决办法吗?谢谢