Mirabox Arch Linux Install
Various folks around the Club and beyond have been impressed with Globalscale Mirabox, its dual gigabit Ethernets, USB 3.0 ports, CPU and RAM make it a cut above other platforms, hardware-wise, but software support, not so much.
The stock kernel lacks kernel functionality to perform such roles as NAT/Firewall/Router, and for some reason, can’t sync reliably to NTP.
Getting any upgrades done on Mirabox seems to be a process of sweeping together cryptic instructions from blog posts and cross-referencing to Globalscale’s more pervasive platforms, like the Plug Computer.
We’ve been continually vexed around the shop at UH by the lack of features in the supplied Mirabox kernel, and the hoops one must jump through to re-compile and install a new one, so I was very pleased to find that Arch Linux ARM has a recently-maintained Mirabox variant, complete with install instructions. The install was a little fiddly, but breathes new life into this awesome little platform. Arch Linux is a little off the Debian/RHEL-dominated beaten path, but it’s alive and well-tended, so it may be the very thing many of us need.
To get your Mirabox set up with a new kernel, new binaries, and active upgrade paths —
Using https://archlinuxarm.org/platforms/armv7/marvell/mirabox
and
http://ca.us.mirror.archlinuxarm.org/os/ArchLinuxARM-mirabox-latest.tar.gz
I successfully set up Arch Linux with kernel 4.4.3-1-ARCH (SMP for some reason). It runs on a micro SD, rather than from the internal NAND flash, but it’s a small price to pay to get away from the wimpy kernel that comes with the box. There are a few tweaks/tips to go through the install successfully —
1) The /etc/fstab has this line in it:
/dev/sda1 /boot vfat defaults 0 0
which needs to be commented out or deleted. If you don’t nullify that line, the box will go into “emergency mode” on boot, trying to find that partition, which doesn’t exist. Since you will have the file system at your disposal on your SD card writing machine while making the SD card, you could simply go to ./root/etc/fstab and make this change prior to writing the card.
2) U-Boot Configuration: The install instructions tab at https://archlinuxarm.org/platforms/armv7/marvell/mirabox (same as cited at the top) has the monitor commands to re-configure u-boot all run together without line feeds. You can probably side-step this by doing a “view page source”. I recorded what I did for posterity, anyways:
====================================================== I typed: setenv bootcmd_nand "nand read 0x6400000 0x400000 0x400000; run bootargs_nand; bootm 0x6400000" setenv bootargs_nand "setenv bootargs console=ttyS0,115200 $mtdparts ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs" setenv bootcmd_mmc "usb start; fatload usb 1 0x6400000 uImage; run bootargs_mmc; bootm 0x6400000" setenv bootargs_mmc "setenv bootargs console=ttyS0,115200 root=/dev/sdb2 rw rootwait" setenv bootcmd "run bootcmd_mmc" saveenv ============ What happened (the "unknown command" error comes from an accidental leading space): Marvell>> setenv bootcmd_nand "nand read 0x6400000 0x400000 0x400000; run bootargs_nand; bootm 0x6400000" Marvell>> setenv bootargs_nand "setenv bootargs console=ttyS0,115200 $mtdparts ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs" Unknown command '' - try 'help' Marvell>> setenv bootargs_nand "setenv bootargs console=ttyS0,115200 $mtdparts ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs" Marvell>> setenv bootcmd_mmc "usb start; fatload usb 1 0x6400000 uImage; run bootargs_mmc; bootm 0x6400000" Marvell>> setenv bootargs_mmc "setenv bootargs console=ttyS0,115200 root=/dev/sdb2 rw rootwait" Marvell>> setenv bootcmd "run bootcmd_mmc" Marvell>> saveenv Saving Environment to NAND... Erasing 0x100000 - 0x400000: [Done] Writing to Nand: [Done] Marvell>>
3) The “mvneta” Ethernet driver appears to conclude that it can’t determine its own MAC address on startup, so it resorts to generating a Random one on each boot.
A way to band-aid this is: (Ref: https://wiki.archlinux.org/index.php/Systemd-networkd ) in file: /etc/systemd/network/eth0.network
Add a new section [Link]:
[Link] MACAddress=f0:ad:4e:de:ad:bf
But use your own address(es), they’re printed on the bottom of the Mirabox.
4) Since Arch Linux is not like Debian or RHEL derivatives most of us are familiar with, here’s a handy get-started ref to do package management, etc.
https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management
There’s no real “yum update/apt-get upgrade” path, as the page explains, so Arch Linux updates are per-package-relevant.
Reducing Raspbian Install To Minimum Therbligs With raspbian-ua-netinst Notes On ECS Liva X as a perfSONAR Node
Comments are currently closed.