0
niall

Ubuntu 18.04 installation to eMMC ESPRESSObin v7

Recommended Posts

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.

 

  1. The Armbian u-boot does not appear to recognise the eMMC.  I used Globalscale's u-boot espressobin-bootloader-cpu-1000-ddr4-1cs-1g
  2. I created a USB stick using the standard procedure and booted the ESPRESSObin from this.
  3. 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

     

  4. I could then mount the Linux partition on the eMMC.
    sudo mkdir /mnt/emmc
    sudo mount /dev/mmcblk0p1 /mnt/emmc

     

  5. 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

     

  6. 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
  7. I rebooted with the USB stick removed. The system booted from the eMMC, however there were some issues with the Ubuntu system...

  8. 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

       

  9. 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)

  10. 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)

  11. 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

     

  12. 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.

Share this post


Link to post
Share on other sites

 

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
0