ThinkPad:ArchLinux: Difference between revisions
m (→Hardware) |
m (→Console Fonts) |
||
Line 14: | Line 14: | ||
{{Console|1=vim /etc/udev/rules.d/10-network.rules}}<br/> | {{Console|1=vim /etc/udev/rules.d/10-network.rules}}<br/> | ||
{{Console|prompt=false|1=SUBSYSTEM{{=}}{{=}}"net", ACTION{{=}}{{=}}"add", ATTR{address}{{=}}{{=}}"MAC_ADDRESS_FOR_NIC", NAME{{=}}{{=}}"eth0"<br/>SUBSYSTEM{{=}}{{=}}"net", ACTION{{=}}{{=}}"add", ATTR{address}{{=}}{{=}}"MAC_ADDRESS_FOR_WIFI", NAME{{=}}{{=}}"wlan0"}} | {{Console|prompt=false|1=SUBSYSTEM{{=}}{{=}}"net", ACTION{{=}}{{=}}"add", ATTR{address}{{=}}{{=}}"MAC_ADDRESS_FOR_NIC", NAME{{=}}{{=}}"eth0"<br/>SUBSYSTEM{{=}}{{=}}"net", ACTION{{=}}{{=}}"add", ATTR{address}{{=}}{{=}}"MAC_ADDRESS_FOR_WIFI", NAME{{=}}{{=}}"wlan0"}} | ||
=== Console Fonts === | |||
Everyone have their own opinion, you can pull up a list with {{mono|ls /usr/share/kbd/consolefonts}}. To test out a font use {{mono|setfont}}, issue the command by itself to return to the default. You can also issue {{mono|showconsolefont}} to show a list of all available characters. | |||
{{Console|1=setfont -m 8859-2 gr928-8x16-thin|2=showconsolefont}} | |||
We can set this at boot by adding it to {{mono|/etc/vconsole.conf}}. | |||
{{Console|1=echo -e "FONT{{=}}gr928-8x16-thin\nMAP{{=}}8859-2" {{!}} tee --append /etc/vconsole.conf}} | |||
= Hardware = | = Hardware = |
Revision as of 01:36, 16 July 2017
UNDER CONSTRUCTION: The document is currently being modified! |
Customization
Keeping the Boot Log on TTY1
In order to stop Arch Linux from clearing the screen on boot we can add the i915 module to MODULES inside of /etc/mkinitcpio.conf and then regenerate our kernel images.
# sudo sed -i -r 's/^MODULES="([a-z0-9 _-]+)"/MODULES="\1 i915"/' /etc/mkinitcpio.conf # sudo mkinitcpio -p linux |
Then create a directory for getty overrides and create one with the following.
# sudo mkdir /etc/systemd/system/getty@tty1.service.d # sudo vim /etc/systemd/system/getty@tty1.service.d/noclear.conf |
[Service] TTYVTDisallocate=no |
Traditional Device Node Names
To translate the predictable device node names back into traditional ones, can create the following. You can use the vim command :r !cat /sys/class/net/wlp3s0/address, replacing the device node respectively, in order to get the MAC Address of each device.
# vim /etc/udev/rules.d/10-network.rules |
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC_ADDRESS_FOR_NIC", NAME=="eth0" SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC_ADDRESS_FOR_WIFI", NAME=="wlan0" |
Console Fonts
Everyone have their own opinion, you can pull up a list with ls /usr/share/kbd/consolefonts. To test out a font use setfont, issue the command by itself to return to the default. You can also issue showconsolefont to show a list of all available characters.
# setfont -m 8859-2 gr928-8x16-thin # showconsolefont |
We can set this at boot by adding it to /etc/vconsole.conf.
# echo -e "FONT=gr928-8x16-thin\nMAP=8859-2" | tee --append /etc/vconsole.conf |
Hardware
Battery/CPU
Install TLP and related packages. Then enable it with systemd, don't forget to mask the required services (skip NetworkManager if you use this).
# yaourt -S tlp tp_smapi acpi_call # sudo systemctl enable tlp # sudo systemctl enable tlp-sleep |
# sudo systemctl mask NetworkManager.service # sudo systemctl mask systemd-rfkill.service # sudo systemctl mask systemd-rfkill.socket |
Then edit the tlp config file to setup your TLP profile. You can see a copy of mine here (TODO: Insert link to GitHub)
# sudo vim /etc/defaults/tlp |
TLP status can be shown with the following:
# sudo tlp-stat |
It is also a good idea to install PowerTOP in order to monitor power usage.
# yaort -S powertop |
Fan Control
Install thinkfan, default configuration is installed into /usr/lib/modprobe.d/thinkpad_acpi.conf.
# yaourt -S acpi lm_sensors thinkfan |
Then detect the hardware monitors chips that are available. Then re-enable the thinkpad_acpi kernel module to update with the new config.
# sudo sensors-detect # sudo modprobe thinkpad_acpi |
To show the current thermal and cooling information use acpi.
# sudo acpi -V |
To show the current fan speed and level.
# sudo cat /proc/acpi/ibm/fan |
Make the changes to point it to the right temperature reading, you can use :r !sudo find /sys/devices -type f -name "temp*_input" in order to paste all the monitors into the file.
# sudo vim /etc/thinkfan.conf |
When finished it should look something like this:
hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp3_input hwmon /sys/devices/virtual/hwmon/hwmon1/temp1_input tp_fan /proc/acpi/ibm/fan (0, 0, 35) (1, 33, 38) (2, 36, 45) (3, 39, 49) (4, 46, 58) (5, 50, 62) (7, 56, 32767) |
You can verify the config is written correctly with the following command.
# sudo thinkfan -n |
Finally enable and start thinkfan.
# sudo systemctl enable thinkfan # sudo systemctl start thinkfan |
Kernel
For added power savings we can change a few kernel options. Enabling Intel i915 RC6 is a feature that allows the GPU to enter a lower power state during GPU idle. Enabling i915 framebuffer compression reduces the memory bandwidth on screen refreshes, reported to save ~0.6W on an X220. Finally the DRM vblank off delay reduces wakup events and theoretically saves power.
To enable all of these add the following to the options line in your /boot/EFI/BOOT/refind.conf file for Arch Linux.
moo |
SSD
First if you want to enable TRIM on boot, create a systemd service. Also create a systemd service for adjusting the governor on system boot-up.
# sudo vim /etc/systemd/system/ssd-trim.service |
[Unit] Description=Runs fstrim on the SSD Requires=multi-user.target After=multi-user.target [Service] Type=oneshot RemainAfterExit=no ExecStart=/usr/bin/fstrim -v / [Install] WantedBy=multi-user.target |
To monitor the HDD or SSD installed you need to install the smartmontools package.
# yaourt -S smartmontools |
You can view an overall health assessment with the following:
# sudo smartctl -H /dev/sdX |
Enable and start the smartd systemd service to enable SMART monitoring for all disks.
# sudo systemctl enable smartd |
We can also have SMART email us and run a script for notifications on SMART errors.
# sudo sed -i 's/^DEVICESCAN/DEVICESCAN -m address\@domain.com -M exec \/usr\/bin\/smartdnotify/' /etc/smartd.conf |
Then create the /usr/bin/smartdnotify script (replacing both instances of kyau with your username).
# sudo vim /usr/bin/smartdnotify |
#!/bin/sh sudo -u kyau DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/kyau/bus notify-send "S.M.A.R.T Error ($SMARTD_FAILTYPE)" "$SMARTD_MESSAGE" --icon=dialog-warning |
# sudo chmod +x /usr/bin/smartdnotify |
Then you can start the service.
# sudo systemctl start smartd |