Okay, that sounds good to me.
We are already over the 2GiB limit and I very much doubt that anyone has any flash media of that size any more. If so, they will need to buy something new :)
The next logical barrier would be 4GiB to which the same assumption applies.
So I will add the extra 200 MiB to the image right now so that we have some extra space available. We don’t want to make the image 4 GiB right away because then we would have to write a lot of zeroes when writing the image to its media. The download size won’t change because of the compression.
Best, -Michael
On 18 Aug 2024, at 16:15, Adolf Belka adolf.belka@ipfire.org wrote:
Hi Michael,
On 18/08/2024 14:44, Michael Tremer wrote:
Hello, This is easily explained :)
It was indeed.
We create a new image and mount it into the file system. The root partition is very small and the idea is that we will expand it later when the system boots for the first time because then we know what size the actual storage is. https://git.ipfire.org/?p=ipfire-2.x.git;a=blob;f=lfs/flash-images;h=5623f2e... Currently it is 1800 MB. Maybe the new firmware is so large to bring it over that limit. There might also be the slight problem that we are now copying first and then stripping the binaries which might result in us temporarily requiring more space than we will later actually need. You can simply increase the S_ROOT variable (it is sectors, one sector is 512 bytes) and see how much you need. Let me know how this went.
I added 209715200 bytes (200MB in binary format) so 409600 sectors and it built without problems.
It was probably marginal as the old firmware rootfile built without problems and the new one ran out of space and there is around 500 more lines in the new one.
Anyway got the build completed successfully.
Thanks very much.
Adolf.
All the best, -Michael
On 17 Aug 2024, at 20:18, Adolf Belka adolf.belka@ipfire.org wrote:
Here is the start of the Building flash-images section from _build.ipfire.log up to the time when it starts having a problem with not enough space.
Regards,
Adolf.
Aug 17 13:58:32: Building flash-images make: Entering directory '/home/ahb/sandbox/ipfire-2.x/lfs' make: Nothing to be done for 'download'. make: Leaving directory '/home/ahb/sandbox/ipfire-2.x/lfs' make: Entering directory '/usr/src/lfs' rm -rf /tmp/image.img /tmp/harddisk && mkdir -p /tmp/harddisk # Allocate image on disk dd if=/dev/zero of=/tmp/image.img bs=512 count=0 seek=$(( 8192 + 1040384 + 65536 + 3773292 )) 0+0 records in 0+0 records out 0 bytes copied, 1.534e-05 s, 0.0 kB/s losetup /dev/loop1 /tmp/image.img # Write Partition table echo -e "8192,1040384,L,*\n1048576,65536 ,U\n1114112,3773292,L\n" | sfdisk -uS /dev/loop1 Checking that no-one is using this disk right now ... OK
Disk /dev/loop1: 2.33 GiB, 2502350848 bytes, 4887404 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Created a new DOS (MBR) disklabel with disk identifier 0x2ce22ad4.
/dev/loop1p1: Created a new partition 1 of type 'Linux' and of size 508 MiB. /dev/loop1p2: Created a new partition 2 of type 'EFI (FAT-12/16/32)' and of size 32 MiB. /dev/loop1p3: Created a new partition 3 of type 'Linux' and of size 1.8 GiB. /dev/loop1p4: Done.
New situation: Disklabel type: dos Disk identifier: 0x2ce22ad4
Device Boot Start End Sectors Size Id Type /dev/loop1p1 * 8192 1048575 1040384 508M 83 Linux /dev/loop1p2 1048576 1114111 65536 32M ef EFI (FAT-12/16/32) /dev/loop1p3 1114112 4887403 3773292 1.8G 83 Linux
The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Invalid argument The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8). Syncing disks. kpartx -v -a /dev/loop1 add map loop1p1 (253:8): 0 1040384 linear 7:1 8192 add map loop1p2 (253:9): 0 65536 linear 7:1 1048576 add map loop1p3 (253:10): 0 3773292 linear 7:1 1114112 # Format them mkfs.ext2 -F /dev/mapper/loop1p1 mke2fs 1.47.1 (20-May-2024) Discarding device blocks: 0/520192 done Creating filesystem with 520192 1k blocks and 130048 inodes Filesystem UUID: b14abac3-0899-4a1a-868a-8b9a42ecc4a0 Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 0/64 done Writing inode tables: 0/64 done Writing superblocks and filesystem accounting information: 0/64 done
mkfs.vfat /dev/mapper/loop1p2 mkfs.fat 4.2 (2021-01-31) mkfs.ext4 -O ^has_journal,extent -F /dev/mapper/loop1p3 mke2fs 1.47.1 (20-May-2024) Discarding device blocks: 0/471661 done Creating filesystem with 471661 4k blocks and 118080 inodes Filesystem UUID: 1ea6ca19-4421-4298-8356-da44fdeb6f49 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912
Allocating group tables: 0/15 done Writing inode tables: 0/15 done Writing superblocks and filesystem accounting information: 0/15 done
# Most systems that use Flashimages has no RTC at boot # so the interval check should disables tune2fs -i0 /dev/mapper/loop1p3 tune2fs 1.47.1 (20-May-2024) Setting interval between checks to 0 seconds # Mount root partition mount /dev/mapper/loop1p3 /tmp/harddisk # Mount boot partition mkdir -pv /tmp/harddisk/boot mkdir: created directory '/tmp/harddisk/boot' mount /dev/mapper/loop1p1 /tmp/harddisk/boot mkdir -pv /tmp/harddisk/boot/efi mkdir: created directory '/tmp/harddisk/boot/efi' mount /dev/mapper/loop1p2 /tmp/harddisk/boot/efi # Copy all files # Copy all files from /usr/src/config/rootfiles/common to /tmp/harddisk () BUILD_ARCH="x86_64" BUILDTARGET="x86_64-pc-linux-gnu" KVER="6.6.32" /usr/src/src/scripts/archive.files x86_64 /usr/src/config/rootfiles/common | tee | tar --create --format=pax --acls --xattrs --xattrs-include='*' --sparse --directory=/ --exclude="dev/pts/*" --exclude="proc/*" --exclude="tmp/*" --exclude="__pycache__" --files-from=- | tar --extract --format=pax --acls --xattrs --xattrs-include='*' --sparse --directory=/tmp/harddisk tar: usr/share/misc/magic.mgc: Wrote only 5632 of 10240 bytes tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/asm.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/autoconf.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/awk.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/c.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/cmake.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/css.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/default.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/elisp.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/groff.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/guile.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/html.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/java.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/makefile.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/man.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/nanohelp.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/nanorc.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/nftables.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/objc.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/ocaml.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/patch.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/perl.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/php.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/po.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/python.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/ruby.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/rust.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/sh.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/tcl.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/tex.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/texinfo.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/xml.nanorc: Cannot open: No such file or directory tar: usr/share/nano: Cannot mkdir: No space left on device tar: usr/share/nano/yaml.nanorc: Cannot open: No such file or directory
On 17/08/2024 21:01, Adolf Belka wrote:
I noticed that linux-firmware had not been updated since last October and with the AMD SinkClose vulnerability I thought it would be good to do an update.
However I am having problems. The build works fine with the previous linux-firmware version but with the new one I get the following failures at the flash-images stage. I have done the build from fresh with a clean before the build but it makes no difference.
The error message sequence is as follows:-
flash-images [ 6 ][ FAIL ]
tar: var/state/dhcp/dhcpd.leases: Cannot open: No such file or directory tar: var: Cannot mkdir: No space left on device tar: var/tmp: Cannot mkdir: No such file or directory tar: var: Cannot mkdir: No space left on device tar: var/updatecache: Cannot mkdir: No such file or directory tar: var/updatecache: Cannot mkdir: No such file or directory tar: var/updatecache/download: Cannot mkdir: No such file or directory tar: var/updatecache: Cannot mkdir: No such file or directory tar: var/updatecache/metadata: Cannot mkdir: No such file or directory tar: var/updatecache: Cannot mkdir: No such file or directory tar: var/updatecache/download: Cannot mkdir: No such file or directory tar: var/updatecache: Cannot mkdir: No such file or directory tar: var/updatecache/metadata: Cannot mkdir: No such file or directory tar: var: Cannot mkdir: No space left on device tar: var/urlrepo: Cannot mkdir: No such file or directory tar: etc/fonts/conf.d/10-hinting-slight.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/10-hinting-slight.conf': No space left on device tar: etc/fonts/conf.d/10-scale-bitmap-fonts.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf': No space left on device tar: etc/fonts/conf.d/10-sub-pixel-none.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/10-sub-pixel-none.conf': No space left on device tar: etc/fonts/conf.d/10-yes-antialias.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/10-yes-antialias.conf': No space left on device tar: etc/fonts/conf.d/11-lcdfilter-default.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf': No space left on device tar: etc/fonts/conf.d/20-unhint-small-vera.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf': No space left on device tar: etc/fonts/conf.d/30-metric-aliases.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/30-metric-aliases.conf': No space left on device tar: etc/fonts/conf.d/65-fonts-persian.conf: Cannot create symlink to '../../../usr/share/fontconfig/conf.avail/65-fonts-persian.conf': No space left on device tar: srv/web/ipfire/html/captive/assets/bootstrap-grid.min.css: Cannot create symlink to '../../../../../../usr/share/bootstrap/css/bootstrap-grid.min.css': No space left on device tar: srv/web/ipfire/html/captive/assets/bootstrap-grid.min.css.map: Cannot create symlink to '../../../../../../usr/share/bootstrap/css/bootstrap-grid.min.css.map': No space left on device tar: srv/web/ipfire/html/captive/assets/bootstrap-reboot.min.css.map: Cannot create symlink to '../../../../../../usr/share/bootstrap/css/bootstrap-reboot.min.css.map': No space left on device tar: srv/web/ipfire/html/captive/assets/bootstrap-reboot.min.css: Cannot create symlink to '../../../../../../usr/share/bootstrap/css/bootstrap-reboot.min.css': No space left on device tar: Exiting with failure status due to previous errors make: *** [flash-images:126: /usr/src/log/flash-image] Error 2 make: Leaving directory '/usr/src/lfs'
ERROR: Building flash-images [ FAIL ]
Regards,
Adolf.