====== ハードウェア別メモ on Arch Linux ====== ===== Windows とのデュアルブート on 実機 ===== ==== Windows 10/11 で必要な設定 ==== LinuxはRTC (EFI/BIOS実機の時刻)をUTC(世界標準時)とみなし、WindowsはRTCをローカル時刻(日本ならJST)とみなすという仕様のズレから、9hrほど時間がずれるので以下のように Windows 側を EFI/BIOS 時刻を UTC とみなすようにする。また、ハイバネーションなどが悪さをすることがあるので無効化する。 > reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f まざぼの時間をローカルタイムではなくUTCに設定する (後ほど時刻調整必須) > powercfg /h off 高速スタートアップとハイバネートの無効化 (後ほどいちどWindowsをシャットダウンして起動しなおすこと) ===== サウンドまわり on 実機 ===== ==== USBスピーカーの節電対策 (音が序盤欠けるとか短時間音が鳴らないとか) ==== * sox コマンドで 1hz の音声を流し続ける (2026/07時点) * 以下のコマンド ( pacman -S sox でいれておく前提 ) で問題解消を確認すること user$ play -q -n repeat - synth sin 1 vol 0.001 #コマンドの意味 // -q: ログ出力を非表示にします。-n: 入力ファイルなし(生成モード)。synth sin 1: 1Hzのサイン波(無音)を生成します。vol 0.001: 音量を極小にします。 sox コマンドで問題解消されるなら、下記のとおりユーザーサービスを登録してログイン直後から自動で無音に近い「音を流し続ける」状態にもっていく。 user$ mkdir -p ~/.config/systemd/user user$ nano ~/.config/systemd/user/usb-speaker-keepalive.service [Unit] Description=Keep USB Speaker Alive After=pipewire.service wireplumber.service [Service] Type=simple ExecStart=/usr/bin/play -q -n repeat - synth sin 1 vol 0.001 Restart=always RestartSec=2 [Install] WantedBy=default.target user$ systemctl --user daemon-reload user$ systemctl --user enable --now usb-speaker-keepalive.service # 有効化 user$ systemctl --user status usb-speaker-keepalive.service # 状況確認 user$ #停止は systemctl --user stop usb-speaker-keepalive.service # で止まる。 * WirePlumberでサスペンドを無効化 する手法 (2026/07時点) * ただし **安物USBスピーカー** には事実上効かない orz user$ sudo mkdir -p /etc/wireplumber/wireplumber.conf.d user$ sudo nano /etc/wireplumber/wireplumber.conf.d/51-disable-suspend.conf monitor.alsa.rules = [ { matches = [ { node.name = "~alsa_output.*" } ] actions = { update-props = { session.suspend-timeout-seconds = 0 } } } ] user$ systemctl --user restart wireplumber user$ systemctl --user restart pipewire ==== サウンドの手動切り替え ==== 古いゲームとかのサウンド設定は「音量調節」などでは切り替わらないため、起動前に下記コマンドを実施すると良い。(TAB補完 は bash / zsh のタブによる自動補完 ) user$ pactl set-default-sink alsa_output.usb(タブ補完) ===== nVidia なハードウェア方面 ===== ==== nVidia のユーティリティインストール等 ==== user$ sudo mkdir /etc/pacman.d/hooks/; sudo touch /etc/pacman.d/hooks/nvidia.hook; sudo nano /etc/pacman.d/hooks/nvidia.hook [Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=nvidia Target=linux [Action] Description=Update 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' user$ sudo pacman -S nvidia-dkms nvidia-utils nvidia-settings ==== Xfce4でちらつく問題 ==== * これで直ったりすることはある (nvidia ドライバ Ver 依存) user$ xfconf-query -c xfwm4 -p /general/use_compositing -s false ===== 多ドライブあるPCにおける暗号化の自動解除設定 on 実機/VM ===== ==== rootパーティション以外を LUKs で暗号化したので自動マウント ==== /dev/sde1 にLUKs の暗号化イメージをつくってあるものと仮定。 === キーファイルを /etc 以下につくる === root# dd bs=512 count=4 if=/dev/urandom of=/etc/keyfile_sde1 root# chmod 600 /etc/keyfile_sde1 root# cryptsetup luksAddKey /dev/sde1 /etc/keyfile_sde1 (以下は確認用) root# cryptsetup luksOpen /dev/sde1 cryptdata --key-file /etc/keyfile_sde1 === /etc/crypttab /etc/fstab の2ファイルを編集する === root# vim /etc/crypttab (追記内容) cryptdata /dev/sde1 /etc/keyfile_sde1 luks,timeout=5 root# vim /etc/fstab (追記内容) /dev/mapper/cryptdata /opt/cryptdata ext4 defaults 0 2