I decided to put Gentoo Linux on my 2013 Chromebook Pixel with MrChromebox.tech to replace the GalliumOS install that is now no longer maintained.
-
I decided to put Gentoo Linux on my 2013 Chromebook Pixel with MrChromebox.tech to replace the GalliumOS install that is now no longer maintained.
GalliumOS is basically an old version of Ubuntu with XFCE and some x86 Chromebook tweaks. I copied the scripts and systemd service file that enable zram (swap to compressed RAM instead of disk) with LZ4 compression. With that enabled, I can build packages with 2 concurrent jobs in 4GB RAM with Gentoo's KDE desktop running!
-
replied to Jake Hamby last edited by
It's been a very long time since I used #KDE as my desktop of choice, like 25+ years ago (literally).
While I always respected the design goals of KDE and appreciated the features of #Qt, I found earlier versions of KDE to use a lot of RAM, felt slightly slower, and so I ended up using either the default GNOME desktop of Ubuntu, or XFCE to save RAM.
I'm glad I downloaded the Gentoo LiveGUI image because it showed me modern KDE and Qt 6 will run in 4 GB RAM with room for a browser or compiling.
-
replied to Jake Hamby last edited by
@jhamby I'm trying to put gentoo on my chromebook 2013 as well because Fedora with sway wasn't running very well. I don't understand how to setup the boot loader. I don't understand what /efi is and /boot and /boot/efi
-
replied to Jake Hamby last edited by
I left the Chromebook Pixel at the office, compiling the distribution kernel, which has all the modules and drivers, so it takes a while to build. I don't want to deal with customizing a .config file for it just yet.
The Chromebook has Intel graphics, and GalliumOS was using the VESA framebuffer driver for X11, as far as I could tell. The Gentoo LiveGUI image came up in KDE Plasma with Wayland, using the kernel DRM driver to access EGL for 3D rendering.
-
replied to Jake Hamby last edited by
Someone needs to write a proper equivalent benchmark to "x11perf" that works on X11 and Wayland and exercises functions that real desktops and modern apps use, not what they used 40 years ago. Today's apps don't use the X11 server for fonts or 2D anything, because they're compositing different window surfaces to the desktop using the GPU's 3D acceleration. That's how you can get pretty shadows and other effects.
Windows and macOS both do essentially the same thing for their desktops as well.
-
replied to Jake Hamby last edited by
I'm building KDE Plasma (the name of the desktop) in the Gentoo Linux VM that I made on my new laptop in VirtualBox (w/ 8GB RAM and 8 CPUs). It's taking a while to upgrade the apps after I did an "emerge --sync" and changed the Portage profile to include "plasma" (it already had "systemd" and "desktop" and I was using the XFCE desktop).
-
replied to Jake Hamby last edited by
As a developer, if I'm writing an open-source GUI app, Qt is an excellent choice, especially given how extremely cross-platform it is, and the QML-based (declarative GUI with embedded JavaScript) "Qt Quick" is similar to Android Jetpack Compose or Dart + Flutter or SwiftUI or .NET MAUI which I'm unsure if anyone actually uses yet.
.NET Multi-platform App UI (.NET MAUI) | .NET
.NET MAUI is a framework used to build native, cross-platform desktop and mobile apps from a single C# codebase for Android, iOS, Mac, and Windows.
Microsoft (dotnet.microsoft.com)
-
replied to Orry last edited by
@IndieGoblin That's something I found confusing as well on this particular machine. It depends on whether you flashed the SeaBIOS or the UEFI firmware that requires you to open the case and remove a screw to enable developer mode for overwriting the boot firmware.
I didn't have a screwdriver tiny enough to open the Chromebook Pixel and I figured there's a possibility I could brick it if things go wrong, plus I wanted to still be able to run ChromeOS, so I flashed the SeaBIOS legacy BIOS.
-
replied to Jake Hamby last edited by
@IndieGoblin If you're pressing Ctrl-L to boot Linux now, and you see SeaBIOS, that's what you're using. I'm guessing you used the MrChromebox script to install Fedora and shrink the ChromeOS partition, and your Linux root partition is on /dev/sda7 (or somewhere close). On my system, it also created a /dev/sda12 as an EFI partition, which I found I could mount with -t vfat and it had EFI files in it that looked like they're for Linux.
I was going to do UEFI boot with grub, but that won't work.
-
replied to Jake Hamby last edited by
@IndieGoblin BTW, I think if you flash the UEFI firmware then it becomes like a regular PC laptop and you can't boot into ChromeOS any more. That's another reason I'm not interested in moving away from the legacy BIOS Linux boot. It's going to be grub either way.
So to answer your question, assuming you didn't flash the UEFI firmware, you use "grub-install /dev/sda", and it will flash the legacy bootloader in the 2nd sector of the disk to bootstrap grub from your root partition.
-
replied to Jake Hamby last edited by
@IndieGoblin For a UEFI system, you would use "grub-install --efi-directory=/efi". That's the only difference. I'm using "installkernel" and I had to follow the steps to enable the grub USE flag, but I don't have to change anything in my installation flow between UEFI and legacy BIOS other than the arguments to the grub-install program, and everything else including the grub.cfg is the same.
-
replied to Jake Hamby last edited by
-
replied to Jake Hamby last edited by
@IndieGoblin Also, Gentoo needs a lot of disk space to build packages like the kernel, Firefox, NodeJS, Chromium, etc..
I made a 20 GB root partition for GalliumOS and I'm hoping I don't run out of disk space tonight building the kernel, because it's building everything with "-g" and then doing something to shrink or strip the debug symbols (it can't be stripping them completely or there'd be no point in adding the "-g" flag to the build, causing disk space to balloon).
Be careful adding "-g".
-
replied to Christian Tietze last edited by
@ctietze @omich I do have a bit of experience with Qt, at least in terms of porting programs other people have written and Qt itself to other OS's and CPU types. From what I've seen of Qt 6, it's looking nice enough that I'd like to try to write some practice apps in it.
I remember when .xaml and MVVM was hot stuff in 2009, and I guess that's still what everyone's using? I'm really ignorant of how people are using .NET today assuming they're not maintaining a program using Forms or WPF.
-
replied to Jake Hamby last edited by
It's funny to me that you ask about "hitting a wall" because Qt just keeps adding more and more optional packages to abstract more and more features to run across platforms and within the Qt way of doing things (signals and slots, QObject properties, .qml files). At least they've moved to CMake as the primary build system instead of their own proprietary QMake, which you had to deal with before, at least to build Qt itself.
Qt is also using C++17 features, and KDE is C++20.
-
replied to Jake Hamby last edited by
What's neat about Qt is you can target embedded systems like QNX, VxWorks, and Android. Here's an example of two avionics products from Teledyne Controls (my employer) that both use Qt and Linux:
eADL XS: https://www.teledynecontrols.com/products/dataloading/eadl-xs
PMAT XS: https://www.teledynecontrols.com/products/dataloading/pmat-xs
Both products are designed to connect to the avionics systems on a Boeing or Airbus jet to update the software, including NAV databases that get updated every 28 days.
They used 3.5" floppy disks until about 2010!
-
replied to Jake Hamby last edited by
The biggest weakness of Qt for commercial users of it is you have to limit the number of developers working on the project to pay for the licenses, because they want $4200/year per developer working on the product, or at least the Qt parts.
If your company has <1 million EUR annual revenue, it's only $600/year for desktop & mobile dev, or $1060/year for device creation.
It may be tempting to use Qt utility classes in non-GUI code but think how many dev licenses you should pay.
-
replied to Jake Hamby last edited by
@jhamby Whoops, that's 6x the Apple Developer license fee for a company of 1 (me), wow
-
-
replied to Jake Hamby last edited by
@jhamby thanks for your help I got it working. The problem was I was installing the efi to the wrong place so my efi looked like /boot/efi/EFI/. I have the full 15gb since I completely wiped chromeOS and used MrChromebox coreboot.
I wasn't able to complile the kernel without running out of disk space. -
replied to Orry last edited by
@IndieGoblin If you're using Gentoo, you'll need to add "-debug" to the USE flags for the kernel with a file in /etc/portage/package.use/ or else it takes way too much disk space. I have an "installkernel" package.use file with these entries:
# required by virtual/dist-kernel-6.6.67::gentoo
>=sys-kernel/installkernel-48-r1 dracut
# save disk space when building kernel
sys-kernel/gentoo-kernel -debug
# save disk space by compressing Linux firmware
sys-kernel/linux-firmware compress-zstd