Bug 9996 - Неправильный порядок загрузки cdc-acm и cdc-ether вешает систему
: Неправильный порядок загрузки cdc-acm и cdc-ether вешает систему
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/kernel-image-wks-smp)
: unstable
: all Linux
: P5 blocker
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-09-13 14:56 by
Modified: 2008-08-22 11:06 (History)


Attachments
Error log when loading cdc-ether (10.36 KB, text/plain)
2006-09-13 23:04, serpiph
no flags Details
Вывод lsusb -v (24.81 KB, text/plain)
2006-09-13 23:13, serpiph
no flags Details
Вывод lsmod (3.84 KB, text/plain)
2006-09-13 23:17, serpiph
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-09-13 14:56:11
Есть телефон Nokia 6233. При подключении его к компьютеру через кабель USB
пожет
повиснуть система. Поиск причины привёл к следующему:
1) Для работы телефона нужен модуль как минимум cdc-acm, возможно и cdc-ether.
2) система вешается из-за того, что при подключении телефона hotplug грузит
модули cdc-ether и cdc-acm в случайном порядке. Если сначала загрузится
cdc-acm,
а потом cdc-ether, то проблем нет. Если сначала cdc-ether, а потом cdc-acm,
сразу после загрузки вылетает сообщение об обрушении модуля cdc-ether, далее
система становится нестабильной и в любой последующий момент вешается так
(обычно при загрузке программ, особенно X), что для выключения приходится жать
reset или снимать питаение компьютера.
3) Получается, что модуль cdc-ether для своей работы требует что-то от cdc-acm.
Возможное решение: в модуль cdc-ether жёстко прописать зависимость от cdc-acm.
У
меня именно это ядро, возможно, такое есть и на других ядрах.

Немного касается этого ошибка #5841.
Steps to Reproduce:
1. Загрузить модуль cdc-ether
2. ПОдключить телефон
2. Загрузить X

Actual Results:  
Система вешается намертво.

Expected Results:  
Нормальная работа
------- Comment #1 From 2006-09-13 15:26:54 -------
(In reply to comment #0)
> сразу после загрузки вылетает сообщение об обрушении модуля cdc-ether

Можно увидеть это сообщение?  Лучше, конечно, сохранить полный вывод dmesg, но
пойдёт и то, что записалось в логи.

Кроме того, представляет интерес вывод lsusb -v после подключения телефона.

> 3) Получается, что модуль cdc-ether для своей работы требует что-то от cdc-acm.

На самом деле это совершенно независимые драйверы, предназначенные для разных
устройств. Возможно, этот телефон выглядит на шине USB как-то странно (впервые
слышу, чтобы для телефона загружался модуль cdc-ether).

> Немного касается этого ошибка #5841.

Это несколько другая ситуация - там падал именно модуль cdc-acm, без всякого
cdc-ether, причём это проявлялось только на устройствах, обладающих некоторыми
особенностями. В любом случае та ошибка вроде бы уже давно исправлена.

В качестве временного обхода проблемы можно вписать cdc-ether в
/etc/hotplug/blacklist, чтобы этот модуль не загружался автоматически.
------- Comment #2 From 2006-09-13 23:04:58 -------
Created an attachment (id=1627) [details]
Error log when loading cdc-ether

Так, попытка номер 2. Сейчас, похоже, выяснилось, что падает модуль cdc-ether
без какого-либо влияния со стороны cdc-acm. Сейчас утащил cdc-ether.ko прочь,
подключил телефон и нормально вышел в инет. В аттаче прикладываю два куска лога
падений, которые удалось найти. Как бы его заблокировать со стороны hotplug?
Что-то не могу. Занёс в blacklist, но не помогает. Возможно, падение из-за
другого модуля, rndis_host, который дополнительно тащит cdc-ether.
------- Comment #3 From 2006-09-13 23:13:03 -------
Created an attachment (id=1628) [details]
Вывод lsusb -v

Похоже, я погорячился насчёт cdc-acm. Он, скорее всего, невиновен.

Главное начинается отсюда:
Bus 002 Device 005: ID 0421:0491 Nokia Mobile Phones
------- Comment #4 From 2006-09-13 23:17:17 -------
Created an attachment (id=1629) [details]
Вывод lsmod

В данном аттачменте приведён вывод lsmod БЕЗ загрузки модуля cdc-ether и
rndis-host со всеми другими:
Sep 13 22:57:41 mobile-epiphanov insmod: insmod:
/lib/modules/2.6.16-wks26-smp-alt8/kernel/drivers/usb/net/cdc_ether.ko: No such
file or directory
Sep 13 22:57:41 mobile-epiphanov insmod: insmod: insmod rndis_host failed
Sep 13 22:57:41 mobile-epiphanov usb.agent[10936]: ... can't load module
rndis_host
Sep 13 22:57:41 mobile-epiphanov usb.agent[10936]: missing kernel or user mode
driver rndis_host
------- Comment #5 From 2006-09-14 12:30:38 -------
(In reply to comment #2)
> Возможно, падение из-за другого модуля, rndis_host, который дополнительно
тащит cdc-ether.

Да, похоже на это - у этого телефона есть интерфейс 02/02/ff, который как раз
соответствует модулю rndis_host.  Получается, что в blacklist надо заносить не
cdc-ether, а rndis_host.
------- Comment #6 From 2006-09-25 22:30:51 -------
Похоже, rndis_host остался сломан даже в 2.6.18:

http://bugzilla.kernel.org/show_bug.cgi?id=7201
------- Comment #7 From 2007-03-09 00:27:04 -------
(In reply to comment #6)
> Похоже, rndis_host остался сломан даже в 2.6.18:
> http://bugzilla.kernel.org/show_bug.cgi?id=7201

Да, я тоже столкнулся на 2.6.18-std-smp-alt4.

Может, вот это как-то поможет тому, кто в этом больше меня понимает:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=228231
------- Comment #8 From 2007-03-10 18:14:48 -------
В kernel-image-std-{smp,pae}-2.6.18-alt5 эта проблема должна быть исправлена;
когда исправление доберётся до ядра wks - не знаю.
------- Comment #9 From 2008-08-21 11:12:05 -------
Automagically fixed due wks RIP in Sisyphus.
------- Comment #10 From 2008-08-22 11:06:51 -------
"due to" :) (и IMHO тогда WORKSFORME)