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.
-
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)
-
@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.
@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".
-
@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.
-
@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.
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.
-
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.
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!
-
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!
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.
-
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.
@jhamby Whoops, that's 6x the Apple Developer license fee for a company of 1 (me), wow
-
-
@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".
@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. -
@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.@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 -
@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".
@[email protected] @[email protected] i was about to say "usually this can be mitigated somewhat with a tmpfs https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs" but i realized that you probably do not have access to something like 24gb of ram to make a comfortable tmpfs.