diff options
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | x200-my.confd | 39 | ||||
-rw-r--r-- | x200-my.initd | 39 |
3 files changed, 72 insertions, 14 deletions
@@ -1,13 +1,13 @@ | |||
1 | # Maintainer: Robert Alessi <alessi@robertalessi.net> | 1 | # Maintainer: Robert Alessi <alessi@robertalessi.net> |
2 | 2 | ||
3 | pkgname=x200-my | 3 | pkgname=x200-my |
4 | pkgver=0.4 | 4 | pkgver=0.5 |
5 | pkgrel=1 | 5 | pkgrel=1 |
6 | pkgdesc="Service to remove whining noise from Thinkpads X200, power off the wifi on shutdown and optionally backup directories." | 6 | pkgdesc="Service to remove whining noise from Thinkpads X200, power off the wifi on shutdown and optionally backup directories." |
7 | arch=(any) | 7 | arch=(any) |
8 | license=(GPL2) | 8 | license=(GPL2) |
9 | url="http://git.robertalessi.net/x200-my" | 9 | url="http://git.robertalessi.net/x200-my" |
10 | depends=('sysvinit' 'networkmanager' 'acpid' 'intel-gpu-tools' 'rsync') | 10 | depends=('sysvinit' 'acpid' 'intel-gpu-tools' 'rsync' 'macchanger' 'dhcpcd') |
11 | optdepends=('rsnapshot: for incremental backups') | 11 | optdepends=('rsnapshot: for incremental backups') |
12 | install=x200-my.install | 12 | install=x200-my.install |
13 | source=('x200-my.initd' | 13 | source=('x200-my.initd' |
@@ -15,8 +15,8 @@ source=('x200-my.initd' | |||
15 | 'x200-my-lid.sh' | 15 | 'x200-my-lid.sh' |
16 | 'x200-my-sleep.sh' | 16 | 'x200-my-sleep.sh' |
17 | 'x200-my.sh') | 17 | 'x200-my.sh') |
18 | sha512sums=('40d74cc2bce559cc2a08ebcd707279e148d802a5cdeb675cfb5c3abfed453378028a9f78b1be31269d908ad6aacaaaf53b48b13f97d019cdb73156ff92f507b5' | 18 | sha512sums=('22401ceed6c1bf0be9c2afb6ffc1cb3e72c6e0a961f806dab5f7516596e8225fe729e96ee695855f8a8bdd98840939d1413a6eafb80de7075326a10e25a5cbdd' |
19 | 'bf6513589b39daad03e4365e61f2026a4cb1801af9d061f38f502c4caa5732d03e529d43f2ec87a4ded952b6a299fdec1c18f302162b0dd28c540299be8987cf' | 19 | 'e0bc650377f593484185438d1ea8e7b6a298fb2ab4d1cf9a99191d878d250c82a998d1ead8f1a0bd6518105e068c0b0926409b9497d8283444c6b734debe3599' |
20 | '0dc141f1a26f2cd570d49a05bcc9496ba4c49fde39afad46f5a0783e83c07ec810ca81454a28c3241bcffc62ac31274e2a8d726bbd3c1e91d8cf5315b783c3f8' | 20 | '0dc141f1a26f2cd570d49a05bcc9496ba4c49fde39afad46f5a0783e83c07ec810ca81454a28c3241bcffc62ac31274e2a8d726bbd3c1e91d8cf5315b783c3f8' |
21 | '610564aa853c5dbc4e370ec2a4d3b5590e53ed235a1960927c0986a31f6c77d135086b1f5752b56fd511ea4a0294082fc7e98ee2fa7b69b37776a59f45c2ec34' | 21 | '610564aa853c5dbc4e370ec2a4d3b5590e53ed235a1960927c0986a31f6c77d135086b1f5752b56fd511ea4a0294082fc7e98ee2fa7b69b37776a59f45c2ec34' |
22 | 'cb765075f02b5cd16bcfc31571cf7c31ddcd74ff3aa832df1acd96bd8feb62855c0cf90c31c3e0028180765a51eafc5c74fb1f0406dd9172bdc0f5ec02b39f8c') | 22 | 'cb765075f02b5cd16bcfc31571cf7c31ddcd74ff3aa832df1acd96bd8feb62855c0cf90c31c3e0028180765a51eafc5c74fb1f0406dd9172bdc0f5ec02b39f8c') |
diff --git a/x200-my.confd b/x200-my.confd index 35d26bd..4de394d 100644 --- a/x200-my.confd +++ b/x200-my.confd | |||
@@ -1,9 +1,46 @@ | |||
1 | # /etc/conf.d/x200-my: config file for /etc/init.d/x200-my | 1 | # /etc/conf.d/x200-my: config file for /etc/init.d/x200-my |
2 | 2 | ||
3 | # Options to pass to the x200-my daemon. | 3 | ######################################### |
4 | # Options to pass to the x200-my daemon # | ||
5 | ######################################### | ||
6 | |||
7 | # Is this machine a Thinkpad X200? If so, x200-my can eliminate the | ||
8 | # whining noise that is noticeable when the brightness of the screen | ||
9 | # is lowered. | ||
10 | |||
11 | is_thinkpad_x200="yes" # (yes|no) | ||
4 | 12 | ||
5 | PWMFREQ_RATE="0x8bb7b16dc5b6a" | 13 | PWMFREQ_RATE="0x8bb7b16dc5b6a" |
6 | 14 | ||
15 | #################### | ||
16 | # Privacy settings # | ||
17 | #################### | ||
18 | |||
19 | # To enable privacy settings, set enable_privacy to 'true' and supply | ||
20 | # the right name of the wired internet interface that may or may not | ||
21 | # be connected to the internet so that its MAC address can be spoofed | ||
22 | # at startup. Additionally, x200-my will delete /etc/dhcpcd.duid, | ||
23 | # which will make dhcpcd generate a new DUID-LLT based file with an | ||
24 | # updated timestamp and the link-layer address of the network | ||
25 | # interface that is connected to the DHCP device at the time that the | ||
26 | # DUID is generated. | ||
27 | |||
28 | # IMPORTANT NOTICE: As dhcpcd uses ANY ONE network interface that is | ||
29 | # connected to the DHCP device to generate the DIUD-LLT file, the | ||
30 | # wireless interface MUST have its MAC address spoofed as well. To | ||
31 | # make wpa_supplicant handle this, add the following two lines in | ||
32 | # /etc/wpa_supplicant/wpa_supplicant.conf: | ||
33 | # mac_addr=1 | ||
34 | # preassoc_mac_addr=1 | ||
35 | |||
36 | # Finally, it is advisable to set the hostname to "localhost" and have | ||
37 | # "hostname_short" in /etc/dhcpcd.conf so that the actual hostname of | ||
38 | # the machine should not be sent to the DHCP server. | ||
39 | |||
40 | enable_privacy="false" # either 'true' or 'false' | ||
41 | wired_interface="" # supply the actual interface name! In case of | ||
42 | # doubt, see the output of 'ls /sys/class/net/' | ||
43 | |||
7 | ################## | 44 | ################## |
8 | # Backup options # | 45 | # Backup options # |
9 | ################## | 46 | ################## |
diff --git a/x200-my.initd b/x200-my.initd index de88ff0..e4303e6 100644 --- a/x200-my.initd +++ b/x200-my.initd | |||
@@ -1,13 +1,13 @@ | |||
1 | #!/sbin/openrc-run | 1 | #!/usr/bin/openrc-run |
2 | # Copyright 2018-2019 Robert Alessi | 2 | # Copyright 2018-2019 Robert Alessi |
3 | # Distributed under the terms of the GNU General Public License v2 | 3 | # Distributed under the terms of the GNU General Public License v2 |
4 | 4 | ||
5 | description="Removes whining noise from Thinkpads X200, powers off the wifi on shutdown and optionally backups directories." | 5 | description="Removes whining noise from Thinkpads X200, powers off the wifi on shutdown and optionally backups directories." |
6 | 6 | ||
7 | command="/usr/bin/intel_reg" | 7 | x200_cmdfreq="/usr/bin/intel_reg" |
8 | pwmfreq="${PWMFREQ_RATE}" | 8 | pwmfreq="${PWMFREQ_RATE}" |
9 | 9 | ||
10 | command_args="write 0x00061254 $pwmfreq" | 10 | x200_cmdfreq_args="write 0x00061254 $pwmfreq" |
11 | 11 | ||
12 | extra_started_commands="initbackup" | 12 | extra_started_commands="initbackup" |
13 | 13 | ||
@@ -23,12 +23,17 @@ else | |||
23 | backup_args="-aAX --relative --delete --quiet" | 23 | backup_args="-aAX --relative --delete --quiet" |
24 | fi | 24 | fi |
25 | 25 | ||
26 | depend() { | ||
27 | need localmount | ||
28 | before net | ||
29 | } | ||
30 | |||
26 | do_listofpackages() { | 31 | do_listofpackages() { |
27 | /usr/bin/pacman -Qqetn > "$backup_path"/pkglist.txt | 32 | /usr/bin/pacman -Qqetn > "$backup_path"/pkglist.txt |
28 | /usr/bin/pacman -Qqem > "$backup_path"/foreignpkglist.txt | 33 | /usr/bin/pacman -Qqem > "$backup_path"/foreignpkglist.txt |
29 | } | 34 | } |
30 | 35 | ||
31 | do_backup () { | 36 | do_backup() { |
32 | if [ $autobackup = "true" ] | 37 | if [ $autobackup = "true" ] |
33 | then | 38 | then |
34 | if [ -e "$backup_path"/"$control_file" ] | 39 | if [ -e "$backup_path"/"$control_file" ] |
@@ -50,20 +55,36 @@ do_backup () { | |||
50 | fi | 55 | fi |
51 | } | 56 | } |
52 | 57 | ||
58 | do_privacy() { | ||
59 | if [ $enable_privacy = "true" ] | ||
60 | then | ||
61 | if [ -n ${wired_interface:+1} ] | ||
62 | then | ||
63 | rm -rf /etc/dhcpcd.duid | ||
64 | /sbin/macchanger -r $wired_interface | ||
65 | fi | ||
66 | fi | ||
67 | } | ||
68 | |||
53 | initbackup() { | 69 | initbackup() { |
54 | do_backup | 70 | do_backup |
55 | } | 71 | } |
56 | 72 | ||
57 | start() { | 73 | start() { |
58 | if [ "${RC_CMD}" = "restart" ]; | 74 | if [ "${RC_CMD}" = "restart" ] |
59 | then | 75 | then |
60 | /usr/bin/nmcli radio all off | 76 | /usr/sbin/rfkill block all |
77 | else | ||
78 | do_privacy | ||
79 | fi | ||
80 | /usr/sbin/rfkill block all | ||
81 | if [ $is_thinkpad_x200 = "yes" ] | ||
82 | then | ||
83 | exec $x200_cmdfreq $x200_cmdfreq_args 2>/dev/null | ||
61 | fi | 84 | fi |
62 | |||
63 | exec $command $command_args 2>/dev/null | ||
64 | } | 85 | } |
65 | 86 | ||
66 | stop() { | 87 | stop() { |
67 | /usr/bin/nmcli radio all off | 88 | /usr/sbin/rfkill block all |
68 | do_backup | 89 | do_backup |
69 | } | 90 | } |