File:  [NetBSD Developer Wiki] / wikisrc / laptops.mdwn
Revision 1.20: download - view: text, annotated - select for diffs
Sat Jul 18 11:22:36 2020 UTC (2 months ago) by nia
Branches: MAIN
CVS tags: HEAD
generic information about laptops, remove ancient stuff

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.

For i386-based netbooks also see
<http://www.netbsd.org/ports/i386/netbook.html>.

[[!toc ]]

---

# 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.

## 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
[[!template id=man name="sysctl" section="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
[[!template id=man name="powerd" section="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 [[!template id=man name="pms" section="4"]],
with various adjustable sysctl variables.

## WiFi

Many x86 laptops with Intel processors will have WiFi cards supported
by the
[[!template id=man name="iwm" section="4"]] driver, or 
[[!template id=man name="iwn" section="4"]] for older models.
Atheros 11n miniPCIe cards are supported by the
[[!template id=man name="athn" section="4"]] driver.

See the
[[!template id=man name="afterboot" section="8"]] man page for details
on connecting to a WPA network.  For connecting to a non-WPA network,
simply specify `ssid networkname up` in 
[[!template id=man name="ifconfig" section="8"]], and make sure
[[!template id=man name="dhcpcd" section="8"]] is running.

USB WiFI adapters such as
[[!template id=man name="urtwn" section="4"]] and
[[!template id=man name="run" section="4"]] can also be used,
and most/all generic USB ethernet adapters are also well supported.
For a fairly complete list, see 
[[!template id=man name="usb" section="4"]].

## Audio

Most modern x86 laptops use the 
[[!template id=man name="hdaudio" section="4"]] driver.

In the case that switching between speakers and the headphone port
is not handled automatically by the hardware, the `dacsel`
[[!template id=man name="mixerctl" section="1"]] variable can be
modified.

---

# IBM / Lenovo

The [[!template id=man name="thinkpad" section="4"]] driver provides
support for various Thinkpad-specific sensors and function keys.

## ThinkPad T22

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

## ThinkPad T61

Used it since NetBSD 4.x.
With Intel GMA, X works great.
Cardbus port doesn't work properly.
Expresscard not tested/tried.

## ThinkPad X60s

Everything works.

## ThinkPad X41

Works fine (sound, display, all devices, bluetooth, modem not tested).
Standby is broken for me in -current (~2012-01-12) but worked in 5.1.

## ThinkPad X61s

Everything works. Requires `PCI_BUS_FIXUP` and `PCI_ADDR_FIXUP` [[!template
id=man name="options" section="4"]].

## Thinkpad X201

Running -current since March 2011.
Working graphics (with the vesa driver), audio, trackpoint, wired
and wireless LAN.
Does not wake up after suspend (drives spin up but the display
stays black and the LED indicating a sleep state stays lit).

## Thinkpad X220

From user reports, in NetBSD 9.0:

* Video acceleration works, but when using `xf86-video-intel` (the default),
  it's advisable to set `Option "AccelMethod"  "uxa"` in `xorg.conf`.
* Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
* WiFi is supported through the [[!template id=man name="iwn" section="4"]] driver.
* Suspend and resume work.

## Thinkpad X230

From user reports, in NetBSD 9.0:

* Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
* WiFi is supported through the [[!template id=man name="iwn" section="4"]] driver.

## Thinkpad X250

Nearly perfect. Running NetBSD 9.0 and -current since 2019.

* Accelerated graphics with the i915 driver. Connecting externals displays
  works with the miniDP and VGA ports.
* SD card reader is supported through the [[!template id=man name="rtsx" section="4"]] driver.
* Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
* WiFi is supported through the [[!template id=man name="iwm" section="4"]] driver.
* For the extra trackpoint buttons to work correctly, needs a patch to
  synaptics.c that is in -current and will be in 9.1.
  Tapping and the clickpad have always been fine.
* Brightness buttons do not work in 9 by default. You can bind them to
  xrandr in your window manager.
* Webcam will depend on upcoming xhci isochronous pipe support.
* To record from the internal mic, set `mixerctl -w record.source=ADC02`
* Wakes up after suspend. I have mine set to suspend on lid close with
  powerd.

## Thinkpad X260

Likely very similar to the X250.

From user reports, in NetBSD 9.0:

* SD card reader is supported through the [[!template id=man name="rtsx" section="4"]] driver.
* Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
* WiFi is supported through the [[!template id=man name="iwm" section="4"]] driver.
* For the extra trackpoint buttons to work correctly, needs a patch to
  synaptics.c that is in -current and will be in 9.1.
  Tapping and the clickpad have always been fine.

---

# PINE64

## Pinebook (Allwinner A64)

The Pinebook does not use ACPI so certain aspects are different
compared to x86 laptops.

From user reports to port-arm@, in NetBSD 9.0:

* [[!template id=man name="uvideo" section="4"]] webcam works.
* External WiFI adapters can be used. Support for the internal WiFi - after WiFi system rework?
* Plugging in external monitors works via the HDMI port.
* The CPU frequency can be adjusted with `sysctl machdep.cpufreq.*`.
* Mesa llvmpipe is currently used for 3D/OpenGL.

## Pinebook Pro

The Pinebook Pro does not use ACPI so certain aspects are different
compared to x86 laptops.

* [[!template id=man name="uvideo" section="4"]] webcam works.
* Internal Broadcom WiFi is supported via the [[!template id=man name="bwfm" section="4"]] driver in 9_STABLE.
  External adapters may still be more stable.
* The CPU frequency can be adjusted automatically with `estd` or with `sysctl machdep.cpufreq.*`.
* The display backlight can be adjusted with `sysctl`.
* Mesa llvmpipe is currently used for 3D/OpenGL.

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb