Ubuntu 22.04 incompatible with docker

Post Reply
tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

Hello,

New to this forum and new to Odroid, I have just bought a N2+ bundle. To avoid the hassle of installing myself the system I have chosen to have an eMMC with ubuntu 22.04 pre-installed.
I am a bit disappointed to discover that docker can't run on this image because of the kernel version (4.9.337-33 where it should apparently be at least 5.14).

I saw some topics (viewtopic.php?t=45017) where some solution are given but none of them seem to work well.
Do we know if the guys from Odroid plan to upgrade the kernel soon?

Nicolas

User avatar
odroid
Site Admin
Posts: 41543
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3321 times
Been thanked: 1837 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by odroid »

Moved from XU4 sub-forum.

Can you show me your modified /media/boot/boot.ini file as explained here?
viewtopic.php?p=353141#p353141

We've been porting Kernel 6.1 from a few months ago. But we may need a few more months at least to release it officially.
viewtopic.php?f=177&t=46680

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

Hello thanks for your reply here is the result from

Code: Select all

sudo cat /media/boot/boot.ini

Code: Select all

ODROIDN2-UBOOT-CONFIG

######################################################################
#								     #
#	PLEASE USE CONFIG.INI INSTEAD. THIS HAS CHANGED!!	     #
#								     #
######################################################################

setenv board "odroidn2"
setenv display_autodetect "true"
setenv hdmimode "1080p60hz"
setenv monitor_onoff "false"
setenv overscan "100"
setenv sdrmode "auto"
setenv voutmode "hdmi"
setenv disablehpd "false"
setenv cec "true"
setenv disable_vu7 "true"
setenv enable_wol "0"

if test "${variant}" = "n2_plus"; then
	setenv max_freq_a73 "2208"
	setenv max_freq_a53 "1908"
else
        setenv max_freq_a73 "1800"
        setenv max_freq_a53 "1896"
fi

setenv maxcpus "6"

# Set load addresses
setenv dtb_loadaddr "0x10000000"
setenv dtbo_addr_r "0x11000000"
setenv k_addr "0x1100000"
setenv loadaddr "0x1B00000"
setenv initrd_loadaddr "0x3700000"

load mmc ${devno}:1 ${loadaddr} config.ini \
    && ini generic ${loadaddr}
if test "x${overlay_profile}" != "x"; then
    ini overlay_${overlay_profile} ${loadaddr}
fi

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8"   # on both

### Normal HDMI Monitors
if test "${display_autodetect}" = "true"; then hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${cec}" = "true"; then setenv cec_enable "hdmitx=cec3f"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

# Boot Args
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} sdrmode=${sdrmode} consoleblank=0 enable_wol=${enable_wol}"

# Load kernel, dtb and initrd
load mmc ${devno}:1 ${k_addr} Image.gz
load mmc ${devno}:1 ${initrd_loadaddr} uInitrd
load mmc ${devno}:1 ${dtb_loadaddr} amlogic/meson64_odroid${variant}.dtb

fdt addr ${dtb_loadaddr}

if test "x{overlays}" != "x"; then
    fdt resize ${overlay_resize}
    for overlay in ${overlays}; do
        load mmc ${devno}:1 ${dtbo_addr_r} amlogic/overlays/${board}/${overlay}.dtbo \
            && fdt apply ${dtbo_addr_r}
    done
fi

# unzip the kernel
unzip ${k_addr} ${loadaddr}

# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
Last edited by tranquiliste on Thu Sep 14, 2023 2:13 pm, edited 3 times in total.

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

odroid wrote:
Thu Sep 14, 2023 9:14 am

We've been porting Kernel 6.1 from a few months ago. But we may need a few more months at least to release it officially.
viewtopic.php?f=177&t=46680
Is it possible to upgrade to this version without flashing my eMMC?

User avatar
odroid
Site Admin
Posts: 41543
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3321 times
Been thanked: 1837 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by odroid »

tranquiliste wrote:
Thu Sep 14, 2023 1:41 pm
Hello thanks for your reply here is the result from

Code: Select all

sudo cat /media/boot/boot.ini

Code: Select all

ODROIDN2-UBOOT-CONFIG

######################################################################
#								     #
#	PLEASE USE CONFIG.INI INSTEAD. THIS HAS CHANGED!!	     #
#								     #
######################################################################

setenv board "odroidn2"
setenv display_autodetect "true"
setenv hdmimode "1080p60hz"
setenv monitor_onoff "false"
setenv overscan "100"
setenv sdrmode "auto"
setenv voutmode "hdmi"
setenv disablehpd "false"
setenv cec "true"
setenv disable_vu7 "true"
setenv enable_wol "0"

if test "${variant}" = "n2_plus"; then
	setenv max_freq_a73 "2208"
	setenv max_freq_a53 "1908"
else
        setenv max_freq_a73 "1800"
        setenv max_freq_a53 "1896"
fi

setenv maxcpus "6"

# Set load addresses
setenv dtb_loadaddr "0x10000000"
setenv dtbo_addr_r "0x11000000"
setenv k_addr "0x1100000"
setenv loadaddr "0x1B00000"
setenv initrd_loadaddr "0x3700000"

load mmc ${devno}:1 ${loadaddr} config.ini \
    && ini generic ${loadaddr}
if test "x${overlay_profile}" != "x"; then
    ini overlay_${overlay_profile} ${loadaddr}
fi

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8"   # on both

### Normal HDMI Monitors
if test "${display_autodetect}" = "true"; then hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${cec}" = "true"; then setenv cec_enable "hdmitx=cec3f"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

# Boot Args
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} sdrmode=${sdrmode} consoleblank=0 enable_wol=${enable_wol}"

# Load kernel, dtb and initrd
load mmc ${devno}:1 ${k_addr} Image.gz
load mmc ${devno}:1 ${initrd_loadaddr} uInitrd
load mmc ${devno}:1 ${dtb_loadaddr} amlogic/meson64_odroid${variant}.dtb

fdt addr ${dtb_loadaddr}

if test "x{overlays}" != "x"; then
    fdt resize ${overlay_resize}
    for overlay in ${overlays}; do
        load mmc ${devno}:1 ${dtbo_addr_r} amlogic/overlays/${board}/${overlay}.dtbo \
            && fdt apply ${dtbo_addr_r}
    done
fi

# unzip the kernel
unzip ${k_addr} ${loadaddr}

# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
You had to add the following item as explained in the link I pointed.

Code: Select all

setenv bootargs "${bootargs} cgroup_hierarchy=1"

User avatar
odroid
Site Admin
Posts: 41543
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3321 times
Been thanked: 1837 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by odroid »

tranquiliste wrote:
Thu Sep 14, 2023 1:44 pm
odroid wrote:
Thu Sep 14, 2023 9:14 am

We've been porting Kernel 6.1 from a few months ago. But we may need a few more months at least to release it officially.
viewtopic.php?f=177&t=46680
Is it possible to upgrade to this version without flashing my eMMC?
Not yet. Since we are still have some pending issues and under active development, we don't supply any simple update yet.

Please note that you can easily and freshly flash the eMMC within several minutes via micro-USB cable with this simple method.
https://wiki.odroid.com/getting_started ... _using_otg

This @tobetter's upstream kernel + Ubuntu 22.04 OS image has been well know to run many different dockers flawlessly.
viewtopic.php?f=52&t=44177

Or, you can install that OS image via net-installer feature in the Petitboot.

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

Hello I have added the line and reboote but I still can't run docker hello-world

Code: Select all

ODROIDN2-UBOOT-CONFIG

######################################################################
#								     #
#	PLEASE USE CONFIG.INI INSTEAD. THIS HAS CHANGED!!	     #
#								     #
######################################################################

setenv board "odroidn2"
setenv display_autodetect "true"
setenv hdmimode "1080p60hz"
setenv monitor_onoff "false"
setenv overscan "100"
setenv sdrmode "auto"
setenv voutmode "hdmi"
setenv disablehpd "false"
setenv cec "true"
setenv disable_vu7 "true"
setenv enable_wol "0"

if test "${variant}" = "n2_plus"; then
	setenv max_freq_a73 "2208"
	setenv max_freq_a53 "1908"
else
        setenv max_freq_a73 "1800"
        setenv max_freq_a53 "1896"
fi

setenv maxcpus "6"

# Set load addresses
setenv dtb_loadaddr "0x10000000"
setenv dtbo_addr_r "0x11000000"
setenv k_addr "0x1100000"
setenv loadaddr "0x1B00000"
setenv initrd_loadaddr "0x3700000"

load mmc ${devno}:1 ${loadaddr} config.ini \
    && ini generic ${loadaddr}
if test "x${overlay_profile}" != "x"; then
    ini overlay_${overlay_profile} ${loadaddr}
fi

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8"   # on both

### Normal HDMI Monitors
if test "${display_autodetect}" = "true"; then hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${cec}" = "true"; then setenv cec_enable "hdmitx=cec3f"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

# Boot Args
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} sdrmode=${sdrmode} consoleblank=0 enable_wol=${enable_wol}"
+setenv bootargs "${bootargs} cgroup_hierarchy=1"
# Load kernel, dtb and initrd
load mmc ${devno}:1 ${k_addr} Image.gz
load mmc ${devno}:1 ${initrd_loadaddr} uInitrd
load mmc ${devno}:1 ${dtb_loadaddr} amlogic/meson64_odroid${variant}.dtb

fdt addr ${dtb_loadaddr}

if test "x{overlays}" != "x"; then
    fdt resize ${overlay_resize}
    for overlay in ${overlays}; do
        load mmc ${devno}:1 ${dtbo_addr_r} amlogic/overlays/${board}/${overlay}.dtbo \
            && fdt apply ${dtbo_addr_r}
    done
fi

# unzip the kernel
unzip ${k_addr} ${loadaddr}

# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

I will try flashing the eMMC tonight (as I am based in France) as explained

User avatar
odroid
Site Admin
Posts: 41543
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3321 times
Been thanked: 1837 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by odroid »

tranquiliste wrote:
Thu Sep 14, 2023 2:16 pm
Hello I have added the line and reboote but I still can't run docker hello-world

Code: Select all

ODROIDN2-UBOOT-CONFIG

######################################################################
#								     #
#	PLEASE USE CONFIG.INI INSTEAD. THIS HAS CHANGED!!	     #
#								     #
######################################################################

setenv board "odroidn2"
setenv display_autodetect "true"
setenv hdmimode "1080p60hz"
setenv monitor_onoff "false"
setenv overscan "100"
setenv sdrmode "auto"
setenv voutmode "hdmi"
setenv disablehpd "false"
setenv cec "true"
setenv disable_vu7 "true"
setenv enable_wol "0"

if test "${variant}" = "n2_plus"; then
	setenv max_freq_a73 "2208"
	setenv max_freq_a53 "1908"
else
        setenv max_freq_a73 "1800"
        setenv max_freq_a53 "1896"
fi

setenv maxcpus "6"

# Set load addresses
setenv dtb_loadaddr "0x10000000"
setenv dtbo_addr_r "0x11000000"
setenv k_addr "0x1100000"
setenv loadaddr "0x1B00000"
setenv initrd_loadaddr "0x3700000"

load mmc ${devno}:1 ${loadaddr} config.ini \
    && ini generic ${loadaddr}
if test "x${overlay_profile}" != "x"; then
    ini overlay_${overlay_profile} ${loadaddr}
fi

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8"   # on both

### Normal HDMI Monitors
if test "${display_autodetect}" = "true"; then hdmitx edid; fi
if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${cec}" = "true"; then setenv cec_enable "hdmitx=cec3f"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

# Boot Args
setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} sdrmode=${sdrmode} consoleblank=0 enable_wol=${enable_wol}"
+setenv bootargs "${bootargs} cgroup_hierarchy=1"
# Load kernel, dtb and initrd
load mmc ${devno}:1 ${k_addr} Image.gz
load mmc ${devno}:1 ${initrd_loadaddr} uInitrd
load mmc ${devno}:1 ${dtb_loadaddr} amlogic/meson64_odroid${variant}.dtb

fdt addr ${dtb_loadaddr}

if test "x{overlays}" != "x"; then
    fdt resize ${overlay_resize}
    for overlay in ${overlays}; do
        load mmc ${devno}:1 ${dtbo_addr_r} amlogic/overlays/${board}/${overlay}.dtbo \
            && fdt apply ${dtbo_addr_r}
    done
fi

# unzip the kernel
unzip ${k_addr} ${loadaddr}

# boot
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
Remove a character + in the added line.
You can check the added kernel parameters after booting with cat /proc/cmdline on the command line.

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

Hello I have done the change, rebooted, removed docker and reinstalled it and I still get the same error.

Code: Select all

cat /proc/cmdline
gives

Code: Select all

root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw console=ttyS0,115200n8  no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=custombuilt cvbsmode=576cvbs max_freq_a53=1908 max_freq_a73=2208 maxcpus=6 voutmode=hdmi modeline=1920,1080,148500,67500,60,1920,2008,2052,2200,1080,1084,1089,1125,1,1,1 disablehpd=false cvbscable= overscan=100  monitor_onoff=false logo=osd0,loaded hdmitx=cec3f sdrmode=auto consoleblank=0 enable_wol=0 cgroup_hierarchy=1
and the docker error when I run

Code: Select all

sudo docker run hello-world

Code: Select all

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting cgroup config for procHooks process: bpf_prog_query(BPF_CGROUP_DEVICE) failed: invalid argument: unknown.
ERRO[0000] error waiting for container: 

User avatar
odroid
Site Admin
Posts: 41543
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3321 times
Been thanked: 1837 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by odroid »

It seems there might be another issue with cgroup.
We will look into that.

Meanwhile, try using tobetter's upstream Ubuntu 22.0.4 image.

mdrjr
Site Admin
Posts: 11935
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 4 times
Been thanked: 102 times
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by mdrjr »

You can now update and get the fix:
sudo apt update && sudo apt dist-upgrade

tranquiliste
Posts: 7
Joined: Thu Sep 14, 2023 12:19 am
languages_spoken: english
ODROIDs: N2+
Has thanked: 0
Been thanked: 0
Contact:

Re: Ubuntu 22.04 incompatible with docker

Post by tranquiliste »

Thanks for the update, in the meantime I have installed tobetter's upstream Ubuntu 22.0.4 image and it worked.

Nicolas

Post Reply

Return to “Ubuntu”

Who is online

Users browsing this forum: No registered users and 1 guest