mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-22 19: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;
|
||||
|
||||
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