Open12

Linux(Debian) Desktopトラブルシューティング

Naoki FujitaNaoki Fujita

本スクラップは、Linux(Debian11)をメインデスクトップとして使うときの困りごとをまとめていく。
筆者は基本的にソフトウェア関連のインストールなどは、ansibleベースで管理している。
しかしansibleで管理するにはややこしいこと(特にハードウェアが関連する部分)については、手動であれこれ調整しているのでそれを軽くメモ書きとして残す。

Naoki FujitaNaoki Fujita

disk mount編

lsblk -f

を用いると、ディスク(パーティション)に割り当てられているUUIDがわかる。
/etc/fstabを記述することで、どのディレクトリに(UUIDで指定された)ディスク(パーティション)
に紐付けるかを指定できる。
たまにしか触らず忘れるので書いておく。

#/etc/fstab
# メインディスクのマウント例 ここらへんはOSのインストーラに従えば勝手に書いてあるはず
UUID=ffffffff-ffff-ffff-ffff-ffffffffffff /               ext4    errors=remount-ro 0       1

# NASのマウント例 IPはNASのIPを指定する。terrastationはcifsをサポートしているのでこれを使っている。
//192.168.0.2/share /mnt/192_168_0_2 cifs username=<USERNAME>,password=<PASSWORD>,vers=1.0,uid=1000,gid=1000 0 0

# 追加ディスクのマウント例 UUIDはlsblk-fで調べて書き換える、ext4の部分はディスクのファイルシステム(xfsなど)に書き換え、defaults部分はマウントオプションを調べて必要に応じ書き換える。
UUID=ffffffff-ffff-ffff-ffff-ffffffffffff /mnt/ff ext4 defaults 0 0

正しく設定できていれば、

mount -a

を使うと/etc/fstabに基づきマウントされる。(再起動でも可)

UUIDはOSを入れ替えても変わらないっぽいのでfstabを書き換えるansibleを作っても良い。

Naoki FujitaNaoki Fujita

サウンド出力(sink)編

デフォルトのサウンド出力先がイヤホンジャックになっていたがHDMIに変更したい。
サウンドのコンフィグGUIからHDMI出力に変更できるが、ログアウトのたびに初期化される。
下記コマンドでデフォルトの出力先を変更できる。

pactl set-default-sink 
# ↑ ここまで入力した状態でタブキーを押すと、
# 出力先候補が自動補完されるのでそれを使って求める出力先に切り替える。
Naoki FujitaNaoki Fujita

コピー・貼り付けショートカット編

コピー・貼り付けを行うにおいて、GUI(Gnome)環境ではCtrl+C, Ctrl+Vを用いる。
一方でコンソール環境においてはCtrl+CはSIGINTの送出を意味し、Ctrl+Cを上書きしてしまうとSIGINTによるプログラム停止ができなくなるという話がある。
そのためGUIコンソールに対しては、Ctrl+Shift+CとCtrl+Shift+Vがコピー・ペーストのデフォルトショートカットになっているが、その他ウィンドウ(例えばブラウザ)との一貫性がなさすぎて使いにくい。
色々試したところ、ターミナルのオプションでCtrl+C, Ctrl+Vに上書きした場合、Ctrl+Shift+Cを用いればSIGINTが送出できることがわかった。
https://askubuntu.com/a/62998
標準ターミナルだけでなくweztermでも同様の挙動が確認できたので、Ctrl+C, Ctrl+Vに書き換える。

Naoki FujitaNaoki Fujita

Cudaゴリ押しインストールからのDebian12編

Cudaをインストールしようとすると
ocl-icd-libopencl1などがコンフリクトする的なエラーに

sudo apt remove gnome-shell
sudo apt remove ocl-icd-libopencl1:amd64
sudo apt remove ocl-icd-libopencl1:i386

でコンフリクトを除去する
(ただしgnome-shellは落とすとGUIが機能しなくなるので事前にGUIは落とす方がいい、私はゴリ押してsshからなんとか帳尻合わせをしたが推奨しない。)

インストールに成功している場合は下記のコマンドが通るはず

/usr/local/cuda/bin/nvcc --version

https://qiita.com/maueki/items/0f899183cf9e2736829d
https://askubuntu.com/questions/90915/troubleshooting-x-server-ee-failed-to-load-module-nv-module-does-not-exist
これを参考にしながら、gnome-shellを回復した

sudo apt install gnome-shell
apt dist-upgrade
echo "blacklist nv" | sudo tee -a "/etc/modprobe.d/blacklist.conf"

↑これのdist-upgradeで普通にDebian12に移行してしまった。

あとはインストールしても自動でPATHが通らないので対応する

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
Naoki FujitaNaoki Fujita

カーネルアップデートからのキーボード・マウス動かない編

キーボードが動かないので色々調べる。

systemctl set-default multi-user.target

でCUI環境にしたところキーボードが動くので、GUI(XWindow)の時の問題だとわかった。
X関係のログが見たいので、以下で調べる。

ls -al /var/log/Xorg* # logrotateされているので最新のログファイルを調べる
less /var/log/Xorg.1.log

エラーが出ていたが、もう一度エラーを出力させるためにGUIに戻す。

systemctl set-default graphical.target

graphical.targetに戻すと何故かキーボードマウスが動くようになった、難儀なものである。

Naoki FujitaNaoki Fujita

うっかり

sudo apt remove dbus # ibusではない

としたら、回復できず再インストールする羽目に、絶対やってはいけない😂

Naoki FujitaNaoki Fujita

ansibleで制御する前にやること

1. IPの確認・調整

sshの接続IPがわからないと不便なのでipコマンドやGUIから調べる
DHCPで制御されていることが多いので、必要に応じて固定する

2. sudo権限の設定

sudo権限がないと色々不便なので設定する

su # root権限取得
usermod -G sudo <username>
reboot # 再起動したほうがいい
Naoki FujitaNaoki Fujita

ターミナルでペーストをしたときにコピー内容が"^[[200~"と"~"のような文字列で囲まれることがある。

^[[200~<COPY_CONTENT>~

これは、Bracketed Paste Modeと呼ばれる安全機構で、

set enable-bracketed-paste off

とすると無効化することができる。