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 with the i915 driver.
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 with the i915 driver. Connecting externals displays
133: 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 with the i915 driver.
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: * Suspend and resume work.
156:
157: ---
158:
159: # Asus
160:
161: Eee PCs were previously very popular hardware, so they're widely available
162: cheaply, tend to work quite well, and what works is documented.
163:
164: ## EeePC 701
165:
166: [[!table data="""
167: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
168: Supported | Supported | Supported | Supported | Supported | Supported | Supported
169: """]]
170:
171: ## EeePC 900
172:
173: [[!table data="""
174: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
175: Supported | Supported | Supported | Supported | Supported | Supported | Supported
176: """]]
177:
178: ## EeePC 900
179:
180: [[!table data="""
181: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
182: Supported | Supported | Supported | Supported | Supported | Supported | Supported
183: """]]
184:
185: ## EeePC 1000HA
186:
187: [[!table data="""
188: GPU | WiFi | SD card reader | Ethernet | Audio | Webcam | Suspend/Resume
189: Supported | Supported | Supported | Supported | Supported | Supported | Supported
190: """]]
191:
192: ---
193:
194: # PINE64
195:
196: A number of NetBSD developers use Pinebooks to hack on NetBSD
197: and for everyday usage.
198:
199: Pinebook and Pinebook Pro do not use ACPI, so certain aspects are
200: different compared to x86 laptops.
201:
202: ## Pinebook (Allwinner A64)
203:
204: * [[!template id=man name="uvideo" section="4"]] webcam works.
205: * External WiFI adapters can be used. Support for the internal WiFi - after WiFi system rework?
206: * Plugging in external monitors works via the HDMI port.
207: * The CPU frequency can be adjusted with `sysctl machdep.cpufreq.*`.
208: * Mesa llvmpipe is currently used for 3D/OpenGL.
209:
210: ## Pinebook Pro (Rockchip RK3399)
211:
212: * [[!template id=man name="uvideo" section="4"]] webcam works.
213: * Internal Broadcom WiFi is supported via the [[!template id=man name="bwfm" section="4"]] driver in -current.
214: External adapters may still be more stable.
215: * The CPU frequency can be adjusted automatically with `estd` or with `sysctl machdep.cpufreq.*`.
216: * The display backlight can be adjusted with `sysctl`.
217: * Mesa llvmpipe is currently used for 3D/OpenGL.
218: * Connecting external monitors does not currently work through USB-C.
219:
220: ### Pinebook Pro CPU affinity
221:
222: After setting `security.models.extensions.user_set_cpu_affinity=1` in `/etc/sysctl.conf`,
223: you can run an intensive command on only the "big" CPUs:
224:
225: `$ schedctl -A 4,5 make package`
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb