ログインしていません。

アナウンス

連絡: このフォーラムは利用が少なく、主としてスパムの投稿が多いため、閉鎖いたしました。今後は閲覧のみ可能で、新しい投稿はできなくなります。Arch Linuxに関する日本語のコミュニケーションにはSlackコミュニティをご利用ください。

#1 2020-07-19 22:40:13

mjachkie
メンバー
登録日: 2020-01-27
投稿: 25

【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

Wikiの記事通りトラブルシューティング以外の節の内容をしたのですがキー配列がjp106じゃなくなり、どうあがいても変更できないのではないかと考え元のコンソールに戻そうとしたのですがtty1でコンソールが読み込まれなくなりました
なんとかtty2などに変更すればログインはできるようですがtty1だけはログインができないままです
このままでは気持ちが悪いのでKMSCONをインストールしようとする前の状態に戻したいです

以下、wheelユーザで行った操作をhistoryで表示したもの(の抜粋)です

sudo -i pacman -S kmscon
ls
whereis gettext.sh
man gettext.sh
pacman -Q pango
sudo -i vim /etc/fonts/conf.d/99-kmscon.conf
pacman -Qs font
pacman -Qs font|less
sudo -i pacman -S tty-dejavu
sudo -i vim /etc/fonts/conf.d/99-kmscon.conf
kmscon --help
kmscon
...
sudo -i rm /etc/systemd/system/getty.target.wants/getty@tty1.service
sudo -i systemctl enable kmsconvt@tty1.service
...
exit
...
sudo -i ln -s /usr/lib/systemd/system/kmsconvt@.service /etc/systemd/system/autovt\@.service
...
exit
type jp106
...
sudo -i vim /etc/vconsole.conf
...
shutdown -h now
...
sudo -i rm /etc/systemd/system/getty.target.wants/kmsconvt@tty1.service
sudo -i ln -s /usr/lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty.service
shutdown -r now
...
sudo -i pacman -R kmscon

Alt+Ctrl+F1を押すと、このようなメッセージが出たままです。

Starting version 245.6-8-arch
/dev/sda2: clean, (略) files, (略) blocks

なお、グラフィカルなログイン画面はインストールないし設定していません
仮想コンソールから行います

他にもrootユーザでいろいろと行いました
現在このような状況です

$ ls /etc/systemd/system/*
/etc/systemd/system/getty.target.wants:
getty@tty.service  getty@tty1.service

/etc/systemd/system/getty@tty1.service.d:
noclear.conf

/etc/systemd/system/multi-user.target.wants:
remote-fs.target
$ file /etc/systemd/system/getty.target.wants/*
/etc/systemd/system/getty.target.wants/getty@tty.service:  symbolic link to /usr/lib/systemd/system/getty@.service
/etc/systemd/system/getty.target.wants/getty@tty1.service: empty
$ cat /etc/systemd/system/getty@tty1.service.d/noclear.conf 
[Service]
TTYVTDisallocate=no
$ file /etc/systemd/system/multi-user.target.wants/remote-fs.target 
/etc/systemd/system/multi-user.target.wants/remote-fs.target: symbolic link to /usr/lib/systemd/system/remote-fs.target

追記(2020年7月20日午前8時51分)

$ systemctl --failed
  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
$ journalctl -fp err
-- Logs begin at Tue 2020-01-28 00:52:19 JST. --
Jul 20 08:48:58 ljmljat agetty[2838]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:08 ljmljat agetty[2839]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:18 ljmljat agetty[2842]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:28 ljmljat agetty[2852]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:38 ljmljat agetty[2867]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:48 ljmljat agetty[2879]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:49:59 ljmljat agetty[2889]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:50:09 ljmljat agetty[2895]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:50:19 ljmljat agetty[2898]: /dev/tty: cannot open as standard input: No such device or address
Jul 20 08:50:29 ljmljat agetty[2902]: /dev/tty: cannot open as standard input: No such device or address
^C

編集者 mjachkie (2020-09-02 13:48:17)


this is a signature.

オフライン

#2 2020-07-20 10:21:12

ny-a
メンバー
登録日: 2020-04-16
投稿: 19

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

KMSCON は使っていないので検討外れの回答だと申し訳ないですが、手元の標準インストール(に近いであろう)環境では、 getty@tty.service はありませんでした。こちら不要そうであれば無効化してみたらいかがでしょうか。
エラーについても tty1 ではなくこちらの tty のもので出ているように見えます。

オフライン

#3 2020-07-21 12:47:24

mjachkie
メンバー
登録日: 2020-01-27
投稿: 25

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

助言ありがとうございます
rootアカウントでログインし、

# systemctl disable getty@tty.service
# reboot

を愚直に実行しました
状況は変わっていません

で、エラーログがどんな状況なのかを次のように調べてみました。

$ systemctl --failed
  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
$ journalctl -fp err
-- Logs begin at Tue 2020-01-28 00:52:19 JST. --
Jul 21 12:36:42 ljmljat agetty[536]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:36:52 ljmljat agetty[575]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:02 ljmljat agetty[578]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:12 ljmljat agetty[601]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:22 ljmljat agetty[603]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:32 ljmljat agetty[604]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:42 ljmljat agetty[605]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:37:52 ljmljat agetty[606]: /dev/tty: cannot open as standard input: No such device or address
Jul 21 12:38:02 ljmljat agetty[640]: /dev/tty: cannot open as standard input: No such device or address
-- Reboot --
Jul 21 12:38:30 ljmljat kernel: i2400m_usb 1-1.6:1.0: WiMAX interface wmx0 (50:2d:a2:05:0b:94) ready
^C

とりあえず/dev/ttyによるエラー「は」無くせたようです
他にどんな操作が必要でしょうか


this is a signature.

オフライン

#4 2020-08-05 22:40:54

tomonori_suga
メンバー
登録日: 2020-05-01
投稿: 13

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

gettyのsystemdテンプレートユニットは、/usr/lib/systemd/system/getty@.serviceで。それのDefaultInstanceはtty1であるから、systemctlを用いて有効化するには、以下のように@のあとに『tty+数字』をつけて指示するか、テンプレートユニットを渡すとtty1のインスタンスが/etc/systemd/system/以下のどこかにつくられるよ。※『tty+数字』のinstance identifierじゃないと、多分agettyプロセスが仮想端末を作ろうとしない。

# systemctl enable getty@tty1.service
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.
# systemctl disable getty@tty1.service
Removed /etc/systemd/system/getty.target.wants/getty@tty1.service.
#
# systemctl enable getty@.service
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.
# systemctl disable getty@.service
Removed /etc/systemd/system/getty.target.wants/getty@tty1.service

それに、DefaultInstanceとしてつくられるsymlinkと同じ名前の、ファイルがあると有効化されない。

mjackie さんの発言:

$ file /etc/systemd/system/getty.target.wants/*

/etc/systemd/system/getty.target.wants/getty@tty1.service: empty

関連パッケージのバージョンと、そのファイル:
systemd 245.7-1 gettyのテンプレートユニットである普通ファイル。
/usr/lib/systemd/system/getty@.service

util-linux 2.36-1 gettyの標準プロセス
/bin/agetty

編集者 tomonori_suga (2020-08-06 17:52:17)


I like perl5.  I haven't do  any kind of low-level programming.

オフライン

#5 2020-08-16 09:10:00

mjachkie
メンバー
登録日: 2020-01-27
投稿: 25

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

助言ありがとうございます。
以下4コマンドを順に実行を行いました。

tomonori_suga さんの発言:
# systemctl enable getty@tty1.service
# systemctl disable getty@tty1.service
#
# systemctl enable getty@.service
# systemctl disable getty@.service

その結果私の環境では次のように出力がされました。

$ sudo -i systemctl enable getty@tty1.service
Failed to enable unit: File /etc/systemd/system/getty.target.wants/getty@tty1.service already exists.
$ sudo -i systemctl disable getty@tty1.service
$ sudo -i systemctl enable getty@.service 
Failed to enable unit: File /etc/systemd/system/getty.target.wants/getty@tty1.service already exists.
$ sudo -i systemctl disable getty@.service
$

現在次のような状態になっています。

$ ls /etc/systemd/system/*
/etc/systemd/system/getty.target.wants:
getty@tty1.service

/etc/systemd/system/getty@tty1.service.d:
noclear.conf

/etc/systemd/system/multi-user.target.wants:
chronyd.service  remote-fs.target
$ for d in /etc/systemd/system/*; do eval file "${d}/*"; done
/etc/systemd/system/getty.target.wants/getty@tty1.service: empty
/etc/systemd/system/getty@tty1.service.d/noclear.conf: ASCII text
/etc/systemd/system/multi-user.target.wants/chronyd.service:  symbolic link to /usr/lib/systemd/system/chronyd.service
/etc/systemd/system/multi-user.target.wants/remote-fs.target: symbolic link to /usr/lib/systemd/system/remote-fs.target
$ cat /etc/systemd/system/getty@tty1.service.d/noclear.conf 
[Service]
TTYVTDisallocate=no
$ 

この後再起動をして確かめます。

(2020年8月21日追記)だめでした

編集者 mjachkie (2020-08-21 12:57:10)


this is a signature.

オフライン

#6 2020-08-16 20:28:38

tomonori_suga
メンバー
登録日: 2020-05-01
投稿: 13

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

上のcodeブロックで、enable した後にdisableしたのは比較するため、有効と無効を繰り返しただけでしたごめんなさい。Gettyを起動するならdisable(無効にする)しないでね。enable(有効にする)してください。

Failed to enable ... already existsと書いてあるように、空(empty)のユニットファイルがあると一向に有効化されないと思う。(多分systemctl edit --full getty@tty1.serviceと何処かでしたんじゃないかな。それかエディタで直接つくったとか。)
この事はmanページのsystemd.unit(5)始め、DESCRIPTION節の19段落目に情報が載ってたんで。(空のファイルをつくると、そのユニットは作動しないとかなんとか)
systemd.unit (5)より引用

If a unit file is empty (i.e. has the file size 0) or is symlinked to /dev/null, its
       configuration will not be loaded and it appears with a load state of "masked", and
       cannot be activated. Use this as an effective way to fully disable a unit, making it
       impossible to start it even manually.

mjachkie さんの発言:

...
/etc/systemd/system/getty.target.wants/getty@tty1.service: empty
...


I like perl5.  I haven't do  any kind of low-level programming.

オフライン

#7 2020-08-20 11:34:09

kusanaginoturugi
モデレータ
登録日: 2015-12-04
投稿: 43

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

この質問を見て、KMSCONに興味を持ったので、同じようにwikiに従って、KMSCONをインストールして使ってみました。
おお、コンソールで漢字が表示されてるかっけえと思ったのですがKMSCONからxが起動できず、じゃあ、元に戻すかと思ったら、mjachkie さんと同じようにtty1からログインできなくなって焦りました。

この↓書き方がアカンですよね。

# rm /etc/systemd/system/getty.target.wants/getty@tty1.service

削除しちゃいかんだろうと。
こんなこともあろうかと、バックアップを取っていた私はラッキーでした。
サービスを停止して、ファイルをリネームしたらtty1でログインできるようになりました。

wikiの方も安全側に書きなおした方がいいですよね(英語版も含めて)

追記
英語版の方は、そもそも systemctl disable getty@tty1.service となっていました。
日本語版の翻訳が更新されていないのが問題でした。
該当箇所のみ修正しましたが、他にも古い記述があるかもしれません。

編集者 kusanaginoturugi (2020-08-20 11:42:04)

オフライン

#8 2020-08-21 12:58:01

mjachkie
メンバー
登録日: 2020-01-27
投稿: 25

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

tomonori_suga さんの発言:

上のcodeブロックで、enable した後にdisableしたのは比較するため、有効と無効を繰り返しただけでしたごめんなさい。Gettyを起動するならdisable(無効にする)しないでね。enable(有効にする)してください。

助言ありがとうございます
すなわちこういうことですか?

# systemctl enable getty@tty1.service getty@.service
Failed to enable unit: File /etc/systemd/system/getty.target.wants/getty@tty1.service already exists.
#

this is a signature.

オフライン

#9 2020-08-21 22:17:10

tomonori_suga
メンバー
登録日: 2020-05-01
投稿: 13

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

要はこうすることかな。

# rm /etc/systemd/system/getty.target.wants/getty@tty1.service
# systemctl enable getty@tty1.service
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.

I like perl5.  I haven't do  any kind of low-level programming.

オフライン

#10 2020-08-23 20:06:05

tomonori_suga
メンバー
登録日: 2020-05-01
投稿: 13

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

少なくとも僕の環境では、これとの違いはないですし、それがそこまでmjachkieさんの環境でのgettyの起動に関わってるとも思えないなぁ。

# rm /etc/systemd/system/getty.target.wants/getty@tty1.service

それに、KMSCONのwikiページをよくするのは、あまりそれを知らないので難しいな。


I like perl5.  I haven't do  any kind of low-level programming.

オフライン

#11 2020-09-02 13:47:57

mjachkie
メンバー
登録日: 2020-01-27
投稿: 25

Re: 【解決済み】KMSCONにした→元の仮想コンソールに戻そうとした→tty1以外ならログインできる→でもtty1からはできなくなった

tomonori_suga さんの発言:

要はこうすることかな。

# rm /etc/systemd/system/getty.target.wants/getty@tty1.service
# systemctl enable getty@tty1.service
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.

助言ありがとうございます
その2つのコマンドの実行によりtty1でも端末が起動するようになりました


this is a signature.

オフライン

Board footer