Bug 4668 - непоследовательность в событиях
Summary: непоследовательность в событиях
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: hotplug (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-04 03:02 MSD by Denis Ovsienko
Modified: 2005-10-11 11:35 MSD (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Ovsienko 2004-07-04 03:02:23 MSD
1. При вставке PCMCIA-карты ifup (на ifdown я не обратил внимания, тоже
возможно) запускают и cardmgr (service pcmcia) и hotplug. Я думаю, что hotplug
сюда пусть лучше не лезет.
2. При вставке CardBus-карты ifup запускает только hotplug. Но при её извлечении
ifdown не запускается.
Comment 1 Anton Farygin 2004-07-09 13:19:25 MSD
1. Наоборот, скорее пусть наверное cardbus этого не делает. Ибо hotplug не
сможет понять кем обслуживается эта плата ;-(
2) Поддержка remove для net.agent добавлена в 2004_03_29-alt3
Comment 2 Anton Farygin 2004-07-09 13:22:57 MSD
Кстати, наблюдаю в hotplug следующий код:
            # Run ifrename as needed - Jean II
            # Remap interface names based on MAC address. This workaround
            # the dreaded configuration problem "all my cards are 'eth0'"...
            # This needs to be done before ifup otherwise ifup will get
            # confused by the name changed and because iface need to be
            # down to change its name.
            if [ -x /sbin/ifrename ] && [ -r /etc/iftab ]; then
                debug_mesg invoke ifrename for $INTERFACE
                NEWNAME=`/sbin/ifrename -i $INTERFACE`
                if [ -n "$NEWNAME" ]; then
                    debug_mesg iface $INTERFACE is remapped to $NEWNAME
                    INTERFACE=$NEWNAME
                fi;
            fi

У нас есть поддержка этого добра в net-scripts ?
Comment 3 Denis Ovsienko 2004-07-09 13:38:30 MSD
Насколько я вижу, при наличии ifrename и iftab должно работать само собой.
Интересный ход.
Миша, попробуй залочить свои две карты через MAC.
Comment 4 Michael Shigorin 2004-07-09 13:44:55 MSD
как? :) (echo HWADDR=... >> ifcfg-eth?)
Comment 5 Anton Farygin 2004-07-09 14:36:26 MSD
да, и если это заработает - необходимо IMHO добавить во все тулзы
конфигурирования прописывание MAC адреса (инсталятор, драки).

Не вижу здесь особой сложности.
Comment 6 Michael Shigorin 2004-07-09 14:42:51 MSD
Погоди :-)

Починили, работает -- главное теперь ничего не трогать.  Ну их нафиг, эти драки,
лучше в своем не забыть...
Comment 7 Anton Farygin 2004-07-09 14:46:48 MSD
В том то и дело, что нифига не починили, ибо - на 2.6 ядре загружается драйвер
eth1394 и мы получаем eth0, определенный на eth1394 а то что было как eth0
становится eth1. Соответственно опять ничего не работает ;-(

Чинить надо правильно и до конца. А драки все равно придется патчить (для
USE_HOTPLUG, например).
Comment 8 Michael Shigorin 2004-07-09 15:08:14 MSD
Не, 2.6 меня тут не интересует и ломать эту хлипкую конструкцию ради него не стоит.

В том плане, что для переезда на 2.6 все равно нужны действия вроде echo psmouse
>> /etc/modules, игры с версионированием в modules.conf и прочее
рукоприкладство.  Т.е. поддержка есть, и довольно -- а пытаться автоматизировать
это с учетом никакой поддерживаемости этой автоматики -- нунафиг.

Ты вот лучше придумай, что с этим psmouse делать, а 2 eth -- это уже мелочи по
сравнению с.

"Чинить правильно и до конца" -- поддерживаю в теории, но на практике пупок
лопнет: не стоит забывать, что мир крив и софт -- тоже, и ничего с этим
кардинально не поделаешь.

Остается делать, чтоб хоть как-то работало... :-)

Про USE_HOTPLUG -- угу.
Comment 9 Anton Farygin 2004-07-09 15:21:10 MSD
с psmouse, как раз, все очень просто.

Детектить наличие psmouse через ACPI и загружать его в input.rc в hotplug'е.

А вот с сетью - надо решать. Ибо сейчас это - нерешаемо на 2.6 так как нужно. А
миграция с 2.4 на 2.6 будет необходима уже в следующем Master.
Comment 10 Michael Shigorin 2004-07-09 15:27:35 MSD
Так вот за время жизни ALM2.4 и будем ее решать.

Сейчас поздно дергаться сильно и нет смысла дергаться чуть-чуть, если уже
работает (for me, да? -- см. тж. #4529) и как-то устраивает.

Здесь ситуация получилась практически искусственная -- ноутов с двумя сетевыми
немного, хотя вышел интересный тестодром в том плане, что есть чистый PCMCIA и
CardBus, который (насколько понимаю) почти прямо на PCI и усажен.  Меня ее
разрешение _после_ ALM2.4 -- целиком устраивает, т.к. это скорее подтверждение
работоспособности в "угловом" случае и приоритет соответственно ниже.

В остальном -- что Pilot скажет.
Comment 11 Denis Ovsienko 2004-07-09 16:19:39 MSD
Я скажу: у нас фриз (если кто забыл). Давайте только исправлять ошибки.
Comment 12 Anton Farygin 2004-07-09 16:21:27 MSD
(In reply to comment #10)
> Так вот за время жизни ALM2.4 и будем ее решать.
> 
> Сейчас поздно дергаться сильно и нет смысла дергаться чуть-чуть, если уже
> работает (for me, да? -- см. тж. #4529) и как-то устраивает.
> 
> Здесь ситуация получилась практически искусственная -- ноутов с двумя сетевыми
> немного, хотя вышел интересный тестодром в том плане, что есть чистый PCMCIA и
> CardBus, который (насколько понимаю) почти прямо на PCI и усажен.  Меня ее
> разрешение _после_ ALM2.4 -- целиком устраивает, т.к. это скорее подтверждение
> работоспособности в "угловом" случае и приоритет соответственно ниже.
> 
> В остальном -- что Pilot скажет.


Да почти каждый (не почти, а совсем каждый современный) ноут имеет на борту
FireWire, на который у нас вешается модуль eth1394.

сразу после этого поднимается eth0, который смотрит на самом деле на firewire.
Comment 13 Michael Shigorin 2004-07-09 16:22:35 MSD
Вот что... ну у меня eth1394 нету, машинка где-то 2000 года.
Comment 14 Denis Ovsienko 2004-07-09 16:25:51 MSD
> сразу после этого поднимается eth0, который смотрит на самом деле на firewire.
Ну и пусть, что тут такого?
Comment 15 Anton Farygin 2004-07-09 17:56:42 MSD
Так сеть то не работает ;-)
Comment 16 Denis Ovsienko 2004-07-09 19:05:13 MSD
А eth1 и прочие кто будет настраивать?
Comment 17 Anton Farygin 2004-07-12 10:09:52 MSD
по хорошему - hotplug, а так - пока network-scripts
Comment 18 Denis Ovsienko 2004-07-12 11:06:14 MSD
Я имел в виду другое. Если для eth1 создан инсталлятором ifcfg-eth1 и в нём
ONBOOT=yes, то никакой проблемы нет. Какая разница пользователю, как называется
интерфейс, через который он ходит в сеть?
Что значит "сеть не работает"?
Comment 19 Anton Farygin 2004-07-12 11:53:55 MSD
Дело в том, что в процессе установки eth1394 не загружается, соответственно eth1
нет а eth0 присваивается интерфейсу сетевой.

После загрузки в 2.6 ядро появляется eth0 -> eth1394, на него ложаться настройки
от сетевой платы, а сетевая плата становится eth1.
Comment 20 Denis Ovsienko 2004-07-12 12:10:33 MSD
(In reply to comment #19)
> Дело в том, что в процессе установки eth1394 не загружается, соответственно eth1
> нет а eth0 присваивается интерфейсу сетевой.
Так загружайте. Инсталлятор и hotplug должны иметь общее мнение и имеющемся
оборудовании.

> После загрузки в 2.6 ядро появляется eth0 -> eth1394, на него ложаться настройки
> от сетевой платы, а сетевая плата становится eth1.
Так всё-так эта проблема специфична для 2.6? Задокументруйте как особенность тогда.
Comment 21 Anton Farygin 2004-07-12 12:25:15 MSD
Инсталятор пока что базируется на ядре 2.4.

Да, проблема еще будет появляться если какая-то сетевая плата вдруг сядет на eth0.

Сегодня я это воспроизвел путем перезагрузки с вставленной PCMCIA сетевой платой.

Она села на eth0, а встроенная в ноутбук переползла на eth1.

Получаем опять нерабочую сеть ;-(
Comment 22 Denis Ovsienko 2004-07-12 13:11:18 MSD
Чтобы такого не было, нам нужно заиметь ifrename в wireless-tools (или отдельно
от него), то есть вместо текущей версии 26 взять бету (!).
Есть ещё nameif, но насколько я вижу, он староват. 
Можно попытаться самим сделать что-то переименовывающее.
Я думаю, в 2.4 пока будет разумным компромиссом закрепить, что встроенные
сетевые интерфейсы будут появляться раньше вставных.
Comment 23 Anton Farygin 2004-07-18 14:35:52 MSD
Я внес eth1394 в blacklist в hotplug, а вообще - будем фиксить. наверное после
Master'а.
Comment 24 Anton Farygin 2004-07-19 11:13:04 MSD
hotplug-2004_03_29-alt7 теперь стартует после net-scripts.
Comment 25 Denis Ovsienko 2004-08-04 12:10:02 MSD
(In reply to comment #1)
> 1. Наоборот, скорее пусть наверное cardbus этого не делает. Ибо hotplug не
> сможет понять кем обслуживается эта плата ;-(
Если так и не решено, то я делаю reopen.
Comment 26 Anton Farygin 2004-08-04 15:23:40 MSD
На данный момент решено. После Master 2.4 продолжим ?
Comment 27 Denis Ovsienko 2004-08-04 16:05:49 MSD
Продолжим.
Comment 28 Denis Ovsienko 2004-09-04 20:54:53 MSD
(In reply to comment #2)
> Кстати, наблюдаю в hotplug следующий код:
[...]
> У нас есть поддержка этого добра в net-scripts ?

apt-get install ifrename
Comment 29 Denis Ovsienko 2004-09-04 20:59:22 MSD
На бете мастера (Sisyphus 20040813) я вижу следующее:
1. Вставляю 1 pcmcia карту, отрабатывают и hotplug и pcmcia_cs (запускают ifup).
2. Вынимаю pcmcia, реагирует pcmcia_cs. hotplug сообщает, что NET unregister
event not supported.
3. Вставляю cardbus, реагирует hotplug.
4. При вставленной cardbus вставляю pcmcia, реагирует только hotplug.
Это неправильно.
Comment 30 Denis Ovsienko 2004-09-04 21:12:00 MSD
ALT Linux Sisyphus (20040902), в net.agent я вижу только события remove, add и
register.
Comment 31 Denis Ovsienko 2004-11-09 13:48:09 MSK
Если посмотреть вот сюда (http://linux-hotplug.sourceforge.net/?selected=net),
то видно, что должны приходить register и unregister. А вот тут
(http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/HOTPLUG.txt) это
дополнительно подтверждено в патче для net.agent.
Comment 32 Anton Farygin 2004-11-09 13:59:07 MSK
Не подтверждается. На ядре 2.6 unregister приходит без проблем.
Comment 33 Denis Ovsienko 2004-12-15 15:28:08 MSK
У нас используется 2.4. Это нужно было лишний раз сказать?
Comment 34 Anton Farygin 2004-12-16 10:35:44 MSK
На 2.4 ядре функциональность hotplug уже не исправляема. А отсуствие события
unregister - проблема ядра.
Comment 35 Denis Ovsienko 2004-12-25 11:11:49 MSK
Вообще как-то странно у нас выходит (хотя должно работать):

case $ACTION in
[...]
remove)
[...]
add|register)
[...]
remove|unregister)

Не пора ли сделать code cleanup?
Comment 36 Denis Ovsienko 2004-12-25 11:12:18 MSK
Это я net.agent цитировал.
Comment 37 Anton Farygin 2004-12-27 10:13:21 MSK
Сделал.
Comment 38 Anton Farygin 2005-06-20 19:24:59 MSD
А что сейчас ?
Comment 39 Anton Farygin 2005-07-13 20:43:02 MSD
в связке - ядро 2.6.12, udev-0.62, hotplug - это работает нормально.