In previous threads I explored NetBSD on a Thinkpad X250. I ended up having better results on this machine with OpenBSD so I reported my findings where I compared the two.
I decided to create a new thread dedicated to OpenBSD exclusively to keep things separate. This is not meant as a comparison but as a stand-alone review so to speak.
I'll explain how I've installed OpenBSD and report on how it's been behaving so far on this machine. Hopefully this is useful to any of you wanting to try out OpenBSD on a X250 or similar machine!
Installation process
The installation process is very straightforward and fast once you're used to it so it was done in no time. Wireless was not available during install because it requires firmware. However, I'd downloaded all relevant drivers (iwm, video) and put them on a ext2 formatted usb drive as a matter of preparation for post-installation.
The relevant drivers can be obtained here for 6.9. More on this below.
Full-disk encryption
I like to have at least my home partition encrypted but full-disk encryption is what I prefer on laptops. This is fairly easy to do with OpenBSD. it's explained in full here and here.
Once OpenBSD had booted from the usb stick, I checked the disknames, created the device nodes for the hard drive, initialized the disk and created a softraid partition taking up the entire disk. Once that's done, I built the encrypted partition, which prompts for a passphrase.
It's important to take note of the volume it reports to have created. Be sure to write it down or remember it. Then just type exit
to proceed to the actual installation, where you select the crypto volume as the drive to be used for installation.
Here are the steps I took:
sysctl hw.disknames
cd /dev && sh MAKEDEV sd0
dd if=/dev/urandom of=/dev/rsd0c bs=1m
fdisk -iy sd0
disklabel -E sd0 # choose FS type "RAID"
bioctl -c C -l sd0a sofraid0
exit
Time to proceed to the actual installation.
Installation
Since wireless was unavailable and I didn't connect over ethernet, I only set up my DNS servers (space-separated) and hostname, and installed all sets onto the encrypted volume created with bioctl
. I created three partitions:
- 'a' (root partition),
- 'b' (swap),
- 'd' (home partition)
Where 'c' is the "entire disk".
Post-installation
When booting for the first time, if you've opted for full-disk encryption, the boot loader will ask for the passphrase. Then you just hit 'enter' and boot the OS.
I only configured my network after a first boot. For that, I first needed to install the appropriate firmware I had put on the ext2 formatted USB disk. Here's an example of how this can be done:
sysctl hw.disknames
disklabel sd1
mount /dev/sd1i /mnt
fw_update -p /mnt
I then did the following:
- configured my network
- ran
syspatch
to patch the system
- enabled power management with
apmd
- tweaked
/etc/wsconsctl.conf
a little (has to be copied from /etc/examples/wsconsctl.conf
)
- rebooted the machine
- made a donation
Network configuration
This is pretty straightforward.
- DNS settings:
/etc/resolv.conf
- Default gateway:
/etc/mygate
- Wireless requires creating a file for the device, e.g.
/etc/hostname.iwm0
. The name of the device depends on the driver. In this case, that's iwm
which leads to iwm0
for the device name.
Power management
On OpenBSD, the apm daemon is used for power management. To enable and start it, you run this:
rcctl enable apmd && rcctl set apmd flags -A && rcctl start apmd
Setting up X11
With network up and running, I installed various packages (the usual) for desktop use.
It's important to know that on OpenBSD you don't use startx
with a .xinitrc
as $USER
. Instead, you start a X11 session through xenodm
(similar to xdm
) which requires a .xsession
file.
For instance, to launch an XFCE session, put this in ~/.xsession
:
exec /usr/local/bin/xfce4-session
If you did not enable xenodm
during installation, this can be done manually:
rcctl enable xenodm && rcctl start xenodm
Installing XFCE
Though I used KDE for a while on Devuan Linux, I've mostly used XFCE and that's the environment I use on all my machines now as it's available on virtually every Unix or Unix-like OS. It's rather lightweight, configurable, stable, and certainly not prone to major overhauls, which I see as a good thing. With the right gtk theme and/or icon theme, you can make it look very good, too!
For a basic XFCE setup, run pkg_add -iv xfce
For a fuller setup, also do pkg_add -iv xfce-extras
With XFCE installed, xenodm
enabled and started, and a properly set up .xsession
you can then launch a session where you'll be greeted by XFCE's friendly mouse.
Here is an overview of some things I've noticed running OpenBSD on this machine.
Suspend-to-RAM and Hibernation
Both work fine, both from the Xfce menu (you must be member of the operator
group for this) and on the console, using zzz
or ZZZ
respectively. Wake on lid open works. So far, I haven't noticed any odd behavior on wake-up. The session just resumes as expected.
Battery
Battery levels can be checked with apm
. My removable battery was detected by the XFCE battery plugin as well. Battery life with the removable battery charged at 100% and XFCE running idle stands at about 5h30 which is fine with me.
Performance
Changing the Xfce (whisker/application) menu icon (after installing the latest papirus-icon-theme
using their install script from github) has become a bit of a "performance test" to me as it seems it's resource-intensive on any system I've used (including Linux).
Now, I was able to change the (whisker) menu icon. Not without some kicking and screaming as it did struggle and take a while for the icon selector to open. CPU temperatures did go up quite a bit. It took a couple of minutes for it to load but I was able to set my preferred icon and get it over with.
Based on what I've observed so far, CPU temperatures are higher than on Linux (by about 5 °C to 10 °C) but appear to be pretty stable. RAM usage looks appropriate to me on this machine. Network transfers and file operations seem to be performing fine.
Example output can be found below.
Touchpad
No issues with the touchpad whatsoever. Tapping can be enabled in /etc/wsconsctl.conf
where you'll find there's a setting for it. Two-finger scrolling works out of the box.
Thinkpad buttons
I use the Thinkpad buttons quite a bit. On OpenBSD, I've found that they work out of the box for audio (mute & volume control) and to control the backlight (increase/decrease brightness).
Audio
This is a bit trickier. I've reported a bug to the OpenBSD folks on this as audio output initially is garbled. This should not be necessary, but setting the sniod
flags to -m play
solves this, although apparently this disables recording (which doesn't matter much to me).
If you encounter this problem, you can issue this command as a workaround:
rcctl sndiod set flags -m play && rcctl restart sndiod
I would also recommend installing cmixer
if you need to tweak the sound card in a more accessible way.
I did get some "static noise" at one point but that quickly disappeared. Ever since, it hasn't happened again. Overall, the sniod -m play
workaround seems to do its job and playback is fine now.
Output for reference
I think that more or less covers it so here are some pastebins and screenshots:
- dmesg ( edit: includes first boot as well so beware)
- Xorg.0.log
- sysctl hw.sensors (xfce, firefox-esr with 3 loaded websites)
- sysctl hw.sensors (as above + vlc + libreoffice + quod libet playing mp3)
- sysctl hw.sensors (temperatures rising as I change the menu icon)
- sysctl hw.sensors (xfce, firefox-esr with 8 tabs, tor, vlc video playing, quod libet open, etc)
- sysctl hw.sensors (while syncing loads of files over rsync/ssh)
- top (during that same operation)
- top (xfce, firefox-esr with 3 loaded websites)
- top (as above + vlc + libreoffice + quod libet playing mp3)
- top (xfce, firefox-esr with 8 tabs, vlc video playing, quod libet open, etc)
- top (while syncing loads of files over rsync/ssh)
- xfce + vim + neofetch screenshot
- xfce + libreoffice screenshot
Conclusion
Overall, it's been a good experience for me. OpenBSD 6.9 interacts nicely with my hardware and offers virtually all of the software I need. I appreciate the straightforwardness of the installation process, the ease of setting up networking, the speed of installing packages, and the simplicity of installing firmware and applying system patches. The main drawback would be virtualization which is more limited on OpenBSD than on Linux, but that's not much of a concern on this machine in the end since it's for strictly personal use anyway. I still have much to learn and discover but it looks like this machine will keep running OpenBSD in the foreseeable future.
As always, your mileage may vary.
Cheers!
EDIT : cleaned up and added a few few things