|
|
Line 1: |
Line 1: |
− | {{ARM/breadcrumb}}
| + | This page has been moved to the official NixOS Wiki: |
− | <div class="infobox">
| |
− | {|class="table"
| |
− | !colspan="2" class="title"|Hardkernel ODROID-HC4
| |
− | |-
| |
− | !Manufacturer
| |
− | |Hardkernel
| |
− | |-
| |
− | !Architecture
| |
− | |AArch64
| |
− | |-
| |
− | !Bootloader
| |
− | |U-Boot
| |
− | |-
| |
− | !Boot options
| |
− | |microSD (SATA?)
| |
− | |}
| |
− | </div>
| |
| | | |
− | == Status ==
| + | ⇒ '''[https://wiki.nixos.org/wiki/NixOS_on_ARM/ODROID-HC4 NixOS on ARM/ODROID-HC4]''' |
| | | |
− | Mostly working, but some manual steps needed to get it running.
| + | ''— samueldr, Lead of NixOS on ARM.'' |
− | | |
− | U-boot support in NixPkgs is currently in review: [https://github.com/NixOS/nixpkgs/pull/101454 NixPkgs Pull Request #101454]
| |
− | | |
− | == Board-specific installation notes ==
| |
− | | |
− | === Petitboot removal ===
| |
− | | |
− | Petitboot is installed on the SPI memory of the Odroid HC4 from factory. To be able to load an upstreamed version of U-Boot without having to press a hardware button at each boot, you may remove it.
| |
− | '''Please proceed with caution, this will make Hardkernel images unbootable!''' | |
− | | |
− | From the Petitboot, go for “Exit to shell” and enter these commands to remove Petitboot:
| |
− | <syntaxhighlight lang="bash">
| |
− | flash_eraseall /dev/mtd0
| |
− | flash_eraseall /dev/mtd1
| |
− | flash_eraseall /dev/mtd2
| |
− | flash_eraseall /dev/mtd3
| |
− | </syntaxhighlight>
| |
− | | |
− | This will make your SPI flash memory empty and the device will now start from SD on next boot.
| |
− | | |
− | See [https://forum.odroid.com/viewtopic.php?f=207&t=40906 this Odroid forum topic] to restore Petitboot.
| |
− | | |
− | === NixOS installation ===
| |
− | | |
− | # First follow the [[NixOS_on_ARM#Installation|generic installation steps]] to get the latest stable installer image.
| |
− | # Uncompress the .zst file. One may use the <code>unzstd</code> command (equivalent to <code>zstd -d</code>) on supported machines. The zstd commands can be accessed from the <code>zstd</code> package.
| |
− | # Patch this image (.img file) with U-Boot for Odroid HC4. <syntaxhighlight lang="bash">
| |
− | # Clone content of samueldr's wip/odroidc4 branch, edit the defconfig file, and build
| |
− | git clone https://github.com/samueldr/nixpkgs --depth 1 -b wip/odroidc4 && cd nixpkgs
| |
− | test "$(uname)" '==' 'Darwin' && sed -i '' 's/defconfig = "odroid-c4_defconfig"/defconfig = "odroid-hc4_defconfig"/' pkgs/misc/uboot/default.nix || sed -i 's/defconfig = "odroid-c4_defconfig"/defconfig = "odroid-hc4_defconfig"/' pkgs/misc/uboot/default.nix
| |
− | nix-build -I "nixpkgs=$PWD" -A pkgsCross.aarch64-multiplatform.ubootOdroidC4
| |
− | sudo dd if=result/u-boot.bin of=PATH/TO/nixos-sd-image-21.05.XXXX.XXXXXXXX-aarch64-linux.img conv=fsync,notrunc bs=512 seek=1
| |
− | </syntaxhighlight>
| |
− | # Flash the modified SD image file (.img) to a microSD card. '''This will erase all the data on the card!'''
| |
− | | |
− | == Known issues ==
| |
− | | |
− | === Fan doesn't work by default ===
| |
− | You need to use software fan control (via <code>fancontrol</code>) for this.
| |
− | You may refer to [[https://github.com/NixOS/nixos-hardware/blob/master/hardkernel/odroid-hc4/default.nix nixos-hardware Odroid HC4 module]] for <code>fancontrol</code> configuration.
| |
− | | |
− | == No HDMI audio by default ==
| |
− | | |
− | After enabling ALSA you should see a sound card named "ODROID-HC4". Audio is not correctly routed by default so you might need to open alsa-mixer and change:
| |
− | * <code>FRDDR_A SINK 1 SEL</code> to <code>OUT 1</code>
| |
− | * <code>FRDDR_A SRC 1 EN</code> to on
| |
− | * <code>TDMOUT_B SRC SEL</code> to <code>IN 0</code>
| |
− | * <code>TOHDMITX</code> to on
| |
− | * <code>TOHDMITX I2S SRC</code> to <code>I2S B</code>
| |
− | | |
− | After these changes, <code>speaker-test -c 2</code> should output white noise.
| |
− | | |
− | == Resources ==
| |
− | | |
− | * [https://www.hardkernel.com/shop/odroid-hc4/ Official product page]
| |
− | * [https://github.com/considerate/nixos-odroidhc4/ NixOS configuration for the ODROID HC4 microcomputer by considerate]
| |
− | * [https://www.armbian.com/odroid-hc4/ Armbian Odroid HC4]
| |
− | * [https://u-boot.readthedocs.io/en/latest/board/amlogic/odroid-c4.html U-Boot for Odroid C4 documentation]
| |