For two years I've been driving myself crazy trying to figure out the source of a driver problem on OpenBSD: interrupts never arrived for certain touchpad devices. A couple weeks ago, I put out a public plea asking for help in case any non-OpenBSD developers recognized the problem, but while debugging an unrelated issue over the weekend, I finally solved it.
It's been a long journey and it's a technical tale, but here it is.
I use a Huawei Matebook X as my primary OpenBSD laptop and one aspect of its hardware support has always been lacking: audio never played out of the right-side speaker. The speaker did actually work, but only in Windows and only after the Realtek Dolby Atmos audio driver from Huawei was installed. Under OpenBSD and Linux, and even Windows with the default Intel sound driver, audio only ever played out of the left speaker.
Now, after some extensive reverse engineering and debugging with the help of VFIO on Linux, I finally have audio playing out of both speakers on OpenBSD.
For some reason I like small laptops and the constraints they place on me (as long as they're still usable). I used a Dell Mini 9 for a long time back in the netbook days and was recently using an 11" MacBook Air as my primary development machine for many years. Recently Microsoft announced a smaller, cheaper version of its Surface tablets called Surface Go which piqued my interest.
ThinkPads have sort of a cult following among OpenBSD developers and users because the hardware is basic and well supported, and the keyboards are great to type on. While no stranger to ThinkPads myself, most of my OpenBSD laptops in recent years have been from various vendors with brand new hardware components that OpenBSD does not yet support. As satisfying as it is to write new kernel drivers or extend existing ones to make that hardware work, it usually leaves me with a laptop that doesn't work very well for a period of months.
After exhausting efforts trying to debug the I2C touchpad interrupts on the Huawei MateBook X (and other 100-Series Intel chipset laptops), I decided to take a break and use something with better OpenBSD support out of the box: the fifth generation Lenovo ThinkPad X1 Carbon.
The Huawei MateBook X is a high-quality 13" ultra-thin laptop with a fanless Core i5 processor. It is obviously biting the design of the Apple 12" MacBook, but it does have some notable improvements such as a slightly larger screen, a more usable keyboard with adequate key travel, and 2 USB-C ports.
It also uses more standard PC components than the MacBook, such as a PS/2-connected keyboard, Intel WiFi card, etc., so its OpenBSD compatibility is quite good.
The Xiaomi Mi Air 12.5" is a basic fanless 12.5" Ultrabook with good build quality and decent hardware specs, especially for the money; while it can usually be had for about $600, I purchased mine for $489 shipped to the US during a sale.
Note that the current models being sold have a 7th generation (Kaby Lake) processor, so OpenBSD compatibility will be different.
I recently had access to a Surface Pro 4 and tried to boot OpenBSD on it. It did not go well, so I am just putting this here for posterity.
The 2016 Surface Pro 4 is basically just a keyboard-less x86 (Core i5 on the model I had) tablet with some tightly integrated (read: not upgradeable) components. Its optional Surface Type Cover is just a USB-attached keyboard and trackpad, which magnetically secure to the bottom of the device.
I've been using an 11" MacBook Air as my primary computer for six years. It's a great computer that satisfied a lot of requirements I had for a laptop: thin, lightweight, small form factor, excellent keyboard and touchpad, mostly silent, but not an Atom or Core M processor.
I've done a lot on this little computer, like compiling and maintaining an Android ROM, writing the Rails, iOS, and Android apps for Pushover, creating Lobsters, recording and editing 40 episodes of Garbage, and lots of OpenBSD development.
The Chromebook Pixel LS (2015) has an Intel Core i7 processor (Broadwell) at 2.4Ghz, 16Gb of RAM, a 2560x1700 400-nit IPS screen (239ppi), and Intel 802.11ac wireless. It has a Kingston 64Gib flash chip, of which about 54Gib can be used by OpenBSD when dual-booting with a 1Gb Chrome OS partition.
i bought the oqo 2 years ago hoping to have a truly portable computer that i could carry around and still access my familiar working environment, but for the majority of the time when i was at my desk, it could dock to a full-sized screen and keyboard. that plan didn't really work out too well since the hardware wasn't very compatible with openbsd and it was too small to really use without the dock anyway.
years later, netbooks became popular (and cheap) so i tried the hp 2133 and msi wind, using the wind as my only machine for quite some time. eventually the 1024x600 resolution felt kind of cramped so i went back to a full-sized laptop with the thinkpad x200. it has a 1280x800 resolution that was a nice improvement over the thinkpad x40's 1024x768, but it feels like more of a desktop machine than a laptop. it's quite big, its fan is on all the time, and the battery life isn't that great without the heavy 6-cell battery.
i don't remember what prompted it, but i also bought a nokia n810 the other week. i bought a nokia 770 two years ago and it sucked, but now that it has a physical keyboard and gps, i figured i'd give it another try.
i found the casing to be a bit flimsy. when the keyboard was extended downward, the display wouldn't sit still and would kind of tilt one way or the other. the keyboard was not very easy to type on, but certainly easier than pecking at an on-screen keyboard like with the 770.
i bought an hp 2133 mini-note a while ago. it's a "netbook" or whatever people are calling all of these new eee-pc-like machines. the size is similar to my libretto l5, which came out like 6 years ago (and mine is sitting in my closet with a broken keyboard) so i'm not sure why all these companies are suddenly making similarly sized machines.
the overall size is decent but, because this one has a 6-cell battery, it sticks up twice as tall in the back and makes it awkward to carry. the keyboard was very nice and big, and its keys and tactile reminded me of the keyboard on my old powerbook g4. the trackpad is pretty stupid, though, since its buttons are on the sides and not at the bottom. the trackpad itself seemed a bit unresponsive at times as well.
i started working on an acpi driver this evening to make my thinkpad x61 work better under openbsd. i just finished it and so far it matches on the IBM0068 acpi hid device, checks it for the appropriate version, enables the bluetooth device (which is required before the hardware toggle switch can power it on and let the ubt0 device show up), and sets up a callback to run whenever a special button (e.g., fn+f[1-9], brightness, thinklight, etc.) is pressed. i'm pretty sure it will work on most other thinkpads but i haven't tried it on my x40 yet.
i mapped out all of the events that get generated, which on my x61 tablet include the screen rotating around, the lid opening and closing, and even the pen being ejected from its little slot. when the brightness buttons (fn+home and fn+end) are pressed, it sends a cmos command through acpi to actually adjust the screen brightness accordingly, so now it's working just like my x40 did on its own. being able to turn the brightness down when on battery is the main reason i wrote this.
for certain reasons, i've been looking at getting a tablet laptop. i bought a fujitsu lifebook p1610 tablet in december but found its screen and keyboard too small to use on a daily basis.
after using openbsd on one of my imacs for the past few months (and rarely using my thinkpad x40), i had gotten used to the extra screen real estate of the 1440x900 resolution. now that i'm back to using a laptop as my primary machine, i've been looking for something with a higher resolution (as well as more cpu power and ram) to replace the x40 as well as provide tablet functionality. the thinkpad x61 tablet satisfied those requirements while still staying relatively light and thin, so i bought one.