ODROID XU4 (odroid-xu4)

From postmarketOS Wiki
ODROID XU4
ODROID XU4
ODROID XU4
Manufacturer ODROID
Name XU4
Codename odroid-xu4
Released 2015
Type single board computer
Hardware
Chipset Samsung Exynos 5422
CPU 4x 1.9 GHz A15 & 4x 1.3 GHz A7
GPU Mali-T628
Display None
Storage eMMC card or microSD
Memory 2GB LPDDR3
Architecture armv7
Software
Original software Ubuntu
Original version 20.04 LTS
postmarketOS
Category community
Pre-built images yes
postmarketOS kernel 6.6.41
Unixbench Whet/Dhry score 1389.1
Features
USB Networking
Works
Internal storage
SD card
Multimedia
3D Acceleration
Works
Audio
Camera Flash
Miscellaneous
FDE
USB OTG
HDMI/DP
Sensors
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer


Contributors

Maintainer(s)

Users owning this device


Installation

1. Use pmbootstrap to create a bootable SD card:

 pmbootstrap init  # pick 'odroid' as manufacturer, 'xu4' as device and 'console' as UI.
 pmbootstrap install --disk=/dev/sdX

You must install the nonfree firmware package for this device to get it booting. It contains early bootloaders and trustzone firmware. The early bootloaders initialise the hardware and then boots u-boot.

2. Insert SD card into the Odroid XU4, plug in the Ethernet cable and turn it on.

3. The Odroid XU4 should boot up and become accessible over SSH.

Installation to eMMC

Installation to a eMMC module is not supported with pmbootstrap out of the box. When installing to eMMC the bootloaders should be embedded in /dev/mmcblk0boot0 (and to different offsets compared to when flashing to sdcard), while PostmarketOS's rootfs should be flashed to /dev/mmcblk0. One way to manually do this is to remove deviceinfo_sd_embed_firmware from device-odroid-xu4's deviceinfo, install the rootfs, and then manually flash the bootloaders. To do this you can run the following steps (on your odroid-xu4 or on your computer if you have a eMMC->usb adapter) from the pmaports directory, i.e. ~/.local/var/pmbootstrap/cache_git/pmaports:

 pmbootstrap init
 sed -i '/deviceinfo_sd_embed_firmware/d' device/community/device-odroid-xu4/deviceinfo
 pmbootstrap checksum device-odroid-xu4
 pmbootstrap build --force device-odroid-xu4
 # Update partition path and name if needed:
 pmbootstrap install --disk /dev/mmcblk0
 # Next dd bootloaders to eMMC boot0 partition.
 # Disable write protection
 echo 0 | sudo tee /sys/block/mmcblk0boot0/force_ro
 # Update path to file and partition path and name in all dd commands if needed:
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/bl1.bin of=/dev/mmcblk0boot0 bs=512 seek=0
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/bl2.bin of=/dev/mmcblk0boot0 bs=512 seek=30
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/u-boot.bin of=/dev/mmcblk0boot0 bs=512 seek=62
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/tzsw.bin of=/dev/mmcblk0boot0 bs=512 seek=2110

After that you should be able to boot PostmarketOS from your eMMC.

GPU

See 3D_Acceleration#Mali_T628.

See also