33

mkimage -l uImage Will dump the information in the header. tail -c+65 < uImage > out Will get the content. tail -c+65 < uImage | gunzip > out will get it uncompressed if it was gzip-compressed. If that was an initramfs, you can do cpio -t < out or pax < out to list the content. If it's a ramdisk image, you can try and mount it with: ...


11

New answer (2015-03-22) (Note: This answer is simpler than previous, but not more secure. My first answer is stronger because you could keep files read-only by fs mount options before permission flags. So forcing to write a files without permission to write won't work at all.) Yes, under Debian, there is a package: fsprotect (homepage). It use aufs (by ...


8

No, you don't have to change any script. It seems like your Buildroot configuration is incorrect, but since you didn't provide your config, there's no real way to give a precise answer. Can you run make savedefconfig and post the output of this file here? Basically, what Buildroot is complaining about here is a mismatch between the kernel headers version it ...


8

U-Boot brings its own dumpimage tool (find it in the tools directory of your U-Boot tree) Of course it works with simple images, but it also supports the old-style multi images $ ~2/tools/dumpimage -l uMulti Image Name: Created: Thu Aug 31 19:54:29 2017 Image Type: ARM Linux Multi-File Image (uncompressed) Data Size: 5678650 Bytes = 5545.56 ...


7

I also tried to find the "bare minimum wireless" for RPi Zero W using buildroot so this Q&A came quite high on the search results. Eventhough the original answer was somewhat helpful, it's definitely not the best one so I though it would be worth sharing my own findings: Using buildroot 2018.02.2 make raspberrypi0_defconfig to clean you config. Then (...


6

Ubuntu 16.04 host, Buildroot 2017.02 Current Buildroot has an X11 package which makes things "easy" for us: https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7 This repo builds the entire system for you in a single command: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11 ...


6

I changed the "Auto channel" option to a fixed channel and the "Channel width" option to 20 MHz in my AP and it solved my problem.


5

You will have to build X on your own. Begin by reading this X.Org wiki entry. This guide is for developers who wish to build the X Window System from source. If your area of interest is limited to a single package, like a driver or an application, check with your O/S first for development facilities. As for a package manager, you will need to choose one, ...


5

It all depends on whether your distro uses Busybox for init. To point you in the right direction, run ls -l /sbin/init. If you get something like the following (example from OpenWRT): ~# ls -l /sbin/init -rwxr-xr-x 1 root root 10824 Jan 31 2016 /sbin/init It means init is a different application and you may be able to remove Busybox. You'...


4

In case there are several images inside here is a quick bash script to extract them all into the files image_0, image_1, …: #!/bin/bash src_file=uImage declare -ia sizes=( $(mkimage -l "$src_file" | awk '/^ +Image [0-9]+/ { print $3 }') ) declare -i offset="68+4*${#sizes[@]}" declare -i size for i in "${!sizes[@]}"; do size=${sizes[$i]} echo "...


4

The options in fstab are supposed to be used to remount it, applying the options specified ( which may NOT include rw access ). A boot script that is hard coded to remount the root fs with rw without consulting fstab is broken. Thus, the only result of leaving it out of fstab is that it won't be remounted, and will remain ro with no other options applied.


4

::respawn:-/bin/sh Using BR2_ROOTFS_OVERLAY, make the guest /etc/inittab to contain: ::respawn:-/bin/sh instead of the default line of form: console::respawn:/sbin/getty -L console 0 vt100 You can copy the default inittab from output/target/etc/inittab after the build. I found this while studying the examples/inittab in Busybox 1_28_3 and found this, ...


4

This is a Buildroot-generated system, and those don’t come with a package manager. The whole idea is that you make your package selection in the build, not on the system running the generated image. Don’t try to install a package manager on your embedded system; instead, figure out how to modify the build (on the build system) to add the software you need. ...


3

You could try bootchart, a tool designed to analyse your boot proceedure and create a chart showing how much time was spent in each stage: After install, simply add these options to your kernel command-line, normally in /boot/grub/menu.lst: initcall_debug printk.time=y quiet init=/sbin/bootchartd ... Then - after bootup, run 'pybootchartgui -i'...


3

I only have experience using a more recent buildroot (2014-02). In that version you can disable 'remount root filesystem read-write duing boot' in the config file with: BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set I managed to create an image that just uses its ext4 / partition as read only so unplugging the power of the system does not harm at all. It ...


3

Commands that just work To make absolutely sure that it will work, we can make Buildroot build QEMU for us, and use the exact QEMU CLI provided by Buildroot at: https://github.com/buildroot/buildroot/blob/2019.05/board/qemu/x86_64/readme.txt git clone https://github.com/buildroot/buildroot cd buildroot git checkout 2019.05 make qemu_x86_64_defconfig ...


3

The three different options are for three different aspects of the generated Linux system, the kernel itself, the initramfs and the result file system. Kernel compression Mode: this compresses the compiled kernel image. For example, on my Ubuntu 12.04 machine, the kernel is at /boot/vmlinuz-3.8.0-35-generic Built-in initramfs compression mode: the ...


3

asm/ is a symbolic link to your target architecture, if it doesn't exist probably you're missing some target in your kernel build directory, configure (if not, maybe just module_headers can make it) It is not clear from your question if you're using the command line, a custom Makefile, or a Buildroot package (which version of Buildroot are you using). Your ...


3

You can try to install apt-get install lib32stdc++6


3

it seems that's buildroot's decision to not to include a compiler in target file system. They aim to reduce image size and see compilation on target as useless. find more details in their documentation


3

Entropy in VMs and iOT devices might often not be enough. Install haveged. From man haveged: NAME haveged - Generate random numbers and feed Linux's random device. DESCRIPTION haveged generates an unpredictable stream of random numbers harvested from the indirect effects of hardware events on hidden processor state ...


3

I routinely delete busybox in my master template/Debian VMs. As for Debian, it is a matter of not allowing it to install both the busybox and busybox-staticpackages. You just have to keep in mind the recovery/rescue options will be more limited in a system without it. e.g. I might keep it on a physical system, I delete it as a norm form VMs to save space ...


2

Any directory path can have any (valid) volume mounted to it. Whether or not /etc/fstab is the correct place to put it depends on whether or not your embedded setup even uses it.


2

Starting with version 0.9.32 (released 8 june 2011), uClibc is supporting NPTL for the following architectures: arm, i386, mips, powerpc, sh, sh64, x86_64. Actually, both are an implementation of pthreads and will provide libpthread.so.


2

a shell-script does not need to be compiled, in order to be run: the nature of scripts is to be run directly by an interpreter (your shell-implementation). hence, you only need to put the script into a place where it will be found by your shell. for administrator-installed scripts, the preferred place is /usr/local/bin (or /usr/local/sbin if the script is ...


2

Make sure you build what ever file system you want directly into the kernel and not as a module. SquashFS is readonly so you can't use that alone. You may be better off booting from initramfs then loading root from an image, but that's your call.


2

I can't help with the buildroot specific stuff (other than to say that you'd have to either mount it or boot it before removing duplicates, and then creating a new rootfs from the resulting filesystem), but removing duplicates is quite possible. A naive approach would be to find / -type f -exec sha256sum {} + | sort > checksums.txt, read the resulting ...


2

Have in mind that Patches are per source code revision, and after 4 years of changes in the source code, this patch may be outdated and may need recreation from scratch. First thing you should do is check the official documentation. http://buildroot.uclibc.org/downloads/manual/manual.html#_providing_patches You should pay attention to the following two ...


2

In your analysis you said: After shutting down the Pi and disconnecting the Ethernet cable I was still able to ping that address This is a duplicate IP symptom. In other word, you have 2 (or more) devices with the same IP address. You should check the MAC address of your device using this 2 ways: One your device, do a ifconfig and check the HWaddr ...


Only top voted, non community-wiki answers of a minimum length are eligible