1
0
Fork 0
mirror of https://github.com/samueldr/wip-pinebook-pro.git synced 2024-09-30 10:07:25 +02:00
wip-pinebook-pro/README.md

124 lines
2.9 KiB
Markdown
Raw Normal View History

2019-11-14 23:40:51 +01:00
WIP stuff to get started on the pinebook pro.
2019-11-14 23:47:56 +01:00
2020-01-07 21:20:13 +01:00
## Using in your configuration
2019-11-14 23:47:56 +01:00
2020-01-07 21:20:13 +01:00
Clone this repository somwhere, and in your configuration.nix
2019-11-14 23:47:56 +01:00
```
2020-01-07 21:20:13 +01:00
{
imports = [
.../pinebook-pro/pinebook_pro.nix
];
}
2019-11-14 23:47:56 +01:00
```
2020-01-07 21:20:13 +01:00
That entry point will try to stay unopinionated, while maximizing the hardware
compatibility.
2019-11-14 23:47:56 +01:00
2021-05-12 01:06:13 +02:00
## Current state
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
*A whole lot of untested*.
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
You can look at the previous state to see that the basic stuff works. But I
find listing everything as working is hard.
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
What's untested and not working will be listed here at some point. Maybe.
2020-01-07 21:20:13 +01:00
### Known issues
2021-05-12 01:06:13 +02:00
#### `rockchipdrm` and `efifb`
2020-01-06 21:36:56 +01:00
2021-05-12 01:06:13 +02:00
`CONFIG_FB_EFI` has been disabled in the customized kernel as `rockchipdrm`
will not render the VT if `efifb` is present.
Be careful if using the mainline kernel instead, as it will have
`CONFIG_FB_EFI` set to `y`.
#### *EFI* and poweroff
When booted using EFI, the system will not power off. It will stay seemingly
stuck with the LED and display turned off.
Power it off by holding the power button for a while (10-15 seconds).
Otherwise you might have a surprise and find the battery is flat!
2020-01-07 21:36:28 +01:00
2020-01-06 21:36:56 +01:00
## Image build
2021-05-12 01:06:13 +02:00
> **NOTE**: These images will be built without an *Initial Boot Firmware*.
2020-01-06 21:36:56 +01:00
2021-05-12 01:06:13 +02:00
### SD image
2020-01-06 23:30:19 +01:00
2021-05-12 01:06:13 +02:00
```
$ nix-build -A sdImage
```
2020-01-06 23:30:19 +01:00
2021-05-12 01:06:13 +02:00
### ISO image
2020-01-06 23:30:19 +01:00
2021-05-12 01:06:13 +02:00
```
$ nix-build -A isoImage
```
2020-01-07 02:29:08 +01:00
2020-01-06 23:30:19 +01:00
## Note about cross-compilation
This will automatically detect the need for cross-compiling or not.
When cross-compiled, all caveats apply. Here this mainly means that the kernel
will need to be re-compiled on the device on the first nixos-rebuild switch,
while most other packages can be fetched from the cache.
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
For cross-compilation, you might have to provide a path to a known-good Nixpkgs
checkout. *(Left as an exercis to the reader.)*
2020-01-07 21:20:13 +01:00
```
2021-05-12 01:06:13 +02:00
$ NIX_PATH=nixpkgs=/path/to/known/working/cross-compilation-friendly/nixpkgs
2020-01-07 21:20:13 +01:00
```
2021-05-12 01:06:13 +02:00
## *Initial Boot Firmware*
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
> **NOTE**: The previously available customized *U-Boot* from this repository
> are not available anymore.
2020-01-07 21:20:13 +01:00
2021-05-12 01:06:13 +02:00
### *Tow-Boot*
2020-01-07 21:58:47 +01:00
2021-05-12 01:06:13 +02:00
I highly suggest installing *Tow-Boot* to the SPI Flash.
2021-05-12 01:06:13 +02:00
- https://github.com/Tow-Boot/Tow-Boot
2021-05-12 01:06:13 +02:00
Having the firmware installed to SPI makes the device act basically like a
normal computer. No need for weird incantations to setup the initial boot
firmware.
Alternatively, starting from the *Tow-Boot* disk image on eMMC is easier to
deal with and understand than having to deal with *U-Boot* manually.
2021-05-12 01:06:13 +02:00
### Mainline *U-Boot*
Mainline U-Boot has full support for graphics since 2021.04. The current
unstable relases of Nixpkgs are at 2021.04 at least.
```
$ nix-build -A pkgs.ubootPinebookPro
```
2021-05-12 01:06:13 +02:00
Note that the default U-Boot build does not do anything with LED on startup.
2020-01-07 21:58:47 +01:00
## Keyboard firmware
```
$ nix-build -A pkgs.pinebookpro-keyboard-updater
$ sudo ./result/bin/updater step-1 <iso|ansi>
$ sudo poweroff
2020-01-07 21:58:47 +01:00
# ...
$ sudo ./result/bin/updater step-2 <iso|ansi>
$ sudo poweroff
# ...
$ sudo ./result/bin/updater flash-kb-revised <iso|ansi>
2020-01-07 21:58:47 +01:00
```
Note: poweroff must be used, reboot does not turn the hardware "off" enough.