Quick update on using an emmc:

I got an emmc from Hardkernel.

If you have an emmc to sdcard adapter, you can use that to install Fedora on the emmc using the same fedora-arm-installer command as below. But don't run the sd_fuse command. 
  
Put the original sdcard back into the Linux host, copy everything from the u-boot/sd_fuse directiry (see below) to the sdcard (I put it in /home/sd_fuse). Unmount, eject the sdcard. Watch out for the symlinks we created in the original step.

Install the emmc on the bottom of the ODroid. Don't change the boot switch yet.

Put the sdcard back in the ODroid, boot.

On the ODroid, if you didn't use the emmc sdcard installer, you should be able to particion the emmc (should be /dev/mmcblk0, while the sdcard is *1) and rsync over /boot and /, adjust labels, etc.  However I didn't try that myself.

Go to the sd_fuse directory and run
# ./sd_fusing.sh /dev/mmcblk0

shut down the ODroid, take out the sdcard and switch the boot selector switch to emmc.

Boot.

Regards,

Daniel

On Sun, Mar 11, 2018 at 10:46 AM Daniel Riek <daniel@llnvd.io> wrote:
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