Recently I installed FydeOS (a Chinese fork of ChromeOS) on my Framework and it runs (almost) smoothly. This can be a 3rd choice if you are not a Windows fan and just don’t want to mess with Linux (Well, you still need to if you want more features).
The install process is rather simple. Go to the FydeOS website, download the latest release for Intel with Iris graphics (the iCloud download was the fastest for me). Then, follow the instructions on the website to write the system on a USB drive just like installing any other Linux distribution. Now you can simply boot to the USB drive, and use FydeOS on the USB drive. If you want to run FydeOS on an expansion card, you can just burn the image to your expansion card instead of a USB drive, it will work fine, you won’t lose your files after rebooting unlike a Linux live system. If you want to install FydeOS on your SSD, you can enter a terminal by Ctrl+Alt+T in the browser, then type
shell to enter the developer shell (Alternatively, you can just do Ctrl+Alt+F2 to enter a TTY-like developer shell), finally run
sudo /usr/sbin/chromeos-install --dst nvme0n1 to install to your SSD (Note that you can only install to the whole SSD, I haven’t found a way to install to a certain partition). Let the install script run for a while, it will tell you when to reboot your device. After that, you are good to go.
When you first boot to the system you may find WiFi will never connect. I used my Android phone to share the network connection through USB to set up the account, then, after a reboot, the WiFi worked without any problem (I don’t really know why lol).
There are some useful things you can do after the installation.
You can use the search bar to search “android” keyword, run that program, it will setup Android on your FydeOS. You can also go to the “Store” application, navigate to the “Made by FydeOS” tab, and install Open GAPPS. Then, you can use Google Play after a reboot.
Just run the “Terminal” app, it will help you to set up a Linux container on your FydeOS. The default container is Debian Buster running 5.4 Kernel. I even tried to install Arch container but the GUI applications crashed a lot. So, just use the default Debian if you wish for better stability.
I found that PyQt5 won’t work in FydeOS because there is a missing shared library. Just run
sudo ln -s /usr/lib/x86_64-linux-gnu/libxcb-util.so.0 /usr/lib/x86_64-linux-gnu/libxcb-util.so.1 to fix it (it took me 10 hours to figure this out lol).
You can right-click a folder (such as Downloads) in your FydeOS file browser, and select “share with Linux”. This will mount the Downloads folder to the
/mnt/chromeos/MyFiles/Downloads so you have all permissions to this folder in the Linux container.
You can install most of the Linux Desktop applications in this Debian container the same way you do on Debian, but note that programs like OBSStudio or screenshot tools won’t be able to capture any screen contents. I installed some IDEs for developing, MarkText for markdown editing, GIMP for image editing, and several daily desktop apps. Steam also works but I tried to install Portal 2, there were some rendering issues. You can tell that the game is definitely GPU accelerated, just with some rendering bugs. I did not test other games.
I even tried to install Manjaro in a KVM virtual machine inside the Linux container (which actually runs on a KVM lol), the performance was not good at all. So, keep this in mind if you need to you virtual machines.
Setup tlp to maximize battery life:
chromebrew is a package manager for ChromeOS (not the Linux container). You can follow the instructions on their GitHub documents to set up on your FydeOS. Once done, install build tools by running
crew install buildessential in your developer shell, also, run
crew install perl to install perl.
Now, you can download the tlp source code from their GitHub repo and build tlp manually. Before doing that, you also need to manually remount the root filesystem by
sudo mount -o remount,rw / to enable writing, and also
sudo mount -o remount,exec /run to enable executing tlp (you need to remount /run every time you start tlp. I haven’t found a better way to do this). Now, you can
cd to the repo you cloned, run
sudo make install to install tlp. After that, run
sudo tlp start to start tlp. You can edit
/etc/tlp.conf just like in Linux.