コンソールフォントを非インタラクティブに変更する正しい方法は何ですか?
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-reconfigure
もupdate-initramfs
をトリガーするので、dpkg-reconfigure
私のdebconf-set-selections
はトリガーしません。これらのアクションを見つけて、debconf-set-selections
の後にトリガーするにはどうすればよいですか?
/ 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