登録日: 2021-06-29 更新日: 2021-07-02
前回、「Xubuntu 20.04.2 LTS」に、ハードウェアの違いを仮想マシンにより吸収できる「VirtualBox」をインストール しました。
そのVirtualBox に「Arch Linux」をインストールしたところ、仮想コンソールで日本語が文字化けしました。 対策として「fbterm」を使う と文字化けせず、また、勝手に改行される現象も解消しました。
-
これなら、不安定だった「Arch Linux」のライブ立ち上げでのインストール作業も安定しそうです。ただし、「fbterm」はAUR アプリにつきライブ立ち上げの環境でインストールするのは難しそう。
ということで、公式リポジトリの「ターミナルエミュレータ」である「kmscon」を試してみました。
その備忘録です。
-
-
使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の古い「Intel Celeron 2955U 」です。
-
(注)リンクを戻るときはブラウザの左上の「←」をクリック
-
-
目次
-
「kmscon をライブ立ち上げのインストール作業で使ってみる:」
-
-
-
VirtualBox の「Arch Linux」の画面:
-
ライブ立ち上げ(2021.05.01 のiso イメージ)の画面:
→(tty1) と表示されていることに注目。
-
ライブ立ち上げ(2021.06.02 のiso イメージ)の画面:
→人気がなかったのか、遊び心はなくなりました。
-
ホストOS : Xubuntu 20.04.2 LTS ゲストOS : Arch Linux(2021.06.02 のiso イメージ) ←(今回の作業時のバージョン)
→ローリングリリースにつき、バージョン表記はありません。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -
-
現時点のバージョンを表示:
-
Arch Linux はローリングリリースにつき更新されて行くので、現時点のバージョンを表示:
2021-06-29 現在:
$ cat /etc/os-release NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://www.archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://bugs.archlinux.org/" LOGO=archlinux $ uname -r 5.12.12-arch1-1
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --
-
「Arch Linux」の仮想コンソールで気づいたこと(まとめ)
-
前回の作業 を参照:
-
- 仮想コンソールのデフォルトの端末の代わりに「fbterm」をインストールすると問題が改善しました。
重要なポイントは、仮想コンソールで勝手に改行が入る現象が解消したこと:
→一度ログインしてログアウトしたら、ここでも発生しています。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---
-
「kmscon」をインストール:
-
ライブ立ち上げのときに、公式リポジトリに登録されていない「fbterm」を使うのは難しいので、 公式リポジトリにある「ターミナルエミュレータ」の「kmscon」は使えるか、トライしました。
「ターミナルエミュレータ」とは言っても通常のアプリではなく、仮想コンソール(カーネル内蔵の linux コンソール)と置き換えて使うサービスのようです。
-
すでにデスクトップ環境(Openbox)をインストールしていたので、インストール作業等はデスクトップ環境で行い、確認はデスクトップ環境から抜けて仮想コンソールで行いました。
デスクトップ環境をインストールしていない場合でも、同じように作業できると思います。
-
参考:
-
→CJK フォントを含む、Unicode 文字を全て表示できます。
→全てのキーボードレイアウトを利用できます。
-
1). 必要なパッケージの確認:
- KMS もしくは、下記のどれかがあれば使えるようです:
fbdev (Linux fbdev ビデオバックエンド) drm2d (Linux DRM ソフトウェアレンダリングバックエンド) drm3d (Linux DRM ハードウェアレンダリングバックエンド)
-
$ pacman -Ss fbdev extra/xf86-video-fbdev 0.5.0-2 (xorg-drivers) X.org framebuffer video driver $ pacman -Ss drm : extra/libdrm 2.4.106-1 [インストール済み] Userspace interface to kernel DRM services extra/libva 2.11.0-1 [インストール済み] Video Acceleration (VA) API for Linux
-
2). インストールできるかの確認:
$ pacman -Ss kmscon community/kmscon 8-6 Terminal emulator based on Kernel Mode Setting (KMS)
-
3). インストール:
$ sudo pacman -S kmscon : パッケージ (2) libtsm-3-5 kmscon-8-6
-
4). 確認:
$ which kmscon /usr/bin/kmscon $ whereis kmscon kmscon: /usr/bin/kmscon /usr/lib/kmscon /usr/share/man/man1/kmscon.1.gz $ kmscon --version Unknown argument: --version [0000.000000] ERROR: cannot load configuration: -14 [0000.000245] ERROR: cannot initialize kmscon, errno -14: Bad address $ pacman -Ss kmscon community/kmscon 8-6 [インストール済み] Terminal emulator based on Kernel Mode Setting (KMS)
→バージョン表示は未サポートなので、pacman で確認。
-
5). 仮想コンソール画面にします:
デスクトップ環境をすでに入れていて、ウィンドウマネージャがSlim の場合の操作:
-
デスクトップのログイン画面にて、
ユーザー名に「exit」Enter
→仮想コンソール画面に戻りました。
-
ユーザでログインして、
$ kmscon --help
→指定できるオプションが多く、多機能です。
-
6). コマンドとしては起動できませんでした:
$ kmscon
→画面真っ暗、何も表示されません。 通常の端末アプリとは違います。
-
VirtualBox ウィンドウのメニューから、仮想マシン→リセット
→仮想マシンが再起動。
-
7). 設定:
- インストール作業のはじめには「nano」はないので、練習も兼ねて「vi」を使用。
-
(1). root で kmscon コンソールにログインしたいので、pam_securetty モジュールを無効にします:
$ sudo vi /etc/pam.d/login
↓ 下記の行をコメント化
#auth required pam_securetty.so
→root で kmscon コンソールにログインするには、pam_securetty モジュールを無効にします。
-
vi 操作:
目的の行の先頭にカーソルを持っていき、
「i」「#」「Esc」「:」「wq」Enter キー
→修正、保存、終了となります。
-
確認:
ここで、cat は使うべきではありません。nano を使うか、確認しないか、です。
$ cat /etc/pam.d/login #%PAM-1.0 #auth required pam_securetty.so auth requisite pam_nologin.so auth include system-local-login account include system-local-login session include system-local-login password include system-local-login
-
(2). 日本語キーボードにつき、/etc/kmscon/kmscon.conf にレイアウトを設定:
ここで、cat は使うべきではありません。nano を使うか、確認しないか、です。
-
確認:
$ @@@@ ←(Enter は入力せず。入力できるかの確認のみ) $ cat /etc/kmscon/kmscon.conf cat: /etc/kmscon/kmscon.conf: そのようなファイルやディレクトリはありません
→切り替えのコマンドを打っても再起動しないとgetty の設定が有効で日本語配列だろうと思います。 再起動にてkmscon に切り替わると、英語配列になります。
-
フォルダを作成:
$ sudo mkdir /etc/kmscon
-
vi 操作:
$ sudo vi /etc/kmscon/kmscon.conf
行の先頭で、「i」として下記を入力:
xkb-layout=jp
「Esc」「:」「wq」Enter キー
→保存、終了となります。
-
確認:
ここで、cat は使うべきではありません。nano を使うか、確認しないか、です。
$ cat /etc/kmscon/kmscon.conf xkb-layout=jp
→再起動にて反映されます。
-
8). 仮想コンソールの「tty1」で kmscon を使うとき(今回):
$ sudo systemctl disable getty@tty1.service $ sudo systemctl enable kmsconvt@tty1.service
-
参考: 全ての仮想コンソールで kmscon を有効にするとき:
# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service
→systemd がそれぞれの VT で「agetty」の代わりに「kmscon」を起動するようになります。 何らかの理由で kmscon が実行できないときは、代わりに getty@.service が起動されます。
-
9). 参考: 日本語フォントがインストールされていない場合:
→デスクトップをインストールしているからか、以下の作業は不要でした。
-
(1). 公式リポジトリの「ttf-dejavu」と「otf-ipafont」をインストール
$ pacman -Ss ttf-dejavu extra/ttf-dejavu 2.37+18+g9b5d1b2f-3 [インストール済み] Font family based on the Bitstream Vera Fonts with a wider range of characters
-
$ pacman -Ss otf-ipafont community/otf-ipafont 003.03-8 (ipa-fonts) Japanese outline fonts by Information-technology Promotion Agency, Japan (IPA)
→インストールなし
-
(2). CJK 文字のレンダリングのために、適切な CJK フォントにマップするよう fontconfig を設定:
→デスクトップをインストールしているからか、以下の作業は不要でした。
$ ls /etc/fonts/conf.d/ $ sudo nano /etc/fonts/conf.d/99-kmscon.conf
↓ 下記を記述:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="family"><string>monospace</string></test> <edit name="family" mode="prepend" binding="strong"> <string>DejaVu Sans Mono</string> <string>IPAGothic</string> </edit> </match> </fontconfig>
-
10). 参考: Xorg と kmscon の切り替えに問題が発生する場合:
ExecStart に --hwaccel --drm を追加するとよいみたい:
ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt --font-name Terminus --font-size 12 --hwaccel --drm
→詳しいことは未確認。systemctl の設定ファイルのパラメータみたい。
-
11). 設定を反映させるために再起動
-
12). ログイン画面でユーザ名に「exit」Enter
-
「Slim」の隠し機能?を使いました:
参考:
-
- ユーザー名にコマンドが入力できます:
reboot : 再起動 halt : シャットダウン exit : slim を終了して bash に戻る console : xterm を起動(/etc/slim.conf で端末アプリを変更可能)
-
13). ユーザでログインして、確認:
→このアプリ用に特定のフォントは入れておらず、その設定もしていませんが、日本語表示できました。
「fbterm」の日本語表示に比べると、めちゃくちゃきれいです。ユーザでログインすると、カラー表示されます。root でのログインだとモノクロでした。
文字の表示がきれいなので、ライブ立ち上げで使えなくても、入れておく価値はありそう。
一番のポイントは、余計な改行が入力されないので、安心して cat が使えることです。
そして、Shift+PageUP、Shift+PageDown で画面のスクロールが可能です。
カーソル形状が縦長に変わっていることに注目
→Noto が使われているときは縦長になるみたい。
$ fc-match
-
サービスの状態表示:
getty 側:
$ systemctl status getty@tty1 ○ getty@tty1.service - Getty on tty1 Loaded: loaded (/usr/lib/systemd/system/getty@.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:agetty(8) man:systemd-getty-generator(8) http://0pointer.de/blog/projects/serial-console.html
→「○」は白色の表示です。
kmscon 側:
[ubn@ubn-box ~]$ systemctl status kmsconvt@tty1 ● kmsconvt@tty1.service - KMS System Console on tty1 Loaded: loaded (/usr/lib/systemd/system/kmsconvt@.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-06-28 17:23:07 JST; 19min ago Docs: man:kmscon(1) Main PID: 276 (kmscon) Tasks: 1 (limit: 3495) Memory: 23.5M CPU: 946ms CGroup: /system.slice/system-kmsconvt.slice/kmsconvt@tty1.service └─276 /usr/bin/kmscon --vt=tty1 --seats=seat0 --no-switchvt 6月 28 17:23:07 ubn-box systemd[1]: Started KMS System Console on tty1. 6月 28 17:23:07 ubn-box kmscon[276]: [0000.000000] NOTICE: kmscon Revision kmscon-8 Jul 7 2020 14:00:10 6月 28 17:23:07 ubn-box kmscon[276]: [0000.229767] NOTICE: vt: using tty /dev/tty1 6月 28 17:23:34 ubn-box login[333]: pam_unix(login:session): session opened for user root(uid=0) by (uid> 6月 28 17:23:35 ubn-box login[333]: pam_env(login:session): deprecated reading of user environment enabl> 6月 28 17:23:35 ubn-box login[333]: ROOT LOGIN ON pts/0
→END が表示されていたら「q」で表示終了。「●」は緑色の表示です。 kmscon にうまく切り替わったら、縦長のカーソルになります。日本語フォントはとてもきれい。
-
参考: デスクトップの「xfce4-terminal」で表示させたとき:
$ tty /dev/pts/1 $ who root pts/0 2021-06-28 17:23 $ w 17:49:05 up 26 min, 1 user, load average: 2.18, 2.27, 1.77 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 17:23 25:29 0.01s 0.01s -bash
-
仮想コンソールでユーザでログインして「kmscon」で表示させたとき:
$ tty /dev/pts/0 $ script $ who ubn pts/0 2021-06-28 17:54 $ w 17:57:00 up 33 min, 1 user, load average: 0.06, 1.13, 1.52 USER TTY LOGIN@ IDLE JCPU PCPU WHAT ubn pts/0 17:54 3.00s 0.02s 0.00s script $ tty /dev/pts/1 $ exit exit Script done on 2021-06-28 17:57:48+09:00 [COMMAND_EXIT_CODE="0"]
→ls の表示はカラーです。
-
14). root でログインして、確認:
$ exit
root でログイン
# tty /dev/pts/0 # script Script started on 2021-06-28 18:00:29+09:00 [TERM="xterm-256color" TTY="/dev/pts/0" COLUMNS="239" LINES="41"] # tty /dev/pts/1 # who root pts/0 2021-06-28 18:00 # w 18:00:46 up 37 min, 1 user, load average: 0.00, 0.52, 1.18 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 18:00 4.00s 0.01s 0.00s script # pwd /root # ls arch_linux_install.log arch_linux_install2.log test.log typescript ダウンロード テンプレート デスクトップ ドキュメント ビデオ 音楽 画像 公開 # exit exit Script done on 2021-06-28 18:01:21+09:00 [COMMAND_EXIT_CODE="0"]
→ls の表示はモノクロです。
-
15). ライブ立ち上げで問題となりそうなところ
→反映(サービスの切り替え)に再起動が必要なので、再起動すると初期化されるライブ立ち上げでは難しそう。
-
「getty@tty1.service」を停止して、「kmsconvt@tty1.service」を起動、させたとき、
自分自身である「getty@tty1.service」は停止できないか、 「getty@tty1.service」を停止してすぐにシステムコンソールが使えなくなるかもしれません。
-
ライブ立ち上げして、試してみるしかなさそう。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----
-
「kmscon」をライブ立ち上げのインストール作業で使ってみる:
-
1). 最新のiso をダウンロード:
07-02 02:00 頃にダウンロードできれば、更新がもっとも少ないのですが、待てませんでした。
-
[archlinux-2021.06.01-x86_64.iso 2021-06-02 01:51 774M] (http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/iso/latest/archlinux-2021.06.01-x86_64.iso)
$ cd ~/ダウンロード/ $ sha1sum archlinux-2021.06.01-x86_64.iso 6c41a22fb3c5eabfb7872970a9b5653ec47c3ad5 archlinux-2021.06.01-x86_64.iso
これをVirtualBox の仮想マシンにマウント
-
2). ライブ立ち上げ:
-
# uname -r 5.12.8-arch1-1
-
3). インストール:
-
(1). 確認:
# pacman -Ss kmscon : warning: database file for 'core' does not exist (use '-Sy' to download) warning: database file for 'extra' does not exist (use '-Sy' to download) warning: database file for 'community' does not exist (use '-Sy' to download)
-
(2). データベースの同期:
# pacman -Sy :: Synchronizing package databases... core extra community
-
(3). 確認:
# pacman -Ss kmscon community/kmscon 8-6 Terminal emulator based on Kernel Mode Setting (KMS)
→リポジトリが使えるようになりました。
-
(4). インストール:
# pacman -S kmscon
-
: error: Partition / too full: 138177 blcks needed, 50500 blocks free error: not enough free disk space
→インストールされるパッケージが33個もあり、 ディスクの空きが足りずインストールが中断されます。インストールできませんでした。
-
(5). ライブ立ち上げでの「kmscon」のインストールはディスクの空きが足りません。
ライブの空きを増やすスキルがないので、断念。
-
-
4). 「kmscon」を使うとしたら、
まずは、「Arch Linux」のインストールは必要最小限の設定を行います。
再起動して、システムが立ち上がってから、 「kmscon」をインストールして、コンソールを切り替えるのが良さそうです。
これなら安心して、その後のcat 等で確認できます。
-
-
まとめ
「Arch Linux」のコンソール(端末)は安定していません。なぜか、cat やless 、more などのコマンドを使うとハングしやすいです(改行が入りっぱなしでキーを受け付けなくなります)。確認作業にcat は極力使わないようにして、さっさと設定を終わらせるのがコツみたい。
もしかしたら「kmscon」で安定するかもと思いましたが、インストール作業では使えませんでした。
インストールが完了した後の設定作業で使うことになりそうです。 どちらにしても、デスクトップ環境をインストールしたら不要な作業です。
-
-
-
-
-
目次
-
-
- 目次
- VirtualBox の「Arch Linux」の画面:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -
- 現時点のバージョンを表示:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --
- 「Arch Linux」の仮想コンソールで気づいたこと(まとめ)
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---
- 「kmscon」をインストール:
- 1). 必要なパッケージの確認:
- 2). インストールできるかの確認:
- 3). インストール:
- 4). 確認:
- 5). 仮想コンソール画面にします:
- 6). コマンドとしては起動できませんでした:
- 7). 設定:
- 8). 仮想コンソールの「tty1」で kmscon を使うとき(今回):
- 9). 参考: 日本語フォントがインストールされていない場合:
- 10). 参考: Xorg と kmscon の切り替えに問題が発生する場合:
- 11). 設定を反映させるために再起動
- 12). ログイン画面でユーザ名に「exit」Enter
- 13). ユーザでログインして、確認:
- 14). root でログインして、確認:
- 15). ライブ立ち上げで問題となりそうなところ
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----
- 「kmscon」をライブ立ち上げのインストール作業で使ってみる:
- まとめ
- -
-
-
-