This page lists and links to pages about laptops, notebooks, and portable computers that work well with NetBSD, are of interest to developers, and are standardized or easy to find.

This page references lots of different device drivers. All of them are built-in to GENERIC kernels and you don't need to load them.

  1. Generic laptop support
  2. IBM / Lenovo
  3. Asus
  4. PINE64

Generic laptop support

Graphics

NetBSD 9.0 supports Intel integrated graphics up to Kaby Lake, Nvidia graphics up to Maxwell, and AMD graphics up to GCNv1.

Anything newer than this will work, but will use llvmpipe instead of hardware acceleration for OpenGL.

The support includes connecting external monitors over HDMI, DisplayPort, and DisplayPort over USB-C.

For the Intel driver, there may be slight graphical corruptions when using X11 without a compositor. Xfce/MATE include their own compositors, but lightweight window managers can benefit from having picom running.

CPU frequency adjustment

On most ACPI and some non-ACPI laptops, the sysutils/estd package can be used to automatically adjust the CPU frequency depending on system load, and potentially prolong battery life. This modifies the frequency variables exposed by sysctl(8).

Suspend

On ACPI systems, suspend-to-RAM is supported through sysctl hw.acpi.sleep.state=3. This can be triggered through various events (such as lid close) with powerd(8).

Suspend on NetBSD currently seems to work best on Thinkpads.

Input

Many x86 laptops use Synaptics touchpads over an emulated PS/2 interface, which is supported through pms(4), with various adjustable Synaptics-specific sysctl variables.

WiFi

Many x86 laptops with Intel processors will have WiFi cards supported by the iwm(4) driver, or iwn(4) for older models. Atheros 11n miniPCIe cards are supported by the athn(4) driver.

See the afterboot(8) man page for details on connecting to WiFi networks.

USB 11n WiFi adapters such as urtwn(4) and run(4) can also be used, and most/all generic USB ethernet adapters are also well supported. For a fairly complete list, see usb(4).

Unfortunately, WiFi hardware is not particularly standardized compared to most other aspects of modern laptops.

Audio

Essentially all modern x86 laptops use the hdaudio(4) driver.

In the case that switching between speakers and the headphone port is not handled automatically by the hardware, the dacsel mixerctl(1) variable can be modified.

Sensors

Regardless of whether the system is ACPI, NetBSD will expose all sensors (e.g. for temperature and battery) via envstat(8).


IBM / Lenovo

The thinkpad(4) driver provides support for various Thinkpad-specific sensors and function keys.

A number of NetBSD developers use Thinkpads to hack on NetBSD and for everyday usage.

ThinkPad T22

Works perfect (sound, display, all devices, infrared port not tested).

ThinkPad X60s

Everything works.

ThinkPad X41

Works fine (sound, display, all devices, bluetooth, modem not tested).

ThinkPad X61s

Everything works. Requires PCI_BUS_FIXUP and PCI_ADDR_FIXUP options(4).

Thinkpad X220

Thinkpad X230

Thinkpad X250

Thinkpad X260


Asus

Eee PCs were previously very popular hardware, so they're widely available cheaply, tend to work quite well, and what works is documented.

EeePC 701

GPU WiFi SD card reader Ethernet Audio Webcam Suspend/Resume
Supported Supported Supported Supported Supported Supported Supported

EeePC 900

GPU WiFi SD card reader Ethernet Audio Webcam Suspend/Resume
Supported Supported Supported Supported Supported Supported Supported

EeePC 901

GPU WiFi SD card reader Ethernet Audio Webcam Suspend/Resume
Supported Supported Supported Supported Supported Supported Supported

EeePC 1000HA

GPU WiFi SD card reader Ethernet Audio Webcam Suspend/Resume
Supported Supported Supported Supported Supported Supported Supported

PINE64

A number of NetBSD developers use Pinebooks to hack on NetBSD and for everyday usage.

Pinebook and Pinebook Pro do not use ACPI, so certain aspects are different compared to x86 laptops.

Pinebook (Allwinner A64)

Pinebook Pro (Rockchip RK3399)

Pinebook Pro CPU affinity

After setting security.models.extensions.user_set_cpu_affinity=1 in /etc/sysctl.conf, you can run an intensive command on only the "big" CPUs:

$ schedctl -A 4,5 make package