From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 22 Apr 2007 19:58:43 +0300 From: Michael Shigorin To: ALT Devel discussion list Message-ID: <20070422165842.GT11547@osdn.org.ua> Mail-Followup-To: ALT Devel discussion list References: <200704221509.53892.uka@altlinux.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200704221509.53892.uka@altlinux.ru> User-Agent: Mutt/1.4.2.1i Subject: Re: [devel] =?koi8-r?b?cHBwLTIuNC40IC0g0NLPwszFzdkg0yBDRE1BKDNHKSBV?= =?koi8-r?b?U0Igzc/Exc3PzQ==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 16:58:35 -0000 Archived-At: List-Archive: List-Post: On Sun, Apr 22, 2007 at 03:09:53PM +0300, Yuriy Kashirin wrote: > Довелось на днях поиграться вот с таким девайсом: > http://people.net.ua/ru/equipments/internet/u-550/ О, мне тоже. > Завести его удалось, результат зафиксирован здесь: > http://www.freesource.info/wiki/Stat'i/NastrojjkaInterneta/PeopleNet > Но есть одна проблема, которую в двух словах можно сформулировать > так: все работает с ppp-2.4.2, но не работает с ppp-2.4.4 - pppd > вылетает с ошибкой при попытке запуска chat-скрипта коннекта. Я проверял на буке -- тут был _вроде бы_ 2.4.4 (зуб не дам, дело было больше недели тому и что с холдами-дистапгрейдами -- уже сложно установить точно). Дозванивается, но дальше посылали на аутентификации (напутали с логинами, ну да не суть важно). Кажется, потом его заткнули в машинку с образом, где 2.4.2, и с правильным паролем даже достучались. > Заглянул в исходники. В pppd/tty.c нашел нужное место в > ходе инициализации устройства: > #ifndef __linux__ > /* > * Linux 2.4 and above blocks normal writes to the tty > * when it is in PPP line discipline, so this isn't needed. Очхрш. > */ > /* > * Do the equivalent of `mesg n' to stop broadcast messages. > */ > if (fstat(ttyfd, &statbuf) < 0 > || fchmod(ttyfd, statbuf.st_mode & ~(S_IWGRP | S_IWOTH)) < 0) { > warn("Couldn't restrict write permissions to %s: %m", devnam); > } else > tty_mode = statbuf.st_mode; > #endif /* __linux__ */ > > В ppp-2.4.2 в этом месте нет #ifndef __linux__, поэтому > по strace видны fstat и fchmod, а в ppp-2.4.4 их нет. > Убрал эти #ifndef и пересобрал ppp-2.4.4... и все чудесным > образом заработало! (правда, вылезло в другом месте - > соединение периодически рвется в отличие от 2.4.2, но это уже > другая песня). > > Как наличие fstat/fchmod может влиять на отсутствие EIO в > дальнейшем? Или это косяки не ppp, а самого устройства > или драйвера или еще чего? Что еще можно поковырять? > > ---- > Попутно, мэйнтейнеру ppp. В пакете приложен патч > ppp-2.4.2-alt-leave-ttyperms-alone.patch (насколько я > понимаю, из #6042). Он модифицирует как раз этот кусок > кода, который из-за #ifndef __linux__, не компилируется. > Соответственно, этот патч или становится ненужным, или > его надо исправлять, убирая из исходного кода еще и > #ifndef Я бы пока предложил выкинуть этот ifndef нафиг и посмотреть, что на практике относительно их комментариев. -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/