paritybit.ca

OpenBSD on the Dell XPS 13 9380

Author: Jake Bauer | Published: 2023-03-17

(Yes, I totally ripped off jcs’ format for this.)

It’s been a while since I had a laptop with any semblance of computing power that I actually enjoyed using.

Back in 2021, I ditched my Thinkpad T420s for a Mid-2009 MacBook Pro and an old 2008-era netbook, both with Core 2 Duo series processors. Although the MacBook is still usable for most non-browser-heavy tasks, I just fell in love with portability of the netbook which led me to see if I could find a newer, more powerful laptop that would fit my preferences. I created this page to compare laptops that looked like they might fit what I wanted.

Basically, I wanted a laptop that was small, thin, and lightweight, but also high quality and not too expensive. I don’t need a ton of performance, I didn’t want to spend a lot of money, and I prefer not buying new things whenever I can, so I opted to get something from the used market. I hopped on eBay, did a whole lot of searching, and eventually landed on this.

A Dell XPS laptop lying closed at an angle on a table.

With this new laptop I’ve launched myself 10 years into the future… from 2009 to 2019!

Table of Contents

Hardware

The Dell XPS 13 9380 is another laptop in Dell’s revered XPS line. Known for excellent build quality, nice keyboards, beautiful screens, and good battery life, this model doesn’t disappoint. I managed to snag a version with an Intel i7-8665U, 16GB of RAM (soldered), a 256GB SSD, a 1080p touchscreen display, and a dead battery; all for a very reasonable price and in great physical condition.

The dead battery is probably how I was able to get such a recent, fairly high-end machine for only C$500 ($365 USD on 2023-03-16) before shipping and taxes (an additional C$90) where comparable models were at least C$150 more expensive. I have ordered a replacement 52WHr battery (C$60), but until it arrives I can rely on being plugged into the wall and hibernating whenever I need to move.

The chassis is made of CNC machined aluminium and the palm rest of a soft, comfortable carbon-fibre composite material. The build quality is excellent; reminiscent of MacBooks. It also has minimal yet tasteful branding in the form of an encircled Dell logo on the lid and silver “DELL” text in the middle of the bottom display bezel. The palm rest does have a tendency to pick up fingerprints, but it’s easily cleaned.

On the right side of the laptop is a headset jack, a USB Type-C port, a micro SD card slot, and a speaker.

On the left side of the laptop is a security cable slot, two Thunderbolt 3-enabled USB-C ports, a battery charge status button and indicator, and another speaker.

The laptop can be charged and can output to an external display using any of the three USB-C ports. The Thunderbolt 3 ports would theoretically let me plug in an external GPU if I wanted to do away with my desktop altogether, but that wasn’t a consideration when I got it.

The speakers are nothing stellar. They sound a bit blown out at max volume and don’t have a great bass response, but they don’t sound terrible either and work in a pinch. They sound like they respond best in the mid-range, which is where most human voices land, and they performed quite well when listening to a podcast at about 65% volume.

The laptop open and on, showing this blog post in a vim window.

There is a really small 720p webcam at the top of the display providing a decent enough picture quality. I’m glad this is at the top of the display and not at the bottom looking up into the user’s nose, unlike on previous models. There is also an array of four microphones at the front of the palm rest, just above the charge indicator light, which provides audio of an acceptable level of quality. Both are disabled by OpenBSD by default and can be disabled in the BIOS.

The 13.3” 1920x1080 glossy, touchscreen display looks crisp, vibrant, and clear. Despite it only having 165 PPI, it’s sharp from reasonable viewing distances and has the added bonus of using much less power than the alternative 3840x2160 display. The display can reportedly reach a peak brightness of 400 nits, but I use it at about 30% brightness when indoors. It is by far the best display I’ve had on a laptop. I would have preferred a 16:10 or 3:2 aspect ratio, but that’s only recently come back in vogue so I would have had to pay twice the price or more for a laptop with that feature.

The hinges of the display are stiff and don’t wobble at all when typing or when moving the laptop around. They are still loose enough that you can mostly open the laptop with one hand, though it will start to tip backwards when the display is approaching 80°. The screen also closes with a satisfying thud.

The keyboard is Dell’s typical, crisp, chiclet-style keyboard that was common across all their XPS laptops until more recent models. I enjoy the tactility of the keyboard, which doesn’t flex at all during normal typing.

The trackpad feels soft and smooth, though the physical click noise is a bit loud and high pitched as opposed to a satisfying clunk like on MacBooks. This isn’t such a big deal though since tapping works just fine.

A top-down view of the keyboard of the laptop.

There is no audible coil whine or fan noise at idle. When the laptop is under heavy load, the fan does noticeably spin up but stays relatively quiet. Ultimately, I would have preferred something fanless, but the fanless laptops I could find that also satisfied all of my other preferences were quite expensive.

Wireless connectivity is provided by a soldered Intel Wireless-AC 9260 WiFi 5/Bluetooth 5 chipset, which is unique to models of this laptop which come with an i5-8365U or i7-8665U processor. In models newer than the XPS 13 9350, XPS laptops have come with soldered Intel Killer WiFi chipsets which are not supported on OpenBSD. This model is unique out of the newer XPS lineup in that it has this other WiFi chipset option; neither the preceding or succeeding models seem to have it.

The NVMe SSD is a 256GB Micron 2200S in a removable m.2-2280 form factor. I use 256GB SSDs in almost all of my machines, so this size is adequate for me, but I can always upgrade the storage if I need to in the future. I ran CrystalDiskInfo on Windows 10 before wiping the drive, and it reported that the SSD has about 84% of its life remaining with ~15TB written to it so far.

Firmware

Pressing F2 at the boot splash screen will take you into the BIOS Setup menu. The 9380 has Dell’s typical Windows 7-styled graphical BIOS which is fine and does the job. There are plenty of options available from battery management to turning off ports and peripherals.

As usual, Secure Boot must be disabled in order to boot OpenBSD.

You can select a temporary boot device or access other functions by pressing F12 at the boot splash screen.

There is also an embedded diagnostics tool which will run the hardware through various tests. I’m not sure how good this is at detecting most faults, but it is a nice thing to have to quickly check that all the hardware is most likely working (it did yell at me about the battery).

Power and Heat

One very important thing that I want from my laptops is for them to not get too hot or too loud. That is one of the main reasons I stopped using old Thinkpads.

This model performs admirably. During light workloads the fan is silent or inaudible in my typical working environments and is quick to spin down after heavy loads. When the fan is spinning, it doesn’t produce an annoying or high pitched sound, just a noticeable “whooshing”.

At idle, the XPS 9380 sits around 45°C, probably because the fan is not programmed to ramp up until the processor gets warmer. I am fine with this behaviour, as it means that my regular workloads are not likely to make the fan spin up. Also, I can run the laptop at minimum clock speeds using ampd -L, in which case the fan almost never comes on and I don’t notice any drop in performance for most of the things I do with the machine.

During normal use, the underside of the laptop gets warm, but not at all hot. The temperature of the palm rest and keyboard does not noticeably change.

I’ll have to wait until the new battery comes in before getting an accurate measure of battery life, but for now I measured the laptop pulling about 11.5W from the wall during my normal use, and 27W with the screen at full brightness while running:

stress --cpu 4 --vm 4 --vm-bytes 1024M

OpenBSD Support Log

2023-03-14: The only thing that didn’t work well out of the box was resuming from sleep or hibernation. When doing so, the screen would turn on, the laptop would appear to try to draw to the screen (various lines and columns in the text mode console were replaced with black), but the laptop would freeze completely, stop responding to any input, and could only be reset by holding the power button down until the laptop turned off.

2023-03-15: After a good bit of research, I stumbled upon this openbsd-bugs thread about the Framework laptop which had a solution that worked.

It turns out that disabling at least one of the devices handled by the dwiic driver causes resuming from sleep and hibernation to work properly again. The two dwiic devices I see are dwiic0 corresponding to ELAN2931 (the touchscreen) and dwiic1 corresponding to DELL08AF (the trackpad). Because the trackpad still works without dwiic1 being active (it gets handled by the pms driver instead), I opted to just disable that and leave the touchscreen working. Of course, disabling dwiic outright also fixes the issue, but leaves me without a working touchscreen.

This is the command I ran to make the changes permanent (though I do have to repeat it every time I sysupgrade(8) to a new kernel):

$ doas config -ef /bsd
ukc> find dwiic
226 dwiic* at pci* dev -1 function -1 flags 0x0
448 dwiic* at acpi0 flags 0x0
ukc> change 226
226 dwiic* at pci* dev -1 function -1 flags 0x0
change [n] y
dev [-1] ? 21
function [-1] ? 0
flags [0] ?
226 dwiic* changed
226 dwiic* at pci* dev 0x15 function 0 flags 0x0
ukc> quit

2023-03-16: After much more testing and trying new snapshots and updating the BIOS and so on, I sent a report to the openbsd-bugs mailing list using the sendbug(1) utility, so we’ll see what people more knowledgable than I can make of this problem.

Current OpenBSD Support Summary

Status is relative to OpenBSD-current as of 2023-03-17.

Component Works? Notes
Audio Yes Intel audio with Realtek ALC299 codec and supported by azalia. Microphone can be disabled in the BIOS.
Battery Status Yes 52WHr battery, status available through acpibat.
Bluetooth No Attaches as a ugen device but OpenBSD does not support Bluetooth. Can be disabled in the BIOS.
Fingerprint sensor No Goodix fingerprint sensor embedded in the power button. No OpenBSD compatibility. Can be disabled in the BIOS.
Keyboard Backlight Yes Supported natively by the embedded controller, including auto-dimming. Can be set to off, half, or full brightness using Fn+F10.
Hibernation Yes* Works with ZZZ after aforementioned tweaks.
NVMe SSD Yes Micron 2200S NVMe 256GB supported by nvme.
SD Card Reader Yes Works without issue. Can also boot from it.
Suspend / Resume Yes* Works with zzz or in response to the lid closing after aforementioned tweaks.
Touchscreen Yes I2C, supported by the ims driver.
Touchpad Yes Synaptics clickpad supported by the pms driver when dwiic1 is disabled, otherwise supported by the imt driver.
USB Yes USB-C ports work without issue.
Video Yes Coffee Lake video supported via inteldrm for accelerated video, DPMS, backlight control, S3 resume, etc.
Webcam Yes Supported by the uvideo driver. Can be disabled in the BIOS.
Wireless Yes The Intel AC 9260 802.11ac card is supported by the iwm driver. It works on both 2.4 and 5GHz channels.