web-dev-qa-db-ja.com

非インタラクティブHiDPIコンソールフォント

コンソールフォントを非インタラクティブに変更する正しい方法は何ですか?

HiDPIディスプレイがあり、より大きなコンソールフォントが必要です。私はそれを使用してインタラクティブにうまく設定できます:

$ Sudo dpkg-reconfigure console-setup
# Select UTF-8 -> Guess -> Terminus -> 16x32
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.130ubuntu3.5) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-43-generic

ただし、次のように非対話的に設定しようとすると:

 $ Sudo debconf-set-selections <<EOF 
 console-setup console-setup/charmap47 select UTF-8
 console-setup console-setup/codeset47 select Guess optimal character set
 console-setup console-setup/codesetcode string guess
 console-setup console-setup/fontface47 select Terminus
 console-setup console-setup/fontsize string 16x32
 console-setup console-setup/fontsize-fb47 select 16x32 (framebuffer only)
 console-setup console-setup/fontsize-text47 select 16x32 (framebuffer only)
 EOF

これは動作しません。 setupconを実行しても効果はありません。 /etc/default/console-setupをチェックすると、dpkg-reconfigureを実行するとフォント情報が更新され、dpkg-reconfigureupdate-initramfsをトリガーするので、dpkg-reconfigure私のdebconf-set-selectionsはトリガーしません。これらのアクションを見つけて、debconf-set-selectionsの後にトリガーするにはどうすればよいですか?

2
proximous

/ etc/default/console-setupファイルでこれを行う必要があります。Terminus16x32フォントを使用する場合、コマンドは次のようになります。

Sudo sed -i '/^FONTFACE/s/^/#/' /etc/default/console-setup # comment out the old value
Sudo sed -i '/^FONTSIZE/s/^/#/' /etc/default/console-setup # comment out the old value
echo 'FONTFACE="TER"' | Sudo tee -a /etc/default/console-setup # Set font to Terminus
echo 'FONTSIZE="16x32"' | Sudo tee -a /etc/default/console-setup # Set font size

最後に、Sudo update-initramfs -uで変更を適用します

また、Ubuntuカーネル(Xenialから起動)は、初期ブート段階でのコンソール表示用にFONT_TER16x32をすぐにサポートします[1]。

このHiDPIフォントのサポートを活用するには、/ etc/default/grubのGRUB_CMDLINE_LINUXに「fbcon = font:TER16x32」を追加し、Sudo update-grubを実行するだけです。

[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1819881

1
P.-H. Lin