[Arm-netbook] What do 1,000 EOMA68-A20 PCBs look like?

Denis 'GNUtoo' Carikli GNUtoo at no-log.org
Sat Dec 8 16:48:13 GMT 2018


On Wed, 5 Dec 2018 03:38:59 +0000
Luke Kenneth Casson Leighton <lkcl at lkcl.net> wrote:
>  it was quite hilarious to get up and running.
> https://wiki.parabola.nu/MIPS_Installation - oh.  discontinued.
> that's not going to help *sigh*.
You also have an ARM installation guide[1], however in your case that's
probably not the easiest way to deal with it.

There is a way to use LXC to do a cross-pacstrap, however it's a bit
tricky.

If you don't have Parabola installed already, install it on your
GNU/Linux distribution. It should be something like that (I didn't test
that though):
1) First install and setup virt-manager
2) Create a disk image that you can mount externally:
   # cd /var/lib/libvirt/images/
   # qemu-img create -f raw parabola.raw 1G
3) Run the installation with the install media
4) boot the installed rootfs and run
   # pacstrap /mnt
5) power off the vm and copy the /mnt outside of the vm, then setup a
   loop device
   # udisksctl loop-setup \
     -f /var/lib/libvirt/images/parabola.raw
6) Copy the /mnt outside of the rootfs
7) Setup LXC through virt-manager to be able to use systemd
8) Install and setup the OpenSSH server inside the LXC system vm
9) Install the required packages:
   # pacman -S qemu-user-static-binfmt libretools

Then trick is to:
1) export the /proc/sys/fs/binfmt_misc/ from the host to
   the /proc/sys/fs/binfmt_misc/ from the target in virt-manager.
2) run /usr/lib/systemd/systemd-binfmt by hand
   (I didn't manage to make the binfmt systemd service start)

Once that is done you can then create a chroot for building packages[2]:
$ sudo librechroot -A armv7h -n parabola-armv7h make
# arch-chroot /var/lib/archbuild/parabola-armv7h

Or you could create an installation rootfs:
# mkdir parabola-armv7h
# pacstrap -C /usr/share/pacman/defaults/pacman.conf.armv7h \
  parabola-armv7h/
# arch-chroot /var/lib/archbuild/parabola-armv7h

If you want to use a different kernel (like a deblobbed Allwinner Linux
kernel) that is way older it would be best to:
1) Make a PKGBUILD for it. That can be integrated in Parabola very
   easily
2) libremakepkg is an abstraction on top of makepkg which enables you
   to build in a chroot, including chroot of different architectures.
   $ cd /path/to/directory/that/has/a/PKGBUILD
   $ sudo libremakepkg -n parabola-armv7h
3) You will need to use OpenRC if systemd doesn't
   support your old kernel version

I've verified that with librechroot under a Parabola LXC under a
Parabola host and I got:
# file[...]/usr/bin/bash [...]/usr/bin/bash:
ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically
linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0,
BuildID[sha1]=2ed90c858f8b750764b9ef6ebf6e23499640e3c9, stripped

If you need serial console with OpenRC, I've written some documentation
for it with another device in mind here:
https://libreplanet.org/wiki/Group:Hardware/Freest/e-readers/Aura_H2O_Edition_2#Serial_console_with_OpenRC

I hope that it's still useful, especially if you need to build things.
Also note that I'm new to Parabola development, so there might be even
easier ways that I don't know of yet.

References:
-----------
[1]https://wiki.parabola.nu/ARM_Installation_Guide
[2]There is no Linux image in it. You can use libremakepkg to build
   packages in this chroot[3]
[3]https://wiki.parabola.nu/Package_maintainer_guide

Denis.


More information about the arm-netbook mailing list