Shimboot is a super easy exploit to do, and the benefits are endless, but let's just say Linux is not the easiest of operating systems to work with. I used to have no idea how to work a Debian 12 distro when I first started but I've managed to make everything work up until now. Here are a few things that I learned along my way that I found helpful and wish I had knew when I first started using shimboot.
Note: Please read and follow the instructions. I assume you have a pair of eyes while reading this. Nothing is more frustrating than a user asking a question that is so explicitly answered in the guide. So if you have a question, check the guide again, make sure you have followed all the proper steps, and if finally you find that something doesn't work you can post it in the issues on this repository or go to this discord run by ading2210: https://discord.gg/vddDp326Vs
Trust me, it helps a lot. It might be confusing at first but its really not that hard. Just follow the steps in the video/readme and you should be set. Also, a lot of frequently asked questions are probably covered in the official github's FAQ section of the readme. Definitely watch the video posted on the readme as well, super helpful. https://github.com/ading2210/shimboot
On first booting into shimboot, you'll want to do a few things:
Don't forget to run
sudo expand_rootfs
to expand your root file system. It should be the first thing you do.
On first boot, also remember to connect to a wifi network. You'll need it for the next step.
Run this on first boot:
sudo apt update && sudo apt upgrade
And periodically as well, or before you install something new. This is especially important if you want to switch the desktop environment, since it will fail unless you have ran these two commands before running sudo tasksel
(see "How do I not make shimboot look so primitive?").
By default the password is set to "user" and the username is also "user", but you can change this with
sudo passwd user
One thing to note is that you don't need to set the root password, since the user is the root user (from ading2210).
Function keys are not mapped properly by default. I believe https://github.com/WeirdTreeThing/cros-keyboard-map can fix this, but I'm not entirely sure. You can also mess around with the shortcuts in settings to suit your preferences, since some of them may or may not require function keys and you might want to change them if they are important (like Alt+F4
to close window, if function keys aren't mapped use something like Ctrl+Shift+W
).
In power management (or just power settings in general), change all settings that say "Suspend" to "Lock Screen", unless you want your computer to shut down after a light press of the power button or closing of the lid. Suspend is not supposed to shut down a Linux system, but it doesn't work on shimboot universally (see official shimboot github README).
Also, chromebooks will restart with power + refresh
. Avoid using this, as this may cause data corruption (also from ading2210). Instead, use linux's system shutdown functionality.
Another helpful tip might be that Ctrl+Shift+V
is paste in terminal, and to copy to clipboard select text and right-click to open a menu and hit copy to copy it.
You should enter a screen that says confirm returning to secure mode, and all you need to do is just hit esc
+ power
+ refresh
all at the same time (basically powerwash) to open the screen that says plug in your usb to get started.
If you don't want to boot into shimboot, don't do the powerwash part and hit the up arrow (so that the confirm button is highlighted) and hit enter.
Yes, just follow the steps to get to the part where you plug in the flash drive. Basically just go to the official shimboot readme, watch the video up until the part where he plugs in the flash drive, then you can exit and begin using shimboot like normal.
Note that booting up in developer mode causes all local data on your chromebook to be lost, so if it is someone else's chromebook, be sure to get their permission first.
Check your spelling. Run
sudo apt update && sudo apt upgrade
if necessary. Otherwise, if a problem persists, go search it up.
To fix this, run
sudo dpkg-reconfigure tzdata
You'll need to figure out what timezone you are in, and the timezones that correspond to your timezone in the tzdata
data base may be different, for example, UTC-8
, or Pacific Standard Time
, is America/Los_Angeles
in the tzdata
database. Keep in mind of these things when you set the timezone.
Also a nice to know is that if you use Cinnamon or Gnome you can instead use an alternate solution. Run this command in terminal:
sudo apt install ntp
and go to settings > date and time and then enable the switch saying Use Network Time
and then change the timezone to the preferred one.
By default the Debian distro on shimboot assumes the bottom right corner of your touchpad to right click. To fix this behavior, there are a series of steps you need to follow:
Note: If you are using Cinnamon or Gnome though, you don't have to do all that below. You can just go into settings and switch the behavior to multiple fingers for right and middle click. On XFCE, you'll have to do that!
First run
sudo apt install xinput
After that's finished, run
xinput
to see a list of devices. You should see something like this:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ GXTP7288:00 27C6:01F5 Mouse id=7 [slave pointer (2)]
⎜ ↳ GXTP7288:00 27C6:01F5 Touchpad id=8 [slave pointer (2)]
⎜ ↳ Elan Touchscreen id=9 [slave pointer (2)]
...
Find the touchpad. In my case, the touchpad is the 4th item in the list, and its id
is 8
. Remember this number since you'll need it.
Next, run
xinput list-props #
...replacing #
with your touchpad id number. Scroll down until you get to the property that says this:
libinput Click Method Enabled (351): 1, 0
I'm not sure if the number in parentheses is the same on your shimboot, but just remember the number in paretheses. If the two numbers following the property listing say 1, 0
, then run the next piece of code. If it says 0, 1
, then yeah I'm not sure why two finger right click is not working. Probably get a new touchpad at that point.
If it does say 1, 0
, like in the block of code above, then you can run the following command:
xinput set-prop # ### 0 1
Replacing the first #
with your touchpad device id
(mine was 8
) and the ###
with the number in parentheses from the step above. This will change your touchpad behavior to two finger right click.
There are a few caveats to this, although it is possible (tested to some degree, in actuality may or may not be). First is playing these two games specifically, and second is that you need to have a late enough kernel version, and third, most importantly, I have no idea if it works or not. Anyways, to be able to run roblox on linux, you'll need something called Sober.
First, run
uname -r
in terminal, if the number it spits out is smaller than 5.11
, then you can't run roblox. No alternative solutions that I know of work. This is a super important step because you will run into error if you try and run this program on an earlier kernel version.
If it is greater, simply follow the instructions here: https://sober.vinegarhq.org/. Be sure to check if flatpak is installed correctly/properly.
If you run into an issue like this, then simply use the solution I posted at the bottom of the message chain.
Note: I have not tested the validity of this program beyond this point. If you run into some other error and you have done all of the above, it might not be possible to run Roblox on shimboot after all. If it doesn't work, I don't have a fix.
You can't upgrade your kernel version, sorry. No buts, no exceptions. If you go ask ading2210, you'll get the same answer.
There are a lot of vpn configurations out there, but I would recommend ProtonVPN because it's decent and it's free. There are two ways you can do this: download the official app, or use OpenVPN configuration. I ran into issues using the official app, while the OpenVPN config works just fine.
Follow these instructions to obtain ProtonVPN on shimboot (assumes you already have an account setup, so do that first): https://protonvpn.com/support/linux-openvpn/
These instructions are for using OpenVPN file configuration. You can try the official app, it may or may not work for you.
Shimboot is not primitive, its the latest version of Debian linux running on your chromebook. It's just the desktop environment, or in other words the UI. You can run
sudo tasksel
to configure the desktop environment. Use arrow keys to navigate the CLI, space bar to select/deselect option, tab to switch to the confirm button, then press enter. Restart for changes to take effect.
Note: before restarting, run
sudo autoremove xfce4*
to make the desktop environment you selected to be the default one.
If you do select an option like Cinnamon, or GNOME, make sure you only have one of those options selected. For example, the default is XFCE, but if you want to switch to MATE, then deselect XFCE (press space on it) and use arrow keys to get to MATE and select it. Do keep in mind that different desktop environments use different amounts of resources. GNOME is a very user friendly and UI-rich desktop environment, but it's generally quite slow. XFCE is the default, and it looks very basic, but it's faster. I personally use Cinnamon, which has a windows-looking UI and is a bit lighter than GNOME (but still not as light as XFCE).
Also, ading2210 recommends you install SSH server
and laptop
on first boot as well so when you run sudo tasksel
you'll want to check those options as well.
Yeah that'll happen. You can install TLP, which is a convenient battery manager for linux in general, and it has significantly improved my battery usage. Also, firefox and chrome in general are quite bad in terms of ram usage. Find what works for you honestly.
To install tlp, run
sudo apt install tlp tlp-rdw
and then run
sudo tlp start
There is a 100% workaround, per ading2210, who told me that throttling the cpu (via the use of https://github.com/vagnum08/cpupower-gui) is the way to go. I haven't tried it, but if the developer says it works, it probably works. It obviously has performance implications as well, though.
You can run .appimage files or .deb files. Per the Debian wiki, it is best to avoid running .rpm files on Debian distros. See https://wiki.debian.org/RPM.
To install .deb files, run
sudo apt install /path/to/deb/file.deb
and replace the last part with the path to the deb file.
AppImage files are a bit weirder, you first have to go to terminal and run
chmod +x /path/to/app.appimage
in order to make it an executable and then double click the appimage file in file explorer.
Yes, surprisingly, you can. Depending on your chromebook, you will need more than one usb port for this. You can buy a decent hub like this (it's the one I use and it works great): https://a.co/d/dGgS93k. If your chromebook has 2 or more usb ports, you can ignore this.
Once you have shimboot loaded, open terminal and plug in your other flash drive as well. Run
sudo fdisk -l
to see the list of disks plugged in. /dev/sda
is your shimboot disk and you don't want to be messing with that, so remember to not use that. One thing you probably don't want is to overwrite your current shimboot drive. If you only have one drive plugged in (one drive NOT counting your shimboot drive), it will be /dev/sdb
.
Once you have your drive figured out, obtain the appropriate shimboot image (see the official github on figuring out what image you need), whether that be by downloading the image from the official github and unzipping it, or by building the image yourself. Then, run this command:
sudo dd if=/path/to/shimboot.bin of=/dev/sd* oflag=direct bs=1M status=progress
...replacing /path/to/shimboot.bin
with the path to your shimboot file and /dev/sd*
with your drive name (usually /dev/sdb
).
Important: the file should be the .bin
file, not the .zip
file. Extract the .zip
file first.
Wait for it to finish flashing the image, afterwards, run
sync
and then unplug the drive and you're free to start booting another shimboot off of it!
dd
can also be used to create various other sorts of bootable drives (like shimboot) in this fashion. You just have to replace the path to shimboot file with the proper image that you want to burn onto the flash drive.
Okay granted I hardly think most of you will use it, but I'm Chinese and I use it from time to time, so in case there are weird people like me out there, you can learn how to make pinyin work. The most common solution is to run
sudo apt install ibus-libpinyin
and then after that installs, run
ibus-setup
and change the shortcut to change the input method (I'm accustomed to Ctrl+Space
but that's just me), and the most important part is to obviously add the input method itself, so go to input methods tab and add intelligent pinyin (if you are using pinyin) or other input methods as necessary. Use the shortcut to switch between English and Chinese, and voila, there you go, pinyin on linux.