You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<small><i>Table of contents generated with <ahref='http://ecotrust-canada.github.io/markdown-toc/'>markdown-toc</a></i>.</small>
26
+
9
27
## Features:
10
28
- Run a full Debian installation on a Chromebook
11
29
- Does not modify the firmware
@@ -95,36 +113,51 @@ PRs and contributions are welcome to help implement these features.
95
113
96
114
Note: If you are building for an ARM Chromebook, you need the `qemu-user-static` and `binfmt-support` packages.
97
115
98
-
#### Alternatively, you can run each of the steps manually:
99
-
1. Grab a Chrome OS RMA Shim from somewhere. Most of them have already been leaked and aren't too difficult to find.
100
-
2. Download a Chrome OS [recovery image](https://chromiumdash.appspot.com/serving-builds?deviceCategory=ChromeOS) for your board.
101
-
3. Unzip the shim and the recovery image if you have not done so already.
102
-
4. Run `mkdir -p data/rootfs` to create a directory to hold the rootfs.
103
-
5. Run `sudo ./build_rootfs.sh data/rootfs bookworm` to build the base rootfs.
104
-
6. Run `sudo ./patch_rootfs.sh path_to_shim path_to_reco data/rootfs` to patch the base rootfs and add any needed drivers.
105
-
7. Run `sudo ./build.sh image.bin path_to_shim data/rootfs` to generate a disk image at `image.bin`.
106
-
107
116
[Prebuilt images](https://github.com/ading2210/shimboot/releases) are available if you don't have a suitable device to run the build on.
108
117
118
+
<details>
119
+
<summary><b>Alternatively, you can run each of the steps manually:</b></summary>
120
+
121
+
1. Grab a Chrome OS RMA Shim from somewhere. Most of them have already been leaked and aren't too difficult to find.
122
+
2. Download a Chrome OS [recovery image](https://chromiumdash.appspot.com/serving-builds?deviceCategory=ChromeOS) for your board.
123
+
3. Unzip the shim and the recovery image if you have not done so already.
124
+
4. Run `mkdir -p data/rootfs` to create a directory to hold the rootfs.
125
+
5. Run `sudo ./build_rootfs.sh data/rootfs bookworm` to build the base rootfs.
126
+
6. Run `sudo ./patch_rootfs.sh path_to_shim path_to_reco data/rootfs` to patch the base rootfs and add any needed drivers.
127
+
7. Run `sudo ./build.sh image.bin path_to_shim data/rootfs` to generate a disk image at `image.bin`.
128
+
</details>
129
+
109
130
### Booting the Image:
110
131
1. Obtain a shimboot image by downloading a [prebuilt one](https://github.com/ading2210/shimboot/releases) or building it yourself.
111
132
2. Flash the shimboot image to a USB drive or SD card. Use the [Chromebook Recovery Utility](https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm) or [dd](https://linux.die.net/man/1/dd) if you're on Linux.
112
133
3. Enable developer mode on your Chromebook. If the Chromebook is enrolled, follow the instructions on the [sh1mmer website](https://sh1mmer.me) (see the "Executing on Chromebook" section).
113
134
4. Plug the USB into your Chromebook and enter recovery mode. It should detect the USB and run the shimboot bootloader.
114
135
5. Boot into Debian and log in with the username and password that you configured earlier. The default username/password for the prebuilt images is `user/user`.
115
-
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo growpart /dev/sdX 4` (replacing `sdX` with the block device corresponding to your disk) to expand the partition, then running `sudo resize2fs /dev/sdX4` to expand the filesystem.
116
-
7. Change the user password by running `passwd user`. The root user is disabled by default.
136
+
6. Expand the rootfs partition so that it fills up the entire disk by running `sudo expand_rootfs`.
137
+
7. Change your own password by running `passwd user`. The root user is disabled by default.
117
138
118
139
## FAQ:
119
140
120
141
#### I want to use a different Linux distribution. How can I do that?
121
142
Using any Linux distro is possible, provided that you apply the [proper patches](https://github.com/ading2210/chromeos-systemd) to systemd and recompile it. Most distros have some sort of bootstrapping tool that allows you to install it to a directory on your host PC. Then, you can just pass that rootfs directory into `patch_rootfs.sh` and `build.sh`.
122
143
144
+
Here is a list of distros that are supported out of the box:
145
+
- Debian 12
146
+
- Debian Unstable
147
+
- Alpine Linux
148
+
149
+
PRs to enable support for other distros are welcome.
150
+
123
151
Debian Sid (the rolling release version of Debian) is also supported if you just want newer packages, and you can install it by passing an argument to `build_complete.sh`:
124
152
```bash
125
153
sudo ./build_complete.sh dedede release=unstable
126
154
```
127
155
156
+
There is also experimental support for Alpine Linux. The Alpine disk image is about half the size compared to Debian, although some applications are missing. Pass the `distro=alpine` to use it:
157
+
```bash
158
+
sudo ./build_complete.sh dedede distro=alpine
159
+
```
160
+
128
161
#### How can I install a desktop environment other than XFCE?
129
162
You can pass the `desktop` argument to the `build_complete.sh` script, like this:
130
163
```bash
@@ -138,10 +171,12 @@ Shimboot does not touch the internal storage at all, so you will be able to use
138
171
#### Can I unplug the USB drive while using Debian?
139
172
By default, this is not possible. However, you can simply copy your Debian rootfs onto your internal storage by first using `fdisk` to repartition it, using `dd` to copy the partition, and `resize2fs` to have it take up the entire drive. In the future, loading the OS to RAM may be supported, but this isn't a priority at the moment. You can also just blindly copy the contents of your Shimboot USB to the internal storage without bothering to repartition:
140
173
```bash
141
-
#assuming the usb drive is on sda and internal storage is on mmcblk1
Steam should be installed using the `sudo apt install steam` command, however it doesn't work out of the box due to security features in the shim kernel preventing the `bwrap` library from working. See [issue #12](https://github.com/ading2210/shimboot/issues/26#issuecomment-2151893062) for more info.
214
+
215
+
To get Steam running, install and run it normally. It will fail and show a message saying that "Steam now requires user namespaces to be enabled." Run `fix_bwrap` in your terminal, relaunch Steam, and it should be working again.
216
+
177
217
## Copyright:
178
218
Shimboot is licensed under the [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.txt). Unless otherwise indicated, all code has been written by me, [ading2210](https://github.com/ading2210).
0 commit comments