Funtoo Newsletter, Summer 2023
Funtoo Newsletter, June-August (Summer) 2023
Welcome to the current installment of the Funtoo Newsletter. This newsletter combines multiple months -- June through all of August -- so, essentially our summer newsletter, for those of you in the northern hemisphere.
We're going to hit all the key technical changes in this newsletter:
- Funtoo Linux 1.4 Deprecation (re-announce)
- The End of Genkernel -- Welcome "Funtoo Ramdisk"
-
Massive updates from Summer Harvest (
harvester/2023-08
)
I'm planning a follow-up newsletter for community and development news, since this newsletter got too long. This follow-up newsletter will cover:
- The Forums -- Back from the Dead? Maybe!
- Dev Corner: All the Epics! (What's going on with bug tracker)
Let's cover the important technical stuff now.
Funtoo Linux 1.4 Deprecation
Announced in our previous newsletter, but worth repeating here -- Funtoo Linux 1.4 will be "retired" by the end of 2023. See the previous newsletter for more details -- but for now, just know that you should upgrade to "next-release" if you are not running it already.
The best way to upgrade is by performing a new install of Funtoo Linux some time before the new year.
It is technically possible to upgrade from 1.4 to next, especially on server systems with minimal packages, but we don't recommend it.
The End of Genkernel -- Welcome "Funtoo Ramdisk"
For the longest time -- almost since the beginning of the project -- Funtoo has had a forked version of Gentoo's genkernel
which we used to build our official kernel and initramfs. For an equally long time, I have wanted to completely rewrite genkernel
from the ground up. There was always some distraction that prevented me from doing this, and we were able to keep genkernel
hobbling along for around a decade -- but it was time to do something about it. What were some problems with genkernel? Several. Many people haven't really liked it because it built your kernel and your initramfs -- this made it cumbersome to use. There has been a long-held desire to separate this functionality. It has also amassed a ton of features and become very complex and its code base is difficult to refactor and improve. So we needed a better foundation going forward.
After September 11, 2023, when harvester/2023-08
updated are merged into Funtoo Linux, Funtoo Linux will have a new initramfs building tool called ramdisk
, which will be utilized by the new debian-sources 6.4.13_p1 ebuild to build your initramfs. genkernel
is no longer used.
[!IMPORTANT] Currently,
ramdisk
supports standard Funtoo Linux installs only -- so a root filesystem of xfs or ext4, and no LVM, cryptsetup, btrfs, etc. Work is under way to add in this functionality. In the meantime, you will see thatdebian-sources
will prevent you from merging the new kernel if you happen to use the as-yet-unsupportedUSE
flags such asbtrfs
. If you are one of these people using an unsupported setup, don't worry -- we'll be adding support forbtrfs
,lvm
, etc. soon. For now, runemerge
with--exclude debian-sources
to get all updates minus the new kernel. Make sure there is a bug open on the bug tracker for theramdisk
capability you need. This will allow us to officially add Funtoo support for this functionality, and also include it in our install docs. This will also allow you to test the new functionality to help us to officially support it going forward.Existing issues:
As a quick introduction to ramdisk, I will include an excerpt of the README from its official funtoo-ramdisk pypi page
(https://pypi.org/project/funtoo-ramdisk/😞
The Funtoo ramdisk tool, called ramdisk is a stand-alone tool to create an initial RAM disk filesystem (initramfs) for booting your Linux system.
The internal initramfs logic is based on the logic found in Gentoo Linux’s genkernel tool, but has been rewritten to be simpler and more efficient.
What's not included
Nearly all “extra” genkernel features are intentionally not yet implemented. This tool doesn’t build your kernel or modules.
It also currently doesn’t support dmraid, zfs, btrfs, encrypted root, or LiveCD or LiveUSB booting. [yet]
Why not? Because one of the main design goals of this project is to create a very elegant and easy-to-understand initramfs whose core logic is not cluttered with tons of complicated features. To start from a clean slate, we are starting from very minimal functionality and then will very carefully add back various features while keeping the code clean, simple, elegant and effective.
What's Included
So, what does Funtoo’s ramdisk tool actually offer? Here’s a list:
genkernel-style initramfs without the cruft. In comparison to genkernel’s initramfs, the shell code is about 10x simpler and a lot cleaner and has been modernized. About 100 lines of shell script, with another 215 lines of functions in a support file.
Copies over the modules you specify – and automatically figures out any kernel module dependencies, so any depended-upon modules are also copied. This eliminates the need to track these dependencies manually.
Rootless operation. You do not need enhanced privileges to create the initramfs.
You can read the
linuxrc
script and actually understand what it does. It is written to be easy to understand and adapt. So it’s not just short, but easy to grasp.Enhanced module loading engine on the initramfs which is significantly faster than genkernel. This effectively eliminates the “watching the stream of useless modules being loaded” issue with genkernel. Modern systems with NVMe drives will load just a handful of modules to boot – all without requiring any special action from the user.
“kpop” functionality allows for building ramdisks with just the modules you need. For example, ramdisk
--kpop=nvme,ext4
will create a ramdisk that can boot on NVMe ext4 root filesystems, and only include these necessary modules, leaving all other modules to be loaded by your Funtoo Linux system.Effective Python-based command to actually build the ramdisk, which is called:
ramdisk
. This gives us an extensible platform for the future.Enhanced ini-style system for selecting modules to include on your initramfs.
Enhanced ini-style system for selecting module groups to autoload on the initramfs.
Support for xz and zstd compression.
As you can see, ramdisk
is an exciting and innovative project which will continue to deliver new goodness related to booting. I hope you enjoy it! 🙂
Summer Harvest
With the close of summer comes the merging of our development work from the harvester/2023-08
branch. This is a branch where we can make possibly breaking changes and work out kinks before things hit end users. Thanks to all who contributed to the summer harvest this round. Here is a brief and incomplete summary of changes in harvester, plus any hotfixes added to the master
branch during this time:
-
gcc-12
added, along with updated binutils. -
Introduction of
funtoo-ramdisk
(see previous section) - Linux 6.4: debian-sources-6.4.13_p1
-
Reworking of
libreoffice-bin
to remove unnecessary deps. - Updated NVIDIA drivers.
- FL-11523: forward-port rtl89 Wi-Fi to address flakiness issue
-
docker
,docker-cli
,docker-compose
,docker-buildx
,containerd
,runc
updates/fixes (thankssiris
) - ZFS 2.2.0_rc4 with Linux 6.4 compatibility, with 2.2.0 final soon to follow.
-
zathura
document viewer autogen (thanks tocuantar
) -
pgplot
update (thanks tocuantar
) -
gocryptfs
,jq
,meilesearch
,nix
,lowdown
,mdbook
autogens (thanks toinvakid404
) -
libxcb
,libcpuid
hotfixes (thanks toinvakid404
) -
go-1.21.1
(thankssiris
) - Inkscape 1.3 and updates to boost to allow this.
-
typeprof
build failure (thanksborisp
) -
geany
reworked ebuilds (thanksgrouche
) -
firefox-117.0
,thunderbird-115.1.1
(thanksborisp
) -
Updated
libbson
,mongo-c-driver
,cri-tools
(thanksgeaaru
) -
Multiple python module fixes/maintenance (
drobbins
) -
lightdm-mini-greeter
autogen (thanksizder456
) -
ibus-skk
and dependencies, removeibus-pinyin
andpyzy
(thanksmadman10k
) -
Add feature to allow PEP 517 python modules autogens to be determined automatically (
drobbins
) -
Fixes of
kit-fixups
git pre-commit hooks.
Many thanks to all who contributed.
End
OK, that's it for now -- stay tuned for an additional community/newsletter supplement that will cover more topics.
0 Comments
Recommended Comments
There are no comments to display.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now