GNOME+英語環境のLinuxのVSCodeで日本語入力が有効にならない場合の対処方法
ディレクトリ名を英語にしたいがために
言語設定そのものを英語にしていまうと日本語関連で様々な不具合が発生します。
入力メゾットを正しく設定したにも関わらず
VSCode上での日本語入力ができない状態というのもその一つ
対処法は、Gnome側に正しい入力メゾットを伝えること。
下記のコマンドの実行で解決します。(他の日本語入力関連の設定が正しいことが前提)
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx5'>}"
上記の「fcitx5」の部分は、各自置き換えてください。
Arch Linuxでandroidの接続が認識されず、フォルダやファイルが閲覧できない問題の対処法
パッケージが足りていないのでインストールしておきましょう
sudo pacman -S android-file-transfer android-tools msmtp gvfs-gphoto2 gvfs-mtp
あとは再起動すれば解決
Arch Linuxでヘッドホンとスピーカーの音量の切り替えがうまく行かない場合の対処方法
Arch Linuxをインストールした直後に
音量関連で不具合が発生する場合がある。
大抵はpulseaudioをインストールしていないのが原因なのでインストールしておく
sudo pacman -Sy pulseaudio
nodenvでglobalインストールしたコマンドのパスが通らない問題の対策
nodenv_rootがきちんとbashrcなどに書かれていないのが原因
export NODENV_ROOT="$HOME/.nodenv"
この一文を追加すれば解決する
Arch Linuxのフォントが汚い問題の直し方
Arch Linuxに限らず
大半のLinuxディストリビューションでは
日本語を表示するとフォントが汚かったりします。
これは手動で調整するのはかなり大変なので
font-managerというパッケージを利用して調整します。
ArchならARUから、他のディストリビューションなら恐らく普通にapt install等で入手してください。
font-managerを起動したら
- 右上のパフォーマンスボタンからRenderingを選択
- AntialiasとHintingを有効化
- Autohinterを有効化
- ヒンティングスタイルはSlightを選択
- 瀬底項目Displayに移動
- LCD Filter を Defaultに設定する
- Subpixel GeometryをRGBに設定
- Saveをタップして再起動
以上でいい感じのフォントへと調整されます。
【令和最新版】Arch Linuxのインストール方法と日本語環境設定
構築済みARUみたいなリポジトリは追加しない
ARUをビルドしてあるような便利そうなリポジトリが時々ありますが
バージョンの衝突を引き起こすことがあるのでやめておきましょう。
カーネルなんかはビルドが面倒なので便利ですけど
その際にもビルド済みのカーネル単独で提供している小型のリポジトリがある場合はそちらを優先していきます。pyenvでglobalのpythonを変更しない
ピンポイントすぎる話ですが
Arch LinuxではAURのパッケージのビルドの際に
/usr/bin/pythonではなくpythonコマンドを利用する場合がるので
pyenvでglobalのpythonを変更しているとハマります。
これはAURでパッケージを配布したユーザーが
内部のスクリプトで"python"と決め打ちしてるのが原因なので回避は結構大変です。
これを防ぐために、pyenvなどを利用する際には、globalのpythonのバージョンを変更しないようにしておきましょう。KDEを使わない
KDEは不安定なので使わないことをオススメします。
日本語環境設定でKDEは特有のハマり箇所が結構あります。 -->
今回解説すること
単なるインストールと起動までの解説ではなく
快適に利用できる状態にまで持っていく方法を詳細に解説していきます。
可能なことは全部盛りで導入していくので
必要ない部分は適宜飛ばして作業してください。
Btrfsで圧縮とTrimを有効化しておきます。
SSDかつデュアルブートなしで使うことを想定
インストール手順の概要
細かい手順を解説する前に
ざっくりと手順の概要を列挙しておきます。
Arch Wikiにはない、日本語環境設定特有の手順もあるので最初に眺めておきましょう。
- 環境共通のインストール手順の実行
- cfdiskを利用したパーティショニング (ホームディレクトリ暗号化の設定あり)
- マウント(ここでBtrfsのTrimと圧縮を有効にしておく)
- https://www.reddit.com/r/archlinux/comments/dbip45/is_there_any_advantaged_in_using_systemd/
- nanoの使い方を予習
- pacmanの最低限の設定
- インストールとchroot (networkmanagerとbluezとnanoを忘れずに)
- systemd-hooksを利用する(起動時間が短いから) (暗号化特有の手順あり)
- systemd-bootの設定 (起動時間が短いから) (暗号化特有の手順あり)
- ユーザーの作成
- ユーザーにsudo権限を与える
- 暗号化ホームパーティション特有の設定 (設定しないとログイン時にマウントしてくない)
- pacmanの最低限の設定
- 【オプション】zshの導入
- 日本語環境の必須パッケージのインストール(入力関連パッケージ(fcitx5-mozc)と最低限のフォント)
- 日本語入力の最小限の設定 (CUI上でも簡単に行える設定はこの段階で実行しておきます)
- ホームディレクトリ名の英語化の設定 (日本語のままでは一部ソフトでハマるので推奨)
- Xfceのインストール (DEは好みがあると思いますが、とりあえずXfceで話を進めます)
- DMのインストール
- systemd enableでネットワークとDMとBluetoothを有効化
- 再起動 (ここからはGUI上で作業可能なはずです)
- 【オプション】ccacheの導入、キャッシュ容量の設定、環境設定
- 【オプション】pacmanの設定 (ビルド時の最適化など)
- paruの導入 (AURの管理ソフト、事実上必須)
- 日本語環境特有の推奨パッケージのインストール (追加フォントなど、強く推奨、結構時間かかります)
- フォントの設定 (Xfceのフォントと、コンソールのフォント、文字化け対策でシステムのフォントも変更)
- 【オプション】フォントの更に細かい設定 (ヒンティングなどを変更してギザギザ感を軽減しておく)
- 【オプション】zramの導入 (特にデメリットはないので導入を推奨、設定はFedoraの初期設定を流用します)
環境共通のインストール手順の実行
インストール用のDVD(USB)を起動したら
最初にキーボードレイアウトを変更しておきます。
loadkeys jp106
これで準備完了
cfdiskを利用したパーティショニング
cfdiskを使ってgptでパーティショニングを実行していきます。
今回の構成は
/dev/sda1 EFI System (2GB程度)
/dev/sda2 Linux FileSystem (ルートとswapで使う、多くても120GBで十分)
/dev/sda3 Linux FileSystem (ユーザーのホームディレクトリ用、個別に暗号化しないならsda2とまとめてもいい)
上記のような構成にしておきます
bootパーティションは作るべき?
デュアルブートやBootの暗号化をしないのであれば
BootもまとめてEFIパーティションに突っ込むほうが管理が楽です。
他のディストリビューションのようなecryptfsでのフォルダ単位での暗号化ではダメ?
ecryptfsでの暗号化をすると
ファイル名の最大長の制限が短くなるので
ユーザーディレクトリ内でのアプリの動作で不具合が出ることがあります。
またパフォーマンスも悪いのでオススメはしません。
luksの作成
sda2とsda3をluksでフォーマットしていきます。
確認画面では、大文字で「YES」と打ち込まないと続行できないので注意。
cryptsetup luksFormat /dev/sda2 # 起動時に入力する解除パスワードを設定 cryptsetup luksFormat /dev/sda3 # ユーザーのログインパスワードと同一にしておく
フォーマットが終わったらluksを開いておきましょう
cryptsetup open /dev/sda2 root cryptsetup open /dev/sda3 userdir
lvmの作成
/dev/sda2にlvmを作成しておきましょう
pacman -S lvm2 pvcreate /dev/mapper/root vgcreate crypt /dev/mapper/root lvcreate -L 20G crypt -n swap # Swapパーティションの作成、ハイバーネートしないなら不要 lvcreate -l 100%FREE crypt -n root # ルートパーティション
フォーマット
フォーマットしていきます
mkfs.vfat /dev/sda1 mkfs.btrfs /dev/mapper/crypt-root mkfs.btrfs /dev/mapper/userdir mkswap /dev/mapper/crypt-swap
パーティションを確認する
fdisk -l
特にdev/sda1が EFI Systemになっているかを念入りに確認してください。
ここが違っていた場合、作業終盤で最初から仕切り直しになります。
パーティションのマウント
フォーマットが完了したらマウントしましょう
マウントオプションが入るので注意
ホームディレクトリ用のパーティションはまだマウントしなくていいです。
mount -o compress-force=zstd:1,discard=async /dev/mapper/crypt-root /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot swapon /dev/mapper/crypt-swap
「zstd:1」はFedoraのデフォルトで
Fedoraコミュニティの計測の結果、最もパフォーマンスの利益が大きいと判断された値。
compressにするかcompress-forceかに関しては
個人的にはcompress-force=zstd:1で何の問題もなく、容量の削減効果も大きいのでこちらを勧めたいのですが
とりあえずFedoraのデフォルトということで通常のcompressオプションも十分にありかと思います。
forceの有無に関しては現時点ではFedoraコミュニティでも計測結果が出ていないので
今後どちらが良いと判断されるかはまだ不明。
nanoの使い方の予習
Arch Linuxのインストールでは
マウス操作可能なテキストエディタを利用しません。
今回はnanoという比較的初心者にも優しいエディタで解説します。
その前に軽く操作を予習しておきしましょう。
保存 Ctrl + s
終了 Ctrl + x
切取 Ctrl + k
貼付 Ctrl + u
コピ Alt + 6
取消 Shft + Alt + u
とりあえず上記の6操作を覚えておけば大丈夫です。
pacmanの設定
この後のインストールを高速化させるために
並列ダウンロードを有効化しておきます。
この設定はインストーラー内でしか使われないので注意
nano /etc/pacman.conf ParallelDownloads = 5 # ← この行のコメントアウトを外しておく
pacstrapの実行
ディスクにArch Linuxの必須パッケージをインストールしておきます。
この後の作業で使う一部パッケージと
無線LANやBluetooth関連の必須パッケージもインストールしておきます。
pulseaudioもこの段階でインストールしておきましょう
(pipewireはイヤホンとの切り替えで不具合が出る場合があるので、最初にpulseaudioで動作確認してから切り替えることを推奨)
最後のintel-ucodeは、AMDユーザーの方はamd-ucodeに置き換えてください。
pacstrap /mnt base base-devel lvm2 linux linux-firmware nano networkmanager bluez bluez-utils pulseaudio intel-ucode
fstabの作成
genfstab -U /mnt >> /mnt/etc/fstab
chroot
arch-chroot /mnt
タイムゾーンの設定
ln -sf /usr/share/zoneinfo/Japan /etc/localtime timedatectl set-timezone Japan
pacman -S nano-syntax-highlighting## 言語関連の最低限の設定
nano /etc/locale.gen ja_JP.UTF-8 UTF-8 # ← ここのコメントアウトをはずす言語設定を作成
locale-gen言語をセット
nano /etc/locale.conf LANG=ja_JP.UTF-8キーボードレイアウトをセット
nano /etc/vconsole.conf KEYMAP=jp106
locale -a
hostnameの設定
hostnameのセット
nano /etc/hostname <hostname> # なんでもいい
nano /etc/hosts 127.0.0.1 localhost ::1 localhost 127.0.1.1 <hostname>
mkinitcpioの設定
今回は起動が高速なsystemd hooksを採用します。
順番も大事なのでそのまま書き写してください。(HOOKS=(xxxx)の部分)
nano /etc/mkinitcpio.conf # usr, fsck and shutdown hooks. HOOKS=(systemd autodetect modconf block keyboard sd-vconsole sd-encrypt lvm2 filesystems fsck) # COMPRESSION
上記のようにセットしておく。
完了したら更新
mkinitcpio -P
ブートの設定
今回は起動が高速なsystemd-bootを採用します。
最初に解説したパーティション構造を前提にするので
独自のパーティション構造を採用した場合には適宜読み替えてください。
とりあえずEFI関連のインストール
パーティションの作り方を間違えているとここで失敗します。(振り出しに戻る)
bootctl install
ローダーの設定
nano /boot/loader/loader.conf default arch.conf timeout 4 # ←慣れたら0に設定しなおしてください。スペースを押しながらの起動で開けます。 console-mode max editor no
エントリーの設定。
UUIDを打ち込むのが面倒なので最初に貼り付けておきます。
blkid >> /boot/loader/entries/arch.conf
エントリーを編集します。
AMDの場合はintel-ucodeをamd-ucodeに置き換えてください。
先程コピーしたIDをうまく活用しながら完成させましょう。
nano /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options luks.uuid=/dev/sda2のUUID luks.name=/dev/sda2のUUID=crypt luks.options=discard root=UUID=/dev/mapper/cryptーrootのUUID resume=UUID=/dev/mapper/cryptーswapのUUID rw
zsh等のインストール
あとで楽になるので、この段階でzshをインストールしておきます。
pacman -S zsh
ユーザーの作成
とりあえずrootを作成
passwd
ユーザーを作成
useradd -m -G wheel -s /bin/zsh ユーザー名
パスワードを割り当て
このとき、最初に作ったユーザーの暗号化ディレクトリ用のパーティションと同じパスワードに設定してください。
passwd ユーザー名
ユーザーにsudoを付与
一応sudoが入っているか確認
pacman -S sudo
wheelを編集します
EDITOR=nano visudo
スクロールすると
「%wheel ALL=(ALL) ALL」という行があるので
コメントアウトを外して保存します。
## Uncomment to allow members of group wheel to execute any command %wheel ALL=(ALL) ALL
暗号化ホームディレクトリの設定
ログイン時に、最初に作成したホームディレクトリ用の暗号化パーティションをマウントするように設定しておきます。
暗号化ホームディレクトリを作ってない場合はこの作業は不要です。
必要なパッケージをインストール
pacman -S pam_mount
pamの編集
nano /etc/pam.d/system-login auth required pam_shells.so auth requisite pam_nologin.so auth optional pam_mount.so ← 追加 auth include system-auth account required pam_access.so account required pam_nologin.so account include system-auth password optional pam_mount.so ← 追加 password include system-auth session optional pam_loginuid.so session optional pam_keyinit.so force revoke session optional pam_mount.so ← 追加 session include system-auth (・・・以下略)
マウントオプションなどの設定
最初に対象となるディスクのUUIDをコピーしておきます
要はホームディレクトリ用に切ったパーティションのUUIDを引っぱっておきます。
blkid | grep sda3 >> /etc/security/pam_mount.conf.xml
次に、メモ用にコピーしたしておいたUUIDを利用して
設定を完成させましょう。
メモ用のメッセージが設定ファイルの末尾に付与されているのでコピーを駆使してください。
メモ部分が残ったままにならないように注意してください。
(長いですが打ち込まないと起動しないので頑張りましょう)
nano /etc/security/pam_mount.conf.xml <!-- requires ofl from hxtools to be present --> <logout wait="0" hup="no" term="no" kill="no" /> <!-- pam_mount parameters: Volume-related --> <volume user="ユーザー名" fstype="crypt" path="/dev/disk/by-uuid/先程メモしたUUID" mountpoint="/home/user" options="crypto_name=userdir,compress-force=zstd:1,discard=async" /> <mkmountpoint enable="1" remove="true" /> </pam_mount>
この後の作業で使うのでマウントしておきます
mount -o compress-force=zstd:1,discard=async /dev/mapper/userdir /home/ユーザー名
ちゃんとマウントされているか確認しておきます
lsblk
userdirの右端の項目が/home/"ユーザー名"になっていればOK
ホームディレクトリの権限をユーザーに戻す
この時点ではホームディレクトリなのにユーザーにアクセス不可な状態ですので
ホームディレクトリの権限をユーザーに戻します
chown -R ユーザー名:ユーザー名 /home/ユーザー名
pacmanの最低限の設定
ここから大量のインストールが入るので
pacmanの並列ダウンロードを有効化しておきます。
nano /etc/pacman.conf ParallelDownloads = 5 # ← この行のコメントアウトを外しておく
日本語環境の必須パッケージのインストール
日本語の表示と入力に使うパッケージをインストールします。
zshパッケージをインストールします。
pacman -S fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt noto-fonts-cjk## 日本語入力の最小限の設定 ログイン後に日本語入力が可能になるように設定を加えておきます。 打ち間違いに注意してください。 sudo -u ユーザー名をつけておかないと 後で編集が難しくなります。
sudo -u ユーザー名 nano /home/user/.pam_environment GTK_IM_MODULE DEFAULT=fcitx5 QT_IM_MODULE DEFAULT=fcitx5 XMODIFIERS DEFAULT="@im=fcitx5"## ディレクトリ名の英語化
pacman -S xdg-user-dirs sudo -u ユーザー名 LANG=C xdg-user-dirs-update英語のディレクトリが出来上がっていたら成功
ls /home/ユーザー名## デスクトップ環境とディスプレイマネージャーのインストール 好みはあると思いますが、今回はXfceで話を進めます。 途中の選択肢は特にこだわりがなければデフォルトにしておくと問題を抑えられます。
pacman -S xorg xfce4 xfce4-goodies lightdm lightdm-gtk-greeter## Xfce用の追加パッケージのインストール (ゴミ箱など) Xfceは初期状態ではゴミ箱すらないので追加のパッケージを導入しておきます。
pacman -S gvfs network-manager-applet blueman## ブラウザのインストール ブラウザをインストールしておきます ここは特にこの先の解説には影響しないので好みで選んでください
pacman -S firefox firefox-i18n-ja## systemd enableでネットワークとDMとBluetoothを有効化 再起動の前に必要なサービスを有効化しておきます
systemctl enable lightdm systemctl enable bluetooth systemctl enable NetworkManager## 再起動 一旦再起動します。 簡素なパスワード入力画面になるので そこで最初に設定した暗号化解除用のパスワードを入力してください。
exit exit reboot## キーボードレイアウトを調整する ログイン後にキーボードレイアウトがjp106から外れている場合があります。 これについては別記事で対処方法をまとめたので修正しておきましょう。 - 日本語環境の必須パッケージのインストール(入力関連パッケージ(fcitx5-mozc)と最低限のフォント) - 日本語入力の最小限の設定 (CUI上でも簡単に行える設定はこの段階で実行しておきます) ## ccacheの導入 ここからはARUはふんだんに扱う作業となります。 早い話がビルドをしまくるので、ccacheを導入しておきましょう。
sudo pacman -S ccacheインストール完了したら .zshrcに以下を追記します。
nano ~/.zshrc # ccacheの設定 export PATH="/usr/lib/ccache/bin/:$PATH"最大キャシュ容量も設定しておきましょう 自身のストレージ容量とのバランスを見て決めてください。 例えば50GBまでに設定する場合にはこのようにします。
ccache -M 50G## pacmanの設定(ビルド関連) AURを扱うにあたって pacmanのビルド関連の設定も多少煮詰めておきます。 好みに合わせて、複数コアでのビルドを許可する設定を追加しておきます。
sudo nano /etc/makepkg.conf MAKEFLAGS="-j$(nproc)" # ← コア数分だけ並行してビルドする設定他にも最適化の調整をしたい場合には このファイルで調整をしてみてください。 ## paruの導入 いよいよAURの管理ソフトparuを導入します。 以下のコマンドで導入しましょう。 途中で必要パッケージを聞かれるので適宜追加してください。
sudo pacman -S git git clone https://aur.archlinux.org/paru.git cd paru makepkg -si## paruの設定 デフォルトでは1つだけ使いにくいオプションがあるので設定変更します。
sudo nano /etc/paru.conf BottomUp # ← ここのコメントアウトを外しておく## 日本語フォントのインストール paruの導入が完了したら いよいよ日本語フォントのインストールに入ります。 ビルド時にコケるので 先にビルドで扱う依存パッケージをインストールしておきます。 上書き警告が出ますが気にせず続行してください。
paru -S unzip-iconvとりあえずAURで入手可能な日本語フォントを並べておくので ここから適当に抜き出してインストールしてください。
paru -S adobe-source-han-sans-jp-fonts adobe-source-han-serif-jp-fonts otf-ipaexfont otf-ipafont otf-ipamjfont ttf-hanazono ttf-sazanami mplus-font nerd-fonts-noto-sans-mono nerd-fonts-noto-sans-regular-complete nerd-fonts-ubuntu-mono noto-fonts-sc otf-harenosora-mincho otf-kodomo-maru-gothic otf-kodomo-maru-gothic-narrow otf-oriental otf-source-han-code-jp otf-takao otf-takaoex otf-takaomj ttf-choc ttf-genshin-gothic ttf-ipa-mona ttf-kh-dotfont ttf-kochi-substitute ttf-komatuna ttf-koruri ttf-meguri ttf-meslo-nerd-font-powerlevel10k ttf-mgenplus ttf-migu ttf-mikachan ttf-misaki ttf-mona ttf-monapo ttf-mplus ttf-ms-win10-auto-japanese ttf-mutsuki ttf-nasu ttf-noto-sans-kannada ttf-oradano-mincho ttf-osaka-sans-serif ttf-ricty ttf-ricty-diminished ttf-rounded-mplus ttf-sawarabi-gothic ttf-sawarabi-mincho ttf-ume ttf-umeplus ttf-vlgothic## 細かいフォントの設定 フォントのヒンティングなどの設定を行うと 字が見やすくなるとか。
nano /etc/fonts/conf.d/71-no-embedded-bitmaps.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> <edit mode="assign" name="hintstyle"> <const>hintnone</const> </edit> </match> </fontconfig>## Zramの導入 必要パッケージを導入して
sudo pacman -S zram-generator sudo pacman -S zram-generator.conf zramctl設定はFedoraのデフォルトを流用。
sudo nano /usr/lib/systemd/zram-generator.conf [zram0] zram-fraction = 1.0 max-zram-size = 8192
lvm Luks時にsystemd-bootでmkinitcpioをsystemd系にする方法
初心者が読む可能性はないので情報の羅列だけ書きます。
/etc/mkinitcpio.conf HOOKS=(systemd autodetect modconf block keyboard sd-vconsole sd-encrypt lvm2 filesystems)
/boot/loader/entries/arch title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img initrd /intel-ucode.img options luks.uuid=暗号化パーティションのUUID luks.name=暗号化パーティションのUUID=解除後に指定したいなまい root=UUID=暗号化解除したルートのUUID resume=UUID=暗号化解除したswapのUUID rw
Arch Linuxで入手できる様々な最適化カーネル
Arch LinuxではAURを通してざまざまなカスタムカーネルを入手可能です。
結構色々と試してみたので概要とその感想
Zenカーネル
公式リポジトリで配布しているカーネル
公式配布なのでビルド不要なのが強み
ただしCPUの温度が常に高くなるという報告が一部あるので
普段遣いには向いていないかもしれない。
個人的にZenカーネルの利用時にAndroidエミュレータが起動しなかったりと
zenカーネル由来っぽい不具合に当たった経験があるので
常時利用は厳しいのではと思っている。
pfカーネル
カーネルに高速化のパッチを当てた上で
CPUの種類ごとに最適化ビルド済みのバイナリまで配布してくれている
非公式リポジトリを追加すれば、pacmanで簡単に更新を受け取ることが可能。
しかもArchのカーネルよりもカーネル更新への追従が早い。
(上流カーネルのリリースから数時間後には上がる)
パッチというよりも最適化ビルド済みというのがありがたく
個人的にはこのカーネルをメインで利用してる。
使用感としては高負荷時の作業がかなりスムーズになる。
裏でカーネルをビルドしながらVSCodeを動かしても動作の遅れは殆ど感じない。
CPU使用率が100%でもユーザーファンの音さえなければ気付かないレベル。
YouTube動画などを見てもCPU温度の上昇が緩やかでノートパソコンにも優しい。
いや、緩やかというか殆ど上がらない、最高。
ゲームに関してもzenカーネルとの違いがあまり分からなかった。
デメリットは必要以上のパッチは当てていないので
wineへの最適化などが行われていないことか
(これはメリットでもある)
右の方にある[download package]をクリックするとリポジトリを追加できる
x86_64_v3
AMD Zen 2
xanmodカーネル
phoronixで最高ランクのベンチマークを叩き出しているカスタムカーネル
https://www.phoronix.com/vr.php%3Fview%3D29870&sa=U&ved=2ahUKEwjdnZPFlpDxAhV1xosBHc30AzgQFjAAegQIAhAC&usg=AOvVaw2cK76uogXbt7X_5zYOUcuO
https://www.phoronix.com/scan.php?page=article&item=xanmod-liquorix-510&num=3
ビルド時にpkgbuildを編集してuse_pds=yを加えると
ゲームで凄まじいfpsを叩き出すという情報を発見したので試してみた
https://www.reddit.com/r/archlinux/comments/i5llis/linuxtkgpds_or_linuxzen/
FPSは特に上がらなかったが、たしかに体感では操作がキビキビしている気もする。
ただし自分でビルドした事による最適化の効果という可能性もある。
FPSが上がるというよりは
FPSが低下してるシーンでも操作までは遅延しなくなるという印象か。
起動時に凄まじい量のログを吐き出すが
PKGBUILDが丁寧に作られていないのではと心配になる。
ゲーム以外の用途では
裏で全コアでカーネルをビルドしながら
ブラウザを開いてYouTubeを見ても全くカクつかない。
これはすごい。
ただし低負荷時のCPU温度はpfカーネルの方が低いので
ラップトップ向きではなさそう。
xanmod-caculeカーネル
前述のxamodカーネルにCacule modパッチを加えたもの
最速の異名を持つ
https://www.reddit.com/r/pop_os/comments/kmnqno/xanmod_cacule_kernel_for_high_responsiveness/
使ってみたが、少し動画を見るだけでCPU温度が凄まじく上昇して実用性に乏しかった
やはり余計なオプションを加えず高速化パッチに絞っているpfカーネルが最強か?
kernel-cacul
元プロゲーマーで某Arch派生ディストリのコミュニティメンバーがチューニングしたカーネル
本人曰く、各パッチの開発者積極的にコミュニケーションを取って丁寧にマージしているのが売りらしい。
レビュワーによるとCPU温度が低いらしいので期待大。
ビルド時に聞かれるrtオプションにはnと回答してビルドしてみた。
実際に試して見るとやはり低負荷時にはpfカーネルの方がcpu温度が低い。
普段遣い向けではなさそう。
結論
サクサク感ではゲーム中、普段遣い共にuse_pds=yにしたxanmodカーネルが一番だった。
裏で全コアフル稼働してカーネルをビルドしていても操作がサクサクという異様さ。
ただし低負荷時のCPUの温度の高さや、毎回ビルドが必要な煩雑さを考えると
各CPU用に最適化済みのバイナリが配布されていて、低負荷時の温度も低いpfカーネルに軍配。
(まあCPUごとの最適化の影響はそこまでないという気もする
https://www.phoronix.com/scan.php?page=article&item=linux-50-march&num=6
)
また、pfカーネルは独自パッチを最小限にしてあるのも
普段使いで不具合が出にくそうでいい。
Arch Linuxで自分がリポジトリ外のパッケージをどれくらいインストールしているか確認する方法
pacman -Qm | wc -l
Btrfsでzstd圧縮を使う際のベストな圧縮レベルの指定を比較検討して最強を導き出す
- いきなり結論、zstd:1がベスト
先に結論から言うと
通常のデスクトップ用途の場合
Btrfsでの透過圧縮の圧縮レベルはzstd:1にしてください。
- zstdのcompress levelは1が最適だという理由
これは最近zstdでの透過圧縮をデフォルトにしたFedoraのコミュニティが実験した結果に基づきます。
実験結果を要約すると
Fedoraインストールでは
zstd:1で約40%のディスク削減
zstd:9で約43%のディスク削減ランダムデータ(圧縮効果なし)を書き込んだ場合
zstd:1で基準値+9%のシステム時間
zstd:9で基準値+15%のシステム時間ゼロ埋めデータを書き込んだ場合
zstd:1で基準値+16% zstd:9で基準値+82%
要は圧縮レベルを上げても割に合わないということです。
BtrfsでZstdの圧縮をする際のマウントオプションでcompressにするかcompress-forceどっちにするかの比較
Btrfsでの圧縮オプション、意外と圧縮されていないと思うことありませんか?
Btrfsでは圧縮を有効化する際のマウントオプションにcompressとcompress-forceという二種類のオプションがあり
compressは事前にBtrfsで圧縮が効果的なのかを判定してから圧縮アルゴリズムにデータを渡し
ompress-forceではとりあえず全部圧縮アルゴリズムにデータを渡すという仕組みになっています。
これだけ読むと一見compress-forceは全部圧縮してしまって非効率に思えるのですが
実際にcompress-forceを有効化しても全てのファイルが圧縮される訳ではありません。
どうも調べるとzstdは内部でも圧縮が有効かどうかを判定するアルゴリズムを保有して
このアルゴリズムがまたえらい高速なのだとか。
しかも、Btrfs側でも、実際に圧縮の後で実際にサイズが有効なレベルで縮小されているかを確認して
縮小されていなかったら圧縮を取りやめる機能が付与されています。
forceという用語のせいで分かりにくいですが、要は
compress
Btrfsで圧縮可能か判定 → zstdで圧縮可能か判定 → 実際に圧縮後に効果的な圧縮できているか判定compress-force
zstdで圧縮可能か判定 → 実際に圧縮後に効果的に圧縮できてるか判定
このような解釈。
3段階で判定するか2段階で判定するかというだけですね。
forceというのは、圧縮を強制するというよりは
要は圧縮アルゴリズム側に渡すのを強制するかどうか。
forceにしても効果的でないファイルは圧縮を自動で回避してくれるので
zstdの場合はマウントオプションはforceで良さそうです。
Arch LinuxでKDEを利用した際に動画のサムネイルが表示されない問題への対処方法
Arch Linuxは導入時点では動画のサムネイルが表示されません。
この問題を解決するにはffmpegthumbsという追加のパッケージが必要となります。
sudo pacman -S ffmpegthumbs
とコマンドを打ち込んで解決。
LinuxのKDE Plasmaでアプリケーションのインストールや検索(Discover)が動かない問題の対処法(Arch Linux用)
Arch Linuxなどでディストリビューションに同梱ではない状態でKDEを導入すると Discoverというアプリケーション検索ソフトウェアが正常に動作しない場合いがあります 。
しかし、これはディストビューションが未対応なのではなく、単に依存関係が足りていないだけなのでご安心ください。
packagekit-qt5
というパッケージを導入することで問題が解決します。