7Ji / orangepi5-archlinuxarm

ArchLinuxARM for OrangePi 5 / 5B / 5 plus with vendor and mainline kernels to choose from
GNU General Public License v3.0
96 stars 12 forks source link

Larger images fail on GH Actions, Way to Run Locally? / Sponsoring other RK Boards #56

Open Markadel1 opened 20 hours ago

Markadel1 commented 20 hours ago

Hi, when trying to build a larger image (ex: with gnome), GH Actions fail, I'm probably hitting some limit:

Imaging boot partition, partition size: 48M cache/root/boot mkfs.fat 4.2 (2021-01-31) Imaging root partition, partition size: 4.3G cache/root : etc/pacman.d/gnupg/S.gpg-agent.ssh: pax format cannot archive sockets: etc/pacman.d/gnupg/S.gpg-agent.browser: pax format cannot archive sockets: etc/pacman.d/gnupg/S.gpg-agent.extra: pax format cannot archive sockets: etc/pacman.d/gnupg/S.gpg-agent: pax format cannot archive socketsmke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: 0/654080 done Creating filesystem with 654080 4k blocks and 163520 inodes Filesystem UUID: d184d57e-038d-4cbd-91c5-4655bc8baaa9 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: 0/20 done Writing inode tables: 0/20 done Creating journal (16384 blocks): done __populate_fs: Could not allocate block in ext2 filesystem while writing file "vmlinuz" mkfs.ext4: Could not allocate block in ext2 filesystem while populating file system Copying files into the device: => Cleaning up before exiting (child)... => Cleaning up before exiting (parent)... Error: Process completed with exit code 1.

When trying to use act (with rootless ubuntu runner) to run locally, I get other errors, can you include a script for building on a stock Ubuntu install without GH Actions?

Edit: using Stock Ubuntu 22.04 in a docker container and installing dependencies results in this error when running ./cross_nobuild.sh --role parent unshare: unshare failed: Operation not permitted newuidmap: Could not open proc directory for target 4219 => Cleaning up before exiting (parent)...

I would like to help build/test images and get the build environment to support other RK boards that use the same kernel tree with different dts/dtb (eg rk3566/opi 3b etc). I also want to pay to sponsor this work, please let me know how to contact to discuss, thanks!

7Ji commented 13 hours ago

Simply run the script on a plain Ubuntu 22.04 environment, (or Arch, but you should just pacstrap in that case), using a plain non-root account. The script needs to map to a rootless user namespsace in which the user itself is as-if a root account (but really isn't, there're just some uid/gid lies and limited mounting ability to mount non-actual-block-devices). Rootless docker container already maps a user namespace and Linux kernel forbids to do it recursively. Imagine that the script is already a rootless docker containers construstor, runner and destructor, you can't of course run it again in a rootless docker container.