Buildroot 正在为它们应该运行的嵌入式设备生成图像。这工作得很好。在这些图像中,包含 rootfs。
由于一些研究,我想查看生成的文件(例如,应用了 Buildroot 设置的不同压缩模式,现在应检查它们是否正确完成),但我在网络中找不到有用的东西。
据我所知,uImage 和 zImage 之间的区别只是一个小标题,因此 u-boot 能够读取该二进制文件。但是我既不能打开 uImage,也不能打开 zImage。
谁能给我一个关于如何在主机上解压缩那些 (u/z) 图像的提示?
我在 uboot 中,想知道如何知道 uboot 正在使用什么 RAM 地址范围。
uboot 需要内存才能运行,因此它可能正在使用一些 RAM。我想避免修改这些 RAM 地址。
我如何知道 uboot 加载了哪个内存区域?
我正在使用 TS-4900,这是一个插入基板的嵌入式“计算机模块”,运行 Yocto Linux。它使用 U-Boot 启动,据说它会根据底板的型号选择正确的 dtb 文件来启动,如果它无法找到正确的文件,它可能会回退到我的模块的“通用”文件。
但是它如何/在哪里确定正确的?我如何知道使用了哪个 .dtb,或者设置应该使用哪个?
下面是 U-Boot 的启动信息。
U-Boot 2014.10-g3ac6ec3 (Jan 29 2015 - 17:20:15)
CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
Reset cause: POR
Board: TS-4900
Revision: C
Watchdog enabled
I2C: ready
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected N25Q64 with page size 256 Bytes, erase size 4 KiB, total 8 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: using phy at 7 …Run Code Online (Sandbox Code Playgroud) 我尝试从 SD 卡运行 Android。这张卡准备好了。有隔板:boot(FAT32),rootfs(ext4),system(ext4),cache(ext4)和usedata(ext4)。引导分区有文件来运行的u-boot: MLO,u-boot.bin和uImage。要运行它,我使用命令
mmcinit 0
fatload mmc 0 0x80000000 uImage
setenv bootargs 'console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M androidboot.console=ttyO2 root=/dev/mmcblk1p2 rw rootwait rootfstype=ext4'
bootm 0x80000000
Run Code Online (Sandbox Code Playgroud)
比我看到 Linux 是如何启动的。但是在加载步骤几秒钟后,rootfs我看到一条错误消息
[ 4.015655] EXT4-fs (mmcblk1p2): couldn't mount RDWR because of unsupported optional features (400)
[ 4.036499] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 4.079986] List of all partitions:
[ 4.083801] b300 31162368 mmcblk0 …Run Code Online (Sandbox Code Playgroud) 我偶然发现了这个页面,它说 bzImage 和 vmlinuz 是相同的。
然后使用 cp(即复制)命令将 bzImage 复制到 /boot 目录,并同时使用诸如以下命令重命名 vmlinuz
Run Code Online (Sandbox Code Playgroud)cp /usr/src/linux/arch/i386/linux/boot/bzImage /boot/vmlinuz
这让我很担心,因为到目前为止我的理解如下:
vmlinux:纯 linux ELF 文件与链接器创建的方式一样,包括符号和所有内容。vmlinuz: gzippedvmlinux文件,它的所有符号都被剥离了zImage: bootsect.o + setup.o + misc.o + piggy.o(piggy.o 包含背驮vmlinuz)。zImage是可引导的,因为它可以解压并运行它包含的内核。bzImage:zImage除了它的构建略有不同之外,它可以承载更大的内核。你能告诉我谁是正确的吗?
我知道这个 Stack Exchange answer,但它没有明确回答我的问题。然而,隐含地,我觉得它支持我的理解。
上面的哪个文件uImage包含?
我想使用未压缩的内核映像并启动 BeagleBoard。通常我使用 uImage 来启动压缩格式的内核。如何使用未压缩的内核映像?
我正在尝试在 FPGA 板上安装 Linux。linux 风格是赛灵思 FPGA 芯片的petalinux。
当前的 Xilinx SoC 具有 Cortex A9 处理器和可编程硬件逻辑,即 FPGA。我在终端上捕获了启动消息:
.....................U-boot time.......................partition.......................................................
[Fri Dec 27 15:18:53.108 2013] Copying Linux from SD to RAM...
[Fri Dec 27 15:18:53.129 2013] Device: SDHCI
[Fri Dec 27 15:18:53.129 2013] Manufacturer ID: 2
[Fri Dec 27 15:18:53.129 2013] OEM: 544d
[Fri Dec 27 15:18:53.129 2013] Name: SA04G
[Fri Dec 27 15:18:53.129 2013] Tran Speed: 25000000
[Fri Dec 27 15:18:53.129 2013] Rd Block Len: 512
[Fri Dec 27 15:18:53.129 …Run Code Online (Sandbox Code Playgroud) 我有一个基于 imx233-Olinuxino-Nano 的设备。
Arch Linux Arm 发行版启动并运行。
但是,我的板上有一个从设备连接到 CPU 的 SPI。内核支持它,但很明显,Olinuxino 的通用设备树不包含它的描述。
如何让它显示在 /dev 目录中?我知道我可以在 Linux 内核中更改设备树并重新编译该设备树,但我听说可以提供设备树覆盖文件来在启动时更改设备树。我怎么做?到目前为止,我发现的信息是稀缺和模糊的。
我已成功在嵌入式设备上启用安全启动。问题是,当我以这种模式启动时,该过程似乎在该行之后卡住了:
Starting kernel ...
一旦 U-boot 将内核复制到内存中并发出bootm命令。
在调试器中,我能够捕捉到 PC 卡在一条yield指令上,然后是分配给pc = pc-4- 所以本质上是一个循环。
我以前从未在如此低的水平上提出过 linux,所以我不确定从哪里开始寻找。不过,我确实注意到,我能够在非安全模式下成功启动内核映像,因此这对供应商来说可能是一个更合适的问题。
1) 一般来说,在哪里可以找到有关执行切换阶段的 U-boot 诊断信息?
2)在什么时候执行完全交给内核?即 U-boot 何时失效?
U-Boot 2013.07 (Nov 21 2013 - 18:12:40)
Memory: ECC disabled
DRAM: 1 GiB
MMC: zynq_sdhci: 0
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
In: serial
Out: serial
Err: serial
Net: Gem.e000b000
Hit any key to stop autoboot: 0
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
SF: 11010048 bytes @ 0x520000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot-PetaLinux>
Run Code Online (Sandbox Code Playgroud)
然后我会输入run sdboot,它会从 sd 卡启动,我在其中放置了一个用于 sd 启动的图像。 …
u-boot ×10
boot ×4
embedded ×3
device-tree ×2
linux ×2
linux-kernel ×2
sd-card ×2
android ×1
arch-arm ×1
arm ×1
boot-loader ×1
buildroot ×1
compression ×1
images ×1
kernel ×1
memory ×1
tcp-ip ×1
yocto ×1