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: sudo
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: sudo
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
we're
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 bluetoothctl
. Then, scan on
. When you see your device,
trust [address]
. You can tab-complete the address. Then, pair [address]
. Finally,
connect [address]
.
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.
Open /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: sudo
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!