Annotation of wikisrc/laptops.mdwn, revision 1.30

1.2       reed        1: This page lists and links to pages about laptops, notebooks,
1.20      nia         2: and portable computers that work well with NetBSD, are of interest
                      3: to developers, and are standardized or easy to find.
1.1       reed        4: 
                      5: [[!toc ]]
                      6: 
1.3       reed        7: ---
                      8: 
1.20      nia         9: # Generic laptop support
1.3       reed       10: 
1.20      nia        11: ## Graphics
1.3       reed       12: 
1.20      nia        13: NetBSD 9.0 supports Intel integrated graphics up to Kaby Lake,
                     14: Nvidia graphics up to Maxwell, and AMD graphics up to GCNv1.
1.3       reed       15: 
1.20      nia        16: Anything newer than this will work, but will use `llvmpipe`
                     17: instead of hardware acceleration for OpenGL.
1.9       reed       18: 
1.21      nia        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: 
1.20      nia        27: ## CPU frequency adjustment
1.9       reed       28: 
1.20      nia        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"]].
1.9       reed       34: 
1.20      nia        35: ## Suspend
1.13      ryoon      36: 
1.20      nia        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"]].
1.13      ryoon      41: 
1.20      nia        42: Suspend on NetBSD currently seems to work best on Thinkpads.
1.13      ryoon      43: 
1.20      nia        44: ## Input
1.13      ryoon      45: 
1.20      nia        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"]],
1.21      nia        48: with various adjustable Synaptics-specific sysctl variables.
1.9       reed       49: 
1.20      nia        50: ## WiFi
1.1       reed       51: 
1.20      nia        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.
1.1       reed       58: 
1.20      nia        59: See the
                     60: [[!template id=man name="afterboot" section="8"]] man page for details
1.24      nia        61: on connecting to WiFi networks.
1.1       reed       62: 
1.21      nia        63: USB 11n WiFi adapters such as
1.20      nia        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"]].
1.3       reed       69: 
1.21      nia        70: Unfortunately, WiFi hardware is not particularly standardized compared
                     71: to most other aspects of modern laptops.
                     72: 
1.20      nia        73: ## Audio
1.11      reed       74: 
1.21      nia        75: Essentially all modern x86 laptops use the 
1.20      nia        76: [[!template id=man name="hdaudio" section="4"]] driver.
1.11      reed       77: 
1.20      nia        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.
1.11      reed       82: 
1.22      nia        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: 
1.11      reed       89: ---
                     90: 
1.20      nia        91: # IBM / Lenovo
1.9       reed       92: 
1.20      nia        93: The [[!template id=man name="thinkpad" section="4"]] driver provides
                     94: support for various Thinkpad-specific sensors and function keys.
1.6       jruoho     95: 
1.21      nia        96: A number of NetBSD developers use Thinkpads to hack on NetBSD
                     97: and for everyday usage.
                     98: 
1.9       reed       99: ## ThinkPad T22
                    100: 
                    101: Works perfect (sound, display, all devices, infrared port not tested).
                    102: 
1.6       jruoho    103: ## ThinkPad X60s
                    104: 
1.15      sevan     105: Everything works.
1.6       jruoho    106: 
1.9       reed      107: ## ThinkPad X41
                    108: 
                    109: Works fine (sound, display, all devices, bluetooth, modem not tested).
                    110: 
1.6       jruoho    111: ## ThinkPad X61s
                    112: 
                    113: Everything works. Requires `PCI_BUS_FIXUP` and `PCI_ADDR_FIXUP` [[!template
                    114: id=man name="options" section="4"]].
                    115: 
1.17      nia       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`.
1.19      nia       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.
1.17      nia       122: * Suspend and resume work.
                    123: 
1.19      nia       124: ## Thinkpad X230
                    125: 
1.28      nia       126: * Accelerated graphics.
1.19      nia       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: 
1.16      nia       130: ## Thinkpad X250
                    131: 
1.28      nia       132: * Accelerated graphics.
                    133: * Connecting externals displays works with the miniDP and VGA ports.
1.19      nia       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.
1.27      nia       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
1.16      nia       139:   xrandr in your window manager.
1.19      nia       140: * Webcam will depend on upcoming xhci isochronous pipe support.
                    141: * To record from the internal mic, set `mixerctl -w record.source=ADC02`
1.27      nia       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]]
1.23      nia       146: * Suspend and resume work.
1.16      nia       147: 
1.19      nia       148: ## Thinkpad X260
                    149: 
1.28      nia       150: * Accelerated graphics.
1.19      nia       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.
1.27      nia       154: * Extra trackpoint buttons: run at least 9.0_STABLE for fixes to the Synaptics driver.
1.28      nia       155: * Webcam will depend on upcoming xhci isochronous pipe support.
1.23      nia       156: * Suspend and resume work.
1.19      nia       157: 
1.20      nia       158: ---
1.14      ryoon     159: 
1.27      nia       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: 
1.29      nia       179: ## EeePC 901
1.27      nia       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: 
1.20      nia       195: # PINE64
1.14      ryoon     196: 
1.21      nia       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: 
1.20      nia       203: ## Pinebook (Allwinner A64)
1.14      ryoon     204: 
1.28      nia       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,
1.30    ! nia       207:   the 3D acceleration features of the GPU are not yet accessible - Mesa llvmpipe is used instead.
1.28      nia       208: * The CPU frequency can be adjusted automatically with `estd` or with `sysctl machdep.cpufreq.*`.
1.20      nia       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?
1.1       reed      211: 
1.26      nia       212: ## Pinebook Pro (Rockchip RK3399)
1.3       reed      213: 
1.28      nia       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,
1.30    ! nia       216:   the 3D acceleration features of the GPU are not yet accessible - Mesa llvmpipe is used instead.
1.28      nia       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.*`.
1.20      nia       219: * [[!template id=man name="uvideo" section="4"]] webcam works.
1.28      nia       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.
1.20      nia       223: * The display backlight can be adjusted with `sysctl`.
1.26      nia       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