web-dev-qa-db-ja.com

再起動後も保持されるように、コンソールのTTYフォントタイプを永続的に変更するにはどうすればよいですか?

Ubuntu 15.04 64ビットデスクトップエディション(A DebianベースのLinux)を実行しています。

Sudo dpkg-reconfigure console-setupコマンドラインから、デフォルトのコンソールフォントタイプをTerminusに変更します。その後すぐに、コンソールのフォントがよりシャープなフォントフェースに変更されました。

ただし、再起動後 Ctrl+Alt+F1 選択した選択肢ではなく、元々の分厚いスタイルのフォントフェイスがあるコンソールウィンドウに移動します。

/etc/default/console-setupファイルが私の選択に変更されているようです。

# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="guess"
FONTFACE="Terminus"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

優先フォントを使用するようにコンソールフォントを永続的に変更するにはどうすればよいですか?

14
Andy Fusniak

https://askubuntu.com/questions/630118/ および https://askubuntu.com/questions/328463/ を参照してください。

この問題は、console-setupが期待するフォントの名前と/usr/share/consolefonts/のフォントの名前が一致していないために発生するようです。そのため、使用するフォントを選択すると、/etc/console-setup/にコピーされます(dpkg-reconfigure console-setup)。

コンソールに移動してstrace /lib/udev/console-setup-tty fbconを実行すると、次のようなフォントを開こうとしていることがわかります。

/etc/console-setup/Lat15-TerminusBold11x22.psf

しかし、/etc/console-setup/を見ると、そこには少数のフォント(選択したフォント)しかなく、次のようになります。

/etc/console-setup/Lat15-TerminusBold22x11.psf.gz

1つは高さx幅、もう1つは幅x高さです。

この問題はいくつかの方法で修正できます。

(1)/lib/udev/console-setup-ttyを修正できる-これは、より永続的な上流のソリューションです。

(2)/etc/default/console-setupを手動で変更して、FONTSIZEの高さと幅を逆にすることができます。これは、dpkg-reconfigure console-setupを使用してフォントを変更するたびに行う必要があります。ただし、マシンが再起動しても、その設定は保持されます。

(3)console-setup-ttyが期待するフォントをインストールできます。これは私が「過剰」オプションと呼んでいるものです。私はそれをこのようにしました:

/etc/rc.local:

# install console fonts and then set up console
/etc/console-setup/fonts.sh install
/lib/udev/console-setup-tty fbcon

/etc/console-setup/fonts.shというスクリプトを作成します。

#!/bin/bash

action=$1

srcdir="/usr/share/consolefonts"
parent="/etc/console-setup"
subdir="fonts"

case "$1" in
    install)
        # console fonts are not named properly in Ubuntu 15.04, compensate
        [[ -d $parent/$subdir ]] || mkdir $parent/$subdir
        for x in $( cd $srcdir ; ls -1 ) ; do
           # rearrange the two numbers from HHxWW to WWxHH
           y=$(echo "$x" | sed -e 's/^\([^-]*\)-\([^0-9]*\)\([0-9]*\)x\([0-9]*\).psf.gz/\1-\2\4x\3.psf.gz/g')
           # whether the pattern above matches or not, we'll be uncompressing here
           z=${y/.psf.gz/.psf}
           [[ ! -f $parent/$subdir/$z ]] && zcat $srcdir/$x > $parent/$subdir/$z
           [[ ! -L $parent/$z ]] && ln -sv $subdir/$z $parent/$z
        done
        ;;
    uninstall)
        rm -rf $parent/$subdir
        # only remove broken links (links to the fonts we removed above)
        rm $(find -L $parent -type l)
        ;;
    *)
        echo "$(basename $0) install|uninstall"
        ;;
esac

exit 0

簡単で実用的な解決策として、別のフォントを選択した場合は再実行が必要になる可能性があるというコメントをファイルに含めて、#2を実行します(コメントも上書きされない場合)。

しかし、#3は最小限の手間または混乱でうまく機能します。

6
Alan Porter

最近、Ubuntu 15.04 64ビットボックスでこの問題が発生しました。 setupconコマンドは、フォントをdpkg-reconfigure console-setupで設定したフォントに設定しました。

Rc.localにsetupconを追加しましたが、フォントがまだ間違っているギャップが残っていました(コンソールのセットアップ後にrc.localが実行されるため)。これでは十分ではありませんでした。

だから、もっと深く行くことにしました。 /lib/systemd/system/console-setup.serviceファイルを編集し、ファイルの末尾にExecStart=/bin/setupconを追加しました。これは、コンソールのセットアップ時にsetupconを呼び出し、ブート時にフォントを修正しますなし時間のギャップ。

6
MeetTitan

私が見つけた最も簡単な解決策は、/etc/default/console-setupを編集して設定することでした

FONT="Lat7-Terminus32x16.psf.gz"

ACTIVE_CONSOLES行以外のすべてをコメント化します。

これはsetupconですぐに適用でき、再起動後にも適用されます。

個々のコンポーネントではなくフォント名を指定すると、Alan Porterによって記述された名前の不一致が回避されます。

2
David Faure