Installing Ubuntu on an ESPRESSObin
Jun. 13th, 2017 05:57 pmI 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.)
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.
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 kernel.zip
- mv kernel/armada-3720-community.dtb /mnt/sde1
- mv kernel/Image /mnt/sde1
- umount /dev/sde1
- umount /dev/sde2
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
annathyst 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:
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:
Thanks to
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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