summarylogtreecommitdiffstats
path: root/system76-driver.install
blob: 6045ba31cdc48b3a2f2db173996ee418d881c164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
_services="system76.service system76-firmware.service"

_stop_services() {
  /usr/bin/systemctl stop $_services >/dev/null 2>&1
}

_disable_services() {
  /usr/bin/systemctl disable $_services >/dev/null 2>&1
  /usr/bin/systemctl reset-failed $_services >/dev/null 2>&1
}

_restore_services() {
  for service in $_services; do
    if /usr/bin/systemctl -q is-enabled $service >/dev/null 2>&1; then
      /usr/bin/systemctl start $service > /dev/null 2>&1
    fi
  done
}

_remove_symlink() {
  if [ -L $1 ] && [ "$(readlink -f $1)" = "$2" ]; then
    rm $1
  fi
}

post_install() {
cat << EOF

    The System76 Driver package provides the following system services:

        system76.service             System76 airplane-mode hotkey and LED support
        system76-firmware.service    System76 Firmware Updater

    And the following user services:

        system76-backlight.service   Backlight Daemon for NVIDIA 9 Series on GNOME
        system76-hidpi.service       System76 HiDPI Daemon

    The backlight service can (optionally) be started automatically:

        ln -s /usr/share/applications/system76-driver-backlight.desktop /etc/xdg/autostart/system76-driver-backlight.desktop

    GUI applications are provided to install drivers, patches, and firmware updates. If the applications
    fail to start, try the following commands as root:

        system76-driver
        system76-firmware

    (!) Under Wayland try using xhost prior to running the GUI applications:

        xhost +local:

    (!) To use system76.service, you must add "ec_sys.write_support=1" to your kernel command line

    (!) If you do not use Grub bootloader, please check output for possible manual actions required for
    your model related to bootloader modifications.

    (!) For Clevo W740SU BIOS/Firmware users on Galago UltraPro: your will need to create /etc/system76-daemon.json
    file with following content:

        { "vendor": "System76, Inc", "model": "galu1" }

    (!) If you experience Wifi issues after resuming from suspend, consider using the included network
    restart script:

        ln -s /usr/lib/system76-driver/system76-nm-restart /lib/systemd/system-sleep/system76-nm-restart

EOF
}

pre_upgrade() {
  _stop_services
}

post_upgrade() {
  /usr/bin/systemctl daemon-reload >/dev/null 2>&1
  _restore_services
  post_install
}

pre_remove() {
  _stop_services
  _disable_services

  # Remove symlinks if target points to package files
  _remove_symlink /etc/xdg/autostart/system76-driver-backlight.desktop /usr/share/applications/system76-driver-backlight.desktop
  _remove_symlink /lib/systemd/system-sleep/system76-nm-restart /usr/lib/system76-driver/system76-nm-restart
}

post_remove() {
  /usr/bin/systemctl daemon-reload >/dev/null 2>&1
  cat << EOF

    Be sure to stop and disable all running System76 user services.

EOF
}