ArchLinux + KDE Plasmaでイケてる機械学習環境を作りたい
序
背景
ローリングリリースなOSで機械学習(深層学習)環境を作りたいと思い四苦八苦したので、自分用の備忘録ついでに物好きな方用に公開。
Garuda LinuxやAlter Linuxなども試したが、インストール自体は簡単なもののpacman -Syu
でエラー吐いたり不愉快な挙動をすることもあったため自力で構築することに。
デスクトップ環境はKWinとDolphinが好みだったのでKDE Plasmaを採用した。
今回はX11とWaylandでちゃんとデスクトップ環境が使える状態まで行う。
デスクトップやブートローダーのカスタマイズは次回の予定。
Waylandで動くようにしたものの明らかにX11のほうが安定しているけど気にしない
ハードウェア構成
- CPU: Core i7-13700K
- RAM: 32GB
- GPU: NVIDIA RTX 3090
インストールメディアから行う設定
ネットワークの確認
ping archlinux.jp
無線LANで接続
iwctl
[iwd]# device list
[iwd]# station [deviceName(wlan0など)] get-networks
[iwd]# station [deviceName] connect [WifiName]
[iwd]# exit
ミラーサーバの設定
reflector --country Japan --age 12 --protocol http,https --sort rate --save /etc/pacman.d/mirrorlist
archinstall
pacman -Sy archinstall
archinstall
設定
- Mirrors: Japan
- Disk configuration: Use a best-effort default partition layout
- ext4 → no
- Bootloader: Grub
- Root password: 何かしら入力
- User account: 自分のユーザを作成
- Profile
- Type: Desktop → KDE
- Graphics driver: Nvidia (open kernel module for newer GPUs, Turing+)
- Audio: Pipewire
- Additional packages: firefox zsh zsh-completions
- Network configuration: Use NetworkManager
- Timezone: Asia/Tokyo
- Optional repositories: multilib
上記の設定でインストール。
btrfsだとWayland環境が全然動かなかったためext4を選択している。
(たまにインストール失敗するけど設定を/
に保存したり、再度行うと問題なくできた)
ロケールの設定
vim /etc/locale.gen
en_US.UTF-8 UTF-8
とja_JP.UTF-8 UTF-8
をコメントアウト。 → locale-gen
日本語キーボードの場合以下を設定。
echo KEYMAP=jp106 > /etc/vconsole.conf
コンソール設定
vim /etc/pacman.conf
# Misc options
部分に以下を記載。
Color
CheckSpace
ParallelDownloads = 5
ILoveCandy
コンピュータ名の設定
/etc/hosts
に以下を記載。
archinstall
のデフォルト設定では、[myhostname]=archlinux
127.0.0.1 localhost
::1 localhost
127.0.1.1 [myhostname].localdomain [myhostname]
GRUB + rEFInd
pacman -S dosfstools os-prober mtools refind
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB_UEFI
grub-mkconfig -o /boot/grub/grub.cfg
refind-install
プロセッサ用マイクロコード
Intel
pacman -S intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg
AMD
pacman -S amd-ucode
grub-mkconfig -o /boot/grub/grub.cfg
ネットワーク設定
有線の場合
ip a
コマンドでアダプタのデバイス名(enpxxxxみたいなの)を確認した後、
systemctl enable dhcpcd@[デバイス名].service
無線の場合
systemctl enable NetworkManager
再起動
exit
→ reboot
再起動後に行う設定
- NVIDIAの設定が終わっていないので、X11で起動する
- ログインしたらネットワークに接続する
アップデート
pacman -Syu
OpenSSH
インストールと設定の反映
pacman -Syu openssh
systemctl enable sshd
systemctl restart sshd
IPアドレスの確認
ip a
(セキュリティ的によろしくないが)これでroot@[ip_adress]
で別のPCからログイン可能。
AURヘルパーのインストール
yayの場合
sudo pacman -S --needed git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ../
rm -rf yay
yayの更新
yay -Syu
paruの場合
sudo pacman -S --needed git rustup
rustup default stable
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
cd ../
rm -rf paru
シェルの設定
chsh -s $(which zsh)
NVIDIA設定
grub設定
# vim /etc/default/grub
-GRUB_TIMEOUT=5
+GRUB_TIMEOUT=1
-GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
+GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia-drm.modeset=1"
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio設定
# vim /etc/mkinitcpio.conf
-MODULES=()
+MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
mkinitcpio -p linux
pacman hook
mkdir /etc/pacman.d/hooks
vim /etc/pacman.d/hooks/nvidia.hook
以下をコピペ
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
# Uncomment the installed NVIDIA package
#Target=nvidia
Target=nvidia-open
#Target=nvidia-lts
# If running a different kernel, modify below to match
Target=linux
[Action]
Description=Updating NVIDIA module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'
これでWayland環境でも使用可能になるはず。
GUI環境の設定
日本語環境
sudo pacman -S fcitx5-mozc fcitx5-configtool fcitx5-im
sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
fcitxの設定
# /etc/environment
...
↓以下の3行を、ファイル中に追記する。
export XMODIFIERS=@im=fcitx
# export GTK_IM_MODULE=fcitx
# export QT_IM_MODULE=fcitx
Bluetooth
sudo pacman -S bluez bluez-utils bluedevil
sudo systemctl enable bluetooth
参考文献
[1] https://qiita.com/Hayatann/items/09c2fee81fcb88d365c8
[2] https://qiita.com/ekzemplaro/items/6714469c1fb1ae06b80f
[3] https://blog.livewing.net/install-arch-linux-2021
[4] https://qiita.com/TsutomuNakamura/items/b60518f8788e5e998744
Discussion