Site Tools


Sidebar

Work

Projects Travel Singapore Socials (External)

projects:homelab:clearfog_cx_lx2:fedora

Fedora on SolidRun ClearFog CX/HoneyComb LX2

UEFI Bootloader

  1. Download the latest build from SolidRun pre-built UEFI images
    • Navigate to the most recent-dated folder
    • Download the image that matches your DDR4 SO-DIMM speed, e.g. lx2160acex7_2000_700_3200_8_5_2-2a7ab21.img.xz
    • Note that you want the base image, NOT the “xspi” or LX2162A_CLEARFOG images
  2. Write the image to a microSD card using dd or your favorite imaging tool e.g. Etcher
  3. Insert the microSD into the HoneyComb LX2 and ensure the Boot Select DIP switches are set to boot from SD
  4. Connect the microUSB console (microUSB jack closest to the RJ-45 jack) and start a serial terminal at 115200 8N1

Fedora Install Media

  1. Download the Fedora aarch64 netinstall ISO from the Fedora AltArch downloads page (either Server or Everything will do, as you will perform package selection later)
  2. Write the image to a USB 3.0 flash drive using dd or your favorite imaging tool

Install Fedora

  1. Insert your preferred boot disk into the HoneyComb LX2, e.g. m.2 NVMe SSD
  2. Plug the USB flash drive into any HoneyComb LX2 USB3.0 port
  3. Power the HoneyComb LX2 on, press escape to get into the UEFI settings
  4. Boot Manager → select the USB disk with Fedora installer
  5. Once at the menu to install Fedora/test media and install Fedora:
    1. Highlight the Install Fedora entry
    2. Press “e” to edit
    3. Use arrow keys to navigate to the end of the line that begins with “linux”
    4. Add the following parameters to the end: arm-smmu.disable_bypass=0 iommu.passthrough=1
  6. Continue with the text installer as usual
  7. Don't forget to select the minimal install if you are using the server ISO - otherwise, you'll have Fedora Server Cockpit installed (which is not designed to be removed after installation)

Fix Kernel cmdline

  1. Log in to your fresh install (root or a user with sudo privileges)
  2. # grubby --args="arm-smmu.disable_bypass=0 iommu.passthrough=1" --update-kernel=ALL

Get SFP+ Working

  1. sudo dnf install https://kojipkgs.fedoraproject.org//vol/fedora_koji_archive06/packages/restool/2.3.0/1.fc36/aarch64/restool-2.3.0-1.fc36.aarch64.rpm
  2. sudo dnf install 'dnf-command(versionlock)'
  3. sudo dnf versionlock add restool
  4. echo "ACTION==\"add\", SUBSYSTEM==\"fsl-mc\", ENV{DEVTYPE}==\"fsl_mc_bus_dpmac\", RUN+=\"/usr/bin/flock /usr/bin/ls-addni -c '(PATH=/usr/bin /usr/bin/ls-addni %k)'\""|sudo tee /etc/udev/rules.d/fsl_mc_bus.rules
  5. Reboot to trigger udev rules

Other Notes

Building a Custom Kernel

I needed to build a custom kernel to get kmod-aacraid.

  1. Follow the Fedora documentation on building a kernel from the Fedora dist-git but stop before the fedpkg local step
    • Remember to checkout the correct branch for the Fedora version you are running
  2. Optional but highly recommended: sudo dnf install ccache, if your kernel build fails for any reason, this greatly speeds up subsequent rebuilds (fedpkg clears the build folder each time it is invocated)
  3. Edit the kernel.spec file and uncomment # define buildid .local so that it looks like %define buildid .local (probably change .local to something meaningful
  4. Edit the kernel-local file and add any Kconfig you desire
  5. git stage kernel.spec kernel-local
  6. git commit -m "Changeme to something descriptive"
  7. fedpkg local --arch aarch64 --without configchecks --with baseonly
  8. cd aarch64 && ls
  9. sudo dnf install followed by the packages you need, probably:
    • kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra
    • If you use DKMS, probably kernel-devel kernel-devel-matched
  10. Reboot into the new kernel
projects/homelab/clearfog_cx_lx2/fedora.txt · Last modified: 2024/12/09 08:11 by Andrew Yong