Annotation of wikisrc/laptops.mdwn, revision 1.27

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.25      nia       126: * Accelerated graphics with the i915 driver.
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: 
                    132: * Accelerated graphics with the i915 driver. Connecting externals displays
                    133:   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.25      nia       150: * Accelerated graphics with the i915 driver.
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.23      nia       155: * Suspend and resume work.
1.19      nia       156: 
1.20      nia       157: ---
1.14      ryoon     158: 
1.27    ! nia       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: 
1.20      nia       194: # PINE64
1.14      ryoon     195: 
1.21      nia       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: 
1.20      nia       202: ## Pinebook (Allwinner A64)
1.14      ryoon     203: 
1.20      nia       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.
1.1       reed      209: 
1.26      nia       210: ## Pinebook Pro (Rockchip RK3399)
1.3       reed      211: 
1.20      nia       212: * [[!template id=man name="uvideo" section="4"]] webcam works.
1.23      nia       213: * Internal Broadcom WiFi is supported via the [[!template id=man name="bwfm" section="4"]] driver in -current.
1.20      nia       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.
1.21      nia       218: * Connecting external monitors does not currently work through USB-C.
1.26      nia       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