HiDPI 控制台字体非交互式

pro*_*ous 4 dpkg fonts console hdpi

非交互式更改控制台字体的正确方法是什么?

我有一个 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
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试以非交互方式设置它,如下所示:

 $ 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
Run Code Online (Sandbox Code Playgroud)

这是行不通的。跑步setupcon没有任何效果。如果我检查/etc/default/console-setup,我会看到字体信息在我运行时更新dpkg-reconfigure,并且dpkg-reconfigure还会触发update-initramfs,所以看起来更多的情况是dpkg-reconfigure我的debconf-set-selections不触发。我如何找到这些操作并在我之后触发它们debconf-set-selections

P.-*_*Lin 5

您需要在 /etc/default/console-setup 文件中执行此操作,假设我们要使用 Terminus 16x32 字体,命令将是:

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
Run Code Online (Sandbox Code Playgroud)

最后,应用您的更改sudo update-initramfs -u

此外,Ubuntu 内核(从 Xenial 开始)很快将支持 FONT_TER16x32,以便在早期启动阶段进行控制台显示 [1]。

要受益于这种 HiDPI 字体支持,只需将“fbcon=font:TER16x32”添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX,然后运行sudo update-grub

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

  • 我在新的 20.04 上尝试了上述方法,它有效,所以我将这个问题标记为已解决,谢谢! (2认同)