Lenovo ThinkPad P1

From ArchWiki
Jump to: navigation, search

Lenovo ThinkPad P1 was released in 2018 and has up to Intel Core i7-8850H or Xeon E-2176M 6-core processor, up to 64 GB DDR4 RAM, and up to NVIDIA Quadro P2000 graphics.

Installation

Firmware update

Before installation, it is recommended that you boot into Windows 10 and use the preinstalled Lenovo Vantage software to install any necessary firmware updates, particularly this one.

Installation with hybrid graphics

Currently the live CD might not boot normally if your BIOS is configured to enable hybrid graphics. See NVIDIA Optimus for details. Two options are possible:

  • Disable hybrid graphics by changing your BIOS settings to "Discrete only".
  • Alternatively, before booting into live CD, press e and add modprobe.blacklist=nouveau to your kernel parameters.

If you choose to use the second option, you might also want to include modprobe.blacklist=nouveau in your /boot/loader/entries/arch.conf.

HiDPI screen

Some configurations of ThinkPad P1 comes with a HiDPI screen. You may want to run setfont latarcyrheb-sun32 to make your console font legible during installation.

To make this setting persistent after installation, create /etc/vconsole.conf with the following content:

/etc/vconsole.conf
FONT=latarcyrheb-sun32

See HiDPI for more details.

Graphics

There are two difficulties with configuring graphics on ThinkPad P1: there is no "integrated graphics only" option in the BIOS, and the external display ports (HDMI, etc.) are wired into the NVIDIA chip. Depending on your needs, you might choose from the following options:

Discrete only

Follow the instructions at NVIDIA and you should be all set. Note that this method will keep your NVIDIA graphics card always on, which might dramatically shorten your battery life.

Hybrid graphics with Bumblebee

See Bumblebee for detailed instructions. If Xorg refuses to start after setting up Bumblebee, try generating an Xorg configuration by running Xorg -configure and copy it to /etc/X11/xorg.conf.

Because Bumblebee normally disables the NVIDIA card, display outputs such as HDMI might not show up in xrandr -q. You may want to refer to Bumblebee's multi-monitor setup page.

Hybrid graphics with bbswitch only

This method requires manual switching between integrated and discrete graphics mode. Switching between them requires restarting all Xorg instances, although it does not require a restart.

Install the appropriate NVIDIA graphics drivers and bbswitch. Generate an Xorg configuration by running Xorg -configure and copy it to /etc/X11/xorg.conf.intel. You may also create /etc/X11/xorg.conf.nvidia, though it should not be necessary.

You can switch to discrete graphics with the following Bash function:

discrete() {
    killall Xorg
    modprobe nvidia_drm
    modprobe nvidia_modeset
    modprobe nvidia
    tee /proc/acpi/bbswitch <<<ON
    cp /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
}

After this, xrandr -q should correctly show HDMI-0 as one of the outputs. Running xrandr --auto will mirror the display on an external monitor. If you want to extend your display with a different DPI, adapt the following command to your needs:

$ xrandr --output HDMI-0 --scale 2x2 --right-of eDP-1-1

Conversely, you can switch to integrated graphics this way:

integrated() {
    killall Xorg
    rmmod nvidia_drm
    rmmod nvidia_modeset
    rmmod nvidia
    tee /proc/acpi/bbswitch <<<OFF
    cp /etc/X11/xorg.conf.intel /etc/X11/xorg.conf
}

You need to manually start your X session after switching.

If you are also running TLP, to prevent TLP from blocking system startup or shutdown, you should tell it to leave NVIDIA card alone by uncommenting the following line:

/etc/default/tlp
RUNTIME_PM_DRIVER_BLACKLIST="amdgpu nouveau nvidia radeon"

You may also want to refer to nvidia-xrun, which allows for running a separate X session with NVIDIA graphics.

Troubleshooting

xbacklight not adjusting screen brightness

Installing light-gitAUR should help.

System hangs on startup/shutdown

If you are using hybrid graphics, ensure that your TLP is correctly blacklisting NVIDIA drivers by uncommenting this line:

/etc/default/tlp
RUNTIME_PM_DRIVER_BLACKLIST="amdgpu nouveau nvidia radeon"

Also make sure that the NVIDIA card is turned on before shutdown by running:

# modprobe nvidia