diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js
index 224e4a15..1489f8aa 100644
--- a/src/.vuepress/config.js
+++ b/src/.vuepress/config.js
@@ -1,166 +1,145 @@
-import { webpackBundler } from '@vuepress/bundler-webpack'
-import { registerComponentsPlugin } from '@vuepress/plugin-register-components'
-import { searchPlugin } from '@vuepress/plugin-search'
-import { defaultTheme } from '@vuepress/theme-default'
-import { description } from '../../package.json'
+import { webpackBundler } from "@vuepress/bundler-webpack";
+import { registerComponentsPlugin } from "@vuepress/plugin-register-components";
+import { searchPlugin } from "@vuepress/plugin-search";
+import { defaultTheme } from "@vuepress/theme-default";
+import { description } from "../../package.json";
-import path from "path"
+import path from "path";
const base = "/";
export default {
bundler: webpackBundler({
configureWebpack: (config) => {
- config.devtool = 'source-map';
+ config.devtool = "source-map";
config.optimization = {
usedExports: true,
- minimize: true
- }
+ minimize: true,
+ };
config.performance = {
maxAssetSize: 400000,
- maxEntrypointSize: 400000
- }
+ maxEntrypointSize: 400000,
+ };
},
}),
- title: 'Chrultrabook Docs',
+ title: "Chrultrabook Docs",
description: description,
base,
head: [
- ['meta', { name: 'theme-color', content: '#6a4aec' }],
- ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
- ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
- ['meta', { rel: 'icon', href: base + 'favicon.ico', sizes: '16x16 32x32 48x48 64x64', type: 'image/vnd.microsoft.icon' }],
+ ["meta", { name: "theme-color", content: "#6a4aec" }],
+ ["meta", { name: "apple-mobile-web-app-capable", content: "yes" }],
+ [
+ "meta",
+ { name: "apple-mobile-web-app-status-bar-style", content: "black" },
+ ],
+ [
+ "meta",
+ {
+ rel: "icon",
+ href: base + "favicon.ico",
+ sizes: "16x16 32x32 48x48 64x64",
+ type: "image/vnd.microsoft.icon",
+ },
+ ],
],
theme: defaultTheme({
- logo: '/favicon.ico',
- accentColor: '#6a4aec',
+ logo: "/favicon.ico",
+ accentColor: "#6a4aec",
nextLinks: false,
prevLinks: false,
editLink: false,
contributors: false,
navbar: [
{
- text: 'Documentation',
- link: '/docs/getting-started/prerequisites.html',
+ text: "Documentation",
+ link: "/docs/getting-started/prerequisites.html",
},
{
- text: 'Questions?',
- link: 'https://forum.chrultrabook.com/'
- }
+ text: "Questions?",
+ link: "https://forum.chrultrabook.com/",
+ },
],
sidebarDepth: 0,
sidebar: [
{
- text: 'FAQ',
- link: '/docs/faq',
+ text: "FAQ",
+ link: "/docs/faq",
+ },
+ {
+ text: "Device Support Status",
+ link: "/docs/devices",
},
- {
- text: 'Device Support Status',
- link: '/docs/devices',
- },
{
text: "Getting Started",
- children: [
- {
- text: "Prerequisites",
- link: "/docs/getting-started/prerequisites"
- },
- {
- text: "Choosing an OS and Boot Method",
- link: "/docs/getting-started/choose-os-fw"
- },
- ]
- },
+ children: [
+ {
+ text: "Prerequisites",
+ link: "/docs/getting-started/prerequisites",
+ },
+ {
+ text: "Choosing an OS and Boot Method",
+ link: "/docs/getting-started/choose-os-fw",
+ },
+ ],
+ },
{
text: "Installing an OS",
link: "/docs/installing/",
collapsible: false,
children: [
{
- text: 'Known Issues',
- link: '/docs/installing/known-issues',
- },
- {
- text: 'Installing Windows',
- link: '/docs/installing/installing-windows'
+ text: "Installing Windows",
+ link: "/docs/installing/installing-windows",
},
{
- text: 'Installing Linux',
- link: '/docs/installing/installing-linux',
+ text: "Installing Linux",
+ link: "/docs/installing/installing-linux",
collapsible: true,
- children: [
- {
- text: 'Partitioning Instructions for Dual Booting',
- link: '/docs/installing/dualboot'
- },
- {
- text: 'Notes for non-standard distros',
- link: '/docs/installing/distros',
- }
- ] // */
},
{
- text: 'Installing MacOS',
- link: '/docs/installing/installing-macos',
+ text: "Installing MacOS",
+ link: "/docs/installing/installing-macos",
collapsible: true,
- children: [
- {
- text: 'Custom macOS firmware',
- link: '/docs/installing/macos-firmware',
- },
- {
- text: 'Fixing Hibernation',
- link: '/docs/installing/macos-hibernation',
- }
- ]
},
- {
- text: 'Post Install',
- link: '/docs/installing/post-install',
- },
- {
- text: 'Using ectool',
- link: '/docs/installing/ectool',
- }
- ]
+ ],
},
{
- text: 'Debugging',
- link: '/docs/debugging/',
+ text: "Debugging",
+ link: "/docs/debugging/",
collapsible: false,
children: [
{
- text: 'Reporting Bugs',
- link: '/docs/debugging/bugreport',
- }
- ]
+ text: "Reporting Bugs",
+ link: "/docs/debugging/bugreport",
+ },
+ ],
},
{
- text: 'Contributing',
- link: '/docs/contributing',
- }
- ]
+ text: "Contributing",
+ link: "/docs/contributing",
+ },
+ ],
}),
plugins: [
searchPlugin({
maxSuggestions: 12,
- isSearchable: (page) => page.path !== '/',
+ isSearchable: (page) => page.path !== "/",
getExtraFields: (page) => {
const tags = page.frontmatter.tags ?? [];
- const title = page.title ?? '';
+ const title = page.title ?? "";
return [...tags, title];
},
- hotKeys: ['s', '/', { key: 'f', ctrl: true }],
+ hotKeys: ["s", "/", { key: "f", ctrl: true }],
locales: {
- '/': {
- placeholder: 'Search',
- }
- }
+ "/": {
+ placeholder: "Search",
+ },
+ },
}),
registerComponentsPlugin({
components: {
- AddScript: path.resolve(__dirname, './components/AddScript.vue'),
+ AddScript: path.resolve(__dirname, "./components/AddScript.vue"),
},
- })
- ]
-}
+ }),
+ ],
+};
diff --git a/src/docs/contributing.md b/src/docs/contributing.md
index 1449a9b9..858786c3 100644
--- a/src/docs/contributing.md
+++ b/src/docs/contributing.md
@@ -2,16 +2,16 @@
Want to help support the docs? Well there's some ways you can help!
-## Contributing via Issues
+## File an Issue
-Contributing via Issues is pretty simple but there are some rules:
+File an issue when you notice an issue! We appreciate this kind of contribution but we ask that you follow some simple guidelines:
- Reserve the issues tab exclusively for documentation-related matters; refrain from discussing personal support issues or OS installation problems there.
- 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.
-## Contributing via PRs
+## Contributing Directly
-Some guidelines when contributing via PRs:
+We accept PRs to the docs, once again, there's some simple guidelines to follow:
- Use your brain (please).
- Proofread your submissions.
diff --git a/src/docs/installing/ectool.md b/src/docs/debugging/ectool.md
similarity index 96%
rename from src/docs/installing/ectool.md
rename to src/docs/debugging/ectool.md
index 554c3204..f64c74e7 100644
--- a/src/docs/installing/ectool.md
+++ b/src/docs/debugging/ectool.md
@@ -1,3 +1,8 @@
+---
+next: false
+prev: false
+---
+
# Using Ectool
`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.
diff --git a/src/docs/installing/distros.md b/src/docs/installing/distros.md
deleted file mode 100644
index 8791800b..00000000
--- a/src/docs/installing/distros.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Notes for non-standard Linux distributions
-
-::: warning
-**Advanced users only!**
-This page is not meant for troubleshooting
-:::
-
-::: danger
-**We will not help you if you get stuck while using an unsupported distribution!**
-:::
-
-This page contains informations useful to get non-standard or niche Distros to work.
-
-## Audio
-
-### alsa-ucm2 for Chromebooks
-
-You need custon alsa-ucm2 configs that arent available upstream
-
-You can get them [here](https://github.com/WeirdTreeThing/alsa-ucm-conf-cros)
-
-If your distro isnt FHS-compliant, you can specify the ucm location via an enviromental variable
-
-```bash
-export ALSA_CONFIG_UCM2 = "/share/alsa/ucm2";
-```
-
-### Audio setup modprobes
-
-You can find the right modprobe configs by browsing [the audio script](https://github.com/WeirdTreeThing/chromebook-linux-audio/blob/main/setup-audio)
-
-## Keyboard mapping
-
-### libinput configuration
-
-Put this in `/etc/libinput/local-overrides.quirks`: ([Source](https://github.com/WeirdTreeThing/cros-keyboard-map/blob/main/local-overrides.quirks))
-
-```ini
-[keyd virtual keyboard]
-MatchName=keyd virtual keyboard
-AttrKeyboardIntegration=internal
-ModelTabletModeNoSuspend=1
-```
-
-### keyd keymap
-
-Install [keyd (Github)](https://github.com/rvaiya/keyd)
-
-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`.
diff --git a/src/docs/installing/dualboot.md b/src/docs/installing/dualboot.md
deleted file mode 100644
index c4898b9a..00000000
--- a/src/docs/installing/dualboot.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Partitioning Instructions for Dual Booting
-
-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.
-
-::: warning
-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.
-:::
-
-## Using CRAP
-
-- Run the below command from VT-2 as root. CRAP can only be run in VT-2 [Ctrl + Alt + 🡢 (F2)]
- - `bash <(curl -L https://tinyurl.com/crap-cb-01)`
-- Then, follow the steps displayed onscreen.
-
-## Installing Linux
-
-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.
-
-::: tip
-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.
-:::
-
-## Reverting
-
-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.
-
-
-
----
-
-Read more about ChromeOS' disk layout [here](https://www.chromium.org/chromium-os/developer-library/reference/device/disk-format/)
diff --git a/src/docs/installing/installing-linux.md b/src/docs/installing/installing-linux.md
index 2b9a1586..3d306deb 100644
--- a/src/docs/installing/installing-linux.md
+++ b/src/docs/installing/installing-linux.md
@@ -3,53 +3,235 @@ prev: ./
next: post-install
---
-# Installing Linux
+# Linux
-Thanks to recent advancements in the chrultrabook community, Linux works really well on most Chromebooks.
+Linux is a great choice for your Chromebook! Hardware support gets consistently better, and audio is free!
-::: tip
-Only Linux kernel 6.6 or newer is supported.
-:::
+You may not be familiar with Linux, and there can be a slight learning curve, even on friendlier distributions.
-## Recommended Distributions
+## Distributions
-::: warning
-Old (>1 year) LTS releases **may have issues** and are not supported.
-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.
-:::
+Generally, any Linux distribution with a recent kernel will work on a Chromebook. We recommend the following distributions specifically:
+
+- Alpine Linux (edge)
+- Arch Linux
+- Debian (testing)
+- Fedora
+- OpenSUSE Tumbleweed or Slowroll
+- Ubuntu (Interim Releases)
+- Ultramarine Linux
+
+Distributions that follow a longer lifecycle (like Ubuntu derivatives or Linux Mint) or do not allow modifying the base system (like Universal Blue or Endless OS) may cause issues with Chromebooks.
+
+### Distribution-Specific Notes
+
+#### Fedora and Derivatives
+
+If you're using Fedora or a derivative (other than Ultramarine Linux) you should consider installing the Terra repository, as it provides many utilities and tweaks for Chromebooks.
+
+This also goes for the Fedora Atomic Desktops, as they support package layering.
+
+Check out [Terra's documentation](https://terra.fyralabs.com).
+
+#### Need more
-**Recommended distros as of December 2024 (in no particular order) are:**
+## Known Issues
-- Arch Linux or EndeavourOS
-- Fedora or Ultramarine Linux
-- openSUSE Tumbleweed
-- Pop!\_OS
+- Broken USB-C on TigerLake and AlderLake. See Post Install -> Linux for fix.
+- No fingerprint reader support.
+- Debian 12 (Bookworm) needs a custom kernel.
## Installation
-1. Create a bootable Linux USB.
-2. Plug the USB Drive into the Chromebook.
-3. Turn on the Chromebook, press ESC at the POST screen (when the coreboot logo appears), and select your USB to boot from.
-4. Install as you would on any other computer.
+If you're using AltFW, follow your distribution's installation instructions. If you're using Submarine, check for a guide for your distribution in the Submarine docs.
+
+## Post Install
+
+### Fixing Audio
+
+Follow the instructions in [WeirdTreeThing's repo](https://github.com/WeirdTreeThing/chromebook-linux-audio).
+
+:::info
+If you're using Ultramarine Linux or Fedora, you can install the `alsa-ucm-cros` package from Terra instead of running this script.
+:::
+
+### Fixing USB C on TigerLake and AlderLake
+
+Some distributions can't load the `cros_ec_typec` driver correctly. These steps will get USB-C working after suspend.
+
+#### Fedora
+
+If you have the Terra repository installed, or are using Ultramarine Linux, simply install the `chromebook-usbc-fix` package.
+
+Otherwise, you can follow these instructions:
+
+1. Create a file called `chromebook_typec.conf` file in `/etc/dracut.conf.d/`
+2. Paste the following contents into the file:
+
+ ```txt
+ omit_drivers+=" intel_pmc_mux "
+ ```
-## Fixing Audio
+3. Rebuild your initramfs with `sudo dracut --force`.
+
+#### Debian and Ubuntu
-You will likely have audio issues after installing Linux. Run the following script to fix them.
+1. Open the file /etc/initramfs-tools/modules
+2. Paste the follwing contents to the end of the file:
-### Prerequisites
+ ```txt
+ cros-ec-typec
+ intel-pmc-mux
+ ```
+
+3. Rebuild your initramfs with `sudo update-initramfs -u -k all`.
+
+### Fixing Stylus Orientation in GNOME
+
+Some Chromebooks come with USI styluses. They work fine in the newest versions of KDE Plasma, but may not respect screen rotation in GNOME. To fix this, we have to add an libinput override:
+
+1. Get the device ID of your stylus
+ This information can either be read from cbmem or libwacom.
+ To get the ID from libwacom run this script https://github.com/linuxwacom/libwacom/blob/master/tools/show-stylus.py.
-- Python 3.10 or newer
-- Git
+ ```bash
+ sudo python ./show-stylus.py
-::: danger
-Using AVS on a device with max98357a will blow your speakers. You have been warned.
+ Using "GDIX0000:00 27C6:0E0C Stylus": /dev/input/event5
+ Using stylus file(s): /usr/share/libwacom/libwacom.stylus
+ Tool id 0x1 serial 0x0 in-proximity: False
+ ^CTerminating
+ Suggested line for .tablet file:
+ Styli=isdv4-aes
+ ```
+
+ In this case, the device ID is `GDIX0000:00 27C6:0E0C Stylus`.
+
+2. Create a .tablet file for libwacom
+
+ ```bash
+ sudo mkdir -p /etc/libwacom/
+ sudo nano /etc/libwacom/google-{your board name}.tablet
+ ```
+
+ Add the following content to the file:
+
+ ```bash
+ [Device]
+ Name={your device id}
+ ModelName=
+ DeviceMatch=i2c:{the hardware id of your stylus lowercased (in this case 27c6:0e0c)}
+ Class=ISDV4
+ Width=9
+ Height=5
+ IntegratedIn=Display;System
+ #Styli=isdv4-aes
+ Styli=@generic-no-eraser
+
+ [Features]
+ Stylus=true
+ Touch=false
+ ```
+
+3. Create the libinput override
+ ```bash
+ sudo mkdir -p /etc/libinput/
+ sudo nano /etc/libinput/local-overrides.quirks
+ ```
+ Add the following content to the file:
+ ```bash
+ [Google Chromebook {your board name} Stylus Digitizer]
+ MatchUdevType=tablet
+ MatchDeviceTree=*{your board name}*
+ MatchBus=i2c
+ ModelChromebook=1
+ AttrPressureRange=1100:1000
+ ```
+4. Update the libwacom database and restart the system
+ ```bash
+ sudo libwacom-update-db
+ reboot
+ ```
+
+#### Example
+
+Here are the example files for the Jinlon Chromebook. The device ID is `GDIX0000:00 27C6:0E0C Stylus`.
+
+`/etc/libwacom/google-jinlon.tablet`
+
+```bash
+[Device]
+Name=GDIX0000:00 27C6:0E0C Stylus
+ModelName=
+DeviceMatch=i2c:27c6:0e0c
+Class=ISDV4
+Width=9
+Height=5
+IntegratedIn=Display;System
+#Styli=isdv4-aes
+Styli=@generic-no-eraser
+
+[Features]
+Stylus=true
+Touch=false
+```
+
+`/etc/libinput/local-overrides.quirks`
+
+```bash
+[Google Chromebook Jinlon Stylus Digitizer]
+MatchUdevType=tablet
+MatchDeviceTree=*jinlon*
+MatchBus=i2c
+ModelChromebook=1
+AttrPressureRange=1100:1000
+```
+
+#### Consider Upstreaming Your Changes to libwacom
+
+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!
+
+### CELES Post Install Workaround Possible (Linux)
+
+If you experience issues in applications such as Parsec, or experience lockups, adding the kernel parameters `clocksource=hpet hpet=force` may help.
+
+If you're using GRUB (you probably are) follow these instructions:
+
+1. Edit `/etc/default/grub` with your preferred text editor (e.g. nano).
+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.
+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.
+4. Reboot
+
+## Advanced Usage
+
+### Partitioning Instructions for Dual Booting
+
+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.
+
+::: warning
+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.
+:::
+
+#### Using CRAP
+
+- Run the below command from VT-2 as root. CRAP can only be run in VT-2 [Ctrl + Alt + 🡢 (F2)]
+ - `bash <(curl -L https://tinyurl.com/crap-cb-01)`
+- Then, follow the steps displayed onscreen.
+
+#### Installing Linux
+
+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.
+
+::: tip
+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.
:::
-#### How to run the script
+####S Reverting
-1. Open a terminal.
-2. `git clone https://github.com/WeirdTreeThing/chromebook-linux-audio.git`
-3. `cd chromebook-linux-audio`
-4. `./setup-audio`
+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.
+
+
+
+---
-For more information please see [WeirdTreeThing's repo](https://github.com/WeirdTreeThing/chromebook-linux-audio)
+Read more about ChromeOS' disk layout [here](https://www.chromium.org/chromium-os/developer-library/reference/device/disk-format/)
diff --git a/src/docs/installing/installing-macos.md b/src/docs/installing/installing-macos.md
index 5df1311d..b85aa7d5 100644
--- a/src/docs/installing/installing-macos.md
+++ b/src/docs/installing/installing-macos.md
@@ -1,27 +1,22 @@
-# Installing macOS
+---
+prev: ./
+next: post-install
+---
-Before we begin, it's important to know whether your Chromebook is even supported:
+# macOS
+
+Installing macOS on your Chromebook can be a fun challenge, but is not suitable for a daily drivable system, and it can take weeks to even get to the installer. You should not follow the instructions on this page unless you know what you're doing, or are ready to figure it out.
+
+Before getting started, it's important to know whether your Chromebook is even supported:
- ARM/AMD CPUs are not supported.
- Intel Celeron / Pentium CPUs are not supported.
- Tiger Lake (11th gen) CPUs and newer are not supported.
-- You need at least 32GB of eMMC storage.
-
-**You will also need:**
-
-- Patience
- - This is not a one click setup thing. It usually takes one or more weeks to have a stable hack.
-- A USB drive
- - 4 gigabytes or more for a online installer.
- - 32 gigabytes or more for offline installer.
-- The ability to use a command line
- - We will not help you if you do not know how to `cd` to a directory.
+- You need at least 32GB of storage.
## Tested Devices
-::: tip
-This list is incomplete. Feel free to improve it.
-:::
+A small handful of devices have been tested by the Chrultrabook team and community:
- Asus C425 (LEONA)
- Asus C434 (SHYVANA)
@@ -59,7 +54,7 @@ This list is incomplete. Feel free to improve it.
- [LuluMacOS](https://isi95010.github.io/LuluMacOS/)
- Dell Chromebook 13 7310 (LULU)
-## Custom Firmware
+## Firmware
It is recommended to [flash Coreboot firmware](macos-firmware) with the Management Engine Interface enabled on Skylake and newer.
Without the ME interface enabled, the following bugs can occur after waking from sleep:
@@ -72,7 +67,7 @@ Without the ME interface enabled, the following bugs can occur after waking from
## Installation
Start by following the [Dortania guide](https://dortania.github.io/OpenCore-Install-Guide) for your CPU generation.
-Amber Lake Chromebooks should follow config.plist setup for Kaby Lake.
+AmberLake Chromebooks should follow config.plist setup for KabyLake.
Add the following SSDTs, kexts and modifications as needed:
### config.plist Fixes
@@ -99,3 +94,102 @@ Add the following SSDTs, kexts and modifications as needed:
::: danger
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.
:::
+
+# macOS Hibernation
+
+macOS by default will try to use hibernation after sleeping for a predetermined amount of time.
+Some fixes in the `config.plist` are required in order to take advantage of this:
+
+- Disable `Booter->Quirks->DevirtualiseMmio`
+- Set `Misc->Boot->HibernateMode` to `Auto`
+ - By default, OpenCore will not look for hibernated images of macOS.
+- Set `Misc->Boot->HibernationSkipsPicker` to `True` to skip the picker when resuming from hibernation
+ - While not strictly required, this speeds up resume times and prevents accidently booting another OS and changing hardware state underneath macOS.
+- Create a reserved memory region under `UEFI->ReservedMemory` with the properties:
+
+ | Field | Type | Value |
+ | ------- | ------- | ----------------------------------------- |
+ | Comment | String | Fix black screen on wake from hibernation |
+ | Enabled | Boolean | True |
+ | Address | Number | 569344 |
+ | Enabled | Boolean | True |
+ | Size | Number | 4096 |
+ | Type | String | RuntimeCode |
+
+## Testing Hibernation
+
+To test hibernation, it is recommended to run `sudo pmset -a hibernatemode 25`.
+This will force macOS to hibernate immediately whenever the lid is closed or `Sleep` is selected in the menu at the top left.
+
+### macOS enters S3 sleep instead of shutting down
+
+Some models (such as `KLED`) have drives not marked as internal, which prevents macOS from entering hibernation.
+To fix this, add the `built-in` property to the PCI device under `DeviceProperties->Add->`:
+
+| Field | Type | Value |
+| -------- | ---- | ---------- |
+| built-in | Data | <01000000> |
+
+You may need to add an ACPI device as well.
+If an ACPI device does not exist to represent the NVMe or eMMC drive, then device properties will not be applied.
+An example SSDT can be found [here](https://github.com/1Revenger1/Acer-Spin-713-Hackintosh/blob/main/src/ACPI/SSDT-Devices.dsl).
+
+## Hibernate Modes
+
+Pmset exposes a few different hibernation modes which can be set through `sudo pmset -a hibernatemode `:
+
+- 0: Disables hibernation
+- 3: Hibernates after either `standbydelaylow` or `standbydelayhigh` seconds of sleep
+ - Which one is used is dependent on the battery percentage. Anything above `highstandbythreshold` will use `standbydelayhigh` instead of `standbydelaylow`.
+- 25: Hibernates instead of S3 sleep
+
+When using hibernate mode 3, macOS may keep sleeping even after the standby time has elapsed.
+[`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.
+
+# macOS Firmware
+
+It is recommended to flash coreboot with the Intel Management Engine interface enabled to prevent bugs after waking from sleep.
+Without the ME interface enabled, the following bugs can occur after waking from sleep:
+
+- Blank Electron / Chromium apps
+- Buggy video playback in web browsers like Firefox or Safari
+- Display/Wallpaper settings in SysPref/SysSettings
+- Logging out freezes your system
+
+## Custom Firmware
+
+### Building Manually
+
+1. Follow the steps [here](https://docs.mrchromebox.tech/docs/support/compiling.html) to download the toolchain and build the firmware
+ - Continue these steps once `build-uefi.sh ` has been ran
+2. Run `make menuconfig`. You will be greeted by a menu which looks like the following:
+
+ 
+
+3. Select `Chipset`
+4. Select `Disable HECI1 at the end of boot` then press `N` to disable. The asterik should be gone:
+
+ 
+
+5. Use the right arrow keys to select `Save` at the bottom, then press `Ok`
+6. Use the right/left arrow keys to select `Exit` until back at the prompt.
+7. Run `make -j$(nproc)` to build the firmware.
+8. The output will be found at `./build/coreboot.rom`
+
+## Flashing Firmware
+
+Follow the steps [on this page](https://docs.mrchromebox.tech/docs/firmware/manual-flashing.html) to flash the new firmware.
+
+## macOS
+
+- [Remove Verbose](https://dortania.github.io/OpenCore-Post-Install/cosmetic/verbose.html#macos-decluttering)
+- [OpenCore GUI Setup](https://dortania.github.io/OpenCore-Post-Install/cosmetic/gui.html#setting-up-opencore-s-gui)
+- Disable `DevirtualiseMmio` if you are on CometLake (10th gen)
+
+### macOS
+
+- Broken DRM.
+- No audio.
+- No PCIe SD card reader support.
+- No fingerprint reader support.
+- Continuity features (AirDrop, Sidecar, etc).
diff --git a/src/docs/installing/installing-windows.md b/src/docs/installing/installing-windows.md
index 2e9e243b..61e61599 100644
--- a/src/docs/installing/installing-windows.md
+++ b/src/docs/installing/installing-windows.md
@@ -3,14 +3,12 @@ prev: ./
next: post-install
---
-# Installing Windows
+# Windows
-::: warning
-Do not use Windows 8 or older. Only recent Windows 10 and 11 builds are supported.
-:::
+Windows is a popular and (shockingly) well supported option for your Chromebook!
::: danger
-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.
+We **DO NOT SUPPORT** Windows distros or ANY other modified Windows image. Beyond security concerns, it's impossible to know what tweak could cause an issue, just use regular windows.
:::
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.
@@ -43,6 +41,30 @@ Cab drivers are a little weird, but they're easy to install.
5. Right click on all the `.inf` files, and select install.
6. Reboot.
+# Post Install
+
+::: tip
+Install [Chrultrabook Tools](https://github.com/death7654/Chrultrabook-Tools/releases) for fan controls, keyboard backlight controls, system information and more.
+:::
+
+## Windows
+
+### Drivers and QOL improvements
+
+- Compress the install with `compact.exe /compactos:always` in a Command Prompt with admin privileges if necessary.
+- Automatic
+ - Use [One Click Driver Installer](https://github.com/death7654/Chromebook-Driver-Installer) To install drivers
+- Manual
+ - Install [CoolStar's drivers](https://coolstar.org/chromebook/windows-install.html) if you haven't already
+- Buy audio and Thunderbolt/USB4 drivers (if needed), see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html)
+
+### CELES Post Install Workaround (Windows)
+
+1. Boot the Windows install media you used to install Windows.
+2. Click "Repair my computer" and select the Command Prompt option.
+3. Type `bcdedit /set {default} useplatformclock true` and press Enter.
+4. Reboot
+
## Paid Drivers
Please see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html) for a step by step tutorial on purchasing drivers.
@@ -69,3 +91,10 @@ Please see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlice
| **Alder Lake** | SOF, TB4 | TB4 and SOF can be purchased as a bundle. |
| **Cezanne** | SOF | |
| **Mendocino** | SOF | |
+
+### Windows
+
+- Some Chromebooks have no touchpad support in the installer.
+- No fingerprint reader support.
+- No TPM 2.0 support.
+- No IPU camera support.
diff --git a/src/docs/installing/known-issues.md b/src/docs/installing/known-issues.md
deleted file mode 100644
index 2f63a84e..00000000
--- a/src/docs/installing/known-issues.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Known Issues
-
-## Operating Systems
-
-### Windows
-
-- Some Chromebooks have no touchpad support in the installer.
-- No fingerprint reader support.
-- No TPM 2.0 support.
-- No IPU camera support.
-
-### Linux
-
-- Broken USB-C on TigerLake and AlderLake. See Post Install -> Linux for fix.
-- No fingerprint reader support.
-- Debian 12 (Bookworm) needs a custom kernel.
-
-### macOS
-
-- Broken DRM.
-- No audio.
-- No PCIe SD card reader support.
-- No fingerprint reader support.
-- Continuity features (AirDrop, Sidecar, etc).
diff --git a/src/docs/installing/macos-firmware.md b/src/docs/installing/macos-firmware.md
deleted file mode 100644
index ae0385ff..00000000
--- a/src/docs/installing/macos-firmware.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# macOS Firmware
-
-It is recommended to flash coreboot with the Intel Management Engine interface enabled to prevent bugs after waking from sleep.
-Without the ME interface enabled, the following bugs can occur after waking from sleep:
-
-- Blank Electron / Chromium apps
-- Buggy video playback in web browsers like Firefox or Safari
-- Display/Wallpaper settings in SysPref/SysSettings
-- Logging out freezes your system
-
-## Custom Firmware
-
-### Building Manually
-
-1. Follow the steps [here](https://docs.mrchromebox.tech/docs/support/compiling.html) to download the toolchain and build the firmware
- - Continue these steps once `build-uefi.sh ` has been ran
-2. Run `make menuconfig`. You will be greeted by a menu which looks like the following:
-
- 
-
-3. Select `Chipset`
-4. Select `Disable HECI1 at the end of boot` then press `N` to disable. The asterik should be gone:
-
- 
-
-5. Use the right arrow keys to select `Save` at the bottom, then press `Ok`
-6. Use the right/left arrow keys to select `Exit` until back at the prompt.
-7. Run `make -j$(nproc)` to build the firmware.
-8. The output will be found at `./build/coreboot.rom`
-
-## Flashing Firmware
-
-Follow the steps [on this page](https://docs.mrchromebox.tech/docs/firmware/manual-flashing.html) to flash the new firmware.
diff --git a/src/docs/installing/macos-hibernation.md b/src/docs/installing/macos-hibernation.md
deleted file mode 100644
index 0405ad54..00000000
--- a/src/docs/installing/macos-hibernation.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# macOS Hibernation
-
-macOS by default will try to use hibernation after sleeping for a predetermined amount of time.
-Some fixes in the `config.plist` are required in order to take advantage of this:
-
-- Disable `Booter->Quirks->DevirtualiseMmio`
-- Set `Misc->Boot->HibernateMode` to `Auto`
- - By default, OpenCore will not look for hibernated images of macOS.
-- Set `Misc->Boot->HibernationSkipsPicker` to `True` to skip the picker when resuming from hibernation
- - While not strictly required, this speeds up resume times and prevents accidently booting another OS and changing hardware state underneath macOS.
-- Create a reserved memory region under `UEFI->ReservedMemory` with the properties:
-
- | Field | Type | Value |
- | ------- | ------- | ----------------------------------------- |
- | Comment | String | Fix black screen on wake from hibernation |
- | Enabled | Boolean | True |
- | Address | Number | 569344 |
- | Enabled | Boolean | True |
- | Size | Number | 4096 |
- | Type | String | RuntimeCode |
-
-## Testing Hibernation
-
-To test hibernation, it is recommended to run `sudo pmset -a hibernatemode 25`.
-This will force macOS to hibernate immediately whenever the lid is closed or `Sleep` is selected in the menu at the top left.
-
-### macOS enters S3 sleep instead of shutting down
-
-Some models (such as `KLED`) have drives not marked as internal, which prevents macOS from entering hibernation.
-To fix this, add the `built-in` property to the PCI device under `DeviceProperties->Add->`:
-
-| Field | Type | Value |
-| -------- | ---- | ---------- |
-| built-in | Data | <01000000> |
-
-You may need to add an ACPI device as well.
-If an ACPI device does not exist to represent the NVMe or eMMC drive, then device properties will not be applied.
-An example SSDT can be found [here](https://github.com/1Revenger1/Acer-Spin-713-Hackintosh/blob/main/src/ACPI/SSDT-Devices.dsl).
-
-## Hibernate Modes
-
-Pmset exposes a few different hibernation modes which can be set through `sudo pmset -a hibernatemode `:
-
-- 0: Disables hibernation
-- 3: Hibernates after either `standbydelaylow` or `standbydelayhigh` seconds of sleep
- - Which one is used is dependent on the battery percentage. Anything above `highstandbythreshold` will use `standbydelayhigh` instead of `standbydelaylow`.
-- 25: Hibernates instead of S3 sleep
-
-When using hibernate mode 3, macOS may keep sleeping even after the standby time has elapsed.
-[`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.
diff --git a/src/docs/installing/post-install.md b/src/docs/installing/post-install.md
deleted file mode 100644
index f7ae2476..00000000
--- a/src/docs/installing/post-install.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-prev: ./
-next: false
----
-
-# Post Install
-
-::: tip
-Install [Chrultrabook Tools](https://github.com/death7654/Chrultrabook-Tools/releases) for fan controls, keyboard backlight controls, system information and more.
-:::
-
-## Windows
-
-### Drivers and QOL improvements
-
-- Compress the install with `compact.exe /compactos:always` in a Command Prompt with admin privileges if necessary.
-- Automatic
- * Use [One Click Driver Installer](https://github.com/death7654/Chromebook-Driver-Installer) To install drivers
-- Manual
- * Install [CoolStar's drivers](https://coolstar.org/chromebook/windows-install.html) if you haven't already
-- Buy audio and Thunderbolt/USB4 drivers (if needed), see [CoolStar's driver portal](https://coolstar.org/chromebook/driverlicense/login.html)
-
-### CELES Post Install Workaround (Windows)
-
-1. Boot the Windows install media you used to install Windows.
-2. Click "Repair my computer" and select the Command Prompt option.
-3. Type `bcdedit /set {default} useplatformclock true` and press Enter.
-4. Reboot
-
-## Linux
-
-### General QOL Fixes
-
-- Run the [audio script](https://github.com/WeirdTreeThing/chromebook-linux-audio) if you haven't already.
-- Run the [cros-keyboard-map](https://github.com/WeirdTreeThing/cros-keyboard-map) script to remap top row FX keys.
-
-### Fixing USB C on TigerLake and AlderLake
-
-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:
-
-#### Fedora
-
-1. Create a file called `chromebook_typec.conf` file in `/etc/dracut.conf.d/`
-2. Paste the following contents into the file:
-
- ```txt
- omit_drivers+=" intel_pmc_mux "
- ```
-
-3. Rebuild your initramfs with `sudo dracut --force`.
-
-#### Debian and Ubuntu
-
-1. Open the file /etc/initramfs-tools/modules
-2. Paste the follwing contents to the end of the file:
-
- ```txt
- cros-ec-typec
- intel-pmc-mux
- ```
-
-3. Rebuild your initramfs with `sudo update-initramfs -u -k all`.
-
-### CELES Post Install Workaround Possible (Linux)
-
-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.
-
-1. Edit `/etc/default/grub` with your preferred text editor (e.g. nano).
-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.
-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.
-4. Reboot
-
-### Fixing stylus orientation in Gnome
-
-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.
-
-1. Get the device ID of your stylus
- This information can either be read from cbmem or libwacom.
- To get the ID from libwacom run this script https://github.com/linuxwacom/libwacom/blob/master/tools/show-stylus.py.
- ``` bash
- tux@fedora:~/Downloads/libwacom/tools$ sudo python ./show-stylus.py
- Using "GDIX0000:00 27C6:0E0C Stylus": /dev/input/event5
- Using stylus file(s): /usr/share/libwacom/libwacom.stylus
- Tool id 0x1 serial 0x0 in-proximity: False
- ^CTerminating
- Suggested line for .tablet file:
- Styli=isdv4-aes
- ```
- In this case, the device ID is `GDIX0000:00 27C6:0E0C Stylus`.
-
-2. Create a .tablet file for libwacom
- ``` bash
- sudo mkdir -p /etc/libwacom/
- sudo nano /etc/libwacom/google-{your board name}.tablet
- ```
- Add the following content to the file:
- ``` bash
- [Device]
- Name={your device id}
- ModelName=
- DeviceMatch=i2c:{the hardware id of your stylus lowercased (in this case 27c6:0e0c)}
- Class=ISDV4
- Width=9
- Height=5
- IntegratedIn=Display;System
- #Styli=isdv4-aes
- Styli=@generic-no-eraser
-
- [Features]
- Stylus=true
- Touch=false
- ```
-3. Create the libinput override
- ``` bash
- sudo mkdir -p /etc/libinput/
- sudo nano /etc/libinput/local-overrides.quirks
- ```
- Add the following content to the file:
- ``` bash
- [Google Chromebook {your board name} Stylus Digitizer]
- MatchUdevType=tablet
- MatchDeviceTree=*{your board name}*
- MatchBus=i2c
- ModelChromebook=1
- AttrPressureRange=1100:1000
- ```
-4. Update the libwacom database and restart the system
- ``` bash
- sudo libwacom-update-db
- reboot
- ```
-
-#### Example Files for Jinlon
-Here are the example files for the Jinlon Chromebook. The device ID is `GDIX0000:00 27C6:0E0C Stylus`.
-
-`/etc/libwacom/google-jinlon.tablet`
-``` bash
-[Device]
-Name=GDIX0000:00 27C6:0E0C Stylus
-ModelName=
-DeviceMatch=i2c:27c6:0e0c
-Class=ISDV4
-Width=9
-Height=5
-IntegratedIn=Display;System
-#Styli=isdv4-aes
-Styli=@generic-no-eraser
-
-[Features]
-Stylus=true
-Touch=false
-```
-
-`/etc/libinput/local-overrides.quirks`
-``` bash
-[Google Chromebook Jinlon Stylus Digitizer]
-MatchUdevType=tablet
-MatchDeviceTree=*jinlon*
-MatchBus=i2c
-ModelChromebook=1
-AttrPressureRange=1100:1000
-```
-#### Consider Upstreaming Your Changes to libwacom
-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.
-
-
-## macOS
-
-- [Remove Verbose](https://dortania.github.io/OpenCore-Post-Install/cosmetic/verbose.html#macos-decluttering)
-- [OpenCore GUI Setup](https://dortania.github.io/OpenCore-Post-Install/cosmetic/gui.html#setting-up-opencore-s-gui)
-- Disable `DevirtualiseMmio` if you are on CometLake (10th gen)
diff --git a/src/index.md b/src/index.md
index 13ed53a3..599ce070 100644
--- a/src/index.md
+++ b/src/index.md
@@ -5,21 +5,20 @@ tagline: Convert your Chromebook into an Ultrabook!
heroImage: /chrome.svg
heroImageDark: /chrome.svg
actions:
-- text: Get Started
- link: /docs/getting-started/prerequisites.html
-- text: Discuss on the forum
- link: https://forum.chrultrabook.com
+ - text: Get Started
+ link: /docs/getting-started/prerequisites.html
+ - text: Discuss on the forum
+ link: https://forum.chrultrabook.com
footerHtml: true
-footer:
-