Legendary ODROID M1 Ubuntu 22.04.1 Images

Legendary ODROID M1 Images
Legendary ODROID M1 Images

Recently I reviewed the ODROID M1 and it’s a fantastic board. One problem with it though is that the image available for it is still only Ubuntu 20.04.

It’s possible to upgrade the server version to 22.04 and then install Ubuntu Desktop which I covered in my review. It’s painful though and takes a very long time especially if you want to install a desktop environment afterward.

I figured by now the updated image would be out and it still isn’t so today I’m releasing my Legendary ODROID M1 Ubuntu 22.04.1 images as well as the system I used to build the images!

Hardware Used

ODROID M1
ODROID M1 4GB

This is the 4 GB version of the ODROID M1. Includes a full size (2280) M.2 slot (PCIe 3.0 2 lanes), a Neural Processing Unit (NPU) and contains a RK3568B2 SOC. There is a slot for eMMC cards on the board as well and these perform very well.

Links: Amazon.com*, AliExpress.com*

ODROID M1
ODROID M1 8GB

This is the 8 GB version of the ODROID M1. Includes a full size (2280) M.2 slot (PCIe 3.0 2 lanes), a Neural Processing Unit (NPU) and contains a RK3568B2 SOC. There is a slot for eMMC cards on the board as well and these perform very well.

Links: Amazon.com*, AliExpress.com*

Overview

These images are upgraded to 22.04.1 and use the latest kernel from the ODROID repositories (6.0.x at time of writing). I have included convenience scripts in the home folder to enable and disable the NPU. This will work in all flavors (including server).

This is not using a mainline kernel. It is using the official ODROID 6.0.x kernel packages from their PPA repository. It looks like to me they’re getting really close to finishing support so they aren’t quite finished but if you aren’t using the NPU it’s finished enough.

Since it’s using official packages these will update with apt over time so there’s a good chance the NPU may fix itself when they add a compatible rknpu overlay to the kernel package.

The GitHub repository is available here

Images ready to be downloaded are available here

Flavors Available

The script is currently building 6 different flavors:

  • Ubuntu 22.04.1 Server
  • Ubuntu 22.04.1 MATE Desktop (ubuntu-mate-desktop)
  • Ubuntu 22.04.1 Desktop (ubuntu-desktop)
  • Xubuntu 22.04.1 Desktop (xubuntu-desktop)
  • Kubuntu 22.04.1 Desktop (kubuntu-desktop)
  • Lubuntu 22.04.1 Desktop (lubuntu-desktop)

Known Issues

  • The NPU overlay (rknpu) is not present in the 6.0.x branch yet

Image Instructions

The images are in .tar.xz format and should not be written to disk until you decompressed them with:

tar -xf *.tar.xz. 

That will give you a .img file that will boot successfully. If you are using Windows you can decompress these files with 7zip or WinRAR.

First Startup Instructions

Note that the first startup is slow. This is due to resizing your root filesystem to fit your drive. After the first startup it will boot much faster but it may take several minutes on a black screen with only a few lines of text on it during the first startup. Be patient. If you see a few lines of text then it is resizing your root filesystem.

You may also see CRC checksum errors during your first startup. These are safe to ignore as it will run fsck on the drive the first startup. When you reboot the device these will be gone.

Set correct timezone:

sudo dpkg-reconfigure tzdata

Set correct locale:

sudo apt install locales -y && sudo dpkg-reconfigure locales

Get web browser (desktop only)

sudo snap install firefox
sudo snap install chromium

Build Instructions

If you would like to build the image yourself it is pretty straightforward with the included script. You will need a few dependencies such as:

sudo apt install build-essential guestfs-tools kpartx

Now run the build script with sudo ./BuildImage.sh. It will retrieve the base image from ODROID’s servers and update it.

It definitely takes a long time to build the images even with a very powerful computer but if you just let it run in the background and do it’s thing it should complete and spit out the images for you.

Getting Support

If you need help with something specific to my image then this is the best place for support right here in the comment section.

Let me know if there are packages missing that need to be present or any other issues going on and I will get them added in updated versions!

Other Resources

This image was created due to investigating comments on my ODROID M1 Review

I’ve also covered SSD booting with the ODROID N2+ here

If you like retro gaming you’ll really like the ODROID Go Super handheld gaming console

I have also created a fixed image for the Orange Pi i96 which is an older board that can be found for around $7-$15 (for now)

45 Comments
Inline Feedbacks
View all comments
Carlos
Carlos
1 year ago

Hi james,

could you comment on how to get non-standard resolutions to work? I have a samsung 3440×1440 but I’ confused on where to set that? boot.ini seems to be absent. I tried a couple of things but no luck. Thanks!

mrvazil
mrvazil
1 year ago

Hi james,

Is there a way to install this image to the SSD from a USB stick?

mrvazil
mrvazil
1 year ago

That worked great, thanks!
For anyone having issues: if you use windows to prep the USB drive, make sure it is formatted in FAT32 and not exFAT, as the odroid can’t mount that

Richard
Richard
2 years ago

Hey Mr. Chambers,

i use the legendary 1.3 Image and am pleased with the easy setup. Sadly no IR seems to work rn, the GPIO device is not listed. There is discussion here with a dtb provided to make it work in 5.19 but i guess it won’t fix it in 6.0?

Frederic
Frederic
2 years ago

Hi James A. Chambers,

I am using the 22.04.01 Server image on a nvme 970 evo plus SSD (500 GB):

Thanks to your images I’ve moved to 22.04.01, unfortunately I am facing to some downgrade:

1) No way to use the dhcp services embedded into the box of my internet provider to get a static @IP thru DHCP as the odroid mac address is changing each time the link is switching up.
So I had to install network-manager and configure netplan to get a static address.

2) USB 3 is not working and as my odroidm1 is supposed to be a router using Startechusb32000spt (dual GE) that is supported by kernel AND working perfectly on 20.04, the only way to use my Odroid is to accept to downgrade bandwidth to 480Mbit/s rather than 2 x 1 Gbit/s (lacp bond) and plug Startech on one of the 2 USB2 ports.

If you can find a way to fix this USB issue as well as volatile MAC address it will be a great Christmas present.

I had also add:

sudo apt install lsusb ethtool ufw macchanger man locales
and reconfigure kbd, locales according to my conf.

and add rclone using: sudo -v ; curl https://rclone.org/install.sh | sudo bash
rather than standard package as v1.60 vs v1.53 ==> 2-3 years of improvement.

Frederic
Frederic
2 years ago

Hi,

Yes everything was working perfectly, Just before to use it on my odroid I was running this Startech.com dual Ethernet with a NUC 10i7 running Linux 22.04.1 (I use them as nodes for my private lab of Openstack): USB3 was working perfectly.
this Odroid is supposed to become a router/fw between different vlans and my internet provider box.
when I switch from USB2 to USB3 it is like a Thanos’ snap “decimation”: led are switching off immediately, even a power off / power on is not able to reset the situation, but when I failback USB3 to USB2, dongle leds are coming back to life and my router is up and running again.

root@cerbere:~# uname -a
Linux cerbere 5.19.0-odroid-arm64 #1 SMP PREEMPT Ubuntu 5.19.17-202211021456~jammy (2022-11-02) aarch64 aarch64 aarch64 GNU/Linux

root@cerbere:~# lsusb
Bus 004 Device 002: ID 413c:2113 Dell Computer Corp. KB216 Wired Keyboard
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 001 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 001 Device 002: ID 2109:2811 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@cerbere:~# lsusb -v
Bus 001 Device 004: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0b95 ASIX Electronics Corp.
idProduct 0x1790 AX88179 Gigabit Ethernet
bcdDevice 1.00
iManufacturer 1 ASIX Elec. Corp.
iProduct 2 AX88179
iSerial 3 00000000000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 248mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 4 Network_Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x0016
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
HIRD Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 1 micro seconds
bU2DevExitLat 101 micro seconds
Device Status: 0x0000
(Bus Powered)

Bus 001 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0b95 ASIX Electronics Corp.
idProduct 0x1790 AX88179 Gigabit Ethernet
bcdDevice 1.00
iManufacturer 1 ASIX Elec. Corp.
iProduct 2 AX88179
iSerial 3 00000000000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 248mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 4 Network_Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x0016
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
HIRD Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 1 micro seconds
bU2DevExitLat 101 micro seconds
Device Status: 0x0000
(Bus Powered)

Bus 001 Device 002: ID 2109:2811 VIA Labs, Inc. Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x2109 VIA Labs, Inc.
idProduct 0x2811 Hub
bcdDevice 91.00
iManufacturer 1 VIA Labs, Inc.
iProduct 2 USB2.0 Hub
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 4
wHubCharacteristic 0x00e9
Per-port power switching
Per-port overcurrent protection
TT think time 32 FS bits
Port indicators
bPwrOn2PwrGood 50 * 2 milli seconds
bHubContrCurrent 100 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0503 highspeed power enable connect
Port 2: 0000.0503 highspeed power enable connect
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x002a
bNumDeviceCaps 3
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
HIRD Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 4 micro seconds
bU2DevExitLat 231 micro seconds
Container ID Device Capability:
bLength 20
bDescriptorType 16
bDevCapabilityType 4
bReserved 0
ContainerID {24d91e54-bb15-424d-9abe-47dd3d6da65b}
Device Status: 0x0001
Self Powered

root@cerbere:~# lsmod
Module Size Used by
nf_tables 225280 0
nfnetlink 20480 1 nf_tables
bonding 192512 0
rfkill 36864 1
cpufreq_powersave 20480 0
cpufreq_conservative 16384 0
snd_soc_hdmi_codec 24576 1
snd_soc_simple_card 24576 0
snd_soc_simple_card_utils 28672 1 snd_soc_simple_card
snd_soc_rockchip_i2s_tdm 32768 2
display_connector 20480 0
snd_soc_core 233472 4 snd_soc_rockchip_i2s_tdm,snd_soc_hdmi_codec,snd_soc_simple_card_utils,snd_soc_simple_card
rockchip_saradc 24576 0
rockchip_thermal 28672 0
snd_pcm_dmaengine 20480 1 snd_soc_core
snd_pcm 139264 4 snd_soc_hdmi_codec,snd_soc_simple_card_utils,snd_soc_core,snd_pcm_dmaengine
snd_timer 40960 1 snd_pcm
snd 102400 4 snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm
soundcore 16384 1 snd
dw_hdmi_i2s_audio 16384 0
panfrost 69632 0
gpu_sched 40960 1 panfrost
drm_shmem_helper 28672 1 panfrost
sch_fq_codel 24576 4
fuse 131072 1
ip_tables 32768 0
x_tables 49152 1 ip_tables
ax88179_178a 36864 0
realtek 32768 1
dwmac_rk 28672 0
stmmac_platform 24576 1 dwmac_rk
rockchipdrm 139264 0
stmmac 237568 2 stmmac_platform,dwmac_rk
drm_cma_helper 24576 1 rockchipdrm
dw_hdmi 53248 2 dw_hdmi_i2s_audio,rockchipdrm
nvme 49152 2
spidev 24576 0
sdhci_of_dwcmshc 20480 0
phylink 49152 1 stmmac
drm_display_helper 147456 1 dw_hdmi
cec 77824 2 drm_display_helper,dw_hdmi
rtc_rk808 20480 1
dw_mipi_dsi 20480 1 rockchipdrm
drm_kms_helper 176128 8 drm_cma_helper,dw_mipi_dsi,display_connector,drm_display_helper,rockchipdrm,dw_hdmi
cfbfillrect 16384 1 drm_kms_helper
nvme_core 114688 3 nvme
cfbimgblt 16384 1 drm_kms_helper
cfbcopyarea 16384 1 drm_kms_helper
drm 557056 11 drm_cma_helper,gpu_sched,drm_kms_helper,dw_mipi_dsi,display_connector,drm_shmem_helper,drm_display_helper,rockchipdrm,dw_hdmi,panfrost
ahci_platform 16384 0
libahci_platform 24576 1 ahci_platform
libahci 49152 2 libahci_platform,ahci_platform
libata 241664 3 libahci,libahci_platform,ahci_platform
drm_panel_orientation_quirks 16384 1 drm
root@cerbere:~#

Question: Do you have any output in dmesg when you plug it in such as errors? Is it just not detected at all?
Answer: there is no detection at all: the ethernet leds of the usb dongle are off.

something strange:
a USB3 Storage key is working fine on USB3 port:
root@cerbere:~# lsblk -a -O > /tmp/lsblk-a-O.StorageUSB3.txt
root@cerbere:~# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 28,7G 0 disk
|-sda1 8:1 1 256M 0 part

-sda2 8:2 1 28,4G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part /boot
-nvme0n1p2 259:2 0 465,5G 0 part /
root@cerbere:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 28,7G 0 disk
|-sda1 8:1 1 256M 0 part
-sda2 8:2 1 28,4G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part /boot
-nvme0n1p2 259:2 0 465,5G 0 part /
root@cerbere:~#

Now I eject the USB CARD from USB3 slot.

root@cerbere:~# lsblk -a -O > /tmp/lsblk-a-O.WithOut-USB3-Storage.txt
root@cerbere:~# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 465,8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part /boot

-nvme0n1p2 259:2 0 465,5G 0 part /
root@cerbere:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 465,8G 0 disk
|-nvme0n1p1 259:1 0 256M 0 part /boot
-nvme0n1p2 259:2 0 465,5G 0 part /

If you want I can forward to you lsblk -a -O output.

Thanks a lot for your help.

Sincerely,

Fred.

Frederic
Frederic
2 years ago

Hi James,

1) As I have 2 other Odroid M1 into my lab (but only one StarTech in spare) i gonna prepare one with your new image and Startech dual GE. like that we will be able to switch between conf easily.
2) When Startech was connected to USB3 it was not detected at all, all the capture (lsmod, lsusb, etc. were done when StarTech was plugged into USB2).
3) The module is included into the kernel: ax88179_178a and it is included and stable for years into ubuntu I am using them since 18.04 with NUC and x86 refurbished PC.

My next comment will include tests from your newest image.

Fred.

Frederic
Frederic
2 years ago
Reply to  Frederic

Hi James,

Before to run it with the new image, I’ve prefered to run it first on the Official Odroid image (20.04):
my interface are eth0, enx000acd418881, enx000acd418882

as you WON’T see it: because ethtool -P change MAC Addresse to Physical (the first time you run the command, and the capture was done the second time) only eth0 got a MAC that was different from its Physical address.
As you WILL see it : USB3 is WORKING PERFECTLY USB Card and Startech.com dual port are connected to USB3 ports @ 5000M

root@server:~# lsusb -t
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
|__ Port 2: Dev 4, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M

Newt some commands and their outputs:
uname -a
ifconfig -a
ethtool -P eth0
ethtool -P enx000acd418881
ethtool -P enx000acd418882
lsblk -a
lsusb
lsusb -v
lsusb -t
lsmod

---------- uname -a -----------------
Linux server 4.19.219-odroid-arm64 #1 SMP Tue, 18 Oct 2022 04:13:09 +0000 aarch64 aarch64 aarch64 GNU/Linux

---------- ifconfig -a -----------------
enx000acd418881: flags=4163 mtu 1500
inet6 fe80::20a:cdff:fe41:8881 prefixlen 64 scopeid 0x20
ether 00:0a:cd:41:88:81 txqueuelen 1000 (Ethernet)
RX packets 153 bytes 44523 (44.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 91 bytes 26769 (26.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enx000acd418882: flags=4163 mtu 1500
inet6 fe80::20a:cdff:fe41:8882 prefixlen 64 scopeid 0x20
ether 00:0a:cd:41:88:82 txqueuelen 1000 (Ethernet)
RX packets 153 bytes 44523 (44.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 91 bytes 26769 (26.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163 mtu 1500
inet 192.168.0.51 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 2a01:e0a:ec:aa20:21e:6ff:fe51:165f prefixlen 64 scopeid 0x0
inet6 fe80::21e:6ff:fe51:165f prefixlen 64 scopeid 0x20
ether 00:1e:06:51:16:5f txqueuelen 1000 (Ethernet)
RX packets 15239 bytes 8543652 (8.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10140 bytes 1902790 (1.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 44

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 80 bytes 5920 (5.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 80 bytes 5920 (5.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

---------- ethtool -P eth0 -----------------
Permanent address: 00:1e:06:51:16:5f

---------- ethtool -P enx000acd418881 -----------------
Permanent address: 00:0a:cd:41:88:81

---------- ethtool -P enx000acd418882 -----------------
Permanent address: 00:0a:cd:41:88:82

---------- lsblk -a -----------------
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 28.7G 0 disk
├─sda1 8:1 1 256M 0 part /boot
└─sda2 8:2 1 28.4G 0 part /
mtdblock0 31:0 0 128K 0 disk
mtdblock1 31:1 0 2M 0 disk
mtdblock2 31:2 0 1M 0 disk
mtdblock3 31:3 0 12M 0 disk
nvme0n1 259:0 0 465.8G 0 disk

---------- lsusb -t -----------------

/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
|__ Port 2: Dev 4, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M

---------- lsmod -----------------
Module Size Used by
aes_ce_blk 28672 0
crypto_simd 16384 1 aes_ce_blk
cryptd 20480 1 crypto_simd
crc32_ce 16384 0
crct10dif_ce 16384 0
ghash_ce 20480 0
uio_pdrv_genirq 16384 0
uio 20480 1 uio_pdrv_genirq
sch_fq_codel 20480 4
ip_tables 28672 0
x_tables 28672 1 ip_tables
ipv6 421888 24
autofs4 36864 0
hid_generic 16384 0
spidev 20480 0
sd_mod 36864 3
usbhid 32768 0
ahci_platform 16384 0
libahci_platform 20480 1 ahci_platform
libahci 32768 2 libahci_platform,ahci_platform
libata 188416 3 libahci,libahci_platform,ahci_platform
ax88179_178a 24576 0

--------------------------

Next publication will certainly get output from 22.04.1 (v1.3)

Frédéric
Frédéric
2 years ago

Hi James,

Thanks a lot for your support, I understand this is not the main goal this place here, and you were the only guy that has spent time to find a fix or the main root cause.

I think that I’ve understood what happens, let me first to tell you that the 3 images are working the same way:

Upper USB3 is working perfectly but bottom one doesn’t

this PM I’ve decided to run minimal hardware config test:
– nvme SSD
– internal ethernet
– no other external extension

and a floating usb card that I will connect / disconnect usb port by usb port. bad news: 2 ou of 2 news Odroid M1 (received 2 days ago) got the same USB3 that is not working (bottom USB3)

Inserted into Bottom USB-3

root@odroidm1:~# lsblk -t && lsusb -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
nvme0n1 0 512 0 512 512 0 mq-deadline 256 128 0B
├─nvme0n1p1 0 512 0 512 512 0 mq-deadline 256 128 0B
└─nvme0n1p2 0 512 0 512 512 0 mq-deadline 256 128 0B

/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
root@odroidm1:~#

Inserted into Top USB-3

root@odroidm1:~# lsblk -t && lsusb -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 mq-deadline 2 128 0B
└─sda1 0 512 0 512 512 1 mq-deadline 2 128 0B
nvme0n1 0 512 0 512 512 0 mq-deadline 256 128 0B
├─nvme0n1p1 0 512 0 512 512 0 mq-deadline 256 128 0B
└─nvme0n1p2 0 512 0 512 512 0 mq-deadline 256 128 0B

/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
root@odroidm1:~#

Inserted into Top USB-2

oot@odroidm1:~# lsblk -t && lsusb -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 mq-deadline 2 128 0B
└─sda1 0 512 0 512 512 1 mq-deadline 2 128 0B
nvme0n1 0 512 0 512 512 0 mq-deadline 256 128 0B
├─nvme0n1p1 0 512 0 512 512 0 mq-deadline 256 128 0B
└─nvme0n1p2 0 512 0 512 512 0 mq-deadline 256 128 0B

/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
root@odroidm1:~#

Inserted into BOTTOM USB-2

root@odroidm1:~# lsblk -t && lsusb -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 mq-deadline 2 128 0B
└─sda1 0 512 0 512 512 1 mq-deadline 2 128 0B
nvme0n1 0 512 0 512 512 0 mq-deadline 256 128 0B
├─nvme0n1p1 0 512 0 512 512 0 mq-deadline 256 128 0B
└─nvme0n1p2 0 512 0 512 512 0 mq-deadline 256 128 0B

/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
root@odroidm1:~#

the result is exactly the same into the second Odroid M1.

So, I gonna to check the third one (I’ve ordered 3 Odroid M1 for infrastructure needs) and then will send an email to Odroid support. this not normal that a serie got a dead USB.

Thanks a lot,

Fred.

PS: did you have to deal with Odroid support?

Frédéric
Frédéric
1 year ago

Hi James,

I did not forget my promess to notice your blog about my trouble with my 2 M1s.
Incredible the guys from UK distributor require to get some CRM training.
They spend 100 time more energy to try to find an argument to put the fault on me rather than to find a way to fix the issue.

The 2 boards are travelling to UK currently, I will inform you as soon as they will do (or not) their RMA job!

but from my 1st experience with them: Their CRM room of improvement is amazing!

Frédéric
Frédéric
1 year ago

Hi James,

just a notification here to tell that RMA is still ongoing, as since my 2 x M1 are back to factory, it seems that we are not on the same side of event horizon.

Sachin
Sachin
2 years ago

Hi! Balena Etcher complained that the image is not bootable when trying to write the tar.xz. When I wrote it regardless, the system was not bootable. Upon extracting the tar.xz to img.xz and then writing it, everything was fine and the system booted but the partition did not resize automatically. I had to manually resize / by using Parted and resize2fs.

The Mac address changes on every boot. Can that be fixed so that it does not change?

Sachin
Sachin
2 years ago

Thanks. MacChanger will also do the same thing (apt install macchanger)although only temporarily. However, I am curious as to why the odroid-M1 gives a new Mac address every time it is rebooted. My guess is that either there is a configuration in boot.ini which is causing this or petitboot is somehow causing it (though I don’t see how).

Nikodemus
Nikodemus
2 years ago

Hi James,
Could you make a small how-to get your image to a bootable device (i.e. USB-Stick). If I try to create one using Etcher, it says “Not a bootable image….”.
thx
Nik

Ken Fox
Ken Fox
2 years ago

Hi James,
I’ve also run into the problem that the image is not bootable. On my ubuntu desktop, I’ve tried dd, cat > /dev/sda, as well as gnome-disk-utility 42.0, all with the same results. I’d really appreciate some guidance on troubleshooting.

Ken Fox
Ken Fox
2 years ago

Thanks for your help James. So I followed your steps verbatim using a 32G microSD card.
Deleted partitions on /dev/sda using fdisk (there were none though).

cat legendary-ubuntu-22.04.1-server-odroidm1-v1.1.img > /dev/sda

Then ran e2fsck:

sudo e2fsck -yfv /dev/sda1
e2fsck 1.46.5 (30-Dec-2021)
e2fsck: No such file or directory while trying to open /dev/sda1
Possibly non-existent device?

I’m going to try a different one of your images and see if I get different results and let you know. Thanks again!

Ken Fox
Ken Fox
2 years ago
Reply to  Ken Fox

Same result using the Ubuntu Desktop image unfortunately.

Ken Fox
Ken Fox
2 years ago

Sure. In an effort to rule out hardware, I’ve been simply trying to mount the images to my dev machine (running Ubuntu desktop), which also fail though. Shouldn’t I be able to mount the image file?

Ken Fox
Ken Fox
2 years ago

Yeah- none of the images will mount. The ubuntu 20.4 image from odroid mounts fine.

Ken Fox
Ken Fox
2 years ago

FWIW I tried building it in vscode and ran into a number of permission errors and “file not found” issues. Most were around accessing the /mnt path. I didn’t dig to deep to see what was going on. Assumed my PC needs additional configuration/software to build properly.

Ken Fox
Ken Fox
2 years ago

Awesome thanks James! Will check it out.

Ken Fox
Ken Fox
2 years ago
Reply to  Ken Fox

Worked great- thanks again.

Dima
Dima
2 years ago

Is it possible to run these images with VU8m screen ?