Skip to content

Instantly share code, notes, and snippets.

@markVnl markVnl/Centos on a odroid_hc1 Secret
Last active Oct 22, 2018

What would you like to do?
A running arm device to do this,
distro / kernel should not mater
Prepare Sources
Download Centos-Uboot-Community-kernel-img.raw.xz
To download it from the command line:
# thanks to Brett McLain
query=`curl -c ./cookie.txt -s -L "${file_id}" \
| perl -nE'say/uc-download-link.*? href="(.*?)\">/' \
| sed -e 's/amp;//g' | sed -n 2p`
curl -b ./cookie.txt -L -o ${filename} $url
rm -f cookie.txt
chmod +x
(w)get early boot bin's from (and signed by) Hardkernel:
wget \ \ \
chmod a+x
As always: **Be sure you got the right device (/dev/.....) pointing to your sd-card** :
export sdcard="/dev/sdX"
xzcat Centos-Uboot-Community-kernel-img.raw.xz | sudo dd of=${sdcard} status=progress bs=4M && sudo sync
Mount the sd-card:
sudo mount ${sdcard}2 /mnt
sudo mount ${sdcard}1 /mnt/boot
Get u-boot and flash all boot blobs to the sd-card
cp /mnt/usr/share/uboot/odroid-xu3/u-boot.bin .
sudo ./ ${sdcard}
Add to the kernel commandline in extlinux.conf console=tty1 console=ttySAC2,115200n8 rd.driver.pre=ledtrig-heartbeat,xhci-plat-hcd no_bL_switcher
sudo nano /mnt/boot/extlinux/extlinux.conf
# extlinux.conf generated by appliance-creator
ui menu.c32
menu autoboot Welcome to Centos-Uboot-Community-kernel. Automatic boot in # second{,s}. Press a key for options.
menu title Centos-Uboot-Community-kernel Boot Options.
menu hidden
timeout 20
totaltimeout 600
label Centos-Uboot-Community-kernel (4.18.16-200.el7.armv7hl)
kernel /vmlinuz-4.18.16-200.el7.armv7hl
append console=tty1 console=ttySAC2,115200n8 rd.driver.pre=ledtrig-heartbeat,xhci-plat-hcd no_bL_switcher ro root=UUID=<your_uiid>
initrd /initramfs-4.18.16-200.el7.armv7hl.img
add / remove modules / drivers to creation of initramfs by dracut
sudo nano /mnt/etc/dracut.conf.d/odroid_hc1.conf
add_dracutmodules+=" dm "
omit_dracutmodules+=" network ifcfg plymouth "
add_drivers+=" exynosdrm exynos_bus exynos_trng exynos_nocp exynos_rng phy_exynos_dp_video "
add_drivers+=" phy_exynos_mipi_video dwc3_exynos clk_exynos_audss i2c_exynos5 dw_mmc_exynos "
add_drivers+=" dw_mmc_pltfm dw_mmc phy_exynos_usb2 phy_exynos5_usbdrd pwm_samsung "
add_drivers+=" dwc3 ledtrig-heartbeat "
Create new initramfs with specific drivers:
sudo chroot /mnt
dracut -v -f /boot/initramfs-4.18.16-200.el7.armv7hl.img 4.18.16-200.el7.armv7hl
sudo umount -R /mnt
This sould boot, check if your usb network and uas (sata) are connectect as usb3 device:
yum install usbutils
lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=exynos-ehci/3p, 480M
Note the 5000M @ Driver=r8152 (=network) and Driver=uas (=sata)
Check if all 8 cores are up:
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 2
Model: 3
Model name: ARMv7 Processor rev 3 (v7l)
CPU max MHz: 1300.0000
CPU min MHz: 200.0000
BogoMIPS: 66.00
Flags: half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.