Sunday, March 11, 2018

[fedora-arm] Fedora 27 on ODroid UX4

Quick summary of the steps I took to make Fedora 27 (with a 28 kernel) work on my ODroid UX4. Thanks to Peter Robinson for his help.

Basically following the instructions from:
https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org/thread/XUEO322UGEQKN4RW2MJC2U6MQPVRZOYE/

- Host Fedora laptop
- Install some stuff on the host:
# dnf -y install minicom fedora-arm-installer uboot-images-armv7.noarch curl
- Create a working directory and enter:
# mkdir ~/ODroid && cd ~/ODroid
- Get Fedora minimal image for ARMv7:
# wget https://download.fedoraproject.org/pub/fedora/linux/releases/27/Spins/armhfp/images/Fedora-Minimal-armhfp-27-1.6-sda.raw.xz
- Get the hardkernel boot files
# git clone git@github.com:hardkernel/u-boot.git
# cd u-boot
# git checkout remotes/origin/odroidxu4-v2017.05
# cd ..

- Insert SDcard, make sure the partitions are not mounted.
- Run fedora-arm-installer:
# sudo fedora-arm-image-installer --addkey=~/.ssh/id-rsa.pub --resizefs --target=none --image=./Fedora-Minimal-armhfp-27-1.6-sda.raw.xz --media=/dev/sdb
- Eject SD and re-insert (not sure that is really needed). Make sure filesystems are not mounted.

- Write the binary boot code and u-boot:
# cd u-boot/sd_fuse/
# ln -s /usr/share/uboot/odroid-xu3/u-boot.* .
# sudo ./sd_fusing.sh /dev/sdb
- Eject SD and re-insert - this time mount it.
- Add 'cpuidle.off=1' to the kernel 'append' command line in extlinux.conf, otherwise it won't boot: go to the mount point for the __boot volume. In my case:
# cd /run/media/${USERNAME}/__boot/extlinux/extlinux. conf
# sudo sed -i 's/^\(.*append ro root=UUID=[0-9a-f-]\+\) *$/\1 cpuidle.off=1'/ extlinux.conf

- In order to enable hardware, get 4.15(or later) kernel from the Fedora 28 tree:
# cd /run/media/${USERNAME}/__/home
# sudo mkdir packages && cd packages
# for CURP in `curl http://mirror.nodesdirect.com/fedora//development/28/Everything/armhfp/os/Packages/k/ 2>/dev/null | grep kernel- | sed 's/.*\(kernel.*rpm\).*$/\1/'`; do echo ${CURP} ; sudo curl -o ${CURP} http://mirror.nodesdirect.com/fedora//development/28/Everything/armhfp/os/Packages/k/${CURP}; done
# cd

- Eject SD and put into ODroid device, boot.
- Connect through minicom to serial console
- Go through the initial setup menu set a root password, time zone, etc.
- Login as root
- Install newer kernel:
# cd /home/packages
# rpm -Uvh kernel-lpae-4*rpm kernel-lpae-core-4*.rpm kernel-lpae-modules-4*
- Update extlinux.conf to set the new kernel as the default
# cd /boot/extlinux
# sed -i 's/^default=Fedora-Mini.*$/default=Fedora/' extlinux.conf

- Reboot

There are a couple of remaining kernel errors, but overall it works as a starting point.

Also for me "fedora-arm-image-installer --target=none" creates a partition with Raspi boot files. If that is not intended I should file a BZ on that I guess.

Regards,

Daniel

No comments:

Post a Comment