なんか書いていこうぜー .com

Let's write something good

T495 に Arch Linux をインストールした

2020-01-25
  • Share on Facebook
  • Tweet
  • Add to Pocket

Ryzen CPU 搭載の PC に Arch Linux をインストールしたので、記録しておく。尚、最小手とは限らない。 基本的には https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89 を参考にしつつ、過去の経験と AMD 用の設定と ThinkPad T495 向けの設定と思われるものを追加している。

起動する USB メモリを作成する

archlinux-2020.01.01-x86_64.iso をあらかじめダウンロードしておき、dd コマンドで作成する。 ここでは USB メモリが /dev/sdb にマウントされている。

$ sudo dd bs=4M if=archlinux-2020.01.01-x86_64.iso of=/dev/sdb && sync

USB メモリを起動してインストール

eivars を確認
# ls /sys/firmware/efi/efivars

ディスクの一覧を表示
# fdisk -l

パーティション作成
# gdisk /dev/nvme0n1
Command (? for help): o
Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : +512M
Hex code or GUID : EF00

https://server.etutsplus.com/allocate-swap-space/ ハイバネートが1.5 になってたから 24 * 1.5 = 36
Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : +36G
Hex code or GUID : 8200

Command (? for help): n
Permission number: 何も押さずエンター
First sector     : 何も押さずエンター
Last sector      : 何も押さずエンター
Hex code or GUID : 8300

Command (? for help): w
Do you want to proceed? (Y/N) Y
The operation has completed successfully.

パーティションにファイルシステム作成
# mkfs.fat -F32 /dev/nvme01p1
# mkswap /dev/nvme01p2
# swapon /dev/nvme01p2
# mkfs.ext4 /dev/nvme01p3

パーティションのマウント
# mount /dev/nvme01p3 /mnt
# mkdir /mnt/boot
# mount /dev/nvme01p1 /mnt/boot

システムクロックの更新
# timedatectl set-ntp true

paclist の編集 Japan なものをすべて上にもってきた
# vim  /etc/pacman.d/mirrorlist

ベースシステムの導入
# pacstrap /mnt base base-devel git linux linux-firmware vim

fstab の生成
# genfstab -U /mnt >> /mnt/etc/fstab

# arch-chroot /mnt

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc

en_US.UTF-8 UTF-8 と ja_JP.UTF-8 UTF-8 を uncomment
# vi /etc/locale.gen
# locale-gen

※ この段階で ja_JP を入れると文字化けする
# echo LANG=en_US.UTF-8 > /etc/locale.conf

# echo ホスト名 > /etc/hostname
# vim /etc/hosts
127.0.0.1  localhost
::1    localhost
127.0.1.1  ホスト名.localdomain  ホスト名

netctl, wifi-menu 使えるようにしておく
# pacman -S iputils dialog wpa_supplicant iw
# pacman -S netctl dhcpcd

# mkinitcpio -P

root のパスワード設定
# passwd

microcode の更新用
# pacman -S amd-ucode

grub をインストールする
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg
# vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT に acpi_backlight=native を追加
⇡ https://wiki.archlinux.jp/index.php/Lenovo_ThinkPad_T495 を参照

# grub-mkconfig -o /boot/grub/grub.cfg

ユーザ作成
# pacman -S zsh
# useradd -m -G wheel -s /usr/bin/zsh ユーザ名
# usermod -aG users ユーザ名 # users グループに追加
# passwd ユーザ名

# pacman -S sudo
# EDITOR=vim visudo
 %wheel      ALL=(ALL) ALL
# chown -c root:root /etc/sudoers
# chmod -c 0440 /etc/sudoers

Ryzen 最適化 kernel の導入 と その他
# pacman -S linux-zen
# pacman -S linux-zen-headers
# pacman -S mesa
# pacman -S xf86-video-amdgpu
# pacman -S lm_sensors
# vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT に↓を追加する
amdgpu.si_support=1 radeon.si_support=0 acpi_backlight=native

# grub-mkconfig -o /boot/grub/grub.cfg

フォントをインストール
# pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

ノートPC の蓋締めたときのアクションを設定する
# mkdir /etc/systemd/logind.conf.d/
# cp /etc/systemd/logind.conf /etc/systemd/login.conf.d/
# vim  /etc/systemd/login.conf.d/logind.conf
HandleLidSwitch=hybrid-sleep

swapへのSSDの書き込み回数を減らす
# echo 10 > /proc/sys/vm/swappiness

TLP alsa 等
# pacman -S libxss alsa-utils tlp dkms

arch-chroot を抜けて再起動し、終了したら USB メモリを抜く
# exit
# reboot

一旦ログアウトしてユーザとしてログインして追加作業する

arch-chroot 状態だと systemctl が使えないため、一旦ログアウトしてインストールされたシステムにログインして作業を続ける。

wifi-menu を使えるように dhcpcd を有効化
$ sudo systemctl enable dhcpcd
$ sudo ip link set wlp1s0 up
$ sudo wifi-menu

$ sudo pacman -S openssh
$ sudo vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no

$ sudo systemctl enable sshd.service
$ sudo systemctl start sshd.service

時刻合わせ
$ sudo pacman -S ntp
$ sudo systemctl enable ntpd
$ sudo systemctl restart ntpd

lightdm をインストールする
$ sudo pacman -S lightdm
$ sudo pacman -S lightdm-gtk-greeter
$ sudo vim /etc/lightdm/lightdm.conf
 [Seat:*]
 …
 greeter-session=lightdm-gtk-greeter
$ sudo systemctl enable lightdm.service

X の設定
$ sudo pacman -S xorg-server
https://wiki.archlinux.jp/index.php/AMDGPU#Xorg_.E3.81.AE.E8.A8.AD.E5.AE.9A で
$ sudo vim /etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Device"
  Identifier  "AMD"
  Driver    "amdgpu"
  Option    "DRI"  "3"
EndSection

fcitx の設定
$ sudo pacman -S fcitx-mozc
$ sudo pacman -S fcitx-gtk2 fcitx-gtk3 fcitx-configtool
$ vim ~/.xprofile
 export GTK_IM_MODULE=fcitx
 export QT_IM_MODULE=fcitx
 export XMODIFIERS="@im=fcitx"
 export DefaultIMModule=fcitx
 fcitx &
$ fcitx-configtool
MOZC を追加する

synaptics でトラックパッドの設定をする
$ sudo pacman -S synaptics
$ sudo vim /etc/X11/xorg.conf.d/70-synaptics.conf
Section "InputClass"
  Identifier  "touchpad"
  Driver    "synaptics"
  MatchIsTouchpad  "on"

  Option  "VertTwoFingerScroll"  "on"
  Option  "HorizTwoFingerScroll"  "on"
  Option  "EmulateTwoFingerMinZ"  "40"
  Option  "EmulateTwoFingerMinW"  "8"
  Option  "CoastingSpeed"    "0"
  Option  "FingerLow"    "30"
  Option  "FingerHigh"    "50"
  Option  "MaxTapTime"    "125"

  Option  "VertScrollDelta"  "-111"
  Option  "HorizScrollDelta"  "-111"

  Option  "SoftButtonArea"  "70% 0 50% 0 0 0 0 0"

  # disable trackpad while typing
  Option  "PalmDetect"    "1"
  Option  "PalmMinWidth"    "10"
  Option  "PalmMinZ"    "200"
EndSection

yay の導入
$ mkdir tmp
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

あとは好みのアプリを導入すれば動くはず。

追記(2020-01-30):

/etc/mkinitcpio.conf の MODULES に amdgpu を追加すると、XF86Audio のボリュームまわりが認識されるようになった模様。音はなっていたが、音量を調整するアプリがずっとミュートを示していたが、値の調整ができるようになった。

$ sudo vim /etc/mkinitcpio.conf
MODULES=(amdgpu)
$ sudo mkinitcpio -P
$ sudo reboot

追記(2020-02-03):

たまに USB 接続のキーボードが効かなくなったので、 ThinkPad T495 の TLP のページにある /etc/default/tlp への設定を追記した。

感想

以前と違って、wpa_supplicant と dialog さえインストールしておけば wifi-menu が動く、とはなっていなかったので、無線LANにつながるまで何度もUSB メモリさして mount して arch-chroot /mnt してを繰り返すことになった。

知識と経験はアップデートしなければ役に立たなくなることもある。