Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
No description, website, or topics provided.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
The pandora DEVelopment CHRooT, Next Generation ;) -------------------------------------------------- So this is the image assembly machinery for a somewhat "hybrid" distribution based on the pandora SuperZaxxon, but enhanced and updated for development use. The updates are made by using an arch makepkg-derived makepnd (that in this case makes .ipk's for opkg) and PNDBUILDs that are at https://github.com/urjaman/szdev-recipes.git The 3 ways of using this are: 1. As a systemd-nspawn container on a modern x86-64 linux box (only archlinux tested) 2. As a on-device development chroot on the pandora (like the original dchrt) 3. As an enhancement for an SD install of SuperZaxxon on the pandora 1. Container Mode (make-container.sh) ----------------- The container is based on transparent qemu user mode emulation with binfmt, this means that you can also run x86-64 binaries inside the container, if the correct libraries are installed etc. Thusly, there are scripts for building an x86-64->arm-cross-compiler with dchrt as the sysroot. This toolchain is also packages as an .ipk in the szdev feed. From where it is installed by default into the container version for a good compilation speedup. The qemu-user emulation has the side-effect that setuid binaries dont work, thus the ARM versions of sudo and su dont work. Thats why the x86-64 toolchain carries with it a simple x86-64 su binary (busybox-based). To create the tree for container use (including the toolchain and su hacks), use make-container.sh Look inside it for the component parts if you'd like to customize. At the time of writing, the latest tarball of a this type of tree is at: https://urjaman.ddns.net/dchrt-ng.tar.xz Recommended command to unpack it is (creates a directory dchrt-ng): $ sudo tar --numeric-owner -xf dchrt-ng.tar.xz 2. Chroot Mode (make-chroot.sh) -------------- The pandora chroot version is distributed as a squashfs image, so it spares your pandora SD space and you dont need to spend time unpacking it before use. To make the squashfs image usable, a script is provided that mounts it and an adjacent directory as the RW space using aufs, and then runs the chroot-dropbear.sh script from inside the squashfs. To create this squashfs image-and-script distribution, use make-chroot.sh At the time of writing, the latest such distribution is also at: https://urjaman.ddns.net/dchrt-ng-chroot/ 3. Enhanced SuperZaxxon install on an SD card (inst/sz-upgrade.sh) ------------------------------------------------------------------- This is experimental. Take backups before messing with your beloved SD install. To install, first install SZ on an SD card as you would normally do, boot it on your pandora and do the first boot wizard etc. Then copy the inst/ directory onto it (e.g. scp), and run the sz-upgrade.sh script as root. More info --------- Dropbear SSH server is used as the "entry point" into the system in both container and chroot modes. Reasons: 1. It's an easy way to get as many shells as you like inside it 2. In container mode, if you e.g. run bash directly there is no job control. I dont know why (i suspect the qemu might be related), but ssh solves this. 3. In chroot mode, (un-)doing the chroot setup cleanly while allowing multiple logins would be rather cumbersome, but again, ssh solves this. The new gcc is at /usr/ngcc, so add /usr/ngcc/bin to your PATH to use it, or /usr/ngcc-x64/bin if you want use the x86 binaries in the container. The container and chroot "images" provide little helpers for the builder in the builder home directory. Include one of these fragments to select the gcc, e.g. to use the new gcc: $ . ngcc For container only, the "cross" gcc (this is included by default in .bashrc): $ . ngcc-x64 Short script descriptions (for other scripts) ------------------------- make-both.sh - makes both the chroot and container versions in one pass make-x64-ipk.sh - does the whole process for creating the toolchain ipk --- below this line you propably dont need to use these scripts directly --- cleanup-tc.sh - removes the toolchain build products make-dchrt-ng.sh - makes the base system without specifics to chroot or container mode make-cross-tc.sh - build the cross toolchain to ngcc-x64 build-su-hack.sh - used by make-x64-ipk.sh nspawn-install.sh - used by make-dchrt-ng.sh to enter the nspawn'd portion of the install make-container-post.sh - used by make-both.sh, does what is special about container mode do-cross-tc-to-ng.sh - installs the cross tc .ipk from the feed + other hacks for the container version