niall Posted February 7, 2019 Share Posted February 7, 2019 I have worked through the installation of Armbian Ubuntu 18.04 to the embedded MMC in an ESPRESSObin v7. It took a while and there were some quirks along the way, so here is a procedure with observations that may be useful to others. The Armbian u-boot does not appear to recognise the eMMC. I used Globalscale's u-boot espressobin-bootloader-cpu-1000-ddr4-1cs-1g I created a USB stick using the standard procedure and booted the ESPRESSObin from this. I copied the Armbian .img file to the ESPRESSObin USB system and used this to flash the eMMC sudo dd if= Armbian_5.69_Espressobin_Debian_stretch_next_4.19.14 of=/dev/mmcblk0 bs=128K status=progress I could then mount the Linux partition on the eMMC. sudo mkdir /mnt/emmc sudo mount /dev/mmcblk0p1 /mnt/emmc Note that the eMMC u-boot device number is "1" (not the hard-coded 0 in the boot.scr) so I edited /mnt/emmc/boot/boot.cmd to use $devnum instead: ... # use $devnum in place of hard-coded 0 ext4load $boot_interface $devnum:1 $kernel_addr ${prefix}$image_name ext4load $boot_interface $devnum:1 $initrd_addr ${prefix}$initrd_image ext4load $boot_interface $devnum:1 $fdt_addr ${prefix}$fdt_name_a ext4load $boot_interface $devnum:1 $fdt_addr ${prefix}$fdt_name_b I generated the boot.scr u-boot file: sudo mkimage -C none -A arm -T script -d /mnt/emmc/boot/boot.cmd /mnt/emmc/boot/boot.scr I rebooted with the USB stick removed. The system booted from the eMMC, however there were some issues with the Ubuntu system... The Linux startup waited for two minutes for systemd-networkd-wait-online.service. This appears to be a common issue with multiple Ethernet ports. I disabled the systemd-networkd-wait-online.service sudo systemctl disable systemd-networkd-wait-online.service The Ubuntu system would not use the DHCP provided DNS server. I modifed /etc/systemd/resolved.conf to remove the default DNS server (1.0.0.1) The naming of the Ethernet ports in Armbian is different to Globalscale's Front view USB2.0 lan1 lan0 wan USB3.0 (Armbian) USB2.0 wan lan0 lan1 USB3.0 (Globalscale) I set my system with three nn-bridged Ethernet ports ls /etc/systemd/network/ 10-br0.netdev.disbled 10-br0.network.disabled 10-eth0.network 10-lan0.network 10-lan1.network 10-wan.network cat /etc/systemd/network/* [NetDev] Name=br0 Kind=bridge [Match] Name=br0 [Network] #DHCP=ipv4 #BindCarrier=eth0 [Match] Name=eth0 [Network] [Match] Name=lan0 [Network] #Bridge=br0 DHCP=ipv4 BindCarrier=eth0 [Match] Name=lan1 [Network] #Bridge=br0 DHCP=ipv4 BindCarrier=eth0 [Match] Name=wan [Network] #Bridge=br0 DHCP=ipv4 BindCarrier=eth0 I could not find a way to specify the MAC addresses for the Ethernet ports so I installed macchanger and go it to assign random MACs at startup. See https://wiki.archlinux.org/index.php/MAC_address_spoofing for setup. Link to comment Share on other sites More sharing options...
ebin-dev Posted February 9, 2019 Share Posted February 9, 2019 Just in case someone wants to load the bootloader from eMMC: the necessary emmc flash images are here. (BOOTDEV is set to EMMCNORM) - EMMCNORM - eMMC Download Mode Download boot loader or program code from eMMC flash into CM3 or CA53 Requires full initialization and command sequence Link to comment Share on other sites More sharing options...
Recommended Posts