Today I reinstalled Void Linux. Mostly just to start fresh and get rid of the cruft I had accumulated over the past few months. There are certain things that don't work on my hardware, not specifically with Void, but Linux in general. These are things that need to be fixed.
For future reference, and for anyone who may find it useful, this article exists.
Any kernels above version 6 causes weird issues on my hardware. Such as being unable to adjust the volume of my
speakers or change the backlight. Kernel 5.15 works pretty much flawlessly, so that's what I install:
xbps-install linux5.15 linux5.15-headers.
The kernel headers are important, because without them, other drivers tend not to work. Don't reboot yet. We'll do that at the end.
I have a BCM4331 WiFi card. This card requires proprietary drivers to function. Thus, we need to install the
non-free repository. This grants us access to proprietary
software and drivers.
sudo xbps-install void-repo-nonfree. Then, run update the repositories:
sudo xbps-install -Suv.
Now comes the driver. You can install it through
broadcom-wl-dkms. I cannot tell you if this works
on all Broadcom cards (I expect it doesn't). That's it for Wifi!
I have a Nvidia graphics card. Nouveau drivers are usable, I have used that alone for a while, but proprietary
drivers tend to yeild better performance despite their problems. It is important that you know
which version of drivers you need. I happen to need version 390. Thus, I would install it as such:
xbps-install nvidia390 nvidia390-dkms If you require verson 470, adjust the version as needed.You can
see all of the available drivers by querying for them:
xbps-query -Rs nvidia.
We've got to install bluez to get bluetooth working. After that, we need to start the bluetoothd and dbus
services. In my experience, dbus tends to run out-of-the-box, but there's no harm in double checking. Because
dealing with runit,
sudo ln -s /etc/sv/bluetoothd /var/service (for bluetoothd);
sudo ln -s
/etc/sv/dbus /var/service (for dbus).
We can interface through bluetoothctl. Or through blueman. Blueman is fine, and that's what I use mainly, but for pairing devices, bluetoothctl is generally more reliable.
In a terminal, type
scan on. When you see your device,
trust [address]. You can tab-complete the address. Then,
pair [address]. Finally,
From this point onwards, blueman works fine. Install it through
sudo xbps-install blueman
Pulseaudio works better on my iMac. Thus, install pulseaudio and remove pipewire.
If I connect a bluetooth speaker to this machine now, I'm not able to adjust its volume. It plays at either max volume or zero volume. This thread on the Unix Stack Exchange has our solution.
/etc/pulse/default.pa. Change the line
load-module module-bluetooth-discover to
load-module module-bluetooth-discover avrcp_absolute_volume=false. Thus, our problem is solved.
We could do this through the command line, or we could install a package called grub-customizer:
xbps-install grub-customizer. You'll need root privelages to run it, so if you happen to be running a
window manager without a polkit, run it as root from the command line. Go to the "General settings" tab. Under
the "default entry" heading, choose what you want. If you want to always boot the same kernel, choose that under
"predefined". Otherwise, select "previously booted entry". This will default the kernel to whatever you selected
in the previous session. Click save.
Now we may reboot. Select the proper kernel, and voila! Everything should be working now.
This article was written on 26/07/2023 and modified on 02/09/2023. If you have any thoughts, feel free to send me an email with them. Have a nice day!