Difference between revisions of "NixOS on ARM/Tinker Board"

From NixOS Wiki
Jump to: navigation, search
m (rollback unauthorized mass edits)
Tag: Rollback
 
(3 intermediate revisions by 2 users not shown)
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"|NixOS on TinkerBoard
 
|-
 
!Manufacturer
 
|ASUS
 
|-
 
!Architecture
 
|ARMv7
 
|-
 
!Bootloader
 
|Upstream u-boot
 
|-
 
!Maintainer
 
|[[User:tomberek|tomberek]]
 
|}
 
</div>
 
<!-- Mosly copied from NixOS on Orange PC page -->
 
== Status ==
 
  
'''@dezgeg''''s porting efforts to ARMv7 works on the TinkerBoard, with some modification for u-boot and DTB paths. Support for this board is a work in progress. Please contact me ([[User:tomberek|@tomberek]]) for comments/thoughts/feedback/etc.
+
    ⇒ '''[https://wiki.nixos.org/wiki/NixOS_on_ARM/Tinker_Board NixOS on ARM/Tinker Board]'''
  
== Board-specific installation notes ==
+
''— samueldr, Lead of NixOS on ARM.''
 
 
First follow the [[NixOS_on_ARM#Installation|generic installation steps]] to get the installer image on an SD card.
 
 
 
The Tinker Board seems to look for U-Boot at a specific offset rather than in a file. So copy the initial 4MB from the TinkerOS image and then copy it to the NixOS image while skipping the MBR/partition table in the first 512 bytes. It turns out the bootstrap section of the MBR is also needed, so copy that as well.
 
 
 
These commands may use either the /dev/sdX or the file images and later copied to SD cards - this was discovered iteratively, thus was performed on the sd cards directly. Use with caution. (Assumes <code>/dev/sdc</code> is TinkerOS and <code>/dev/sdb</code> is NixOS images or devices respectively).
 
<syntaxhighlight lang="bash">
 
dd if=/dev/sdc of=tinker_sector bs=512k count=8 status=progress # grab tinker initial sectors
 
dd if=tinker_sector of=/dev/sdb bs=512 skip=1 seek=1 count=8191 # copy the img and env blobs
 
dd of=/dev/sdb if=tinker_sector bs=428 count=1 # bootstrap code from begining of MBR
 
</syntaxhighlight>
 
 
 
It turns out that getting into U-Boot using the TinkerOS image, halting the boot process, replacing SD cards with the NixOS image fails, but the error message suggests the extlinux merely has a different name for the DTB than NixOS has packaged. Simply copy from the nixos dtb file `/boot/nixos/<hash>-dtbs/rk3288-tinker.dtb` to `rockchip-tinker_rk3288.dtb`.
 
 
 
Then, install using the [[NixOS_on_ARM#NixOS_installation_.26_configuration|installation and configuration steps]].
 
 
 
== Serial console==
 
 
 
Your configuration.nix will need to modify the default <code>boot.kernelParams</code> configuration to use the serial console.
 
 
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
 
boot.kernelParams = [
 
    "console=ttymxc0,115200n8" # HDMI?
 
    "console=tty0"            # Primary Console?
 
    "console=ttyS1,115200n8"  # Serial port?
 
    "console=ttyS2,115200n8"  # Serial port pins 8+10
 
];
 
</nowiki>}}
 
 
 
== TODO ==
 
* Build U-boot from upstream
 
* upload images/blobs
 
* host binary cache
 
 
 
== Resources ==
 
 
 
* [[NixOS_on_ARM]]
 
* [https://www.asus.com/us/Single-Board-Computer/Tinker-Board/ Official ASUS website]
 

Latest revision as of 10:56, 6 April 2024

This page has been moved to the official NixOS Wiki:

    ⇒ NixOS on ARM/Tinker Board

— samueldr, Lead of NixOS on ARM.