Friendship mini210s ARMシングルボードコンピュータ用のDebian Wheezyイメージの作成中にこの問題が発生しました。
sudo screen /dev/cu.usbserial 115200
シリアルポートと現在の出力を介して端末を開きました。
[ 3.398751] apple 0003:05AC:0220.0003: input: USB HID v1.11 Device [Apple, Inc Apple Keyboard] on usb-s5p-ehci-1.4.2/input1
INIT: version 2.88 booting
INIT: Entering runlevel: 2
INIT: Id "X1" respawning too fast: disabled for 5 minutes
Debian GNU/Linux 7 FriendlyARM ttySAC0
FriendlyARM login: root <======= entered root and hit return
Unable to determine your tty name. <===== THE ISSUE
Debian GNU/Linux 7 FriendlyARM ttySAC0
FriendlyARM login:
INIT: Id "6" respawning too fast: disabled for 5 minutes
INIT: Id "5" respawning too fast: disabled for 5 minutes
INIT: Id "4" respawning too fast: disabled for 5 minutes
INIT: Id "3" respawning too fast: disabled for 5 minutes
INIT: Id "2" respawning too fast: disabled for 5 minutes
INIT: Id "X1" respawning too fast: disabled for 5 minutes
INIT: Id "5" respawning too fast: disabled for 5 minutes
INIT: Id "2" respawning too fast: disabled for 5 minutes
INIT: Id "6" respawning too fast: disabled for 5 minutes
INIT: Id "4" respawning too fast: disabled for 5 minutes
INIT: Id "3" respawning too fast: disabled for 5 minutes
タッチスクリーンに次のメッセージがあります。
「ログイン: PAM 失敗、中断中: 致命的なエラー - すぐに中断中」
誰かがこれが何であるかを解読するのに役立ちますか?
私はどうやって私を作りましたかrootfs
sudo debootstrap --arch=armel --foreign wheezy rootfs/ http://ftp.us.debian.org/debian
echo "proc /proc proc none 0 0" >> rootfs/etc/fstab
echo "mini210s-anybots"
echo "mini210s-anybots" > rootfs/etc/hostname
mkdir -p rootfs/usr/share/man/man1/
mknod rootfs/dev/console c 5 1
mknod rootfs/dev/tty1 c 4 1
mknod dev/ttySAC0 c 204 64 <==== the serial port
その後、画像を作成してyaffs2utils
FriendlyARMから起動しました(ここでプロセスを説明するのに少し長くなります)。
inittab
次の行を含む実行中のDebian Squeezeイメージから以下をコピーしました。
T1:2345:respawn:/sbin/getty 115200 ttySAC0 <=== terminal on serial port RS232
X1:2345:respawn:/bin/login -f root tty1 </dev/tty1 >/dev/tty1 2>&1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
いくつかのステップを逃したようです。
追加された欠落デバイスの更新
明らかにいくつかのデバイスを設定する必要があります。私のインスピレーションは以下から来ていますこの投稿
mknod -m 0600 ./rootfs/dev/console c 5 1
mknod -m 0660 ./rootfs/dev/full c 1 7
mknod -m 0640 ./rootfs/dev/kmem c 1 2
mknod -m 0660 ./rootfs/dev/loop0 b 7 0
mknod -m 0640 ./rootfs/dev/mem c 1 1
mknod -m 0666 ./rootfs/dev/null c 1 3
mknod -m 0640 ./rootfs/dev/port c 1 4
mknod -m 0666 ./rootfs/dev/random c 1 8
mknod -m 0660 ./rootfs/dev/tty c 5 0
mknod -m 0666 ./rootfs/dev/urandom c 1 9
mknod -m 0666 ./rootfs/dev/zero c 1 5
mknod -m 0660 ./rootfs/dev/tty0 c 5 0
mknod -m 0660 ./rootfs/dev/tty1 c 5 1
mknod -m 0660 ./rootfs/dev/tty2 c 5 2
mknod -m 0660 ./rootfs/dev/tty3 c 5 3
mknod -m 0660 ./rootfs/dev/tty4 c 5 4
mknod -m 0660 ./rootfs/dev/tty5 c 5 5
...しかし、まだ問題があります。
それでは、次を追加してください。
mknod -m 0660 ./rootfs/dev/ram0 b 1 0
mknod -m 0660 ./rootfs/dev/ram1 b 1 1
mknod -m 0660 ./rootfs/dev/ram2 b 1 2
mknod -m 0660 ./rootfs/dev/ram3 b 1 3
mknod -m 0660 ./rootfs/dev/ram4 b 1 4
mknod -m 0660 ./rootfs/dev/ram5 b 1 5
mknod -m 0660 ./rootfs/dev/ram6 b 1 6
mknod -m 0660 ./rootfs/dev/ram7 b 1 7
mknod -m 0660 ./rootfs/dev/ram8 b 1 8
mknod -m 0660 ./rootfs/dev/ram9 b 1 9
mknod -m 0660 ./rootfs/dev/ram10 b 1 10
mknod -m 0660 ./rootfs/dev/ram11 b 1 11
mknod -m 0660 ./rootfs/dev/ram12 b 1 12
mknod -m 0660 ./rootfs/dev/ram13 b 1 13
mknod -m 0660 ./rootfs/dev/ram14 b 1 14
mknod -m 0660 ./rootfs/dev/ram15 b 1 15
私の新しいrootfs/dev
root@ubuntu:/home/joel/debian-mini210s/rootfs/dev# ls -al
total 8
drwxr-xr-x 2 root root 4096 Jan 19 17:27 .
drwxr-xr-x 19 root root 4096 Jun 22 2012 ..
crw-r--r-- 1 root root 5, 1 Jan 19 14:07 console
crw-rw---- 1 root root 1, 7 Jan 19 17:05 full
crw-r----- 1 root root 1, 2 Jan 19 17:05 kmem
brw-rw---- 1 root root 7, 0 Jan 19 17:05 loop0
crw-r----- 1 root root 1, 1 Jan 19 17:05 mem
crw-rw-rw- 1 root root 1, 3 Jan 19 17:05 null
crw-r----- 1 root root 1, 4 Jan 19 17:05 port
brw-rw---- 1 root root 1, 0 Jan 19 17:27 ram0
brw-rw---- 1 root root 1, 1 Jan 19 17:27 ram1
brw-rw---- 1 root root 1, 10 Jan 19 17:27 ram10
brw-rw---- 1 root root 1, 11 Jan 19 17:27 ram11
brw-rw---- 1 root root 1, 12 Jan 19 17:27 ram12
brw-rw---- 1 root root 1, 13 Jan 19 17:27 ram13
brw-rw---- 1 root root 1, 14 Jan 19 17:27 ram14
brw-rw---- 1 root root 1, 15 Jan 19 17:27 ram15
brw-rw---- 1 root root 1, 2 Jan 19 17:27 ram2
brw-rw---- 1 root root 1, 3 Jan 19 17:27 ram3
brw-rw---- 1 root root 1, 4 Jan 19 17:27 ram4
brw-rw---- 1 root root 1, 5 Jan 19 17:27 ram5
brw-rw---- 1 root root 1, 6 Jan 19 17:27 ram6
brw-rw---- 1 root root 1, 7 Jan 19 17:27 ram7
brw-rw---- 1 root root 1, 8 Jan 19 17:27 ram8
brw-rw---- 1 root root 1, 9 Jan 19 17:27 ram9
crw-rw-rw- 1 root root 1, 8 Jan 19 17:05 random
crw-rw---- 1 root root 5, 0 Jan 19 17:05 tty
crw-rw---- 1 root root 5, 0 Jan 19 17:07 tty0
crw-r--r-- 1 root root 4, 1 Jan 19 14:47 tty1
crw-rw---- 1 root root 5, 2 Jan 19 17:07 tty2
crw-rw---- 1 root root 5, 3 Jan 19 17:07 tty3
crw-rw---- 1 root root 5, 4 Jan 19 17:07 tty4
crw-rw---- 1 root root 5, 5 Jan 19 17:07 tty5
crw-r--r-- 1 root root 204, 64 Jan 19 14:11 ttySAC0
crw-rw-rw- 1 root root 1, 9 Jan 19 17:05 urandom
crw-rw-rw- 1 root root 1, 5 Jan 19 17:05 zero
しかし、まだ取得Unable to determine your tty name
アップデート -ttySAC0
追加/etc/securetty
待ち行列vim /etc/pam.d/login
:
auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so
デバイスがリストにある場合は、パスワードのないログインが許可されます。 …しかし、期待に満たなかった。
オンラインでこの問題を発見しました。
答え1
基本的な問題はttyとは何の関係もありませんが、以下のより重要なエラーメッセージの結果であるようです。PAM 失敗、中断中: 致命的なエラー - 即時中断。
この記事Debian ヘルプサイトが役に立ちます。 (TL; DR?PAM構成ファイルの行の末尾にあるCR / LFはよくありません。)しかし、PAMサブシステムで何をしているのかわからない場合は、単に推測です。
答え2
あなたは何かを見逃しています/dev
。最初に欠落していたのは、カーネル/dev/tty
が内部的にそれを呼び出しプロセスの独自の端末に再ルーティングしたことです。getty
プログラムはlogin
特定の端末(ここ/dev/ttySAC0
)と通信しますが、他のプログラムは自分が実行している端末を介して通信したいので、/dev/tty
この目的に使用されます。作成しましたが、無効な権限を受け取りました。/dev/tty
すべてのプロセスがアクセスできる必要があります。 BTW/dev/full
はほとんど使用されていないので、実際には何も壊れません。
chmod a+rw /dev/tty
(/dev/console
一方、root用に適切に予約されています。/dev/tty
プロセスが実行される端末を指し、xterm、sshd、screenなどのソフトウェア端末です。一方、コンソール、つまり/dev/console
物理端末を指します。端末;少数のプログラムコンソールと相互作用が必要です。)
また、スクリーンなどの端末エミュレータを使用するには、次のような生成が必要です。/dev/ptmx
インストールして/dev/pts
。
mknod -m 666 /dev/ptmx c 5 2
mkdir /dev/pts
起動時に次の行を入力するか、/etc/fstab
そのコマンドを実行してmount
5をグループIDに置き換えますtty
( `/ etc / groupチェック)。
devpts /dev/pts devpts gid=5,mode=620 0 0
それが私が今まで見たすべてです。テストしてみませんでしたが、何か抜けている可能性があります。