mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-26 21:09:42 +01:00
Merge pull request #73 from NixOS/20180824.021016/swanky
Add Toshiba Chromebook 2 (swanky), Org -> Markdown
This commit is contained in:
commit
2ca9f58d7e
6 changed files with 159 additions and 47 deletions
61
README.md
Normal file
61
README.md
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
NixOS profiles covering hardware quirks.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Add and update `nixos-hardware` channel:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
|
||||||
|
$ sudo nix-channel --update nixos-hardware
|
||||||
|
```
|
||||||
|
|
||||||
|
Then import an appropriate profile path from the table below. For example, to
|
||||||
|
enable ThinkPad X220 profile, your `imports` in `/etc/nixos/configuration.nix`
|
||||||
|
should look like:
|
||||||
|
|
||||||
|
```
|
||||||
|
imports = [
|
||||||
|
<nixos-hardware/lenovo/thinkpad/x220>
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
## Profiles
|
||||||
|
|
||||||
|
| Model | Path |
|
||||||
|
| --------------------------------- | ------------------------------------------ |
|
||||||
|
| [Acer Aspire 4810T][] | `<nixos-hardware/acer/aspire/4810t>` |
|
||||||
|
| Airis N990 | `<nixos-hardware/airis/n990>` |
|
||||||
|
| Apple MacBook Air 4,X | `<nixos-hardware/apple/macbook-air/4>` |
|
||||||
|
| Apple MacBook Air 6,X | `<nixos-hardware/apple/macbook-air/6>` |
|
||||||
|
| [Apple MacBook Pro 10,1][] | `<nixos-hardware/apple/macbook-pro/10-1>` |
|
||||||
|
| Apple MacBook Pro 12,1 | `<nixos-hardware/apple/macbook-pro/12-1>` |
|
||||||
|
| [Dell XPS 15 9550][] | `<nixos-hardware/dell/xps/15-9550>` |
|
||||||
|
| [Inverse Path USB armory][] | `<nixos-hardware/inversepath/usbarmory>` |
|
||||||
|
| Lenovo IdeaPad Z510 | `<nixos-hardware/lenovo/ideapad/z510>` |
|
||||||
|
| Lenovo ThinkPad T410 | `<nixos-hardware/lenovo/thinkpad/t410>` |
|
||||||
|
| Lenovo ThinkPad T440p | `<nixos-hardware/lenovo/thinkpad/t440p>` |
|
||||||
|
| Lenovo ThinkPad T460s | `<nixos-hardware/lenovo/thinkpad/t460s>` |
|
||||||
|
| Lenovo ThinkPad X140e | `<nixos-hardware/lenovo/thinkpad/x140e>` |
|
||||||
|
| Lenovo ThinkPad X220 | `<nixos-hardware/lenovo/thinkpad/x220>` |
|
||||||
|
| Lenovo ThinkPad X230 | `<nixos-hardware/lenovo/thinkpad/x230>` |
|
||||||
|
| Lenovo ThinkPad X250 | `<nixos-hardware/lenovo/thinkpad/x250>` |
|
||||||
|
| Lenovo ThinkPad X270 | `<nixos-hardware/lenovo/thinkpad/x270>` |
|
||||||
|
| [Microsoft Surface Pro 3][] | `<nixos-hardware/microsoft/surface-pro/3>` |
|
||||||
|
| PC Engines APU | `<nixos-hardware/pcengines/apu>` |
|
||||||
|
| [Raspberry Pi 2][] | `<nixos-hardware/raspberry-pi/2>` |
|
||||||
|
| [Samsung Series 9 NP900X3C][] | `<nixos-hardware/samsung/np900x3c>` |
|
||||||
|
| [Purism Librem 13v3][] | `<nixos-hardware/purism/librem/13v3>` |
|
||||||
|
| Supermicro A1SRi-2758F | `<nixos-hardware/supermicro/a1sri-2758f>` |
|
||||||
|
| Supermicro X10SLL-F | `<nixos-hardware/supermicro/x10sll-f>` |
|
||||||
|
| [Toshiba Chromebook 2 `swanky`][] | `<nixos-hardware/toshiba/swanky>` |
|
||||||
|
|
||||||
|
[Acer Aspire 4810T]: acer/aspire/4810t
|
||||||
|
[Apple MacBook Pro 10,1]: apple/macbook-pro/10-1
|
||||||
|
[Dell XPS 15 9550]: dell/xps/15-9550
|
||||||
|
[Inverse Path USB armory]: inversepath/usbarmory
|
||||||
|
[Microsoft Surface Pro 3]: microsoft/surface-pro/3
|
||||||
|
[Raspberry Pi 2]: raspberry-pi/2
|
||||||
|
[Samsung Series 9 NP900X3C]: samsung/np900x3c
|
||||||
|
[Purism Librem 13v3]: purism/librem/13v3
|
||||||
|
[Toshiba Chromebook 2 `swanky`]: toshiba/swanky
|
47
README.org
47
README.org
|
@ -1,47 +0,0 @@
|
||||||
NixOS profiles covering hardware quirks.
|
|
||||||
|
|
||||||
** Setup
|
|
||||||
|
|
||||||
Add and update ~nixos-hardware~ channel:
|
|
||||||
|
|
||||||
: $ sudo nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
|
|
||||||
: $ sudo nix-channel --update nixos-hardware
|
|
||||||
|
|
||||||
Then import an appropriate profile path from the table below. For example, to
|
|
||||||
enable ThinkPad X220 profile, your ~imports~ in ~/etc/nixos/configuration.nix~
|
|
||||||
should look like:
|
|
||||||
|
|
||||||
: imports = [ <nixos-hardware/lenovo/thinkpad/x220> ./hardware-configuration.nix ];
|
|
||||||
|
|
||||||
** Profiles
|
|
||||||
|
|
||||||
|-----------------------------+-----------------------------------------------|
|
|
||||||
| Model | Path |
|
|
||||||
|-----------------------------+-----------------------------------------------|
|
|
||||||
| [[file:acer/aspire/4810t][Acer Aspire 4810T]] | ~<nixos-hardware/acer/aspire/4810t>~ |
|
|
||||||
| Airis N990 | ~<nixos-hardware/airis/n990>~ |
|
|
||||||
| Apple MacBook Air 4,X | ~<nixos-hardware/apple/macbook-air/4>~ |
|
|
||||||
| Apple MacBook Air 6,X | ~<nixos-hardware/apple/macbook-air/6>~ |
|
|
||||||
| [[file:apple/macbook-pro/10-1][Apple MacBook Pro 10,1]] | ~<nixos-hardware/apple/macbook-pro/10-1>~ |
|
|
||||||
| [[file:apple/macbook-pro/11-5][Apple MacBook Pro 11,5]] | ~<nixos-hardware/apple/macbook-pro/11-5>~ |
|
|
||||||
| Apple MacBook Pro 12,1 | ~<nixos-hardware/apple/macbook-pro/12-1>~ |
|
|
||||||
| [[file:dell/xps/15-9550][Dell XPS 15 9550]] | ~<nixos-hardware/dell/xps/15-9550>~ |
|
|
||||||
| [[file:inversepath/usbarmory][Inverse Path USB armory]] | ~<nixos-hardware/inversepath/usbarmory>~ |
|
|
||||||
| Lenovo IdeaPad Z510 | ~<nixos-hardware/lenovo/ideapad/z510>~ |
|
|
||||||
| Lenovo ThinkPad T410 | ~<nixos-hardware/lenovo/thinkpad/t410>~ |
|
|
||||||
| Lenovo ThinkPad T440p | ~<nixos-hardware/lenovo/thinkpad/t440p>~ |
|
|
||||||
| Lenovo ThinkPad T460s | ~<nixos-hardware/lenovo/thinkpad/t460s>~ |
|
|
||||||
| Lenovo ThinkPad X140e | ~<nixos-hardware/lenovo/thinkpad/x140e>~ |
|
|
||||||
| Lenovo ThinkPad X220 | ~<nixos-hardware/lenovo/thinkpad/x220>~ |
|
|
||||||
| Lenovo ThinkPad X230 | ~<nixos-hardware/lenovo/thinkpad/x230>~ |
|
|
||||||
| Lenovo ThinkPad X250 | ~<nixos-hardware/lenovo/thinkpad/x250>~ |
|
|
||||||
| Lenovo ThinkPad X270 | ~<nixos-hardware/lenovo/thinkpad/x270>~ |
|
|
||||||
| [[file:lenovo/thinkpad/x1/6th-gen][Lenovo ThinkPad X1 6th gen.]] | ~<nixos-hardware/lenovo/thinkpad/x1/6th-gen>~ |
|
|
||||||
| [[file:microsoft/surface-pro/3][Microsoft Surface Pro 3]] | ~<nixos-hardware/microsoft/surface-pro/3>~ |
|
|
||||||
| PC Engines APU | ~<nixos-hardware/pcengines/apu>~ |
|
|
||||||
| [[file:raspberry-pi/2][Raspberry Pi 2]] | ~<nixos-hardware/raspberry-pi/2>~ |
|
|
||||||
| [[file:samsung/np900x3c][Samsung Series 9 NP900X3C]] | ~<nixos-hardware/samsung/np900x3c>~ |
|
|
||||||
| [[file:purism/librem/13v3][Purism Librem 13v3]] | ~<nixos-hardware/purism/librem/13v3>~ |
|
|
||||||
| Supermicro A1SRi-2758F | ~<nixos-hardware/supermicro/a1sri-2758f>~ |
|
|
||||||
| Supermicro X10SLL-F | ~<nixos-hardware/supermicro/x10sll-f>~ |
|
|
||||||
|-----------------------------+-----------------------------------------------|
|
|
|
@ -44,4 +44,6 @@ in
|
||||||
microsoft-surface-pro-3 = buildProfile ./microsoft/surface-pro/3;
|
microsoft-surface-pro-3 = buildProfile ./microsoft/surface-pro/3;
|
||||||
|
|
||||||
pcengines-apu = buildProfile ./pcengines/apu;
|
pcengines-apu = buildProfile ./pcengines/apu;
|
||||||
|
|
||||||
|
toshiba-swanky = buildProfile ./toshiba/swanky;
|
||||||
}
|
}
|
||||||
|
|
66
toshiba/swanky/README.md
Normal file
66
toshiba/swanky/README.md
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# Toshiba Chromebook 2 `swanky`
|
||||||
|
|
||||||
|
There might be a way to install NixOS without hardware modifications (via
|
||||||
|
enabled developer mode and SeaBIOS boot on Ctrl+L), however I'd highly
|
||||||
|
recommend replacing Google's Coreboot payload with Tianocore: that allows for
|
||||||
|
proper virtualization, suspend, removes annoying developer mode screen, and
|
||||||
|
generally just works much better.
|
||||||
|
|
||||||
|
These instructions carry some risk of bricking your device, since you'll be
|
||||||
|
reflashing BIOS. Risk is rather low, but please for the love of god make a BIOS
|
||||||
|
backup and store it someplace safe. That's the only way to reinstall ChromeOS
|
||||||
|
back after this procedure (BIOS image has licensing info), and it's much easier
|
||||||
|
to use a known good state to unbrick the laptop if things go wrong.
|
||||||
|
|
||||||
|
If you ever get unlucky, you can unbrick your device using Raspberry Pi,
|
||||||
|
some cables and a SOIC clip, see:
|
||||||
|
http://sicarul.com/how-to-un-brick-your-toshiba-chromebook-2-gandof-without-invoking-any-demons/
|
||||||
|
|
||||||
|
## Enable developer mode
|
||||||
|
|
||||||
|
This will wipe all user data and settings from the laptop.
|
||||||
|
|
||||||
|
Power off, then hold ESC + Refresh (F3) and abruptly press power button. You
|
||||||
|
should see "Chrome OS is missing or damaged" message. Press Ctrl+D. Press enter
|
||||||
|
at the next screen, then press Ctrl+D again. Wait until the laptop boots into
|
||||||
|
ChromeOS, then power it off.
|
||||||
|
|
||||||
|
## Disable hardware-backed BIOS write protection
|
||||||
|
|
||||||
|
Follow the first part of the guide at:
|
||||||
|
https://github.com/brendenyule/NativeToshibaCB2Guide/wiki/Remove-Write-Protect
|
||||||
|
|
||||||
|
Ignore SeaBIOS section. I also used some ductape over #5 to make sure that
|
||||||
|
metallic motherboard shield would not re-enable write protection.
|
||||||
|
|
||||||
|
## Flash Coreboot + Tianocore BIOS
|
||||||
|
|
||||||
|
Prepare a FAT32-formatted flash drive for BIOS backup in advance.
|
||||||
|
|
||||||
|
Go through ChromeOS installation dialogues until you have network access and
|
||||||
|
are able to log into a guest session. Open Chrome, press Ctrl+Alt+T to open
|
||||||
|
`crosh`, type in `shell` to get a real shell. Then, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd ~
|
||||||
|
$ curl -LO https://mrchromebox.tech/firmware-util.sh
|
||||||
|
$ sudo bash firmware-util.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Choose "Install/Update Full ROM Firmware" option and follow instructions.
|
||||||
|
Do not skip BIOS backup!
|
||||||
|
|
||||||
|
Documentation: https://mrchromebox.tech/#fwscript
|
||||||
|
|
||||||
|
## Enable hardware-backed BIOS write protection
|
||||||
|
|
||||||
|
This is a cool security feature, so after flashing Coreboot + Tianocore BIOS
|
||||||
|
and making sure new BIOS works, consider re-enabling BIOS protection. Just put
|
||||||
|
in the missing screw #5.
|
||||||
|
|
||||||
|
## Install NixOS
|
||||||
|
|
||||||
|
`dd` an image on a flash drive, partition the drive, etc. On some later models,
|
||||||
|
you can swap SSD with any other 2242 M.2 SATA SSD, but on `swanky`, you have
|
||||||
|
to live with what you have (16GB eMMC). I recommend `256MB` for EFI partition,
|
||||||
|
and the rest for `/`.
|
30
toshiba/swanky/default.nix
Normal file
30
toshiba/swanky/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
ucm = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/plbossart/UCM/archive/2050ca78a4d1a853d1ba050b591f42e6f97adfc0.tar.gz";
|
||||||
|
sha256 = "1rs4mpz3b965nmz0yhy6j4ga3fdz320qnpkd7d61nvpv9c3i6zwj";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../common/cpu/intel
|
||||||
|
../../common/pc/laptop
|
||||||
|
];
|
||||||
|
|
||||||
|
# Sound only properly works out of the box on 4.18+ kernels.
|
||||||
|
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
# Required for screen brightness control:
|
||||||
|
boot.kernelParams = [ "acpi_backlight=vendor" ];
|
||||||
|
|
||||||
|
# Sound requires a custom UCM config:
|
||||||
|
system.replaceRuntimeDependencies = [{
|
||||||
|
original = pkgs.alsaLib;
|
||||||
|
|
||||||
|
replacement = pkgs.alsaLib.overrideAttrs (super: {
|
||||||
|
postFixup = "cp -r ${ucm}/chtmax98090 $out/share/alsa/ucm";
|
||||||
|
});
|
||||||
|
}];
|
||||||
|
}
|
Loading…
Reference in a new issue