File:  [NetBSD Developer Wiki] / wikisrc / laptops.mdwn
Revision 1.33: download - view: text, annotated - select for diffs
Sun Oct 4 18:20:19 2020 UTC (7 weeks, 5 days ago) by nia
Branches: MAIN
CVS tags: HEAD
capitals police

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

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