posted on 2023-08-30 18:22:22
UbuntuでHDMIサウンド出力をすると遅延する現象自体は前のバージョンでも有り,デフォルトでalsaのサスペンド機能が有効になっていて,次の動画を再生すると復帰処理によって冒頭部分が聞けない問題がありました.
勿論音が鳴ってからシークして冒頭に戻せば良いのですが面倒ですしストレスです.
Ubuntu 23.04では/etc/wireplumber/main.lua.d/50-alsa-config.lua
の["session.suspend-timeout-seconds"]
箇所のコメントアウトを解除して値を0にしましょう.
["session.suspend-timeout-seconds"] = 0,
/etc/wireplumberはUbuntuではデフォルトで存在せず,手動で生成する必要が有ります.
/usr/share/wireplumberディレクトリをコピーして使うのが楽です.尚現在ユーザーのみの場合は~/.config/下にwireplumberディレクトリを作っても良いです.
同様に/etc/pipewireも/usr/share/pipewireディレクトリをコピーして作っておくのも良いんじゃないかと思います.~/.config下でも良いのは同じです.
できたら
systemctl restart pipewire pipewire-pulse wireplumber --user
するか,PCを再起動すればalsaのサスペンド機能が無効化されます.
posted on 2021-07-03 09:42:56
前提条件としてセキュアブートをオフにしてインストールしたGentooかつ,ブートローダーにGRUB2をinitにsystemdを採用し尚且つsys-boot/shim,app-crypt/sbsigntools,sys-boot/efibootmgrをインストール済みの状態であることを想定している.
GRUBインストール時のオプションは
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --modules="tpm" --disable-shim-lock
を想定.これについてはこちらを参照.しておかないとブート時にエラーが出る.UEFIでTPMを有効しないといけないかは検証していない(多分要る気はする).
セキュアブートとTPMの有効方法はマザーボードごとに違ったりするのでここでは触れない.
またここに書かれていることは2021-07-03時点の物であり,環境差もあるので動作を保証しない.
cp /usr/share/shim/BOOTX64.EFI /boot/efi/EFI/gentoo/ && cp /usr/share/shim/mmx64.efi /boot/efi/EFIT/gentoo/
efibootmgr -c -d /dev/nvme0n1 -p 1 -L "shim" -l "\EFI\gentoo\BOOTX64.EFI"
dオプションはEFIパーティションのあるデバイスをpオプションにはパーティションナンバーを入れる.
opensslを使う.
参考URL:https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#shim
openssl req -newkey rsa:4096 -nodes -keyout MOK.key -new -x509 -sha256 -subj "/CN= My Key /" -out MOK.crt
daysオプションで有効期限を設定した方が良いかと思ったが煩わしいのでやめた.
openssl x509 -outform DER -in MOK.crt -out MOK.cer
このcerファイルは/boot/efi/EFI/gentoo/に放り込んでおく.
セキュアブートで起動した時に証明書が無いとmmx64.efiが起動し,keyを指定してenrollしろと言われるのでMOK.cerを置いた場所を指定する必要があるのでよしなにして.
sbsign --key MOK.key --cert MOK.crt --output vmlinuz-path vmlinuz-path
vmlinuz-pathのところを/boot/下にある署名したいvmlinuzファイルのパスに置き換えて実行.
sbsign --key MOK.key --cert MOK.crt --output /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/gentoo/grubx64.efi
以上.
UEFIに戻ってセキュアブートを有効にして,shimラベルのやつをブートに指定すればmmx64.efiが起動して証明書を指定するように言われるのでそれをして再起動すればブートできるだろう.
カーネルやGRUBをアップデートする度に署名する必要がある.
またgrub-mkconfigで設定をアップデートする際にEFIが書き換えられて手動定義したラベルが消えるっぽいのでefibootmgrで登録し直す必要があるだろう(回避策があるかもしれないが調べるの面倒なので).
posted on 2020-10-27 23:55:02
解決方法を調べてみるとネットで転がっているのはbcdeditを使うものばかりですが,私の環境では上手くいきませんでした.
まぁ要するにvirtioドライバを読み込むようにすれば良いのでWindowsが入っているストレージはSATA等の正常に起動できるやつに戻しておいて,
ブートに関係ないセカンドストレージとして適当にvirtioなストレージを追加して普通にブートするだけでbcdeditで解決する例と同じことができます.