Здравейте. Имам следната ситуация:
---
Машина - DELL Workstation Precision 410 MT (BIOS A014)
Процесори - 2 x P II (Deschutes) 350 MHz
Linux - Slackware 10.0
Kernel - 2.4.26
---
Прекомпилирах ядро със SMP (Symetric Multi Processors) поддръжка и се започнаха следните аномалии:
При зареждането на модула за eth0 (вградена - 3Com 3c905B 100BaseTX [Cyclone] (модул 3c59x.o) ), картата иска да използва IRQ 19, но извежда съобщение че най-вероятно няма да работи с това IRQ. След това като се опитам да я вдигна с ifconfig самия процес забива ( с ps ax дава STAT D+) а на конзолата изважда съобщения за грешки от ядрото от типа ooops и разни срашни цифри и букви след това. Гледах на сайта на DELL спецификацията на машината, но там са описани само до IRQ 15 (BIOS-а няма опция за промяна на IRQ-тата). И от BIOS-а и от опциите за компилиране на ядрото изключих поддръжките на APM и ACPI но и това не помага. В /proc/interrupts също не показва на кое IRQ е eth0.
Мислех че картата не е в ред, но когато пусна Slackware със стандартното ядро за еднопроцесорни машини си я хваща, слага я на IRQ 11 и всичко си работи перфектно.
Също така под Windows XP Pro SP 1 всичко също работи чудесно. И двата процесора и картата, която там работи именно на IRQ 19.
Третото което опитах бе да компилирам драйвера статично. Резултата бе частичен успех. Разпознаве картата, слага я на IRQ > 15 и работи както си трябва. Само че там проблемите излязоха когато слагам други карти, чиито драйвери се зареждат като модули ... с тях я работи, я не (картите са читави).
Това което ми прави впечатление (при сравняване на dmesg) е че при зареждане на ядрото със статично компилиран драйвер разпознаването на картата става точно преди разпознаването на PIIX4 IDE Controler, докато при ядрото с модул това става по-късно (при изпълнението на rc.modules). Казвам го защото IDE0 и IDE1 интерфейсите (и по спецификацията на DELL) работят на съответно IRQ 14 и IRQ 15. Да не би по някакъв начин те да са последните при регистриране на IRQ ?
Целта ми е да имам 2 работещи процесора и всякакъв хардуер да може да се зарежда като модул.
Търсих из google, сайта на DELL и архивите на различни linux-smp mail листи, но неможах да намеря нищо, което да ми подскаже дори откъде да започна да търся проблема.
Ако някой се е сблъсквал с нещо подобно и/или има идея къде да търся причината за всичко това, ще съм благодарен ако го сподели.
Поздрави !
Н. Тенев
P.S. Това което искам да отбележа е че в случая търся решение, което да отстрани проблема, а не начин да го заобиколя. Знам че мога всеки път когато добавям ново устройство да прекомпилирам ядрото със статичните му драйвери, това ще е домашно сървърче така че ден-два без да работи докато му реша този или онзи проблем не са фатални ... но това си е заобикаляне. Имам нужда от решение по простата причина че ако се сблъскам (а и не само аз) с подобен проблем в работата си (където имам критични машини) е по-добре да има решение отколкото да търся заобиколен път нали ? Ако е възможно все пак

'>
Предварително Ви благодаря !