[Решено] запуск pppd из initramfs (couldn't allocate pseudo-tty)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

[Решено] запуск pppd из initramfs

Сообщение Ленивая Бестолочь »

я пытаюсь запихать установку vpn соединения с помощью ssh в initramfs.
выглядит это примерно так:

Код: Выделить всё

mknod /dev/nfs b 0 255
mknod -m 644 /dev/random c 1 8
mknod -m 644 /dev/urandom c 1 9
mknod /dev/ppp c 108 0
mknod tty0 c 4 0
mknod tty1 c 4 1
mknod tty2 c 4 2
mknod tty3 c 4 3
mknod tty4 c 4 4
/usr/sbin/pppd updetach noauth pty "ssh -t -t -C -l sshvpn 172.16.9.193"

на сервер подложены ключики - беспарольная авторизация по ssh работает.
если просто подключаться по ssh - все нормально, попадаю в консоль.
у пользователя sshvpn на сервере 172.16.9.193 вместо шела стоит скрипт, которые запускает ответный pppd.

проблема в том, что при попытке установить такое соединение pppd пишет:

Код: Выделить всё

Warning: couldn't open ppp database /var/rub/pppd2.tdb
Couldn't allocate pseudo-tty


с варнингом я сейчас разберусь, а начет pseudo-tty что ему от меня надо?
я добавил в init строчек, типа:

Код: Выделить всё

mknod tty0 c 4 0
mknod tty1 c 4 1
mknod tty2 c 4 2
mknod tty3 c 4 3
mknod tty4 c 4 4

но, похоже, что это не то.
что ему от меня надо? :-)

вот здесь читал про то, что я ядре должно быть:

Код: Выделить всё

CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

это есть.

P.S.
там дальше предлагают какой-то патч наложить, но я в это слабо верю, т.к. не из initramfs все прекрасно работает.


пока все это писал понял, что сделал лажу вот здесь:

Код: Выделить всё

mknod tty1 c 4 1
mknod tty2 c 4 2
mknod tty3 c 4 3

надо было:

Код: Выделить всё

mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3


теперь имею следующую проблему:

Код: Выделить всё

Fatal signal 11
Couldn't get channel number: Input/output error
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: [Решено] запуск pppd из initramfs

Сообщение Ленивая Бестолочь »

с этими проблемами разобрался -
тему временно замораживаю.
будет результат - напишу, чем кончилось.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: [Решено] запуск pppd из initramfs

Сообщение Ленивая Бестолочь »

в общем во всем разобрался, все работает.
Fatal signal 11
- это оказывается значит, что нет /bin/sh, которым, при указанном pty pppd будет запускать транспорт.
сделал симлинк dash -> sh (у меня там dash).
Couldn't get channel number: Input/output error

нашел здесь же в фак-е уважаемых дженовцев. в ядре не был включен PPP_ASYNC.

Warning: couldn't open ppp database /var/rub/pppd2.tdb

базу эту дурацкую скопировал просто откудато.
после этого, кстати pppd вместо "signal 11" стал доходчиво объяснять чего ему надо.

всем спасибо.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: