12 |
--------------------------------------------------------------------------------
/.github/workflows/md.yml:
--------------------------------------------------------------------------------
1 | name: Markdown lint
2 | on:
3 | pull_request:
4 | branches: main
5 | jobs:
6 | markdownlint:
7 | name: markdownlint-cli
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v4
11 | - uses: DavidAnson/markdownlint-cli2-action@v16
12 | id: linter
13 | with:
14 | globs: '**/*.md'
15 | config: '.markdownlint.jsonc'
16 | fix: true
17 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches: ["main"]
6 | pull_request:
7 |
8 | jobs:
9 | # Build job
10 | build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v3
15 | - name: NodeJS
16 | uses: actions/setup-node@v3
17 | with:
18 | node-version: '18'
19 | - name: Build with node
20 | run: npm i && npm run build
21 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4 |
5 | // List of extensions which should be recommended for users of this workspace.
6 | "recommendations": [
7 | "HTMLHint.vscode-htmlhint"
8 | ],
9 | // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
10 | "unwantedRecommendations": [
11 |
12 | ]
13 | }
--------------------------------------------------------------------------------
/src/.vuepress/components/AddScript.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/src/docs/installing/known-issues.md:
--------------------------------------------------------------------------------
1 | # Known Issues
2 |
3 | ## Operating Systems
4 |
5 | ### Windows
6 |
7 | - Some Chromebooks have no touchpad support in the installer.
8 | - No fingerprint reader support.
9 | - No TPM 2.0 support.
10 | - No IPU camera support.
11 |
12 | ### Linux
13 |
14 | - Broken USB-C on TigerLake and AlderLake. See Post Install -> Linux for fix.
15 | - No fingerprint reader support.
16 | - Debian 12 (Bookworm) needs a custom kernel.
17 |
18 | ### macOS
19 |
20 | - Broken DRM.
21 | - No audio.
22 | - No PCIe SD card reader support.
23 | - No fingerprint reader support.
24 | - Continuity features (AirDrop, Sidecar, etc).
25 |
--------------------------------------------------------------------------------
/src/docs/debugging/bugreport.md:
--------------------------------------------------------------------------------
1 | # Bug Reporting
2 |
3 | So you find a bug in one of our projects, and want to report it. It's faily simple,
4 |
5 | 1. Use your brain (please)
6 | 2. Open a issue in our [bugtracker](https://github.com/chrultrabook/bugtracker/issues)
7 | 3. Be descriptive. Describe what the issue is, steps to reproduce, affected devices, etc etc.
8 | - If you need help, a generic bug report template is available.
9 | 4. Wait patiently for a contributor to fix the issue.
10 | - Please keep in mind the majority of us contributors have other things going on in our lives.
11 |
12 |
13 |
14 | ::: tip
15 | Do not submit personal help requests in the bugtracker.
16 | :::
17 |
--------------------------------------------------------------------------------
/src/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | home: true
3 | heroText: Welcome to the Chrultrabook Docs
4 | tagline: Convert your Chromebook into an Ultrabook!
5 | heroImage: /chrome.svg
6 | heroImageDark: /chrome.svg
7 | actions:
8 | - text: Get Started
9 | link: /docs/getting-started/prerequisites.html
10 | - text: Discuss on the forum
11 | link: https://forum.chrultrabook.com
12 | footerHtml: true
13 | footer:
14 |
17 | ---
18 |
19 | # Who is this documentation for?
20 |
21 | The chrultrabook documentation is for people who are looking to replace ChromeOS with a different OS. This site contains information on how to replace the OS on your device, along with any extra info you may need to get the most out of your device.
22 |
23 | ---
24 |
25 | Because of the technical nature of this process, you are expected to have some technical background info and troubleshooting skills. **This is NOT a one click procedure.**
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chrultrabook",
3 | "version": "0.1.0",
4 | "description": "The Chrultrabook documentation",
5 | "main": "index.js",
6 | "author": "Chrultrabook",
7 | "contributors": [],
8 | "repository": "https://github.com/chrultrabook/docs/",
9 | "scripts": {
10 | "dev": "npm run device-table && vuepress dev src",
11 | "dev-prod": "npm run device-table && NODE_ENV=production vuepress dev src",
12 | "build": "npm run device-table && vuepress build src",
13 | "device-table": "node devices/index.js"
14 | },
15 | "license": "MIT",
16 | "devDependencies": {
17 | "@vuepress/bundler-webpack": "^2.0.0-rc.19",
18 | "@vuepress/plugin-back-to-top": "^2.0.0-rc.74",
19 | "@vuepress/plugin-medium-zoom": "^2.0.0-rc.74",
20 | "@vuepress/plugin-register-components": "^2.0.0-rc.66",
21 | "@vuepress/plugin-search": "^2.0.0-rc.74",
22 | "@vuepress/theme-default": "^2.0.0-rc.74",
23 | "sass-loader": "^16.0.4",
24 | "sass-embedded": "1.83.4",
25 | "vuepress": "^2.0.0-rc.19"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/docs/installing/ectool.md:
--------------------------------------------------------------------------------
1 | # Using Ectool
2 |
3 | `ectool` is a utility that is used to interface with the ChromeOS Embedded Controller. It is used to communicate with the embedded controller from userspace and vice versa.
4 |
5 | ## Installing Ectool
6 |
7 | If you use Fedora or Ultramarine Linux, you can install the `chromium-ectool` package from the [Terra repository](https://terra.fyralabs.com).
8 |
9 | Otherwise, you can download `ectool` for Linux from [here](https://files.tree123.org/utils/x86_64/gnu/ectool). Alternatively there is a [Alpine Linux / musl version](https://files.tree123.org/utils/x86_64/musl/ectool).
10 |
11 | For Windows users, `ectool` is installed when you install CoolStar's Chrome EC driver and is located in `C:\Program Files\crosec\ectool.exe`.
12 |
13 | ## Uses
14 |
15 | :::tip
16 | Run `ectool help` for a full list of commands.
17 | :::
18 |
19 | Some common uses of `ectool` include:
20 |
21 | - Accessing the EC console: `ectool console`
22 | - Controlling the fan with `ectool fanduty `
23 | - Set the keyboard backlight in devices that have it: `ectool pwmsetkblight `
24 |
--------------------------------------------------------------------------------
/src/docs/getting-started/prerequisites.md:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 |
3 | :::warning
4 | Before getting started, it is important to know that this isn't a simple, one-click process. You must be able to read and understand the documentation in order to successfully modify your device. There is a risk of bricking your device, losing data, etc. YOU ARE RESPONSIBLE FOR YOUR OWN DEVICE!
5 | :::
6 |
7 | * A Chrome device you own (managed devices are unable to be modified)
8 | * Some form of external storage, such as a USB flash drive or SD Card
9 | * Some technical skills (installing an os, troubleshooting issues, etc)
10 | * Patience
11 | * Ideally, another computer to save yourself if something goes wrong
12 | * Your device's HWID
13 |
14 | The device's HWID, often referred to as the board name, is used to identify your device and determine whether or not it is supported. Avoid using marketing names to identify your device, such as "HP Chromebook 14A", as they will usually lead to confusion since OEMs like to recycle the same name between many different devices.
15 |
16 | To find your HWID, either boot into [recovery mode](https://docs.mrchromebox.tech/docs/boot-modes/recovery.html) and look at the bottom of the screen, where it says MODEL, or open `chrome://system` in Chrome and search for `HWID`.
17 |
18 | :::tip
19 | Most of the HWID can be ignored. For example, the most important part is `CAVE` in `CAVE D25-A4B-E4E-33C` and `HAYATO` in `HAYATO-YLRO C6B-C2C-F4F-V9P-G2I-A9Q`.
20 | :::
21 |
--------------------------------------------------------------------------------
/src/docs/installing/macos-firmware.md:
--------------------------------------------------------------------------------
1 | # macOS Firmware
2 |
3 | It is recommended to flash coreboot with the Intel Management Engine interface enabled to prevent bugs after waking from sleep.
4 | Without the ME interface enabled, the following bugs can occur after waking from sleep:
5 |
6 | - Blank Electron / Chromium apps
7 | - Buggy video playback in web browsers like Firefox or Safari
8 | - Display/Wallpaper settings in SysPref/SysSettings
9 | - Logging out freezes your system
10 |
11 | ## Custom Firmware
12 |
13 | ### Building Manually
14 |
15 | 1. Follow the steps [here](https://docs.mrchromebox.tech/docs/support/compiling.html) to download the toolchain and build the firmware
16 | - Continue these steps once `build-uefi.sh ` has been ran
17 | 2. Run `make menuconfig`. You will be greeted by a menu which looks like the following:
18 |
19 | 
20 |
21 | 3. Select `Chipset`
22 | 4. Select `Disable HECI1 at the end of boot` then press `N` to disable. The asterik should be gone:
23 |
24 | 
25 |
26 | 5. Use the right arrow keys to select `Save` at the bottom, then press `Ok`
27 | 6. Use the right/left arrow keys to select `Exit` until back at the prompt.
28 | 7. Run `make -j$(nproc)` to build the firmware.
29 | 8. The output will be found at `./build/coreboot.rom`
30 |
31 | ## Flashing Firmware
32 |
33 | Follow the steps [on this page](https://docs.mrchromebox.tech/docs/firmware/manual-flashing.html) to flash the new firmware.
34 |
--------------------------------------------------------------------------------
/src/docs/installing/distros.md:
--------------------------------------------------------------------------------
1 | # Notes for non-standard Linux distributions
2 |
3 | ::: warning
4 | **Advanced users only!**
5 | This page is not meant for troubleshooting
6 | :::
7 |
8 | ::: danger
9 | **We will not help you if you get stuck while using an unsupported distribution!**
10 | :::
11 |
12 | This page contains informations useful to get non-standard or niche Distros to work.
13 |
14 | ## Audio
15 |
16 | ### alsa-ucm2 for Chromebooks
17 |
18 | You need custon alsa-ucm2 configs that arent available upstream
19 |
20 | You can get them [here](https://github.com/WeirdTreeThing/alsa-ucm-conf-cros)
21 |
22 | If your distro isnt FHS-compliant, you can specify the ucm location via an enviromental variable
23 |
24 | ```bash
25 | export ALSA_CONFIG_UCM2 = "/share/alsa/ucm2";
26 | ```
27 |
28 | ### Audio setup modprobes
29 |
30 | You can find the right modprobe configs by browsing [the audio script](https://github.com/WeirdTreeThing/chromebook-linux-audio/blob/main/setup-audio)
31 |
32 | ## Keyboard mapping
33 |
34 | ### libinput configuration
35 |
36 | Put this in `/etc/libinput/local-overrides.quirks`: ([Source](https://github.com/WeirdTreeThing/cros-keyboard-map/blob/main/local-overrides.quirks))
37 |
38 | ```ini
39 | [keyd virtual keyboard]
40 | MatchName=keyd virtual keyboard
41 | AttrKeyboardIntegration=internal
42 | ModelTabletModeNoSuspend=1
43 | ```
44 |
45 | ### keyd keymap
46 |
47 | Install [keyd (Github)](https://github.com/rvaiya/keyd)
48 |
49 | A configuration file can be accuired with [cros-keyboard-map](https://github.com/WeirdTreeThing/cros-keyboard-map). Some special cases have configs in the configs folder. For all other devices use `cros-keyboard-map.py`.
50 |
--------------------------------------------------------------------------------
/.github/workflows/pages.yml:
--------------------------------------------------------------------------------
1 | # This workflow uses actions that are not certified by GitHub.
2 | # They are provided by a third-party and are governed by
3 | # separate terms of service, privacy policy, and support
4 | # documentation.
5 | # Sample workflow for building and deploying a Jekyll site to GitHub Pages
6 | name: Deploy Vuepress site to Pages
7 | on:
8 | push:
9 | branches: ["main"]
10 | # Allows you to run this workflow manually from the Actions tab
11 | workflow_dispatch:
12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13 | permissions:
14 | contents: read
15 | pages: write
16 | id-token: write
17 | # Allow one concurrent deployment
18 | concurrency:
19 | group: "pages"
20 | cancel-in-progress: true
21 | jobs:
22 | # Build job
23 | build:
24 | runs-on: ubuntu-latest
25 | steps:
26 | - name: Checkout
27 | uses: actions/checkout@v3
28 | - name: NodeJS
29 | uses: actions/setup-node@v3
30 | with:
31 | node-version: '18'
32 | - name: Build with NodeJS
33 | # Outputs to the './_site' directory by default
34 | run: npm i && npm run build && mv src/.vuepress/dist/ "./_site"
35 | - name: Upload artifact
36 | # Automatically uploads an artifact from the './_site' directory by default
37 | uses: actions/upload-pages-artifact@v3
38 | # Deployment job
39 | deploy:
40 | environment:
41 | name: github-pages
42 | url: ${{ steps.deployment.outputs.page_url }}
43 | runs-on: ubuntu-latest
44 | needs: build
45 | steps:
46 | - name: Deploy to GitHub Pages
47 | id: deployment
48 | uses: actions/deploy-pages@v4
49 |
--------------------------------------------------------------------------------
/src/.vuepress/styles/index.scss:
--------------------------------------------------------------------------------
1 | //Custom Styles here.
2 |
3 | .home .hero img {
4 | max-width: 450px !important;
5 | }
6 |
7 | .home_footer {
8 | text-align: center;
9 | padding-bottom: 1rem;
10 | }
11 |
12 | .home_footer div {
13 | font-size: 17px;
14 | margin-block-start: 1em;
15 | margin-block-end: 1em;
16 | }
17 |
18 | :root {
19 | scroll-behavior: smooth;
20 | --back-to-top-z-index: 5;
21 | --back-to-top-color: #3056d5;
22 | --back-to-top-color-hover: #3056d5;
23 | --content-width: inherit !important;
24 |
25 | --vp-c-accent: #3D50F5;
26 | --vp-c-accent-bg: #3D50F5;
27 | --vp-c-accent-hover: #4e5ff8;
28 | --badge-c-tip-bg: #45d48c;
29 | }
30 |
31 | :root[data-theme='dark'] {
32 | --vp-c-accent: #B3C7FF;
33 | --vp-c-accent-bg: #B3C7FF;
34 | --vp-c-accent-hover: #778bc2;
35 | --badge-c-tip-bg: #30d56f;
36 | }
37 |
38 | .sidebar::-webkit-scrollbar {
39 | width: 0%;
40 | height: 0%;
41 | }
42 |
43 | .navbar{
44 | background-color: var(--c-nav);
45 | border: none;
46 | }
47 |
48 | .sidebar{
49 | background-color: var(--c-nav);
50 | font-size: 14px;
51 | border: none;
52 | margin-top: 1px;
53 | }
54 |
55 | .scrollable-code div[class^="language-"]{
56 | max-height: 450px;
57 | overflow-y: auto;
58 | }
59 |
60 | .scrollable-code div pre{
61 | margin-top: 0 !important;
62 | margin-bottom: 0 !important;
63 | }
64 |
65 | .scrollable-code div .line-numbers{
66 | border-right: 1px solid var(--code-hl-bg-color);
67 | border-radius: 6px 0 0 6px;
68 | padding-bottom: 1.3rem;
69 | }
70 |
71 | .scrollable-code div[class^="language-"]::after {
72 | display: none;
73 | }
74 |
75 | div.theme-default-content:not(.custom), footer.page-meta:not(.custom), nav.page-nav:not(.custom) {
76 | max-width: 1800px;
77 | }
78 |
79 |
--------------------------------------------------------------------------------
/src/docs/installing/installing-linux.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: ./
3 | next: post-install
4 | ---
5 |
6 | # Installing Linux
7 |
8 | Thanks to recent advancements in the chrultrabook community, Linux works really well on most Chromebooks.
9 |
10 | ::: tip
11 | Only Linux kernel 6.6 or newer is supported.
12 | :::
13 |
14 | ## Recommended Distributions
15 |
16 | ::: warning
17 | Old (>1 year) LTS releases **may have issues** and are not supported.
18 | One possible workaround for Debian 12 (Bookworm) and Ubuntu is using a custom kernel. In case of Debian, the [audio script](#fixing-audio) will automatically install it for you. Note that not all issues can be solved with a custom kernel, as the rest of the software on the system is still old.
19 | :::
20 |
21 | **Recommended distros as of December 2024 (in no particular order) are:**
22 |
23 | - Arch Linux or EndeavourOS
24 | - Fedora or Ultramarine Linux
25 | - openSUSE Tumbleweed
26 | - Pop!\_OS
27 |
28 | ## Installation
29 |
30 | 1. Create a bootable Linux USB.
31 | 2. Plug the USB Drive into the Chromebook.
32 | 3. Turn on the Chromebook, press ESC at the POST screen (when the coreboot logo appears), and select your USB to boot from.
33 | 4. Install as you would on any other computer.
34 |
35 | ## Fixing Audio
36 |
37 | You will likely have audio issues after installing Linux. Run the following script to fix them.
38 |
39 | ### Prerequisites
40 |
41 | - Python 3.10 or newer
42 | - Git
43 |
44 | ::: danger
45 | Using AVS on a device with max98357a will blow your speakers. You have been warned.
46 | :::
47 |
48 | #### How to run the script
49 |
50 | 1. Open a terminal.
51 | 2. `git clone https://github.com/WeirdTreeThing/chromebook-linux-audio.git`
52 | 3. `cd chromebook-linux-audio`
53 | 4. `./setup-audio`
54 |
55 | For more information please see [WeirdTreeThing's repo](https://github.com/WeirdTreeThing/chromebook-linux-audio)
56 |
--------------------------------------------------------------------------------
/src/docs/installing/dualboot.md:
--------------------------------------------------------------------------------
1 | # Partitioning Instructions for Dual Booting
2 |
3 | After using the Firmware Utility Script to install/update RW_LEGACY, before booting a Linux distro ISO, you will need to shrink the stateful partition to create space for your Linux installation. You can do this from ChromeOS using [CRAP](https://github.com/chrultrabook/crap), a partitioning tool developed by the chrultrabook community.
4 |
5 | ::: warning
6 | CRAP is the preferred method for resizing partitions to dual boot because it only resizes the stateful partition. Using `chrx`, which resizes the ROOT-C and KERN-C ChromeOS partitions, and changes the disk layout, can cause unintended effects.
7 | :::
8 |
9 | ## Using CRAP
10 |
11 | - Run the below command from VT-2 as root. CRAP can only be run in VT-2 [Ctrl + Alt + 🡢 (F2)]
12 | - `bash <(curl -L https://tinyurl.com/crap-cb-01)`
13 | - Then, follow the steps displayed onscreen.
14 |
15 | ## Installing Linux
16 |
17 | Continue with the guide at [Installing Linux](installing-linux.md). On the partitioning screen of your distro's installer, choose to partition manually. Create the new partitions for Linux in the free space you have just created.
18 |
19 | ::: tip
20 | When choosing where to create the EFI system partition (ESP) for your Linux installation, you can reformat and use ChromeOS' ESP (partition 12) as it is not used by ChromeOS. This also avoids edk2 trying to boot from the ChromeOS ESP by default.
21 | :::
22 |
23 | ## Reverting
24 |
25 | Should you want to remove your Linux dualboot setup and only use ChromeOS, simply remove the Linux partitions using the CLI disk tools (e.g. `cfdisk`) present in ChromeOS, and run CRAP again to expand the stateful partition back to its original size.
26 |
27 |
28 |
29 | ---
30 |
31 | Read more about ChromeOS' disk layout [here](https://www.chromium.org/chromium-os/developer-library/reference/device/disk-format/)
32 |
--------------------------------------------------------------------------------
/src/docs/installing/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: false
3 | next: false
4 | ---
5 |
6 | # Installing an OS
7 |
8 | ::: tip
9 | Be sure to check the [devices page](../devices.md) to see what you can run.
10 | :::
11 |
12 | ## Windows
13 |
14 | ### Pros of Windows
15 |
16 | - Works on most platforms with minimal tweaking¹
17 | - Generally has better application support
18 | - Better game support
19 |
20 | ### Cons of Windows
21 |
22 | - Audio driver is paid (10 USD) for Skylake (6th generation) and newer devices
23 | - USB4/Thunderbolt driver is paid (20 USD) for **TigerLake** (11th generation Intel processors) and **newer** generations on devices that require them
24 | - Requires the user to install many drivers
25 | - AVS and SOF users may experience instability at times
26 |
27 | ### [Installing Windows →](installing-windows.md)
28 |
29 |
30 |
31 | ¹Some devices such as CELES need workarounds. Refer to the [known issues page](known-issues.html) to check whether you need patches.
32 |
33 | ## Linux
34 |
35 | ### Pros of Linux
36 |
37 | - Free audio support
38 | - Lightweight and optimal for Chrultrabooks with low storage / slow CPUs
39 | - Most hardware (biggest exception is audio) will work out of the box
40 |
41 | ### Cons of Linux
42 |
43 | - Potentially difficult for a new user (depending on the distro of choice)
44 | - Requires some work on the end user (running audio script, configuring keyboard mapping)
45 | - AVS and SOF users experience instability at times
46 |
47 |
48 |
49 | ### [Installing Linux →](installing-linux.md)
50 |
51 | ## macOS
52 |
53 | ### Pros of macOS
54 |
55 | - OS experience is near identical to a Mac
56 |
57 | ### Cons of macOS
58 |
59 | - Battery life is subpar
60 | - Hardware based DRM (e.g AppleTV.app) is broken
61 | - No audio, mic, or 3.5mm support¹
62 | - Doesn't support all devices.
63 | - Often takes up to a week or longer to set up.
64 | - Limited support
65 |
66 | ::: tip
67 | Any Chromebook with an ARM, Celeron or Pentium CPU is not supported. AMD Ryzen might have support in the future.
68 | :::
69 |
70 | ### [Installing macOS →](installing-macos.md)
71 |
--------------------------------------------------------------------------------
/src/docs/contributing.md:
--------------------------------------------------------------------------------
1 | # Supporting the Docs
2 |
3 | Want to help support the docs? Well there's some ways you can help!
4 |
5 | ## Contributing via Issues
6 |
7 | Contributing via Issues is pretty simple but there are some rules:
8 |
9 | - Reserve the issues tab exclusively for documentation-related matters; refrain from discussing personal support issues or OS installation problems there.
10 | - When reporting a typo or suggesting better clarification, please specify the page where the issue is found. It would be helpful to avoid searching extensively for these problems.
11 |
12 | ## Contributing via PRs
13 |
14 | Some guidelines when contributing via PRs:
15 |
16 | - Use your brain (please).
17 | - Proofread your submissions.
18 | - Pull Requests may be rejected if they do not align with the docs's content or if they contain inaccurate information. Generally, we will provide reasons for rejection or request revisions.
19 | - Additionally, it would be appreciated if you can provide sources for significant commits. This helps us verify the validity of the information you provide.
20 | - Ensure that the pages adhere to the markdown style used in the docs.
21 |
22 | ## How to Contribute
23 |
24 | The best way to test your commits and ensure proper formatting is by forking the repository, making and testing changes locally, then contributing with a pull request.
25 |
26 | ### Simple step-by-step guide
27 |
28 | - Install NodeJS
29 | - You can download NodeJS from [the NodeJS download page](https://nodejs.org/en/download).
30 | - [Fork this repo](https://github.com/chrultrabook/docs/fork/)
31 | - Clone your fork, open a terminal and `cd` to it
32 | - Run the `npm i` command, then `npm run dev`
33 | - Visit `localhost:8080` in your web browser and preview your changes.
34 |
35 | ::: tip
36 | Vuepress will automatically regenerate pages when you make changes.
37 | :::
38 |
39 | ## Tips
40 |
41 | Some tools that make contributing a bit easier:
42 |
43 | - [Visual Studio Code](https://code.visualstudio.com/)
44 | - [Typora](https://typora.io/) for real time markdown rendering.
45 | - [TextMate](https://macromates.com/) for easy and powerful mass find/replace.
46 | - [GitHub Desktop](https://desktop.github.com/) for more user friendly GUI.
47 |
--------------------------------------------------------------------------------
/src/.vuepress/public/chrome.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/docs/getting-started/choose-os-fw.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: prerequisites
3 | next: ../installing/
4 | ---
5 |
6 | # Choosing an OS and Boot Method
7 |
8 | ## OS
9 |
10 | The OS you choose to install is mostly up to your preference, but there are a few compatibility notes. The TL;DR is: Windows and Linux work on most devices with most hardware supported, macOS is supported on a few devices with some hardware supported, and all ARM devices (not Intel/AMD) only support Linux. Check the [devices page](/docs/devices.html) for more detailed notes for each supported device.
11 |
12 | ## Boot Method
13 |
14 | There are three different ways to boot an alternate OS on your device, each with pros and cons.
15 |
16 | ### The Stock Bootloader (depthcharge)
17 |
18 | Since ChromeOS is Linux with a custom userspace, the stock bootloader (depthcharge) can load any Linux kernel. This method works on any device and does not modify the firmware at all. It is the only option on ARM devices since they do not have any custom firmware. If you choose this method, refer to FyraLabs' [submarine guide](https://developer.fyralabs.com/submarine).
19 |
20 | ### RW_LEGACY (AltFW)
21 |
22 | RW_LEGACY (later renamed to AltFW) is a feature in stock firmware that allows you to install a custom payload, either SeaBIOS or edk2, depending on the device. They provide either a standard BIOS or UEFI respectively. The RW_LEGACY firmware region can be written without disabling firmware write protection, which makes it fairly easy to install. RW_LEGACY is only supported on x86 devices (Intel and AMD). RW_LEGACY can only boot Linux and is mostly used to dualboot ChromeOS and Linux. Using RW_LEGACY with only Linux installed is not ideal as you have to deal with the limitations/bugs of the stock firmware, such as having to go through the developer mode screen on each boot, and having certain hardware not work, like touchscreens. If you choose this method, see the firmware flashing section below.
23 |
24 | ### UEFI Full Rom Firmware
25 |
26 | UEFI Full Rom replaces the entire firmware with a custom build using upstream coreboot and edk2. It esentially turns your device into a regular pc with UEFI firmware. This method has the most risk as the entire firmware is being replaced. It also requires you to disable firmware write protection. Full Rom supports booting Windows, Linux, and macOS on supported devices. If you choose this method, see the firmware flashing section below.
27 |
28 | ## Firmware Flashing
29 |
30 | If you chose to use RW_LEGACY or Full Rom firmware, you need to flash custom firmware before you can install your OS. Read the [MrChromebox](https://mrchromebox.tech) firmware flashing guide in order to flash the firmware on your device. Once you have completed the firmware installation, continue to [Installing an OS](/docs/installing/).
31 |
--------------------------------------------------------------------------------
/src/docs/installing/macos-hibernation.md:
--------------------------------------------------------------------------------
1 | # macOS Hibernation
2 |
3 | macOS by default will try to use hibernation after sleeping for a predetermined amount of time.
4 | Some fixes in the `config.plist` are required in order to take advantage of this:
5 |
6 | - Disable `Booter->Quirks->DevirtualiseMmio`
7 | - Set `Misc->Boot->HibernateMode` to `Auto`
8 | - By default, OpenCore will not look for hibernated images of macOS.
9 | - Set `Misc->Boot->HibernationSkipsPicker` to `True` to skip the picker when resuming from hibernation
10 | - While not strictly required, this speeds up resume times and prevents accidently booting another OS and changing hardware state underneath macOS.
11 | - Create a reserved memory region under `UEFI->ReservedMemory` with the properties:
12 |
13 | | Field | Type | Value |
14 | | ------- | ------- | ----------------------------------------- |
15 | | Comment | String | Fix black screen on wake from hibernation |
16 | | Enabled | Boolean | True |
17 | | Address | Number | 569344 |
18 | | Enabled | Boolean | True |
19 | | Size | Number | 4096 |
20 | | Type | String | RuntimeCode |
21 |
22 | ## Testing Hibernation
23 |
24 | To test hibernation, it is recommended to run `sudo pmset -a hibernatemode 25`.
25 | This will force macOS to hibernate immediately whenever the lid is closed or `Sleep` is selected in the menu at the top left.
26 |
27 | ### macOS enters S3 sleep instead of shutting down
28 |
29 | Some models (such as `KLED`) have drives not marked as internal, which prevents macOS from entering hibernation.
30 | To fix this, add the `built-in` property to the PCI device under `DeviceProperties->Add->`:
31 |
32 | | Field | Type | Value |
33 | | -------- | ---- | ---------- |
34 | | built-in | Data | <01000000> |
35 |
36 | You may need to add an ACPI device as well.
37 | If an ACPI device does not exist to represent the NVMe or eMMC drive, then device properties will not be applied.
38 | An example SSDT can be found [here](https://github.com/1Revenger1/Acer-Spin-713-Hackintosh/blob/main/src/ACPI/SSDT-Devices.dsl).
39 |
40 | ## Hibernate Modes
41 |
42 | Pmset exposes a few different hibernation modes which can be set through `sudo pmset -a hibernatemode `:
43 |
44 | - 0: Disables hibernation
45 | - 3: Hibernates after either `standbydelaylow` or `standbydelayhigh` seconds of sleep
46 | - Which one is used is dependent on the battery percentage. Anything above `highstandbythreshold` will use `standbydelayhigh` instead of `standbydelaylow`.
47 | - 25: Hibernates instead of S3 sleep
48 |
49 | When using hibernate mode 3, macOS may keep sleeping even after the standby time has elapsed.
50 | [`HibernationFixup.kext`](https://github.com/acidanthera/HibernationFixup) may be required in this case, and provides options to fine tune when the Chromebook is allowed to sleep.
51 |
--------------------------------------------------------------------------------
/devices/index.js:
--------------------------------------------------------------------------------
1 | //node index.js to run
2 |
3 | /*
4 | devices.json should not be modified independently from the one in mrchromebox's website.
5 | */
6 |
7 | /*
8 | os-support.json overrides/adds to any data existing in devices.json from mrchromebox.
9 | How the formatting in os-support.json works
10 |
11 | {
12 | "cpu generation": {
13 | "default_windows": "Default Windows support message.",
14 | "default_mac": "Default macos support message.",
15 | "default_linux": "Default linux support message.",
16 | "default_rwLegacy": false, //null = EOL (display red EOL message), true = supported (display checkbox), false = not supported
17 | "default_fullrom": true, //true = supported, false = not supported.
18 | "default_wpmethod": ""switch", //default wp method link.
19 | "devices": [ //This is an array
20 | {
21 | "device": [
22 | "Array of chromebook models",
23 | "that this boardname",
24 | "is known by."
25 | ],
26 | "boardname": "BOARDNAME",
27 | "linux": "Display linux support message **instead of** the default message."
28 | },
29 | {
30 | "device": [
31 | "Coolio chromebook name"
32 | ],
33 | "boardname": "BOARDNAME",
34 | "rwLegacy": null,
35 | "wpMethod": "Different wp method link/method",
36 | "windows": "Display Windows support message **instead of** the default message."
37 | },
38 | ]
39 | }
40 | }
41 |
42 | */
43 |
44 | // modified version of https://stackoverflow.com/a/34749873
45 | function isObject(item) {
46 | return (item && typeof item === 'object' && !Array.isArray(item));
47 | }
48 | function mergeDevices(target, ...sources) {
49 | if (!sources.length) return target;
50 | const source = sources.shift();
51 |
52 | if (isObject(target) && isObject(source)) {
53 | for (const key in source) {
54 | if (isObject(source[key])) {
55 | if (!target[key]) Object.assign(target, { [key]: {} });
56 | mergeDevices(target[key], source[key]);
57 | } else if (source[key] instanceof Array && target[key] instanceof Array && key === "devices") {
58 | for (const entry of target[key]) {
59 | // make MrChromebox WP image URLs absolute
60 | if (entry.hasOwnProperty("wpMethod")) entry.wpMethod = entry.wpMethod.replace("href=\"/images/wp/", "href=\"https://docs.mrchromebox.tech/images/wp/");
61 | }
62 | for (const entry of source[key]) {
63 | // try to find matching boardname and copy it
64 | let dest = target[key].findIndex(i => i.boardname === entry.boardname);
65 | if (dest >= 0) Object.assign(target[key][dest], entry);
66 | }
67 | } else {
68 | Object.assign(target, { [key]: source[key] });
69 | }
70 | }
71 | }
72 |
73 | return mergeDevices(target, ...sources);
74 | }
75 |
76 | console.log("Loading...");
77 |
78 | const path = require("path");
79 | const fs = require("fs");
80 |
81 | fs.writeFileSync(
82 | path.join(__dirname, "../src/.vuepress/public/devices.json"),
83 | JSON.stringify(
84 | mergeDevices(
85 | JSON.parse(fs.readFileSync(path.join(__dirname, "devices.json"), "utf-8")),
86 | JSON.parse(fs.readFileSync(path.join(__dirname, "os-support.json"), "utf-8"))
87 | )
88 | )
89 | );
90 |
91 | console.log("Done!");
92 |
--------------------------------------------------------------------------------
/src/docs/installing/installing-windows.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: ./
3 | next: post-install
4 | ---
5 |
6 | # Installing Windows
7 |
8 | ::: warning
9 | Do not use Windows 8 or older. Only recent Windows 10 and 11 builds are supported.
10 | :::
11 |
12 | ::: danger
13 | Do not use unofficial versions of Windows, such as Ghost Specter or tiny10/11. **They are not supported** and may contain **undetectable malware** and/or security vulnerabilities.
14 | :::
15 |
16 | 1. Get a USB containing a Windows image. Ventoy, Rufus, and the official Windows media creation tool are the only methods that can be used to create a Windows USB.
17 |
18 | 2. Bypassing Windows 11 installation checks:
19 |
20 | 1. At the Windows installer, select "Repair my Computer".
21 | 2. Select "Command prompt". (May be hidden under an advanced section)
22 | 3. Type in `regedit` and press Enter
23 | 4. Navigate to `HKEY_LOCAL_MACHINE\SYSTEM\Setup`
24 | 5. Right click `Setup` and create a new `Key` called `LabConfig`
25 | 6. Right click `LabConfig` and create new `DWORD` (32-bit) called `BypassSecureBootCheck` and set its value to 1
26 | 7. Right click `LabConfig` and create new `DWORD` (32-bit) called `BypassTPMCheck` and set its value to 1
27 | 8. Close Registry Editor.
28 | 9. Run `setup` in the command prompt.
29 | 10. Install Windows as you would normally.
30 |
31 | 3. Install drivers:
32 |
33 | - See [Coolstar's Windows Install Helper](https://coolstar.org/chromebook/windows-install.html) for drivers. Some of the drivers may be paid.
34 |
35 | ## Installing `.cab` drivers
36 |
37 | Cab drivers are a little weird, but they're easy to install.
38 |
39 | 1. Create a new folder.
40 | 2. Open your cab driver using Windows Explorer. 7Zip will not work.
41 | 3. Copy all the files to that empty folder.
42 | 4. Enable the option to show file extensions.
43 | 5. Right click on all the `.inf` files, and select install.
44 | 6. Reboot.
45 |
46 | ## Paid Drivers
47 |
48 | Please see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html) for a step by step tutorial on purchasing drivers.
49 |
50 | ### What drivers do I need to buy?
51 |
52 | | CPU Generation | Paid Drivers | Notes |
53 | | ------------------ | ------------ | ----------------------------------------------------------------------------- |
54 | | **Sandybridge** | n/a | |
55 | | **Ivybridge** | n/a | |
56 | | **Haswell** | n/a | |
57 | | **Broadwell** | n/a | |
58 | | **Baytrail** | n/a | |
59 | | **Braswell** | n/a | |
60 | | **Skylake** | AVS | Models with a Celeron, Pentium, i3 or m3 CPU are eligible for a AUE discount. |
61 | | **Apollo Lake** | AVS or SOF | Can use either SOF or AVS |
62 | | **Kaby Lake** | AVS | |
63 | | **Amber Lake** | AVS | |
64 | | **Gemini Lake** | SOF | |
65 | | **Comet Lake** | SOF | |
66 | | **Picasso / Dali** | n/a | |
67 | | **Tiger Lake** | SOF, TB4 | TB4 and SOF can be purchased as a bundle. |
68 | | **Jasper Lake** | SOF | |
69 | | **Alder Lake** | SOF, TB4 | TB4 and SOF can be purchased as a bundle. |
70 | | **Cezanne** | SOF | |
71 | | **Mendocino** | SOF | |
72 |
--------------------------------------------------------------------------------
/src/docs/installing/installing-macos.md:
--------------------------------------------------------------------------------
1 | # Installing macOS
2 |
3 | Before we begin, it's important to know whether your Chromebook is even supported:
4 |
5 | - ARM/AMD CPUs are not supported.
6 | - Intel Celeron / Pentium CPUs are not supported.
7 | - Tiger Lake (11th gen) CPUs and newer are not supported.
8 | - You need at least 32GB of eMMC storage.
9 |
10 | **You will also need:**
11 |
12 | - Patience
13 | - This is not a one click setup thing. It usually takes one or more weeks to have a stable hack.
14 | - A USB drive
15 | - 4 gigabytes or more for a online installer.
16 | - 32 gigabytes or more for offline installer.
17 | - The ability to use a command line
18 | - We will not help you if you do not know how to `cd` to a directory.
19 |
20 | ## Tested Devices
21 |
22 | ::: tip
23 | This list is incomplete. Feel free to improve it.
24 | :::
25 |
26 | - Asus C425 (LEONA)
27 | - Asus C434 (SHYVANA)
28 | - Asus C433 (SHYVANA)
29 | - Acer C720 / C720P (PEPPY)
30 | - Dell Chromebook 13 7310 (LULU)
31 | - Google Pixelbook (2017) (EVE)
32 | - Google Pixel Slate (NOCTURNE)
33 | - Google Pixelbook Go (2019) (ATLAS)
34 | - Dell Latitude 7410 Chromebook Enterprise (DRALLION)
35 | - Asus Chromebox 2 (CN62) (GUADO)
36 | - HP Chromebook x360 14c (DRAGONAIR)
37 | - Acer Chromebook Spin 713 (CP713-2W) (KLED)
38 | - Acer Chromebook 14 for Work (LARS)
39 | - Acer Chromebook 11 (C771/C771T) (LARS)
40 |
41 | **The following devices have dedicated guides written for them:**
42 |
43 | - [ChromebookOSX](https://github.com/meghan06/ChromebookOSX):
44 |
45 | - Asus C425 (LEONA)
46 | - Asus C434 (SHYVANA)
47 | - Asus C433 (SHYVANA)
48 |
49 | - [PixelbookOSX](https://github.com/olm3ca/PixelbookOSX):
50 |
51 | - Google Pixelbook (2017) (EVE)
52 | - Google Pixel Slate (NOCTURNE)
53 | - Google Pixelbook Go (2019) (ATLAS)
54 |
55 | - [macOS-Dragonair](https://github.com/mine-man3000/macOS-Dragonair):
56 |
57 | - HP Chromebook x360 14c (DRAGONAIR)
58 |
59 | - [LuluMacOS](https://isi95010.github.io/LuluMacOS/)
60 | - Dell Chromebook 13 7310 (LULU)
61 |
62 | ## Custom Firmware
63 |
64 | It is recommended to [flash Coreboot firmware](macos-firmware) with the Management Engine Interface enabled on Skylake and newer.
65 | Without the ME interface enabled, the following bugs can occur after waking from sleep:
66 |
67 | - Blank Electron / Chromium apps
68 | - Buggy video playback in web browsers like Firefox or Safari
69 | - Display/Wallpaper settings in SysPref/SysSettings
70 | - Logging out freezes your system
71 |
72 | ## Installation
73 |
74 | Start by following the [Dortania guide](https://dortania.github.io/OpenCore-Install-Guide) for your CPU generation.
75 | Amber Lake Chromebooks should follow config.plist setup for Kaby Lake.
76 | Add the following SSDTs, kexts and modifications as needed:
77 |
78 | ### config.plist Fixes
79 |
80 | - Disable `Booter->Quirks->DevirtualiseMmio`: Fixes NVRAM and other runtime EFI services
81 |
82 | ### SSDTs and ACPI Fixes
83 |
84 | - [croscorebootpatch](https://github.com/meghan06/croscorebootpatch): Fixes freeze during boot when using coreboot 4.20 and newer. Not needed when custom rom is used.
85 | - [Keyboard Map](https://github.com/1Revenger1/Acer-Spin-713-Hackintosh/blob/main/src/ACPI/SSDT-ChromeKeys.dsl): Maps FNx keys to ChromeOS mapping. This is an example, you may need to do your own mapping.
86 | - Will need to be compiled with either `iASL` or `MaciASL`.
87 | - [Fake Ambient Light Sensor](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/Source/SSDT-ALS0.dsl): Creates a fake ambient light sensor which is needed by macOS to recognize the keyboard backlight.
88 | - This is only needed if your device does not come with a light sensor.
89 | - A pre-compiled version comes in OpenCore's release zip under `Docs/AcpiSamples/Binaries/SSDT-ASL0.aml`
90 |
91 | ### Kexts
92 |
93 | - [EmeraldSDHC.kext](https://github.com/acidanthera/EmeraldSDHC/releases): eMMC driver
94 | - [VoodooPS2.kext](https://github.com/1Revenger1/VoodooPS2/releases): Fork of Acidanthera's VoodooPS2 which allows mapping keyboard brightness and other useful keys
95 | - [CrosEC.kext](https://github.com/1Revenger1/CrosEC/releases): Adds keyboard brightness, tablet mode, and other functionality
96 |
97 | #### Snapshot (cmd + r) or (ctrl + r) your `config.plist` after making modifications
98 |
99 | ::: danger
100 | If you dualboot with the SSDTs mentioned above, you might run into issues on other OSes. An `OSI_` check is not present in these SSDTs.
101 | :::
102 |
--------------------------------------------------------------------------------
/src/.vuepress/config.js:
--------------------------------------------------------------------------------
1 | import { webpackBundler } from '@vuepress/bundler-webpack'
2 | import { registerComponentsPlugin } from '@vuepress/plugin-register-components'
3 | import { searchPlugin } from '@vuepress/plugin-search'
4 | import { defaultTheme } from '@vuepress/theme-default'
5 | import { description } from '../../package.json'
6 |
7 | import path from "path"
8 |
9 | const base = "/";
10 |
11 | export default {
12 | bundler: webpackBundler({
13 | configureWebpack: (config) => {
14 | config.devtool = 'source-map';
15 | config.optimization = {
16 | usedExports: true,
17 | minimize: true
18 | }
19 | config.performance = {
20 | maxAssetSize: 400000,
21 | maxEntrypointSize: 400000
22 | }
23 | },
24 | }),
25 | title: 'Chrultrabook Docs',
26 | description: description,
27 | base,
28 | head: [
29 | ['meta', { name: 'theme-color', content: '#6a4aec' }],
30 | ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
31 | ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
32 | ['meta', { rel: 'icon', href: base + 'favicon.ico', sizes: '16x16 32x32 48x48 64x64', type: 'image/vnd.microsoft.icon' }],
33 | ],
34 | theme: defaultTheme({
35 | logo: '/favicon.ico',
36 | accentColor: '#6a4aec',
37 | nextLinks: false,
38 | prevLinks: false,
39 | editLink: false,
40 | contributors: false,
41 | navbar: [
42 | {
43 | text: 'Documentation',
44 | link: '/docs/getting-started/prerequisites.html',
45 | },
46 | {
47 | text: 'Questions?',
48 | link: 'https://forum.chrultrabook.com/'
49 | }
50 | ],
51 | sidebarDepth: 0,
52 | sidebar: [
53 | {
54 | text: 'FAQ',
55 | link: '/docs/faq',
56 | },
57 | {
58 | text: 'Device Support Status',
59 | link: '/docs/devices',
60 | },
61 | {
62 | text: "Getting Started",
63 | children: [
64 | {
65 | text: "Prerequisites",
66 | link: "/docs/getting-started/prerequisites"
67 | },
68 | {
69 | text: "Choosing an OS and Boot Method",
70 | link: "/docs/getting-started/choose-os-fw"
71 | },
72 | ]
73 | },
74 | {
75 | text: "Installing an OS",
76 | link: "/docs/installing/",
77 | collapsible: false,
78 | children: [
79 | {
80 | text: 'Known Issues',
81 | link: '/docs/installing/known-issues',
82 | },
83 | {
84 | text: 'Installing Windows',
85 | link: '/docs/installing/installing-windows'
86 | },
87 | {
88 | text: 'Installing Linux',
89 | link: '/docs/installing/installing-linux',
90 | collapsible: true,
91 | children: [
92 | {
93 | text: 'Partitioning Instructions for Dual Booting',
94 | link: '/docs/installing/dualboot'
95 | },
96 | {
97 | text: 'Notes for non-standard distros',
98 | link: '/docs/installing/distros',
99 | }
100 | ] // */
101 | },
102 | {
103 | text: 'Installing MacOS',
104 | link: '/docs/installing/installing-macos',
105 | collapsible: true,
106 | children: [
107 | {
108 | text: 'Custom macOS firmware',
109 | link: '/docs/installing/macos-firmware',
110 | },
111 | {
112 | text: 'Fixing Hibernation',
113 | link: '/docs/installing/macos-hibernation',
114 | }
115 | ]
116 | },
117 | {
118 | text: 'Post Install',
119 | link: '/docs/installing/post-install',
120 | },
121 | {
122 | text: 'Using ectool',
123 | link: '/docs/installing/ectool',
124 | }
125 | ]
126 | },
127 | {
128 | text: 'Debugging',
129 | link: '/docs/debugging/',
130 | collapsible: false,
131 | children: [
132 | {
133 | text: 'Reporting Bugs',
134 | link: '/docs/debugging/bugreport',
135 | }
136 | ]
137 | },
138 | {
139 | text: 'Contributing',
140 | link: '/docs/contributing',
141 | }
142 | ]
143 | }),
144 | plugins: [
145 | searchPlugin({
146 | maxSuggestions: 12,
147 | isSearchable: (page) => page.path !== '/',
148 | getExtraFields: (page) => {
149 | const tags = page.frontmatter.tags ?? [];
150 | const title = page.title ?? '';
151 | return [...tags, title];
152 | },
153 | hotKeys: ['s', '/', { key: 'f', ctrl: true }],
154 | locales: {
155 | '/': {
156 | placeholder: 'Search',
157 | }
158 | }
159 | }),
160 | registerComponentsPlugin({
161 | components: {
162 | AddScript: path.resolve(__dirname, './components/AddScript.vue'),
163 | },
164 | })
165 | ]
166 | }
167 |
--------------------------------------------------------------------------------
/src/docs/debugging/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | next: false
3 | prev: false
4 | ---
5 |
6 | # Debugging
7 |
8 | ## Grabbing Logs
9 |
10 | - If you are experiencing firmware bugs, provide output from `cbmem` console.
11 | - If you are experiencing issues with Linux, provide output from `dmesg`, `dmidecode` and `journalctl` or `/var/log/messages`, respectively
12 | - If you are experiencing issues with Windows, provide screenshots from Device Manager, Event Viewer, coredumps etc.
13 | - If you are experiencing issues with macOS, please ask for help using the [Chrultrabook Forums](https://forum.chrultrabook.com/).
14 |
15 | ## Firmware
16 |
17 | To debug firmware, you will need the following tools:
18 |
19 | 1. `cbmem` - To view Coreboot logs
20 | 2. `ectool` - To interface with ChromeOS Embedded Controller
21 | 3. SuzyQ - If you are experiencing severe system instability (lockups, crashes), preventing you from on-device debugging.
22 |
23 | To dump the cbmem buffer, follow these steps:
24 |
25 | 1. Download the tar archive from MrChromebox's website:
26 | - `wget https://mrchromebox.tech/files/util/cbmem.tar.gz`
27 | 2. Unzip the file and give the binary executable permissions:
28 | - `tar -xf cbmem.tar.gz;rm cbmem.tar.gz;chmod +x cbmem`
29 | 3. Run `cbmem` and pipe its output to `cbmem.log` file:
30 | - `sudo ./cbmem -1 > cbmem.log`
31 | 4. Upload `cbmem.log` file for further analysis.
32 |
33 | To interface with the Embedded Controller:
34 |
35 | 1. Download the tar archive from MrChromebox's website:
36 | - `wget https://mrchromebox.tech/files/util/ectool.tar.gz`
37 | 2. Unzip the file and give the binary executable permissions:
38 | - `tar -xf ectool.tar.gz;rm ectool.tar.gz;chmod +x ectool`
39 | 3. Issue commands to EC by executing commands, for example setting the fan to 100%:
40 | - `sudo ./ectool --name=cros_ec fanduty 100`
41 | - Running `./ectool help` will provide you with a list of available commands, or you can [take a look at ectool's source code directly](https://chromium.googlesource.com/chromiumos/platform/ec/+/master/util/ectool.c#63)
42 |
43 | ## SuzyQ Debug Cable
44 |
45 | If you need to use SuzyQ, you can use `minicom` or `picocom` for example. It exposes three serial devices:
46 |
47 | 1. AP (CR50) console under /dev/ttyUSB0:
48 | - `minicom -D /dev/ttyUSB0 -b 115200`
49 | 2. Coreboot/platform serial under /dev/ttyUSB1:
50 | - `minicom -D /dev/ttyUSB1 -b 115200`
51 | 3. Embedded Controller console under /dev/ttyUSB2
52 | - `minicom -D /dev/ttyUSB2 -b 115200`
53 |
54 | - Platform serial can be used to debug the payload or kernel, but you need to re-compile coreboot with following configuration options enabled:
55 | `CONSOLE_SERIAL=y`
56 | `EDK2_SERIAL_SUPPORT=y`
57 | - To use SuzyQ as platform debugger, you will also need to append the following to your kernel commandline:
58 | `loglevel=15 console=ttyS4,115200n8`
59 |
60 | ## ACPI and Linux kernelspace
61 |
62 | 1. Download our debugging script.
63 | - `cd ~/Desktop;wget https://raw.githubusercontent.com/chrultrabook/linux-tools/main/debugging.sh`
64 |
65 | It will dump:
66 |
67 | - ACPI tables from sysfs (`/sys/firmware/acpi/*`)
68 | - DMI information (`dmidecode`)
69 | - Coreboot buffer (`cbmem`)
70 | - Linux kernel logs (`dmesg`)
71 | - List of PCI devices (`lspci`)
72 | - List of USB devices (`lsusb`)
73 | - Information about soundcards present in the system and their configuration
74 |
75 | Into `debug-logs.tar.gz` archive on your desktop.
76 |
77 | 2. Run it: `chmod +x debugging.sh;./debugging.sh`
78 |
79 | 3. Upload this file if you need help with troubleshooting.
80 | - Remember to remove WiFi information from dmesg to protect your privacy.
81 |
82 | ## flashrom
83 |
84 | Flashrom is used to read and write from the SPI flash
85 |
86 | ### Read flash
87 |
88 | - `sudo flashrom -p -r `
89 | - Example:
90 | - `sudo flashrom -p internal -r backup.rom`
91 |
92 | ::: danger
93 | If you have an Intel Chromebook, you will need to add `--ifd -i bios` if you want to write to the flash or else flashrom will fail.
94 | :::
95 |
96 | ### Write flash
97 |
98 | - `sudo flashrom -p -w `
99 | - Intel Example:
100 | - `sudo flashrom -p internal --ifd -i bios -w stock.rom`
101 | - AMD Example:
102 | - `sudo flashrom -p internal -w stock.rom`
103 |
104 | ### Write protection
105 |
106 | View status:
107 |
108 | - `sudo flashrom -p internal --wp-status`
109 |
110 | Enable WP:
111 |
112 | - `sudo flashrom -p internal --wp-enable`
113 |
114 | Disable WP:
115 |
116 | - `sudo flashrom -p internal --wp-disable`
117 |
118 | Clear WP range:
119 |
120 | - `sudo flashrom -p internal --wp-range 0 0`
121 |
122 | Common programmers:
123 |
124 | - `internal`: Use this when you run flashrom on the chromebook you want to program.
125 | - `ch341a_spi`: Use this when you use a ch341a external programmer.
126 | - `raiden_debug_spi:target=AP`: Use then when you want to flash using a Suzy-Q cable.
127 |
128 | ## gsctool
129 |
130 | gsctool is used to communicate with the GSC (Google Security Chip) from ChromeOS and is usually used to unlock CCD without removing the back of the Chromebook.
131 |
132 | View status:
133 |
134 | - `sudo gsctool -a -I`
135 |
136 | Unlock CCD:
137 |
138 | - `sudo gsctool -a -o`
139 | - This will prompt you multiple times to press the power button, on the last time, the device will reboot back into verified mode
140 |
--------------------------------------------------------------------------------
/src/docs/faq.md:
--------------------------------------------------------------------------------
1 | # FAQ
2 |
3 | ::: tip
4 | Please read this page before asking for help. Your help request will be pointed to the docs otherwise.
5 | :::
6 |
7 | ## General questions
8 |
9 | ### What OS should I use?
10 |
11 | - This depends on your use case. Only you can answer this question.
12 |
13 | ### Should I use RW_LEGACY or full rom?
14 |
15 | - This depends on what you are looking to use your device for. If you are planning on installing Windows or macOS you need to use full rom. RW_LEGACY only supports linux.
16 |
17 | ### My internal keyboard doesn't work, can I use an external keyboard to get into developer mode?
18 |
19 | - No. The hotkeys will only work on the internal keyboard. Chromeboxes do not have this restriction.
20 |
21 | ### I just want to boot Linux from USB on my Chromebook, what do I need to do?
22 |
23 | - Check the Supported Devices page, to ensure your device has functional RW_LEGACY firmware available. If so, flash RWL (RW_LEGACY firmware) and use that.
24 |
25 | ### Can I disable power-on when I open my Chromebook?
26 |
27 | - No. In what situation would you open your Chromebook without the intention of turning it on anyways.
28 |
29 | ### My Chromebook powers back on when I turn it off. How can I fix this?
30 |
31 | - You Do not. Specific Chromebooks have this bug which takes too much effort to debug. If you were looking to disable power-on when you open the lid because of this, they are completely unrelated.
32 |
33 | ### I just installed the UEFI firmware, and now my device boots to a black screen that says 'shell' - what do I do?
34 |
35 | - you are in the EFI shell; the firmware boots there when it can't find a valid UEFI boot device, either externally (USB, SD) or internally. Just type `exit` to get back to the the UEFI settings menu.
36 |
37 | ### Should I install 32 or 64-bit OS?
38 |
39 | - The UEFI Full ROM firmware only supports 64-bit OS, so be sure to use the 'x86_64' version of whatever OS you want to install. USB media created from 32-bit ISOs will simply fail to boot.
40 |
41 | ### I'm running Legacy boot firmware now - can I switch to the UEFI firmware?
42 |
43 | - If you are using SeaBIOS, you will likely need to re-install your operating system. Otherwise it should work fine.
44 |
45 | ### Help! I can't exit Developer Mode
46 |
47 | - If you are trying to exit Developer Mode but get the error `WARNING: TONORM prohibited by GBB_FORCE_DEV_SWITCH_ON` or find the `Return to secure mode` button missing, you need to reset your GBB flags. You can do that by running [MrChromebox's firmware utility script](https://mrchromebox.tech/#fwscript) and selecting `3) Set Boot Options (GBB flags)`, followed by `5) Reset to factory default`.
48 | - Then exit developer mode by choosing "Return to secure mode" on the bootup screen
49 |
50 | ### Can I modify the fan speed?
51 |
52 | - Yes, using ectool. To set the fan to auto, run: `ectool autofanctrl`. To specify a percentage, run `ectool fanduty [0-100]`.
53 |
54 | ### Can I overclock the fan?
55 |
56 | - No.
57 |
58 | ### I want to buy a Chromebook to run Windows or Linux or macOS -- which should I buy?
59 |
60 | - Any 64 bit Chromebook should work in Windows and Linux. Some require paid drivers (Windows only). For information on macOS requirements, see [this page](installing/installing-macos.md).
61 |
62 |
63 |
64 | ## Windows questions
65 |
66 | ### Should I use Windows 10 or 11?
67 |
68 | - Windows 11 is required for TB4 users. If you Do not have Thunderbolt 4, you may use both 10 or 11.
69 |
70 | ### Can I pay for Windows drivers using PayPal?
71 |
72 | - You can pay via PayPal in Patreon.
73 |
74 | ### My balance shows zero on coolstars portal, what should I do?
75 |
76 | - It may take up to 48 hours for balance to appear in her portal, though it is normally less then 2.
77 |
78 | ### How do I buy the Windows audio/Thunderbolt drivers?
79 |
80 | - Please see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html) for a step by step tutorial on purchasing drivers.
81 |
82 | ### Can I get AVS or SOF drivers for free?
83 |
84 | - No. Only the Linux drivers are free.
85 |
86 | ### Why is there a license error in Device Manager after installing audio drivers?
87 |
88 | - You messed up the license setup. Please refer to [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html).
89 |
90 | ### Will the audio driver still work when re-installing Windows?
91 |
92 | - Yes, on the device the license was created. If the internal drive was replaced, see below.
93 |
94 | ### I upgraded my Chromebooks' internal drive and my audio/Thunderbolt 4 license is not working, what do I do?
95 |
96 | - The license is tied to the serial number of your internal drive. **You do not need to buy another license**. Send CoolStar a message through Patreon, and wait for about a week.
97 |
98 | ### Can I use one driver license across multiple devices?
99 |
100 | - No. One license per device.
101 |
102 |
103 |
104 | ## Linux Questions
105 |
106 | ### Audio isn't working on Debian, Ubuntu or some other Distribution?
107 |
108 | - Old (>1 year) LTS releases may have issues and are not supported. If the [audio script](installing/installing-linux.md#fixing-audio) doesn't fix the issue, try switching to another distro.
109 |
110 | ### What Linux distros are recommended?
111 |
112 | - Please see [this page](installing/installing-linux.md).
113 |
114 | ### How can I get audio working under Linux?
115 |
116 | - Please see [this page](installing/installing-linux.md#fixing-audio)
117 |
118 | ### How do I get my top row keys on Linux to act like how they did on chromeOS?
119 |
120 | - Follow the instructions [in this GitHub repo](https://github.com/WeirdTreeThing/cros-keyboard-map).
121 |
122 |
123 |
124 | ## Hackintosh questions
125 |
126 | ### Can I hackintosh my Celeron/Pentium CPU?
127 |
128 | - No.
129 |
130 | ### Can I hackintosh an AMD CPU?
131 |
132 | - In theory, it might be possible. It has never been tested, and can be considered unsupported.
133 |
--------------------------------------------------------------------------------
/src/.vuepress/public/devices.js:
--------------------------------------------------------------------------------
1 | function generateHTML(devicesJson) {
2 | let html = `
3 |
4 | `;
5 | let first = true;
6 | for (const generation in devicesJson) {
7 | let devices = devicesJson[generation];
8 | if (devices.isExperimental === true && !window.hasOwnProperty("showExperimental")) continue;
9 | devices.devices.forEach((device) => {
10 | //set defaults
11 | if (device.windows === undefined)
12 | device.windows = devices.default_windows;
13 | if (device.linux === undefined) device.linux = devices.default_linux;
14 | if (device.mac === undefined) device.mac = devices.default_mac;
15 | if (device.wpMethod === undefined)
16 | device.wpMethod = devices.default_wpmethod;
17 | if (device.fullrom === undefined)
18 | device.fullrom = devices.default_fullrom;
19 | if (device.rwLegacy === undefined)
20 | device.rwLegacy = devices.default_rwLegacy;
21 | });
22 | if (first) {
23 | first = false;
24 | } else {
25 | html += `
26 |
27 |
28 |
`;
29 | }
30 | html += `
31 |
32 |
${generation}
33 |
34 |
35 |
Device Name
36 |
Board Name
37 |
RW_LEGACY Firmware
38 |
UEFI Firmware (Full ROM)
39 |
WP Method
40 |
Windows Notes
41 |
Linux Notes
42 |
MacOS Notes
43 |
`;
44 |
45 | let windows;
46 | let linux;
47 | let mac;
48 |
49 | devices.devices.forEach((device, index) => {
50 | let devicename = device.device.join(" ");
51 | let rw_legacy = "";
52 | if (device.rwLegacy === null) {
53 | rw_legacy = 'EOL';
54 | } else if (device.rwLegacy === true) {
55 | rw_legacy = "✅";
56 | }
57 | let full_rom = device.fullrom ? "✅" : "";
58 |
59 | let win_out = "";
60 | let linux_out = "";
61 | let mac_out = "";
62 | if (windows !== device.windows) {
63 | let length = 0;
64 | windows = device.windows;
65 | for (let i = index; i < devices.devices.length; i++) {
66 | if (devices.devices[i].windows === windows) length++;
67 | else break;
68 | }
69 | win_out = `\n
${windows}
`;
70 | }
71 | if (linux !== device.linux) {
72 | let length = 0;
73 | linux = device.linux;
74 | for (let i = index; i < devices.devices.length; i++) {
75 | if (devices.devices[i].linux === linux) length++;
76 | else break;
77 | }
78 | if (!linux) linux = devices.default_linux;
79 | linux_out = `\n
${linux}
`;
80 | }
81 | if (mac !== device.mac) {
82 | let length = 0;
83 | mac = device.mac;
84 | for (let i = index; i < devices.devices.length; i++) {
85 | if (devices.devices[i].mac === mac) length++;
86 | else break;
87 | }
88 | if (!mac) mac = devices.default_mac;
89 | mac_out = `\n
${mac}
`;
90 | }
91 |
92 | html += `
93 |
94 |
${devicename}
95 |
${device.boardname}
96 |
${rw_legacy}
97 |
${full_rom}
98 |
${device.wpMethod}
99 | ${win_out}${linux_out}${mac_out}
100 |
`;
101 | });
102 | }
103 | html += `
104 |
105 |
`;
106 | return html;
107 | }
108 |
109 | (async () => {
110 | const table = document.querySelector(".deviceTable");
111 | const searchbox = document.querySelector(".deviceSearch");
112 | let devices = [];
113 | try {
114 | devices = JSON.parse(await (await fetch("../../devices.json")).text());
115 | } catch(e) {
116 | console.warn(e);
117 | searchbox.parentElement.remove();
118 | return;
119 | }
120 |
121 | table.innerHTML = generateHTML(JSON.parse(JSON.stringify(devices)));
122 |
123 | function search(keyword) {
124 | let dv = JSON.parse(JSON.stringify(devices));
125 | keyword = keyword.toLowerCase().trim();
126 | if (keyword === "show hidden!") {
127 | searchbox.value = "";
128 | keyword = "";
129 | window.showExperimental = true;
130 | }
131 | if (!keyword) {
132 | table.innerHTML = generateHTML(dv);
133 | return;
134 | }
135 | for (const k in dv) {
136 | for (let i=0; i e.toLowerCase().includes(keyword)).length !== 0 || dv[k].devices[i].boardname.toLowerCase().includes(keyword);
138 | if (!hasTerm) {
139 | dv[k].devices.splice(i, 1);
140 | i--;
141 | }
142 | }
143 | if (dv[k].devices.length === 0) {
144 | delete dv[k];
145 | }
146 | }
147 | if (Object.keys(dv).length === 0) {
148 | table.innerHTML = "";
149 | table.innerText = "Device not found. Did you make a typo?";
150 | return;
151 | }
152 | table.innerHTML = generateHTML(dv);
153 | }
154 | searchbox.addEventListener("keyup", (e) => search(e.target.value));
155 | })();
156 |
--------------------------------------------------------------------------------
/src/docs/installing/post-install.md:
--------------------------------------------------------------------------------
1 | ---
2 | prev: ./
3 | next: false
4 | ---
5 |
6 | # Post Install
7 |
8 | ::: tip
9 | Install [Chrultrabook Tools](https://github.com/death7654/Chrultrabook-Tools/releases) for fan controls, keyboard backlight controls, system information and more.
10 | :::
11 |
12 | ## Windows
13 |
14 | ### Drivers and QOL improvements
15 |
16 | - Compress the install with `compact.exe /compactos:always` in a Command Prompt with admin privileges if necessary.
17 | - Automatic
18 | * Use [One Click Driver Installer](https://github.com/death7654/Chromebook-Driver-Installer) To install drivers
19 | - Manual
20 | * Install [CoolStar's drivers](https://coolstar.org/chromebook/windows-install.html) if you haven't already
21 | - Buy audio and Thunderbolt/USB4 drivers (if needed), see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html)
22 |
23 | ### CELES Post Install Workaround (Windows)
24 |
25 | 1. Boot the Windows install media you used to install Windows.
26 | 2. Click "Repair my computer" and select the Command Prompt option.
27 | 3. Type `bcdedit /set {default} useplatformclock true` and press Enter.
28 | 4. Reboot
29 |
30 | ## Linux
31 |
32 | ### General QOL Fixes
33 |
34 | - Run the [audio script](https://github.com/WeirdTreeThing/chromebook-linux-audio) if you haven't already.
35 | - Run the [cros-keyboard-map](https://github.com/WeirdTreeThing/cros-keyboard-map) script to remap top row FX keys.
36 |
37 | ### Fixing USB C on TigerLake and AlderLake
38 |
39 | Fedora, Debian, and Ubuntu have an issue which prevents the `cros_ec_typec` kernel driver from loading correctly. You can fix it with the following steps:
40 |
41 | #### Fedora
42 |
43 | 1. Create a file called `chromebook_typec.conf` file in `/etc/dracut.conf.d/`
44 | 2. Paste the following contents into the file:
45 |
46 | ```txt
47 | omit_drivers+=" intel_pmc_mux "
48 | ```
49 |
50 | 3. Rebuild your initramfs with `sudo dracut --force`.
51 |
52 | #### Debian and Ubuntu
53 |
54 | 1. Open the file /etc/initramfs-tools/modules
55 | 2. Paste the follwing contents to the end of the file:
56 |
57 | ```txt
58 | cros-ec-typec
59 | intel-pmc-mux
60 | ```
61 |
62 | 3. Rebuild your initramfs with `sudo update-initramfs -u -k all`.
63 |
64 | ### CELES Post Install Workaround Possible (Linux)
65 |
66 | If you experience issues in applications such as Parsec, or encounter disruptive freezes, adding the kernel parameters `clocksource=hpet hpet=force` may fix your problem. The following instructions assume you are using GRUB, and will be different for other bootloaders. Do your own research on how to set kernel parameters in your bootloader if these do not apply.
67 |
68 | 1. Edit `/etc/default/grub` with your preferred text editor (e.g. nano).
69 | 2. Add `clocksource=hpet hpet=force` inside of GRUB_CMDLINE_LINUX_DEFAULT and save your changes. If you exclude either parameter, this will not work. Use sudo, su, or doas if necessary.
70 | 3. Type `grub-mkconfig -o /boot/grub/grub.cfg` or `update-grub` into a terminal and press Enter. Use sudo, su, or doas if necessary.
71 | 4. Reboot
72 |
73 | ### Fixing stylus orientation in Gnome
74 |
75 | Some Chromebooks come with USI styluses. They work fine in the newest versions of KDE Plasma, but they have a rotation issue in GNOME. The issue is that the stylus does not rotate with the screen, so it is only usable in one orientation. To fix this, we have to add an libinput override.
76 |
77 | 1. Get the device ID of your stylus
78 | This information can either be read from cbmem or libwacom.
79 | To get the ID from libwacom run this script https://github.com/linuxwacom/libwacom/blob/master/tools/show-stylus.py.
80 | ``` bash
81 | tux@fedora:~/Downloads/libwacom/tools$ sudo python ./show-stylus.py
82 | Using "GDIX0000:00 27C6:0E0C Stylus": /dev/input/event5
83 | Using stylus file(s): /usr/share/libwacom/libwacom.stylus
84 | Tool id 0x1 serial 0x0 in-proximity: False
85 | ^CTerminating
86 | Suggested line for .tablet file:
87 | Styli=isdv4-aes
88 | ```
89 | In this case, the device ID is `GDIX0000:00 27C6:0E0C Stylus`.
90 |
91 | 2. Create a .tablet file for libwacom
92 | ``` bash
93 | sudo mkdir -p /etc/libwacom/
94 | sudo nano /etc/libwacom/google-{your board name}.tablet
95 | ```
96 | Add the following content to the file:
97 | ``` bash
98 | [Device]
99 | Name={your device id}
100 | ModelName=
101 | DeviceMatch=i2c:{the hardware id of your stylus lowercased (in this case 27c6:0e0c)}
102 | Class=ISDV4
103 | Width=9
104 | Height=5
105 | IntegratedIn=Display;System
106 | #Styli=isdv4-aes
107 | Styli=@generic-no-eraser
108 |
109 | [Features]
110 | Stylus=true
111 | Touch=false
112 | ```
113 | 3. Create the libinput override
114 | ``` bash
115 | sudo mkdir -p /etc/libinput/
116 | sudo nano /etc/libinput/local-overrides.quirks
117 | ```
118 | Add the following content to the file:
119 | ``` bash
120 | [Google Chromebook {your board name} Stylus Digitizer]
121 | MatchUdevType=tablet
122 | MatchDeviceTree=*{your board name}*
123 | MatchBus=i2c
124 | ModelChromebook=1
125 | AttrPressureRange=1100:1000
126 | ```
127 | 4. Update the libwacom database and restart the system
128 | ``` bash
129 | sudo libwacom-update-db
130 | reboot
131 | ```
132 |
133 | #### Example Files for Jinlon
134 | Here are the example files for the Jinlon Chromebook. The device ID is `GDIX0000:00 27C6:0E0C Stylus`.
135 |
136 | `/etc/libwacom/google-jinlon.tablet`
137 | ``` bash
138 | [Device]
139 | Name=GDIX0000:00 27C6:0E0C Stylus
140 | ModelName=
141 | DeviceMatch=i2c:27c6:0e0c
142 | Class=ISDV4
143 | Width=9
144 | Height=5
145 | IntegratedIn=Display;System
146 | #Styli=isdv4-aes
147 | Styli=@generic-no-eraser
148 |
149 | [Features]
150 | Stylus=true
151 | Touch=false
152 | ```
153 |
154 | `/etc/libinput/local-overrides.quirks`
155 | ``` bash
156 | [Google Chromebook Jinlon Stylus Digitizer]
157 | MatchUdevType=tablet
158 | MatchDeviceTree=*jinlon*
159 | MatchBus=i2c
160 | ModelChromebook=1
161 | AttrPressureRange=1100:1000
162 | ```
163 | #### Consider Upstreaming Your Changes to libwacom
164 | Please consider upstreaming your changes to [libwacom](https://github.com/linuxwacom/libwacom) and [wacom-hid-descriptors](https://github.com/linuxwacom/wacom-hid-descriptors). This will help other users with the same device as you.
165 |
166 |
167 | ## macOS
168 |
169 | - [Remove Verbose](https://dortania.github.io/OpenCore-Post-Install/cosmetic/verbose.html#macos-decluttering)
170 | - [OpenCore GUI Setup](https://dortania.github.io/OpenCore-Post-Install/cosmetic/gui.html#setting-up-opencore-s-gui)
171 | - Disable `DevirtualiseMmio` if you are on CometLake (10th gen)
172 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/devices/os-support.json:
--------------------------------------------------------------------------------
1 | {
2 | "Intel Sandybridge/Ivybridge": {
3 | "default_windows": "Supported",
4 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
5 | "default_linux": "Supported",
6 | "devices": []
7 | },
8 | "Intel Haswell": {
9 | "default_windows": "Supported",
10 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
11 | "default_linux": "Supported",
12 | "devices": [
13 | {
14 | "boardname": "PEPPY",
15 | "mac": "Tested, Supported."
16 | }
17 | ]
18 | },
19 | "Intel Broadwell": {
20 | "default_windows": "Supported",
21 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
22 | "default_linux": "Supported",
23 | "devices": [
24 | {
25 | "boardname": "GUADO",
26 | "mac": "Tested, Supported."
27 | },
28 | {
29 | "boardname": "LULU",
30 | "mac": "Tested, Supported."
31 | }
32 | ]
33 | },
34 | "Intel Baytrail": {
35 | "default_windows": "Supported",
36 | "default_mac": "No MacOS support.",
37 | "default_linux": "Supported",
38 | "devices": []
39 | },
40 | "Intel Braswell": {
41 | "default_windows": "Supported",
42 | "default_mac": "No MacOS support.",
43 | "default_linux": "Supported",
44 | "devices": [
45 | {
46 | "boardname": "CELES",
47 | "windows": "Requires platform clock workaround. (See post install)"
48 | },
49 | {
50 | "windows": "No microphone support",
51 | "boardname": "CYAN"
52 | }
53 | ]
54 | },
55 | "Intel Skylake": {
56 | "default_windows": "Audio driver is paid.",
57 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
58 | "default_linux": "max98357a doesn't have a volume limiter so speakers could get fried.",
59 | "devices": [
60 | {
61 | "boardname": "CAROLINE",
62 | "mac": "Tested, unsupported. HD 515 broken, artifacts in recovery. EmeraldSDHC kernel panics."
63 | },
64 | {
65 | "boardname": "LARS",
66 | "mac": "Tested, supported. No touchscreen support."
67 | }
68 | ]
69 | },
70 | "Intel Apollolake": {
71 | "default_windows": "Audio driver is paid. Buggy SD card.",
72 | "default_mac": "No MacOS support.",
73 | "default_linux": "MicroSD detection issues
No headphone jack on SOF
max98357a on AVS doesn't have a volume limiter so speakers could get fried",
74 | "devices": []
75 | },
76 | "Intel Kabylake / Amberlake": {
77 | "default_windows": "Audio driver is paid.",
78 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
79 | "default_linux": "max98357a doesn't have a volume limiter so speakers could get fried.",
80 | "devices": [
81 | {
82 | "boardname": "AKALI360",
83 | "mac": "Tested, unsupported. EmeraldSDHC does not show eMMC drive. EmeraldSDHC + IRQ Conflict patch causes kernel panic"
84 | },
85 | {
86 | "boardname": "ATLAS",
87 | "windows": "Audio driver is paid. No webcam support.",
88 | "linux": "Cameras do not work.",
89 | "mac": "Tested, Supported."
90 | },
91 | {
92 | "boardname": "EVE",
93 | "mac": "Tested, Supported."
94 | },
95 | {
96 | "boardname": "LEONA",
97 | "mac": "Tested, Supported."
98 | },
99 | {
100 | "boardname": "NAUTILUS",
101 | "linux": "Camera on the keyboard doesn't work.",
102 | "mac": "Tested, unsupported. HD 615 broken, will not boot without Ivy Bridge CPUID spoof and -igfxvesa. No acceleration."
103 | },
104 | {
105 | "boardname": "NOCTURNE",
106 | "windows": "Audio driver is paid. No webcam support.",
107 | "linux": "Cameras do not work.",
108 | "mac": "Tested, Supported."
109 | },
110 | {
111 | "boardname": "SHYVANA",
112 | "mac": "Tested, Supported."
113 | }
114 | ]
115 | },
116 | "Intel Geminilake": {
117 | "default_windows": "Audio driver is paid.",
118 | "default_mac": "No MacOS support.",
119 | "default_linux": "Supported",
120 | "devices": []
121 | },
122 | "Intel Whiskeylake": {
123 | "default_windows": "?",
124 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
125 | "default_linux": "?",
126 | "devices": [
127 | {
128 | "boardname": "ARCADA"
129 | },
130 | {
131 | "boardname": "SARIEN",
132 | "linux": "SIM card slot was not tested. Everything else works under RW_LEGACY. This Chromebook has upgradable RAM and SSD."
133 | }
134 | ]
135 | },
136 | "Intel Cometlake": {
137 | "default_windows": "Audio driver is paid.",
138 | "default_mac": "Not tested. Celeron/Pentium devices unsupported.",
139 | "default_linux": "Supported",
140 | "devices": [
141 | {
142 | "boardname": "DRAGONAIR",
143 | "linux": "Fingerprint reader doesn't work",
144 | "mac": "Tested, Supported.
Sleep issues related to EC (wakes up with lid closed)"
170 | }
171 | ]
172 | },
173 | "Intel TigerLake": {
174 | "default_windows": "Audio and Thunderbolt drivers are paid.",
175 | "default_mac": "No MacOS support.",
176 | "default_linux": "No fingerprint functionality on models that have it.
USB4 requires systemd service (See post install)",
177 | "devices": []
178 | },
179 | "Intel JasperLake": {
180 | "default_windows": "Audio driver is paid.",
181 | "default_mac": "No MacOS support.",
182 | "default_linux": "Cameras untested.",
183 | "devices": []
184 | },
185 | "Intel Alderlake": {
186 | "default_windows": "Audio and Thunderbolt drivers are paid.",
187 | "default_mac": "No MacOS support.",
188 | "default_linux": "No fingerprint functionality on models that have it.