libre-void - Void + Libre-Linux kernel
I've been playing with libretizing a cool new distro - Void Linux. I had to compile Linux-libre for it, completed that last night. This is the top left corner of my DWM work space.
Not much beautiful to show so far. Void is beautiful because of its ability to install minimally. I've gotten it to run an X session with DWM in less than 90mb of ram, without custom compiling every package like on Gentoo.
Also it's viciously fast. grub screen to login in under 2 seconds. Violent speed - should be illegal. A lot of that is because it uses a very highly optimized runit init system, instead of the more bloated init systems like systemd.
Here's the neofetch picture I was going to post in the last message. Not much to see here - I haven't added any bling. Just a lot of speed for very few resources. Minimum ram to install this puppy is 96mb - but it's not like Puppy linux. It's a full blown general purpose distro with repos that have all the desktops and all the bells and whistles. Very similar to Arch, but init system and package system are different. But a lot of Arch instructions work exactly the same on Void. Also unlike Arch, Void is a stable distro instead of a white-knuckled bleeding-edge stuff-is-constantly-breaking distro like Arch.
That's sound interesting, i never tried void. Basically you can build linux-libre with any distro. I don't want to start another topic but I found this https://wiki.gentoo.org/wiki/Kernel_Deblobing , https://wiki.gentoo.org/wiki/Installation_on_libreboot
I'm sure we can "purge" any linux distribution.
Yes, we've been purging a few different distros, including Debian, Devuan and antiX. Years ago I worked on opensuse Tumbleweed. This Void project is one I'm enjoying more than most.
Some distros are much harder to purge than others, because the non-free bits get so deeply imbedded and become dependencies that much of the larger structure depend on. That's one reason so many of us have been saying that Trisquel might want to look to a different base than Ubuntu eventually.
Void is interesting in that it is not derived by recycling the repos and packages from Debian, Arch, RedHat or Slackware, like the vast majority of other distros. In that way it's truly independent like Gentoo. At the same time it's structured much like Arch, and the excellent Arch documentation generally can apply to it, while the distro still avoids the Arch problems of bleeding edge packages and of the use of systemd.
Thank you for explaining these, Andy. I could learn much of Void GNU/Linux positive points just by reading yours.
Sincerely,
Malsasa
It's true that a devuan base for Trisquel would be nice. I was looking about "dyne" and dynebolic is on the FSF distro list : https://www.dyne.org/software/dynebolic/ , I can trust that dyne is a serious organization. It would be nice and the user could choose his init system and why not is "release" /stable/unstable.
Creating more "Libre/free" distros would be a good thing to attract more users in the FSF camp.
It will be not to hard to do. It's just a repository with a bunch of packages and the tools are already made. You have an installer, you have apt, you have packages, you have openrc, etc. It's not unrealistic.
Glad to see that you and I are on the same page. I've been banging the drum on this for years. There's no reason that most distros, especially the larger and more general distros that actually offer fully free repos, cannot be purged of non-free software and software that promotes non-free options. One nice thing I've found is that abrowser can be used on nearly any Debian-based distro just by dropping in the deb file from the Trisquel mirrors. And of course, Linux-libre is super easy to add to any Debian-based distro because of jxself's excellent repos.
You have indeed been very helpful to all who are looking for minimalist systems, or simply lightweight components to less minimalist systems. I have discovered a few of them thanks to the various threads you opened here over the years.
Minimalist systems being also somewhat easier to fully liberate, they offer as many alternatives to larger projects, which might easily be derailed by the Chthulu that be.
Debian's kernel is already deblobbed (see http://www.fsfla.org/pipermail/linux-libre/2021-May/003419.html). Not sure about Devuan.
Dynebolic doesn't seem to be actively developed, unfortunately. However, the organization develops some nice software like tomb.
Although, as an aside, Debian's efforts fall short of the GNU FSDG and thus Linux-libre fills a different need by providing a GNU FSDG-compliant kernel.
Hi jxself, can you briefly describe the differences between the Debian kernel and the Linux-libre kernel? I had a long-time Debian developer yelling at me on the Devuan forum that "the Debian/Devuan kernel doesn't have any blobs!!! There's no real difference with Linux-libre!!!"
I told him that lsmod returns remarkably different results, with Linux-libre showing something like 50 fewer modules, and a lot of the Debian modules are things I really don't want like bluetooth and me-mei.
Could you possibly briefly shed some light on the differences?
The modules included are likely a result of the build configuration used by Debian vs Linux-libre from jxself's repo.
If you're curious about the differences between Linux and Linux-libre, I could upload a diff, but it contains nonfree firmware. Anyway, you can see the list of files that Debian removes here: https://metadata.ftp-master.debian.org/changelogs//main/l/linux/linux_5.10.46-4_copyright
You can check for yourself that Linux-libre removes af9005-script.h and the problematic cops files. It also removes the blobs in vs6624.c and micropatch.c while retaining the rest of the code (I think Debian just considers the entire file nondistributable). Here the main difference is that Linux-libre attempts to keep the drivers functional, while Debian just breaks them completely. Whether they actually work without the firmware, who knows. I doubt many people use these drivers. Also, Debian removes some old, obsolete NVIDIA drivers since they consider the source code to be obfuscated, along with an IETF document. Linux-libre doesn't remove these - I asked Alexandre Oliva about the NVIDIA drivers and he said that it's acceptable since FSF and Debian have different standards.
The rest of the changes that Linux-libre makes are to disable firmware-loading functionality and remove names of firmware files, as well as remove some documentation and scripts for downloading/extracting such firmware.
So the Debian developer was partly right - the Debian kernel doesn't contain blobs (as far as we know), but it is different from Linux-libre in that it will load nonfree firmware that you provide it, and output the names of firmware files that it fails to load.
I'm a bit more interested in the first part - the build configuration which leads to the Debian kernel loading so many undesirable modules. Linux-libre runs leaner and cleaner for my purposes.
Since you are familiar with this, I have a question on something I heard about: there are Broadcom wifi chips that have non-free firmware on a ROM and work with Debian and perhaps Linux libre as well. Is that because these wifi chips are using the same drivers as the chips working with free firmware?
"Could you possibly briefly shed some light on the differences?"
Not surprisingly, different standards result in different outcomes.
"The modules included are likely a result of the build configuration"
The kernel configs I use can be found online at https://jxself.org/git/?p=kernel-configs.git
"The rest of the changes that Linux-libre makes are to disable firmware-loading functionality"
Not loading firmware is actually a bug and not the actual goal. The actual goal is to let the kernel still load the firmware without it complaining about non-free stuff not being present when people don't have it installed. It's bad form for the kernel to barf these messages all over your console about how you're missing non-free programs just because you decided to go apply a package update and get a new kernel or just because you've decided to turn your computer on.
After all: https://www.gnu.org/philosophy/compromise.en.html
"The issue here is not whether people should be 'able' or 'allowed' to install nonfree software; a general-purpose system 'enables' and 'allows' users to do whatever they wish. The issue is whether we 'guide' users towards nonfree software. What they do on their own is their responsibility; what we do for them, and what we direct them towards, is ours. We must not direct the users towards proprietary software as if it were a solution, because proprietary software is the problem."
A side effect of this -- the bug -- has manifested itself that now it won't load the firmware at all, even when it is there but this isn't the end goal. There are partial patches on the Linux-libre mailing list to partially address it and contributions to solve the real goal are welcome but be ware that it's a particularly hard problem to solve which is why it hasn't been already.
When did you start building for sparc64? And System Z? You've been quite busy. Have you gotten any feedback on how it's running on that kind of hardware?
It's all part of Evacuating The Titanic - https://jxself.org/titanic.shtml as I look at potential hardware that could potentially be useful for software freedom.
sparc64 was back in January because of https://en.wikipedia.org/wiki/OpenSPARC which is a GPLed processor that someone could use in making a machine. I don't know that anyone's actually using them or has even built such a machine. That wasn't the criteria anyway. It was more to put them out there and also be able to test things and make sure that the code keeps working. I found that, while packaging up linux-libre-firmware, unpopular things would often be broken -- sometimes for years -- with no one even noticing. Because who knows what we might need in the future.
"There's no way to know what is going to work out well for software freedom in the long term. It doesn't make sense to put all of our eggs in one basket. Indeed, there can be multiple efforts going on..."
s390x was back in 2018 just because a mainframe sounded fun.
At this point I think I've identified all of the potentially interesting things that there might be from a software freedom point of view, except perhaps for MIPS stuff. I've been thinking and debating on taking on MIPS stuff too. I'm thinking on those things from Lemote and whatnot but there seems to be other options too. I haven't tackled them before because Alexandre Oliva was building kernels for them although he seems to have stopped.
The more I read, the more I want to do crappy things.
- A tool that purge any linux distribution?
- Or a distro based on devuan? There are a lot of distros...
I like Trisquel a lot but why systemd? I don't have the awareness to prove myself that it is the best init in the world. A crappy script that build a linux-libre kernel, disable nonfree repository, install icecat etc.
And a linux-libre from scratch book would be fun too.
Edit: GNU Guix is all about that...
In case it isn't rhetorical (I'm terrible with being able to tell), the reason for Trisquel using systemd is that Ubuntu does and it would be arduous to rework everything.
As soon as I saw the thread title I knew this was going to be from Andy haha. Congrats !
Always digging deeper. One of these days I'll work my way over to Gentoo.
Speaking about init systems. the GNU project has one, https://www.gnu.org/software/shepherd/ , I'm switching between distros.
I was looking the source about systemd and I think it's not systemd anymore. You have lot and lot of patches in the package. All systemd are not equal between distros.
Have you installed Guix? If you do, please let us know your experiences, with a lot of detail. I've installed the Guix package manager on Trisquel and Devuan, but I've never gotten the full Guix OS to install. I only tried a couple of times, but each time I got a broken installation and I didn't bother to try to figure out how to fix it. It's been a couple of years, so I assume their installer has been improved (hopefully).
I have installed guix OS on a separate hard drive, so it was easy with the "graphical installer". I use ratpoison/emacs/icecat or exwm. I use the same software all the time.
Before install, I boot the kernel with nomodeset because I have a newer intel cpu with a graphic chip. I do my install. I reboot. I update my system
guix pull
sudo guix system reconfigure /etc/config.scm
And it's done. When your installation is good, you can backup your config.scm
I have a dedicated sdd so it's easy to setup. But my hardware is not free, I need to look after a libreboot laptop.
http://guix.gnu.org/en/manual/en/html_node/System-Installation.html#System-Installation
Not that different from my usual setup. Usually my only graphics environment is dwm. I have not tried ratpoison, but have certainly heard good things about it.
As far as libre hardware, this isn't librebooted, but minifree's corebooted i5 X230 with me_cleaner, and room for 16 GB ram for only $278 is pretty enticing - https://minifree.org/product/osboot-x230/
For that kind of money I might have to give it a spin. I'm thinking the i5 could eventually be switched out for an i7 as well, but not certain.
Agreed. We might soon find ourselves using clone machines, although I guess 8GiB RAM will be plenty enough for my usage.
> "I guess 8GiB RAM will be plenty enough for my usage"
I would feel the same, but sometimes I just have to have 70 browser tabs open all playing Spongebob Squarepants videos at the same time.
That sounds like an intense psychedelic experience. Maybe Tibetan monks would appreciate the technique, if you happen to drop by in Ladakh some day.
Just checked the small prints, and there is in fact only a thin $20 difference between the 8 and 16 GiB upgrades. I should manage to suggest an anticipated birthday gift from some remote cousin. I would then be settled for the rest of my current life, and possibly a few more.
I'm reading the documentation about coreboot and libreboot and the idea that it is possible to build a "firmware" and flash it is truly amazing.
A libreboot computer is a good thing to buy.
https://www.youtube.com/watch?v=3XAW3vv1_18
Did you pick glibc or musl for your libre void set up?
I tried both. Both are extremely fast. I'm on glibc now, in order to try the LibreWolf appimage. I couldn't get appimage to work on the musl version.
Thanks a lot- now you've made me tempted to hop distros again :).
In all seriousness, are Void's repos libre (or close enough)? If so, I might just follow you into the abyss someday.
The main repo is not like Arch which mixes free and non-free packages in its main repo - all non-free is supposed to be in a separate repo non-free.
However, the installer does try to install non-free firmware, as the devs obviously don't want all the complaints from the people crying about "my laptop's wifi/graphics card won't work!!!" But, a simple search for packages including the word "firmware" will locate them quickly for you and allow you to delete them. So it's not an insurmountable problem.
If I get time and figure out a good way to create a respin, I might take a shot at creating an installable ISO that includes the Linux-libre kernel and abrowser and does not include the non-free firmware.
This just keeps getting better and better! If you do ever manage to produce a liberated respin, I for one would definitely be interested (until then trying to compile the kernel may be plenty to keep me busy).
If you install the minimal system and then the minimal-xorg package on top of it, and add your favorite minimal window manager, you can be booting up from grub to login in about 2-3 seconds and running the window manager with less than 100mb of ram. You can run quite a bit of stuff in that manner without dbus, polkit, eudev, etc. Networking is just a simple dhcpcd service for bringing up ethernet, and wpa_supplicant for wireless. I was teaching myself how to use wpa_cli tonight to connect to wireless networks without installing any gui's.
Void runs appimages very well, so I download them, extract them with --appimage-extract, and link the squashfs-root/AppRun file to /usr/local/bin/ so that the appimages will show up in dmenu and start up instantly. I get LibreWolf and the latest version of LibreOffice that way.
What's your window manager there? JWM, or are you going back to your CTWM or TWM days?
That's twm. I installed fvwm, too. I couldn't find mwm. There's a package 'motif', which I installed. But how do you make it work here? Xinitrc: 'mwm' doesn't work.
It works for me just now. I installed the packages motif, motif-mwm, and motif-xmbind
I put one line in my ~/.xinitrc file:
exec mwm
And then the startx command brought it up. Just a black window with a pop-up menu when I right click the mouse. On my system with no graphics drivers, my used memory after starting up mwm is 78mb. That's a bit less memory than dwm, which starts up with about 87-89mb of used memory.
Maybe you didn't install some of the additional motif packages?
Oh yes, thanks. It works now.
I was able to add a background with
feh --bg-scaled [path-to-jpg]
just like with dwm.
Seems like a pretty functional little wm. rofi seems to work ok. I don't know how to make new keybindings or add to the context menu, but there should be how-to's somewhere, or maybe the data is in the man page.
/usr/lib/X11/system.mwmrc
There's a skeleton .mwmrc file to copy to ~/.
I thought it was a place called Westend. But the song is 'West End Girls'. I see.
I assume it's about the West end of London. I think that's where the tourist activity is. I assume from the lyrics that the "east end boys" are the boys from the more poor part of town, and that the west end girls are the rich, beautiful girls from the wealthier part of town that the east end boys would be attracted to.
I thought so. I think the place in Espoo was named after the affluent part of London. It's not native to Finnish.
I am sure this one must also be a great gym standard: https://tube.cadence.moe/watch?v=LNBjMRvOB5M.
"There where the air is free,
We'll be...
What we want to be."
Watching that video clip, now wondering in retrospect what the actual message might have been: blue, red and yellow armies marching through cyberspace.
My goodness, that is the most amazing video ever. And I'm only halfway through it.
It's pretty clear that the creative uber-genius of Cthulhu is somehow behind the creation of this music video.
Tennant mentions "Finland Station" in the lyrics of the song.
It's the terminus of Helsinki-Saint Petersburg railway line (in Russia).
The postcard shows the original station building in S. Petersburg.
The other image is a photograph of the old Helsinki railway station.
Both buildings have since been replaced.
"You got a heart of glass or a heart of stone
Just you wait 'til I get you home
We've got no future, we've got no past
Here today, built to last
In every city, in every nation
From Lake Geneva to the Finland Station"