Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

tty, ioctl и Xen

Добрый день, господа!

Я, так сказать, сразу к делу. Купил я, значит, UPS PowerMan, который с
интерфейсным кабелем для COM-порта. Хотел настроить nut на работу с ним. Как
известно, драйверов для PowerMan-а нету, поэтому использовал драйвер
genericups upstype=4. С обычным ядром Linux 2.6.18.2-34-default #1 SMP Mon
Nov 27 11:46:27 UTC 2006 i686 i686 i386 GNU/Linux все работает замечательно.

Однако хотелось бы настроить его еще и на работу с ядром Linux 2.6.18.2-34-xen
#1 SMP Mon Nov 27 11:46:27 UTC 2006 i686 i686 i386 GNU/Linux. Почему-то
драйвер genericups не желает запускаться - вылетает с ошибкой
ioctl TIOCMSET: Invalid parameter.
Смотрел исходники - проблема с функцией ioctl, которая работает с /dev/ttyS0:
upsfd=open("/dev/ttyS0");
if (ioctl(upsfd, TIOCMSET, TIOCM_RTS))
fatal_with_errno("ioctl TIOCMSET");

Пробовал загружать остальные драйвера - они запускаются, но, естественно, с
моим UPS-ом не работают. В коде этих драйверов нету вызовов ioctl с
request-ом TIOCMSET.

Складывая два факта вместе:
1. С обычным ядром все работает, с xen-ядром не работает;
2. Драйвера, не вызывающие ioctl с request-ом TIOCMSET работают, а которые
вызывают - не работают

делаем вывод, что наверно что-то не так с /dev/ttyS0 при ядре xen.

Отсюда вопрос более опытным товарищам - подскажите, что нужно подправить,
чтобы все-таки драйвера заработали. Любые идеи приветствуются.

С уважением,
carter.

Ответить   Sun, 10 Jun 2007 14:05:21 +0400 (#672163)