slab: (Default)
slab ([personal profile] slab) wrote2017-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...

Post a comment in response:

Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
Account name:
If you don't have an account you can create one now.
HTML doesn't work in the subject.


Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.