NixOS on ARM/NanoPC-T4: Difference between revisions

imported>Tmountain
mNo edit summary
Pigs (talk | contribs)
m Add category
 
(8 intermediate revisions by 3 users not shown)
Line 28: Line 28:
The board '''boots NixOS from eMMC''' and will also load NixOS via its integrated microSD reader.
The board '''boots NixOS from eMMC''' and will also load NixOS via its integrated microSD reader.


The official documentation, which is comprehensive, can be found on [https://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/ the FriendlyElec wiki].
The official documentation, which is comprehensive, can be found on [https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4 the FriendlyElec wiki].


U-Boot for this board is not entirely open, incorporating a binary blob for the tertiary program loader (TPL). Compilation instructions are featured in section 15.7 of [http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4 the FriendlyElec wiki], and a build target is also provided in upstream u-boot ('''nanopc-t4-rk3399_defconfig''').
U-Boot for this board is not entirely open, incorporating a binary blob for the tertiary program loader (TPL). Compilation instructions are featured in section 15.7 of [http://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4 the FriendlyElec wiki], and a build target is also provided in upstream u-boot ('''nanopc-t4-rk3399_defconfig''').


Pre-built u-boot images are available [https://github.com/tmountain/arch-nanopct4/tree/main/images/ here].
Pre-built u-boot images are available [https://github.com/tmountain/arch-nanopct4/tree/main/images/ here].
Line 74: Line 74:
<syntaxHighlight lang=bash>
<syntaxHighlight lang=bash>
# get the latest link directly from hydra
# get the latest link directly from hydra
wget wget https://hydra.nixos.org/build/135139819/download/1/nixos-sd-image-20.09.2623.97a13fb97fc-aarch64-linux.img.zst -O sd.img.zst
# wget https://hydra.nixos.org/build/135139819/download/1/nixos-sd-image-20.09.2623.97a13fb97fc-aarch64-linux.img.zst -O sd.img.zst
# unzstd sd.img.zst
# unzstd sd.img.zst
# udisksctl loop-setup -f sd.img -r
# udisksctl loop-setup -f sd.img -r
Line 94: Line 94:
From a fully powered off state, hold the Boot button and then long-press the power button to power up the board. Continue holding the Boot button for ~5 seconds, and the board will be forced to enter the MASKROM mode which bypasses the eMMC MBR.
From a fully powered off state, hold the Boot button and then long-press the power button to power up the board. Continue holding the Boot button for ~5 seconds, and the board will be forced to enter the MASKROM mode which bypasses the eMMC MBR.


=== TODO ===
==== UART ====


Add info on making integrated wifi work after booting into Nix.
The base images are configured to boot up with a serial TTY ( RX/TX UART ) @ 115200 Baud.  I had to replace <code>console=ttyS0,115200n8</code> with <code>console=ttyS2,115200n8</code> in /boot/extlinux/extlinux.conf to make the serial console work.
 
Note: the NanoPC-T4 UART defaults to the Debug UART Pin Spec which is adjacent to the USB-C port and is not part of the 40 Pin GPIO Pin Spec (see the aforementioned wiki).
 
=== Networking ===
 
The NanoPC-T4 integrated wifi does not work out of the box. Getting it to work requires the following steps:
 
<syntaxHighlight lang=bash>
# mkdir -p /lib/firmware/brcm
# cp brcmfmac4356-sdio.txt /lib/firmware/brcm/
# rmmod brcmfmac
# modprobe brcmfmac
# wpa_supplicant -B -i wlan0 -c <(wpa_passphrase $YOUR_SSID $YOUR_PASSWORD)
</syntaxhighlight>
 
You can get a copy of brcmfmac4356-sdio.txt [https://gist.githubusercontent.com/tmountain/e6c9e5da504b46db029f5cc5ccf47492/raw/d5086b8028c5eb5c760137b12a84c517cccb9734/brcmfmac4356-sdio.txt here].
 
=== Bluetooth Messages During Install ===
 
Depending on your hardware, the default boot image can be extremely noisy regarding messages related to bluetooth. If you would like to turn these off (temporarily), you can do the following.
 
<syntaxHighlight lang=bash>
# echo "install bluetooth /bin/false" > /etc/modprobe.d/blacklist.conf
# reboot
</syntaxhighlight>
 
[[Category:NixOS on ARM]]