Skip to content

Commit

Permalink
Unfuck upstream p2
Browse files Browse the repository at this point in the history
  • Loading branch information
meghan06 authored Aug 26, 2023
1 parent 1e086f2 commit 48b72dd
Show file tree
Hide file tree
Showing 26 changed files with 5,841 additions and 0 deletions.
12 changes: 12 additions & 0 deletions docs/advanced.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Advanced
layout: default
nav_order: 17
has_children: true
---

## Advanced

These pages are for advanced users only. If you are just a average user, you probably don't need to read this.

It never hurts to do, though 😉.
66 changes: 66 additions & 0 deletions docs/allaboutfirmware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: All About Firmware
layout: default
nav_order: 8
---


## All About Firmware

### Terminology

| **Term** | **Description** |
| - | - |
| coreboot | UEFI firmware firmware replacement |
| UEFI | The Unified Extensible Firmware Interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the legacy Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers, with most UEFI firmware implementations providing support for legacy BIOS services. UEFI can support remote diagnostics and repair of computers, even with no operating system installed. (source: Wikipedia) |
| EC | Embedded Controller. Communicates between the main board and embedded peripherals such as hotkeys, ports, or battery.


### Firmware Types

----------------------

**RW_LEGACY**
* Updates/replaces the stock RW_LEGAGY payload (SeaBIOS or edk2) included on many older models; supplements the ChromeOS / secure boot payload (depthcharge)
* Leaves all stock functionality intact, including the Developer Mode boot screen and Recovery Mode functionality
* Allows device to dual-boot another OS alongside ChromeOS
* Does not require disabling the firmware write-protect
* Carries zero risk of bricking the device
* On many models, includes bugfixes and enables additional functionality
* Required to boot windows on Zen2 devices (Ryzen 3000)

{: .warning }
Touchscreen and microphones that rely on the AVS driver **WILL NOT** work on RW_LEGACY!

{: .highlight }
Do not run Windows on RW_LEGACY unless you have a AMD Ryzen device. The RW_LEGACY firmware is for users who want to dual-boot ChromeOS + Linux, or users who want to run Linux without having to open the device/disable the firmware write-protect (and are OK with the accompanying limitations). Or for Ryzen users that require booting from stock firmware for Windows to function properly.


**(UEFI) Full ROM**
* A complete firmware image which includes updated/customized versions of the hardware init component (coreboot) and UEFI boot payload (edk2)
* Removes the developer mode boot ("OS verification is OFF") screen
* Completely removes the ability to run ChromeOS (and ChromeOS Recovery Mode), creating a small risk of bricking your device
* Offers the best support for booting all OSes besides ChromeOS
* Adds full hardware support for virtualization (vmx / VT-x)
* Fixes many bugs and/or idiosyncrasies associated with the stock firmware
* UEFI firmware contains updated EC firmware as well, which brings additional fixes on most Chromebooks (mainly keyboard related)
* Requires installation of a UEFI-compatible OS after flashing
* Essentially turns your ChromeOS device into a "regular" PC / laptop

{: .highlight }
The (UEFI) Full ROM firmware is the best option for all users who no longer need/want to run ChromeOS (ie, want to run Linux/Windows/macOS exclusively), and who don't mind disabling write-protection on their device

<br>

--------------

<table>
<tr>
<td class="navtable-l">
<a href="getting-started.html">← Getting Started</a>
</td>
<td class="navtable-r">
<a href="firmware.html">Flashing Firmware →</a>
</td>
</tr>
</table>
83 changes: 83 additions & 0 deletions docs/altos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
title: AltOS Pros/Cons
layout: default
nav_order: 10
---

## altOS Pros / Cons

-----------------------


**Windows:**

Pros:
* Works on most platforms with minimal tweaking¹
* Generally has better application support
* Better game support

Cons:
* Audio driver is paid (10 USD) for Skylake (6th generation) and newer devices
* Thunderbolt driver is paid (20 USD) for certain generations
* Requires the user to install many drivers
* AVS and SOF users experience instability at times

### [Installing Windows →](installing-windows.html)

<br>

¹Some devices such as CELES need workarounds. Additionally, AMD Ryzen devices need to use CoolStar's RW_LEGACY script in order to boot Windows. Refer to the [known issues page](known-issues.html) to check whether you need patches.

----------

**Linux**

Pros:
* Free audio support
* Lightweight and optimal for Chrultrabooks with low storage / slow CPUs
* Most hardware (biggest exception is audio) will work out of the box

Cons:
* Potentially difficult for a new user (depending on the distro of choice)
* Requires some work on the end user (running audio script, configuring keyboard mapping)
* AVS and SOF users experience instability at times

{: .note }
Anything Ubuntu based will **not** work, with the exception of PopOS. Linux Mint, Ubuntu, and ElementaryOS are some examples.

<br>

### [Installing Linux →](installing-linux.html)


----------

**macOS**

Pros:
* OS experience is near identical to a Mac

Cons:
* Battery life is subpar
* Hardware based DRM (e.g AppleTV.app) is broken
* No audio, mic, or 3.5mm support¹
* Doesn't support all devices.
* Often takes up to a week or longer to set up.
* Limited support

{: .note }
Any Chromebook with a ARM, Celeron or Pentium CPU is not supported. AMD Ryzen might have support in the future.

### [Installing macOS →](installing-macos.html)

<br>


<table>
<tr>
<td class="navtable">
<a href="firmware.html">← Flashing Coreboot Firmware</a>
</td>
</tr>
</table>

37 changes: 37 additions & 0 deletions docs/bootableusb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: Making a Bootable USB
layout: default
nav_order: 25
---

## Making a Bootable USB

### Prerequisites
1. Another PC or laptop with at least 8GB storage
2. A internet connection
3. A USB drive or SD card thats at least 8 gigabytes.
- You will be erasing this drive, backup anything if you need to do so.


### Downloading a ISO
1. Determine what OS you want.
- For Linux, keep in mind Ubuntu and any derivatives will not work.
- For windows, keep in mind only Windows 10 and newer are supported.
2. Place the ISO in a safe place.


### Flashing using Rufus

For this guide, we will be using Rufus to create our bootable USBs.

Check failure on line 25 in docs/bootableusb.md

View workflow job for this annotation

GitHub Actions / Check Spelling

`USBs` is not a recognized word. (unrecognized-spelling)

1. Download Rufus from [here](https://rufus.ie/en/). The standard Windows x64 version will do.

![image](https://github.com/meghan06/docs/assets/77316348/9d9be52c-8e32-4b2f-ae17-8b3917f64032)

2. Plug in your USB.
3. Locate and launch Rufus. It should ask you to launch with administrator privileges, select YES.
4. On the right hand side, there should be a button with the words `SELECT` on it.
5. A File Explorer window should pop up, find your ISO of choie, then click `Open`.

Check failure on line 34 in docs/bootableusb.md

View workflow job for this annotation

GitHub Actions / Check Spelling

`choie` is not a recognized word. (unrecognized-spelling)
6. Click `Start`. The default options should work just fine.
7. Wait for the green bar to say `READY`, then click `Close` and eject your newly made USB
8. Profit
21 changes: 21 additions & 0 deletions docs/bugreport.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Reporting Bugs
layout: default
nav_order: 30
---

## Bug Reporting

So you find a bug in one of our projects, and want to report it. It's faily simple,

1. Use your brain (please)
2. Open a issue in our [bugtracker](https://github.com/chrultrabook/bugtracker/issues)
3. Be descriptive. Describe what the issue is, steps to reproduce, affected devices, etc etc.
- If you need help, a generic bug report template is available.
4. Wait patiently for a contributor to fix the issue.
- Please keep in mind the majority of us contributors have other things going on in our lives.
<br>
{: .note }

Do not submit personal help requests in the bugtracker.

41 changes: 41 additions & 0 deletions docs/compiling-coreboot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Compiling Custom Firmware
layout: default
nav_order: 18
parent: Advanced
---

### Cloning & Building ROMs

<br>

{: .warning }
Building and flashing your own firmware has the potential to brick your device. Do not do this unless you are sure you know what you're doing/have a way to recover from a bad flash. Some level of knowledge with using the Linux command line is required.

1. **Install tools and libraries needed for coreboot:**
* Debian based distros: `sudo apt-get install -y bison build-essential curl flex git gnat imagemagick libncurses5-dev m4 nasm python-is-python3 uuid-dev zlib1g-dev`
* Arch based distros: `sudo pacman -S base-devel curl git gcc-ada ncurses zlib`
* Redhat based distros: `sudo dnf install git make gcc-gnat flex bison xz bzip2 gcc g++ ncurses-devel wget zlib-devel patch openssl libuuid-devel nasm texinfo`
2. **Clone the repository:**
* `git clone https://github.com/mrchromebox/coreboot`
3. **`cd` to the coreboot folder, then build the coreboot toolchain**
* `make crossgcc-i386 CPUS=$(nproc)`
4. **Make changes now, if needed.**
* Common changes include:
* Replacing the default logo (`Documentation/coreboot_logo.bmp`)
* Changing version string (`CONFIG_LOCALVERSION`)
5. **Build the ROM**
* create build dir: `mkdir -p ~/dev/firmware`
* `./build-uefi.sh <boardname>`
* For example, `./build-uefi.sh leona`
* Roms will be stored in `~/dev/firmware`
6. **Download flashrom, then give it execute permission.**
* `cd; curl -LO https://elly.rocks/tmp/coreboot-development/flashrom-alderlake; chmod +x flashrom-alderlake`
7. **Flash your custom ROM**
* Backup your current rom, just in case things go wrong: `./flashrom-alderlake -p internal -r current.rom`
* Flash your custom firmware: `sudo ./flashrom-alderlake -p internal -w ~/dev/firmware/coreboot_edk2-<boardname>-mrchromebox_<yearmonthdate>.rom`
8. **Reboot**
* Assuming it said `success` on all checks, reboot.

{: .warning }
Do not reboot if any of the checks failed.
65 changes: 65 additions & 0 deletions docs/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: Contributing
layout: default
nav_order: 20
---

## Supporting the Docs

Want to help support the docs? Well there's some ways you can help!

------------

### Contributing via Issues

Contributing via Issues is pretty simple but there are some rules:

* 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

Some guidelines when contributing via PRs:

* Use your brain (please).
* Proofread your submissions.
* 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.
* Additionally, it would be appreciated if you can provide sources for significant commits. This helps us verify the validity of the information you provide.
* Ensure that the pages adhere to the markdown style used in the docs.

------------

### How to Contribute

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.


**Simple step-by-step guide**

* Install Ruby, Jekyll, and bundle
* See [Jekyll's installation guide](https://jekyllrb.com/docs/installation/#guides) for your platform.
* [Fork this repo](https://github.com/chrultrabook/docs/fork/)
* Clone your fork, open a terminal and `cd` to it
* Run the `bundle` command, then `bundle exec jekyll serve`
* Visit `localhost:4000` in your web browser and preview your changes.

{: .note }
Jekyll will automatically regenerate pages when you make changes.


------------


### Tips

Some tools that make contributing a bit easier:

* [Visual Studio Code](https://code.visualstudio.com)
* [Typora](https://typora.io) for real time markdown rendering.
* [TextMate](https://macromates.com) for easy and powerful mass find/replace.
* [GitHub Desktop](https://desktop.github.com) for more user friendly GUI.


------------
Loading

1 comment on commit 48b72dd

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log for details.

Unrecognized words (30)
AMDGPU
ASUS
autofanctrl
bootableusb
BSOD
bugzilla
cgi
choie
cmdline
crosec
Devirtualize
driverinstallers
Entreprise
iommu
Mimo
newner
oneshot
overclock
pmc
QOL
redhat
rmmod
sbin
systemctl
systemd
TARLO
transitioning
typec
usbc
USBs
To accept ✔️ these unrecognized words as correct, run the following commands

... in a clone of the [email protected]:chrultrabook/docs.git repository
on the main branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/main/apply.pl' |
perl - 'https://github.com/chrultrabook/docs/actions/runs/5982978306/attempts/1'
Available 📚 dictionaries could cover words not in the 📘 dictionary
Dictionary Entries Covers
cspell:cpp/src/cpp.txt 30216 8
cspell:software-terms/src/software-terms.txt 1237 3
cspell:python/src/python/python.txt 453 2
cspell:python/src/python/python-lib.txt 3873 2
cspell:golang/go.txt 3412 1

Consider adding them using (in .github/workflows/spelling.yml):

      with:
        extra_dictionaries:
          cspell:cpp/src/cpp.txt
          cspell:software-terms/src/software-terms.txt
          cspell:python/src/python/python.txt
          cspell:python/src/python/python-lib.txt
          cspell:golang/go.txt

To stop checking additional dictionaries, add:

      with:
        check_extra_dictionaries: ''
Pattern suggestions ✂️ (2)

You could add these patterns to .github/actions/spelling/patterns.txt:

# Automatically suggested patterns
# hit-count: 4 file-count: 2
# https/http/file urls
(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

# hit-count: 1 file-count: 1
# GitHub SHAs (markdown)
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)

Errors (2)

See the 📜action log for details.

❌ Errors Count
ℹ️ candidate-pattern 3
❌ forbidden-pattern 1

See ❌ Event descriptions for more information.

Please sign in to comment.