Page 6 of 10

Re: Снова USB

Posted: Sat Jun 19, 2010 7:58 pm
by Leency
Сейчас общаемся с diamondом по ЛС. Он верно заметил, драйвер стал падать когда я сменил мышь. Оказывается, что старая USB-мышь действительно нормально работает, драйвер не умирает при нажатии клавиши. А вот с новой проблемы.
Замечу, кстати, что новая мышь вообще не работает в ХайкуОС, в отличии от старой. В Линуксе, Винде всё норм.

Re: Снова USB

Posted: Sat Jun 19, 2010 11:49 pm
by Serge
Leency

Мышь - убийца ?

Code: Select all

Bool mouse_handler(udev_t *dev, struct tag_request *rq)
{
    td_t   *td;

    td = rq->td_head;

    if( (td->status &0x7FF)==rq->size-1)
    {
        struct boot_packet *pkt;
        pkt = (struct boot_packet *)rq->data;
        SetMouseData(pkt->buttons, pkt->x, -pkt->y, -pkt->z, 0);
    };
    td->status = 0x00800000 | dev->speed;
    td->token ^= DATA1;

    return TRUE;
};
Курсор ползает нормально. Может принажатии на кнопку приходит не стандартный boot_packet, а что-то другое.

Re: Снова USB

Posted: Sun Jun 20, 2010 1:30 am
by Leency
Мышь убивца имеет официальную страничку http://www.canyon-tech.com/archive/comp ... r-switcher если это поможет.

Re: Снова USB

Posted: Sun Jun 20, 2010 6:33 am
by Serge
А что в /rd/1/drivers/usb.log ?

Re: Снова USB

Posted: Sun Jun 20, 2010 11:39 am
by diamond
Serge
В ходе тестирования пробовал: убрать проверку размера в mouse_handler(); при конфигурации явно посылать SET_PROTOCOL с установкой boot protocol; увеличить размер буфера под пакет до 8 байт. Первое действие чинит проблему с одной из моих мышей (но там другая проблема - исходный драйвер мышь видел, но полностью игнорировал - maxpacketsize=5, а по boot protocol посылаются 4 байта), все остальные ни к какому результату не приводят.
В лог ещё добавил перед вызовом SetMouseData дамп статуса и пакета. Последний из логов, присланный Leency, прилагаю.

Re: Снова USB

Posted: Sun Jun 20, 2010 5:52 pm
by Serge
Похоже что падает до SetMouseData. Но совсем непонятно почему.

Re: Снова USB

Posted: Sat Jun 26, 2010 2:43 am
by diamond
Serge
Ничего не падает, цикл опроса исправно выполняется, но статус для соответствующего дескриптора после нажатия на кнопку становится равен 0x48507ff (low-speed, active, CRC/Time-Out error+Reserved bit) и больше уже не меняется. Если счётчик ошибок выставлять в 3 (aka "допускается 3 ошибки") вместо 0 (aka "опрашивай до упора"), то mouse_handler, как и положено, вызывается и после нажатия на кнопку, и статус там 0x44507ff (то есть то же самое с той же загадочной ошибкой и установленным reserved-битом, только stalled вместо active).

Re: Снова USB

Posted: Sat Jun 26, 2010 9:17 am
by Serge
Понятно. Я думал что там вся система виснет. Надо сделать обработчик ошибок.

Re: Снова USB

Posted: Mon Jul 05, 2010 10:44 pm
by diamond
Не, там не обработку ошибок делать надо. Статус порта, куда воткнута мышь, при нажатии на кнопку меняется с 1A5 на AB, то есть мышь делает вид, что произошёл дисконнект с последующим коннектом. Здесь нужно обрабатывать дисконнекты и коннекты, а этого в драйвере и близко нет. Так что это не баг, это отсутствие фичи, такое не лечим. (И вообще, "чем таких лечить, лучше новых сделать"...)

Re: Снова USB

Posted: Wed Jul 07, 2010 1:08 pm
by Leency
Серёга, ты абсолютно прав. Как жаль, что я не заметил этого раньше. Только сегодня, рисуя граффити вконтакте, я заметил что невозможно нормально зажать ЛКМ - через несколько секунд после зажатия кнопки она как-будто отпускается и нажимается снова раза 2-3. Видимо, это брак.

Re: Снова USB

Posted: Wed Jul 07, 2010 8:21 pm
by Serge
Колибри - acid test для железа

Re: Снова USB

Posted: Sat Aug 21, 2010 12:36 pm
by DmitrySokolowsky
Что делать, чтобы usb-мышь заработала? Я перечитал всю тему, но так и не понял :-[

Re: Снова USB

Posted: Sat Aug 21, 2010 1:27 pm
by b00bl1k
viewtopic.php?f=3&t=1400
Включить в биосе эмуляцию ps/2 мыши, или эт не то?

Re: Снова USB

Posted: Sat Aug 21, 2010 4:56 pm
by Mario
Атауальпа
Выложенный драйвер он только для UHCI контроллеров, которые есть далеко не в каждой материнской плате.
Запусти программу PCIDEV и увидишь какой у тебя контроллер: UHCI, OHCI или EHCI.

Re: Снова USB

Posted: Sat Aug 21, 2010 9:16 pm
by DmitrySokolowsky
Sh@dy wrote:viewtopic.php?f=3&t=1400
Включить в биосе эмуляцию ps/2 мыши, или эт не то?
Не во всех биосах она есть