gishenko
May 22 2013, 06:37
Eсть плата с ARM, linux и initrd c busybox-1.21.0, на ней 2 последовательных интерфейса:
ttyS2 через него осуществляется вся работа;
ttyS3 сделан на ПЛИС с собственным драйвером.
Задача сделать упраляющий терминал на ttyS3, для этого запускаю:
# agetty 115200 ttyS3
На ttyS3 появляется приглашение ввода логина, логинюсь, появление приглашение sh, дальше терминал не работает. Но, если послать ^C на ttyS2, терминал ttyS3 начинает работать. Однако ^C, ^Z и др. работают через ttyS2.
Если убрать из inittab строку
S2:2345:respawn:/sbin/getty 115200 ttyS2
и запусть agetty, будет тот же результат, но перед приглашение sh на ttyS3 будет сообщение:
-sh: can't access tty; job control turned off
Как включить job control? Или все из-за кривого драйвера?
busybox FAQ читал, не заработало.
Цитата(gishenko @ May 22 2013, 11:37)

Как включить job control?
Оно включится само, когда и если шелл получит управляющий терминал.
По какой причине шелл не может получить ctty - это другой вопрос. Посмотрите для начала вот это:
http://www.busybox.net/FAQ.html#job_control
gishenko
May 23 2013, 10:36
FAQ мне не помогло. Есть мысли, что драйвер порта выдает не полную структуру termios. В ней не заполнены многие поля, такие как VINTR, VKILL, отвечающие за job control.