slab: (Default)
2017-06-13 05:57 pm
Entry tags:

Installing Ubuntu on an ESPRESSObin

I recently purchased a Marvell ESPRESSObin. The support is... currently a bit rough.

The wiki has two articles on how to install Ubuntu:Unfortunately, they're kind of a pain to follow, they have you do a bit more work than necessary, and they don't actually give you a useful Ubuntu image.

Here are my notes. I used a USB SD card reader, an 8GB SD card, and a Debian virtual machine on Windows. You'll also need to grab the following linked to from the EspressoBin site:
Creating your Ubuntu SD card

My SD card came up as /dev/sde. Substitute the correct device name as appropriate. You will also need to be root for these steps (either prefix each command with 'sudo' or just do 'sudo -s' to get a shell.)
  • Use 'cfdisk' and create a smallish (100M?) FAT32 partition, then allocate the rest to be Linux.
  • mkfs.vfat /dev/sde1
  • mkfs.ext4 /dev/sde2
  • mkdir -p /mnt/sde1 /mnt/sde2 /mnt/iso
  • mount /dev/sde1 /mnt/sde1
  • mount /dev/sde2 /mnt/sde2
  • mount -o loop ubuntu-16.04.2-server-arm64.iso /mnt/iso
  • unsquashfs -f -d /mnt/sde2 /mnt/iso/install/filesystem.squashfs
  • You should apply the fixups that the wiki recommends:
    • edit /mnt/sde2/etc/passwd and remove the 'x' in in 'root:x:0:0:root:/root:/bin/bash' so root can log in.
    • edit /mnt/sde2/etc/securetty and add 'ttyMV0'
  • unzip
  • mv kernel/armada-3720-community.dtb /mnt/sde1
  • mv kernel/Image /mnt/sde1
  • umount /dev/sde1
  • umount /dev/sde2
Boot from removable storage - Ubuntu

Insert your SD card. You are now done.

The wiki directions want you to create a single ext4 filesystem for your entire SD card, and then muck around with creating a 'bootmmc' command in u-boot and then modifying 'bootcmd'. However, the default 'bootcmd' sequence loads the kernel and device tree off the first FAT partition, then boots using /dev/mmcblk0p2 (the second partition) as a rootfs.

At this point, you should be able to use the serial connection (over micro-USB) to log in as root. You should probably set a password now.

But wait, I keep getting kernel panics about eighty seconds after boot!

Thanks to [personal profile] teferi for figuring this out.

The kernel image that EspressoBin provides currently has some problems with the ondemand governor. You'll want to kill the "ondemand" script:
  • sudo systemctl disable ondemand
  • sudo pkill ondemand

Note: After you do this, your device won't do frequency scaling anymore. It will get kind of toasty! I had some small heatsinks handy, and I highly recommend putting one onto the Armada 3720 processor. You can also downclock the CPU with:
  • echo 250000 > /sys/bus/cpu/devices/cpu0/cpufreq/scaling_max_speed
Next up is going to be building a kernel build environment to try and update the kernel...
slab: (Default)
2017-04-09 08:05 pm

(no subject)

RIP my LiveJournal account, 23 May 2000 - 9 Apr 2017. Maybe I should start putting stuff here.