KMSCON

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

プロジェクトの GitHub ページより:

Kmscon は linux のカーネルモード設定 (KMS) を使ったシンプルなターミナルエミュレータです。カーネルの VT 実装をユーザスペースのコンソールで置き換えようという試みです。

機能

Kmscon はカーネル内蔵の linux コンソールの互換品として機能します。以下の機能が存在します:

  • vt220 から vt510 までの完全な実装。
  • 国際化の完全サポート:
    • Kmscon は CJK を含む、Unicode 文字を全て表示できます。
    • Kmscon は libxkbcommon を使って国際化キーボードを扱えるため、X キーボードでサポートされている全てのキーボードレイアウトを利用することが可能です。
  • ハードウェアアクセラレーションを使ったレンダリング。
  • Multi-seat 可能。
ノート: root で kmscon コンソールにログインするには、pam_securetty モジュールを無効にする必要があります。/etc/pam.d/login 内の適切な行を削除・コメントアウトしてください。

インストール

その名前にかかわらず、KMS は kmscon に絶対必要というわけではありません。Kmscon は次のビデオバックエンドをサポートしています: fbdev (Linux fbdev ビデオバックエンド), drm2d (Linux DRM ソフトウェアレンダリングバックエンド), drm3d (Linux DRM ハードウェアレンダリングバックエンド)。あなたの環境でこの中のどれかひとつでも利用できるようにしてください。

kmsconAUR もしくは開発版の kmscon-gitAUR をインストールしてください。あるいは kmscon-patched-gitAUR をインストールすることもできます。このパッチされたバージョンには依存パッケージの libtsm-patched-gitAUR と合わせて複数の修正や改善kmscon 9.0.0が含まれています。

TTY1 で kmscon を使えるようにするには、以下を実行してください:

# systemctl disable getty@tty1.service
# systemctl enable kmsconvt@tty1.service

全ての仮想端末で kmscon を有効にする場合は、root で、以下を実行してください:

# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service

これで systemd がそれぞれの VT で agetty の代わりに kmscon を起動するようになります。より正確に言うと、このコマンドは systemd-logind が新しい VT で getty@.service の代わりに kmsconvt@.service を使うようにさせます。getty@.service を使っている他のユニットやスクリプトにはこの変更が適用されません。

何らかの理由で kmscon が実行できないときは、代わりに getty@.service が起動されます。そのため問題が生じても動作を継続するためのフォールバックが常に存在します。さらに、VT が利用できない場合、このユニットは何も起動しません。

警告: すべてのターミナルで agetty 置き換えた場合は、マシンを再起動する前に kmscon からプロンプトが表示されることを確認してください。そうでない場合は、ライブ CD からリカバリする必要があります。

CJK サポート

Kmscon はデフォルトのフォントエンジン pango を通して CJK 文字のレンダリングをサポートしています。ただし、モノスペースフォントのエイリアスを適切な CJK フォントにマップするよう fontconfig を設定する必要があります。日本語ユーザーは、以下のテンプレートで日本語を表示できます:

/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>

ttf-dejavuotf-ipafont をインストールしてください。両方とも公式リポジトリに含まれています。

トラブルシューティング

Xorg と kmscon の切り替えに問題が発生する

Xorg と kmscon の切り替えに問題が発生する場合は ExecStart に --hwaccel --drm を追加するとよいかもしれません。

 ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt --font-name Terminus --font-size 12 --hwaccel --drm

音声を制御できない

バージョン 7 で、オーディオをコントロールできない場合、ユーザーを audio グループに追加してください。ただしグループに追加すると問題が発生します。

Vim で端末の出力が消去されない

Vim を開いたときに端末の出力が消えない場合があります。ファイルの編集は可能ですがテキストが変更するまで表示されません。回避策として、TERM=vt220 環境変数を設定してみてください。もしくは、viNeovim などの vi ライクなテキストエディタを使ってください。

ノート: TERMvt220 に設定した場合、カラーのサポートが利用できません。

自動ログイン

これを /etc/kmscon/kmscon.conf に追加することで、パスワードを要求せずにユーザーを自動的にログインさせることができます。

 # Modify this command to do what you need
 
 # Example: Login an user asking for user and password
 login=/bin/bash --login
 
 # Example: Login an user without asking for password
 login=/bin/bash -c su <your_username>

HiDPI のサポート

Ctrl++Ctrl+Shift+=Ctrl+- のショートカットを使用して、その場でフォントサイズを変更できます。また、/etc/kmscon/kmscon.conf で 'font-dpi' と 'font-size' を設定することもできます。たとえば、'font-dpi=288' 288 は 96 * 3、つまり 300% のスケーリングです。96 がデフォルトです。