Odroid-C4 notes

Did an Odroid-C4 with latest Yoe master, and it boots:

Has output on HDMI port.

The last product we released on this board was the Yoe 2021.1 release:

  • u-boot: 2015.01…
  • kernel: 4.9.241

The Yoe 2023.1 release contains:

  • u-boot: 2015.01
  • kernel: 4.9.312

So not a lot changed in low-level components.

1 Like

systemd[1]: Warning! Reported kernel version 4.9.312-odroid is older than systemd's required baseline kernel version 4.15. Your mileage may vary.

https://forum.odroid.com/viewtopic.php?t=44957

yeah we may upgrade to 5.18 can be tried. Last I remeber the TFT LCD drivers wont work with any other other kernel besides 4.9 so that might be a problem.

serial connection information

https://ridderbusch.name/post/2016-06-10-serial-for-odroid/

latest yoe/siot running on odroid-c4:

1 Like

Datasheets for C4

yoe-kiosk-browser/SIOT running on Odroid-C4:

nice work @khem!

The touchscreen calibration is off – was that working for you?

I have seen the same issue w.r.t. OSK placement. I think the keyboard layout is inverted when compared to touch points. I thought it was something in the rotation but did not seem to effect much. in /etc/defaults/yoe-kiosk-browser-env

it appears to me the touch screen calibration is swapped left to right – so wonder if it is just a simple TS calibration issue – common with resistive touch screens.

Systemd service for yoe-kiosk-browser:

root@odroid-c4-hardkernel:~# more /lib/systemd/system/yoe-kiosk-browser.service 
[Unit]
Description=Yoe Kiosk Browser
After=network.target

[Service]
Environment=LANG=en_US.UTF-8
Environment=QT_QPA_PLATFORM=linuxfb:fb=/dev/fb4
Environment=QT_QPA_GENERIC_PLUGINS=evdevtouch,evdevmouse,evdevkeyboard
Environment=QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
Environment=QTWEBENGINE_DISABLE_SANDBOX=1
Environment=QT_QPA_EGLFS_NO_LIBINPUT=1
Environment=QT_QPA_FB_NO_LIBINPUT=1
Environment=QT_LOGGING_RULES=qt.qpa.input=true
Environment=QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/touchscreen0

EnvironmentFile=/etc/default/yoe-kiosk-browser
ExecStart=/usr/bin/yoe-kiosk-browser
#Restart=on-failure

[Install]
WantedBy=multi-user.target

From this discussion:

Looking at QT’s source (qevdevtouchhandler.cpp) the calibration values (min, max, pressure…) are obtained directly from the device ioctl.

And this discussion, they went with tslib.

I wonder if we need tslib …

we could try using tslib I guess add tslib-calibrate tslib-conf to image and add
PACKAGECONFIG_GRAPHICS:append:pn-qtbase = " tslib" in conf/projects/odroid-c4/config.conf

With the following changes and the latest version of Yoe, I was able to calibrate and the touchscreen in the yoe-kiosk-browser to log into the SimpleIoT. However, click drag current selects text instead of scrolling the UI. We’ll need to get that sorted before it is generally usable.

[Service]
Environment=LANG=en_US.UTF-8
Environment=QT_QPA_PLATFORM=linuxfb:fb=/dev/fb4
#Environment=QT_QPA_GENERIC_PLUGINS=evdevtouch,evdevmouse,evdevkeyboard
#Environment=QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
Environment=QTWEBENGINE_DISABLE_SANDBOX=1
Environment=QT_QPA_EGLFS_NO_LIBINPUT=1
Environment=QT_QPA_FB_NO_LIBINPUT=1
Environment=QT_LOGGING_RULES=qt.qpa.input=true
Environment=QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/touchscreen0

# added for TSLIB
Environment=QT_QPA_FB_TSLIB=1
Environment=QT_QPA_GENERIC_PLUGINS=tslib
Environment=TSLIB_PLUGINDIR=/lib/ts
Environment=TSLIB_CONFFILE=/etc/ts.conf
Environment=TSLIB_TSDEVICE=/dev/input/touchscreen0

Posted a question to the Qt forums about the touchscreen drag issue:

Running 2024.01:

root@odroid-c4-hardkernel:~# more /etc/os-release 
ID=yoe
NAME="Yoe Linux"
VERSION="2024.01 (Katahdin)"
VERSION_ID=0.3.3
VERSION_CODENAME="Katahdin"
PRETTY_NAME="Yoe Linux 2024.01 (Katahdin)"
CPE_NAME="cpe:/o:openembedded:yoe:0.3.3"
HOME_URL="https://github.com/YoeDistro"
SUPPORT_URL="https://github.com/YoeDistro/yoe-distro/issues"
BUG_REPORT_URL="https://github.com/YoeDistro/yoe-distro/issues"

I love the Yoe updater workflow for development – build a new release, scp the *.upd file to /data on the device and reboot – simple!

1 Like

Switching to mainline BSP, works fine except that warm reboot does not work on all kind of uSD cards. cold power cycle works all the time. Its annoying but we are not the only one seeing it see

U-Boot 2026.01 (Jan 05 2026 - 20:49:22 +0000) odroid-c4/hc4

Model: Hardkernel ODROID-C4
SoC:   Amlogic Meson SM1 (S905X3) Revision 2b:c (10:2)
DRAM:  1 GiB (total 3.8 GiB)
Core:  401 devices, 30 uclasses, devicetree: separate
MMC:   mmc@ffe05000: 0, mmc@ffe07000: 1
Loading Environment from nowhere... OK
In:    usbkbd,serial
Out:   vidconsole,serial
Err:   vidconsole,serial
Board variant: c4
Net:   eth0: ethernet@ff3f0000

Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
747 bytes read in 1 ms (729.5 KiB/s)
## Executing script at 08000000
Error reading cluster
Failed to load 'meson-sm1-odroid-c4.dtb'
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
Can't set block device
Bad Linux ARM64 Image magic!
SCRIPT FAILED: continuing...
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
** No partition table - mmc 0 **
Couldn't find partition mmc 0:1
Card did not respond to voltage select! : -110

It works fine with hardkernel fork of u-boot

A fix is to get a known working uSD card e.g. SDXC UHS-I C10 V30 U3 A2

1 Like

I ordered - Amazon.com: Lexar 32GB Micro SD Card 3 Pack, microSDHC UHS-I Flash Memory Card with Adapter - Up to 100MB/s, U1, Class10, V10, A1, High Speed TF Card (3 microSD Cards + 1 Adapter) : Electronics

and they seem to be working ok for warm reboot.

1 Like