NixOS on ARM/PINE64 Pinebook: Difference between revisions

imported>Samueldr
m Maybe fixes an annoyance with the syntax highlight block
m Compatibility notes: Dark mode support
 
(12 intermediate revisions by 3 users not shown)
Line 13: Line 13:
|-
|-
!Bootloader
!Bootloader
|Upstream U-Boot<ref>https://github.com/NixOS/nixpkgs/pull/61652#event-2350750622</ref>
|Upstream U-Boot<ref>https://github.com/NixOS/nixpkgs/pull/61652</ref>
|-
|-
!Boot order
!Boot order
Line 19: Line 19:
|-
|-
!Maintainer
!Maintainer
|[[User:samueldr|samueldr]]
|
|}
|}
</div>
</div>
Line 31: Line 31:
Upstream NixOS AArch64 image boots on the PINE A64-LTS, using the proper upstream U-Boot.
Upstream NixOS AArch64 image boots on the PINE A64-LTS, using the proper upstream U-Boot.


U-boot support [https://github.com/NixOS/nixpkgs/pull/61652#event-2350750622 has been added 2019-05-18]. The bootloader has not been built for now.
U-boot support [https://github.com/NixOS/nixpkgs/pull/61652 has been added 2019-05-18]. The bootloader has not been built for now.
 
== Installation instructions ==
 
{{ARM/installation allwinner|variant=aarch64}}


== Board-specific installation notes ==
=== Partitioning ===


First follow the [[NixOS_on_ARM#Installation|generic installation steps]] to get the installer image on an SD card. Copying to the eMMC directly should work, but requires disassembly of the computer.
The internal storage needs to be partitioned in a way that that the bootloader will not interfere with nor be interfered by a partition.


U-Boot needs to be copied to specific sectors on the microSD card with <code>dd</code>. Download U-Boot for the board (<code>sopine-u-boot-sunxi-with-spl.bin</code>), and copy it to the correct location with (again, replace <code>/dev/sdX</code> with the correct path to the SD card device):
Then, continue installation using the [[NixOS_on_ARM#NixOS_installation_.26_configuration|installation and configuration steps]].


<syntaxhighlight lang="bash" style="clear:both">sudo dd if=sopine-u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8</syntaxhighlight>
==== By copying the sd image internally ====
 
This is an easy solution, that also allows booting and installing as one would from an SD card on a generic Allwinner platform. Simply <code>dd</code> the SD image to the internal storage. The internal storage is likely to be <code>/dev/mmcblk2</code>.
 
==== MBR partition scheme ====


{{expansion|Installation instructions need to be written up to keep space for embedding the bootloader to the SPL.}}
{{expansion|Installation instructions need to be written up to keep space for embedding the bootloader to the SPL.}}
==== GPT partition scheme ====
The [[NixOS_on_ARM/Allwinner/GPT_Installation|Allwinner/GPT Installation]] page explains how to create a GPT partition table while allowing the isntallation of u-boot at the required offset.


== Serial console==
== Serial console==


Details about the pinout for the headphone jack are available [https://wiki.pine64.org/index.php/1080P_Pinebook_Main_Page#Pinebook_Schematics_and_Certifications on the PINE64 wiki]. It is [https://store.pine64.org/?product=pinebook-serial-console also available on their store]. The serial settings are the usual Allwinner settings.
Details about the pinout for the headphone jack are available [https://wiki.pine64.org/wiki/Pinebook#Pinebook_Schematics_and_Certifications on the PINE64 wiki]. It is [https://pine64.com/product/pinebook-pinephone-pinetab-serial-console/ also available on their store]. The serial settings are the usual Allwinner settings.


On early models<sup>[Which?]</sup> serial needs to be toggled via software. On recent models, a physical switch is present on the main board. The linux-sunxi wiki's Pinebook page [http://linux-sunxi.org/Pine_Pinebook#Adding_a_serial_port has details about serial access].
On early models<sup>[Which?]</sup> serial needs to be toggled via software. On recent models, a physical switch is present on the main board. The linux-sunxi wiki's Pinebook page [http://linux-sunxi.org/Pine_Pinebook#Adding_a_serial_port has details about serial access].
Line 52: Line 64:


{| class="table arm-compatibility"
{| class="table arm-compatibility"
!colspan="2" style="background: #fafafa"| Mainline kernel
!colspan="2" style="background: var(--color-inverted)"| Mainline kernel
|-
! Display
|
* Does not work yet with the upstream kernel as of 5.1.
|-
|-
! HDMI
! HDMI
Line 68: Line 76:


{{expansion|Find and document use of a kernel with the added capabilities.}}
{{expansion|Find and document use of a kernel with the added capabilities.}}
== USB booting with u-boot ==
You will need to either have mainline U-Boot installed to the eMMC or to an SD card.
Stop the boot process when prompted (by pressing a key). Then, do the following:
<pre>
Hit any key to stop autoboot:  0
=> setenv boot_targets usb0
=> boot
</pre>
This sets the boot order for this boot only. U-Boot can boot (among others) either of the NixOS sd-image or EFI iso from USB.


== Resources ==
== Resources ==


* [https://www.pine64.org/pinebook/ Official product page]
* [https://www.pine64.org/pinebook/ Official product page]
* [linux-sunxi.org/Pine_Pinebook linux-sunxi wiki page]
* [https://linux-sunxi.org/Pine_Pinebook linux-sunxi wiki page]