Lenovo yoga 730 - ArchWiki

# Lenovo yoga 730

From ArchWiki
Jump to navigation Jump to search

## Install

### Packages

Packages to install
Package | purpose
--- | ---
iio-sensor-proxy | Auto brightness
bolt | Thunderbolt 3
xf86-input-wacom | Digitiser/Pen support
nvidia | For external GPU
intel-compute-runtime | For OpenCL CPU support

## Suspend

If closing the lid doesn't suspend. In `/etc/systemd/logind.conf` uncomment the following:

    /etc/systemd/logind.conf/etc/systemd/logind.conf

    HandleSuspendKey=suspend
    HandleLidSwitch=suspend

## Backlight

Works in gnome but can be reduced so far that it goes off, leaving the screen black.

One of these kernel parameters might fix this:

    kernel parameters

    acpi_backlight=video
    acpi_backlight=vendor
    acpi_backlight=native

Installing iio-sensor-proxy does auto brightness.

### Fingerprint reader

The device is `Bus 001 Device 005: ID 06cb:0081 Synaptics, Inc.` Nether fprint nor thinkfingerAUR work, but there is a prototype driver here.

### Thunderbolt 3

Works once you install bolt.

Note: TODO: Add links to authoritative information on tb3

This can be temperamental, it may require unplugging and re-plugging the eGPU.

#### eGPU

This was tested with a Gigabyte Aorus 1070. Bumblebee might blacklist the nvidia module, comment out the nvidia modules in `/usr/lib/modprobe.d/bumblebee.conf` so that it looks like this:

    /usr/lib/modprobe.d/bumblebee.conf

    #blacklist nvidia
    #blacklist nvidia-drm
    #blacklist nvidia-modeset
    #blacklist nvidia-uvm
    blacklist nouveau

The following allows Xorg to use the GPU if it exists - you'll need to ether delay the Xorg startup or restart it once the device is fully active.

    xorg.conf for both external and internal graphics

    Section "ServerLayout"
        Identifier  "eGPU"
        # The two screens allow the server to start in one of two modes
        Screen 0 "eGPUScreen"
        Inactive "Intel"
        Screen 1 "IntelScreen"
    EndSection

    Section "Device"
        Identifier  "eGPU"
        Driver      "nvidia"
        VendorName  "NVIDIA Corporation"
        Option "NoLogo" "true"
        Option "AllowEmptyInitialConfiguration"
        Option "AllowExternalGpus"
    EndSection

    Section "Device"
        Identifier   "Intel"
        Driver       "intel"
        VendorName   "Intel"
    EndSection

    Section "Screen"
        Identifier "eGPUScreen"
        Device     "eGPU"
    EndSection

    Section "Screen"
        Identifier "IntelScreen"
        Device     "Intel"
    EndSection

You can use this script to delay the display manager until the device is fully configured.

    /usr/local/bin/wait-for-egpu.sh

    #!/bin/bash
    DEVICE=/dev/dri/card1

    # switch to our vt to see the messages
    chvt 2
    delay=30
    wait=1

    #while [ \( ! -c "$DEVICE" \) -a $delay -gt 1 -a `cat /sys/class/power_supply/AC*/online` != "1" ] ; do
    while [ $wait -gt 0 -a $delay -gt 1 ]; do

            if [ \( -c "$DEVICE" \) -a `cat /sys/class/power_supply/AC*/online` == "1" ] ; then
                    echo $'\e[32;1meGPU present, on AC power.\e[0m'
            elif [ -c "$DEVICE" ]; then
                    echo $'\e[33;1meGPU present but no power.\e[0m'
            else
                    echo $'\e[31;1mNo eGPU.\e[0m'
            fi

            echo "Press 'Y' to continue to Login. Press 'W' to wait forever. Any other key to rescan."

            if read -r -s -n 1 -t 5 key ; then

                    if [ "$key" == "y" -o "$key" == "Y" ]; then
                            wait=0
                    elif [ "$key" == "w" -o "$key" == "W" ]; then
                            wait=2
                    fi
            elif [ $wait -eq 1 ]; then
                    let "delay -= 5"
                    echo "Waiting for ${delay} more seconds for eGPU."
            fi

    done

Add the systemd setup file below and activate it with `systemctl daemon-reload` and `systemctl enable wait-for-egpu`

    /etc/systemd/system/wait-for-egpu.service

    [Unit]
    Description=Simple interactive dialog window
    After=getty@tty2.service
    Before=display-manager.service

    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/wait-for-egpu.sh
    StandardInput=tty
    TTYPath=/dev/tty2
    TTYReset=yes
    TTYVHangup=yes

    [Install]
    WantedBy=multi-user.target

#### Dock Stations

Wavlink USB-C Ultra 5K Universal Docking Station
Feature | Status
--- | ---
USB-C | Working
USB 3.0 | Working
Audio Jack | Working
Gigabit Ethernet | Working
HDMI 1 & 2 | Only X11, requires DisplayLink
DisplayPort 1 & 2 | Untested
5K Combo (Joined DisplayPorts) | Untested

Warning: Some Windows Managers running in Wayland will freeze your system completely if there is a display connected to the dock station, requiring a reboot. This is the case of SwayWM.
Note: DisplayLink has stated here that they are working to bring eGPU/DisplayLink multimonitor support to Wayland through GNOME and a patch was submitted for GNOME 3.32

### Tablet mode

Try gnome extension slide-for-keyboard, keyboard automatically disables under gnome.

### Pen

install xf86-input-wacom

### External display

HDMI on USB-C adapter just works

## Issues

### USB-C Charging

With the Gigabyte Aorus 1070 Gaming box, the charging sometimes stops. Doesn't seem to happen in Windows.

Category:

- Lenovo