1: This page lists and links to pages about laptops, notebooks,
2: and portable computers that work well with NetBSD, are of interest
3: to developers, and are standardized or easy to find.
4:
5: [[!toc ]]
6:
7: ---
8:
9: # Generic laptop support
10:
11: ## Graphics
12:
13: NetBSD 9.0 supports Intel integrated graphics up to Kaby Lake,
14: Nvidia graphics up to Maxwell, and AMD graphics up to GCNv1.
15:
16: Anything newer than this will work, but will use `llvmpipe`
17: instead of hardware acceleration for OpenGL.
18:
19: The support includes connecting external monitors over HDMI,
20: DisplayPort, and DisplayPort over USB-C.
21:
22: For the Intel driver, there may be slight graphical corruptions
23: when using X11 without a compositor. Xfce/MATE include their own
24: compositors, but lightweight window managers can benefit from
25: having `picom` running.
26:
27: ## CPU frequency adjustment
28:
29: On most ACPI and some non-ACPI laptops, the `sysutils/estd` package
30: can be used to automatically adjust the CPU frequency depending on
31: system load, and potentially prolong battery life. This modifies the
32: `frequency` variables exposed by
33: [[!template id=man name="sysctl" section="8"]].
34:
35: ## Suspend
36:
37: On ACPI systems, suspend-to-RAM is supported through
38: `sysctl hw.acpi.sleep.state=3`. This can be triggered through various
39: events (such as lid close) with
40: [[!template id=man name="powerd" section="8"]].
41:
42: Suspend on NetBSD currently seems to work best on Thinkpads.
43:
44: ## Input
45:
46: Many x86 laptops use Synaptics touchpads over an emulated PS/2 interface,
47: which is supported through [[!template id=man name="pms" section="4"]],
48: with various adjustable Synaptics-specific sysctl variables.
49:
50: ## WiFi
51:
52: Many x86 laptops with Intel processors will have WiFi cards supported
53: by the
54: [[!template id=man name="iwm" section="4"]] driver, or
55: [[!template id=man name="iwn" section="4"]] for older models.
56: Atheros 11n miniPCIe cards are supported by the
57: [[!template id=man name="athn" section="4"]] driver.
58:
59: See the
60: [[!template id=man name="afterboot" section="8"]] man page for details
61: on connecting to WiFi networks.
62:
63: USB 11n WiFi adapters such as
64: [[!template id=man name="urtwn" section="4"]] and
65: [[!template id=man name="run" section="4"]] can also be used,
66: and most/all generic USB ethernet adapters are also well supported.
67: For a fairly complete list, see
68: [[!template id=man name="usb" section="4"]].
69:
70: Unfortunately, WiFi hardware is not particularly standardized compared
71: to most other aspects of modern laptops.
72:
73: ## Audio
74:
75: Essentially all modern x86 laptops use the
76: [[!template id=man name="hdaudio" section="4"]] driver.
77:
78: In the case that switching between speakers and the headphone port
79: is not handled automatically by the hardware, the `dacsel`
80: [[!template id=man name="mixerctl" section="1"]] variable can be
81: modified.
82:
83: ## Sensors
84:
85: Regardless of whether the system is ACPI, NetBSD will
86: expose all sensors (e.g. for temperature and battery)
87: via [[!template id=man name="envstat" section="8"]].
88:
89: ---
90:
91: # IBM / Lenovo
92:
93: The [[!template id=man name="thinkpad" section="4"]] driver provides
94: support for various Thinkpad-specific sensors and function keys.
95:
96: A number of NetBSD developers use Thinkpads to hack on NetBSD
97: and for everyday usage.
98:
99: ## ThinkPad T22
100:
101: Works perfect (sound, display, all devices, infrared port not tested).
102:
103: ## ThinkPad X60s
104:
105: Everything works.
106:
107: ## ThinkPad X41
108:
109: Works fine (sound, display, all devices, bluetooth, modem not tested).
110:
111: ## ThinkPad X61s
112:
113: Everything works. Requires `PCI_BUS_FIXUP` and `PCI_ADDR_FIXUP` [[!template
114: id=man name="options" section="4"]].
115:
116: ## Thinkpad X220
117:
118: * Video acceleration works, but when using `xf86-video-intel` (the default),
119: it's advisable to set `Option "AccelMethod" "uxa"` in `xorg.conf`.
120: * Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
121: * WiFi is supported through the [[!template id=man name="iwn" section="4"]] driver.
122: * Suspend and resume work.
123:
124: ## Thinkpad X230
125:
126: * Accelerated graphics.
127: * Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
128: * WiFi is supported through the [[!template id=man name="iwn" section="4"]] driver.
129:
130: ## Thinkpad X250
131:
132: * Accelerated graphics.
133: * Connecting externals displays works with the miniDP and VGA ports.
134: * SD card reader is supported through the [[!template id=man name="rtsx" section="4"]] driver.
135: * Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
136: * WiFi is supported through the [[!template id=man name="iwm" section="4"]] driver.
137: * Extra trackpoint buttons: run at least 9.0_STABLE for fixes to the Synaptics driver.
138: * Brightness buttons do not work in 9.0 by default. You can bind them to
139: xrandr in your window manager.
140: * Webcam will depend on upcoming xhci isochronous pipe support.
141: * To record from the internal mic, set `mixerctl -w record.source=ADC02`
142: * Some spam from [[!template id=man name="hdaudio" section="4"]] on some
143: reboots, the chip doesn't seem to reset properly. Disappears and boots
144: normally after a few seconds.
145: [[!template id=pr number=51734]]
146: * Suspend and resume work.
147:
148: ## Thinkpad X260
149:
150: * Accelerated graphics.
151: * SD card reader is supported through the [[!template id=man name="rtsx" section="4"]] driver.
152: * Ethernet is supported through the [[!template id=man name="wm" section="4"]] driver.
153: * WiFi is supported through the [[!template id=man name="iwm" section="4"]] driver.
154: * Extra trackpoint buttons: run at least 9.0_STABLE for fixes to the Synaptics driver.
155: * Webcam will depend on upcoming xhci isochronous pipe support.
156: * Suspend and resume work.
157:
158: ---
159:
160: # Asus
161:
162: Eee PCs were previously very popular hardware, so they're widely available
163: cheaply, tend to work quite well, and what works is documented.
164:
165: ## EeePC 701
166:
167: [[!table data="""
168: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
169: Supported | Supported | Supported | Supported | Supported | Supported | Supported
170: """]]
171:
172: ## EeePC 900
173:
174: [[!table data="""
175: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
176: Supported | Supported | Supported | Supported | Supported | Supported | Supported
177: """]]
178:
179: ## EeePC 901
180:
181: [[!table data="""
182: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
183: Supported | Supported | Supported | Supported | Supported | Supported | Supported
184: """]]
185:
186: ## EeePC 1000HA
187:
188: [[!table data="""
189: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
190: Supported | Supported | Supported | Supported | Supported | Supported | Supported
191: """]]
192:
193: ---
194:
195: # PINE64
196:
197: A number of NetBSD developers use Pinebooks to hack on NetBSD
198: and for everyday usage.
199:
200: Pinebook and Pinebook Pro do not use ACPI, so certain aspects are
201: different compared to x86 laptops.
202:
203: ## Pinebook (Allwinner A64)
204:
205: * Support for the display and HDMI output is provided through the Allwinner Display Engine driver.
206: This provides kernel modesetting and a full-resolution video framebuffer, however,
207: the 3D acceleration features of the GPU are not yet accessible - Mesa llvmpipe is used instead.
208: * The CPU frequency can be adjusted automatically with `estd` or with `sysctl machdep.cpufreq.*`.
209: * [[!template id=man name="uvideo" section="4"]] webcam works.
210: * External WiFI adapters can be used. Support for the internal WiFi - after WiFi system rework?
211:
212: ## Pinebook Pro (Rockchip RK3399)
213:
214: * Support for the display output is provided through the Rockchip DRM driver.
215: This provides kernel modesetting and a full-resolution video framebuffer, however,
216: the 3D acceleration features of the GPU are not yet accessible - Mesa llvmpipe is used instead.
217: Currently, you can't connect external displays through USB-C.
218: * The CPU frequency can be adjusted automatically with `estd` or with `sysctl machdep.cpufreq.*`.
219: * [[!template id=man name="uvideo" section="4"]] webcam works.
220: * External WiFI adapters can be used. Support for the internal WiFi - after WiFi system rework?
221: Internal Broadcom WiFi is supported via the [[!template id=man name="bwfm" section="4"]] driver in -current.
222: However, external adapters may still be more stable.
223: * The display backlight can be adjusted with `sysctl`.
224:
225: ### Pinebook Pro CPU affinity
226:
227: After setting `security.models.extensions.user_set_cpu_affinity=1` in `/etc/sysctl.conf`,
228: you can run an intensive command on only the "big" CPUs:
229:
230: `$ schedctl -A 4,5 make package`
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb