web-dev-qa-db-ja.com

ARM)のDebianWheezyでtty名を特定できません

friendlyARM mini210s ARMシングルボードコンピューター用のDebianWheezyイメージを作成しようとしているときに、この問題にぶつかりました。

シリアル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で起動しました(ここでプロセスについて説明しますが、少し長いです)。

これらの行を含む機能しているDebianSqueezeイメージからinittabをコピーしました

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

デバイスがリストされている場合、これはパスワードなしでログインできるはずです。 ...しかし、それは私が期待したようにはうまくいきませんでした。

この問題についてインターネットで見つかりました

AskUbuntuについて

この問題に関する電子書籍

1
zabumba

/devにいくつか欠けているものがあります。最初は/dev/ttyがありませんでした。これは、カーネルが内部で呼び出し元のプロセス自体の端末に再ルーティングします。 gettyおよびloginプログラムは、特定の端末(ここでは/dev/ttySAC0)と通信しますが、その後、他のプログラムは、実行している端末を介して通信したいだけで、そのための/dev/tty。作成しましたが、権限が間違っています:/dev/ttyはすべてのプロセスからアクセス可能である必要があります。ちなみに、/dev/fullもそうですが、実際には何も壊れないように使用されることはめったにありません。

chmod a+rw /dev/tty

(一方、/dev/consoleはrootに正しく予約されています。/dev/ttyは、プロセスが実行されている端末を指します。これは、xterm、sshd、screenなどのソフトウェア端末です。一方、/dev/consoleは、コンソール、つまり物理端末を指します。コンソールと対話する必要のあるプログラムはほとんどありません。)

さらに、screenなどのターミナルエミュレータを使用するには、 /dev/ptmx を作成し、 /dev/pts をマウントする必要があります。

mknod -m 666 /dev/ptmx c 5 2
mkdir /dev/pts

次の行を/etc/fstabに入れるか、起動時に同等のmountコマンドを実行し、5をttyのグループIDに置き換えます( `/ etc/groupを確認してください)。

devpts /dev/pts devpts gid=5,mode=620 0 0

今のところ、これですべてです。私はテストしていません。何か他のものが欠けている可能性があります。

根本的な問題はあなたのttyとは何の関係もないと思いますが、それはさらに下のはるかに重要なエラーメッセージの結果ですPAM失敗、中止:重大なエラー-即時中止

この記事 Debianヘルプサイトから役立つかもしれません。 (TL; DR?PAM構成ファイルの行末のCR/LFは悪いです。)しかし、PAMサブシステムで何をしたかを知らなければ、それは推測にすぎません。

1
roaima