Linux за българи: Форуми

Linux секция за начинаещи => Настройка на хардуер => Темата е започната от: abscent в Mar 20, 2009, 11:37



Титла: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 11:37
Здравейте!
Срещам трудности при компилирането на модул за управлението на мрежовата карта, която е вградена на дъното, а трябва да я ползвам :). Ситуацията е следната - инсталирам dom0 на gentoo, версия на ядрото 2.6.21 (няма по-висока версия в portage  :D), но там липсва поддръжка за този модел мрежова карта. След кратко търсене и консултация с google се оказа, че модула не се казва e1000 - коректното му име е e1000e. Изтеглих от сайта на интел (производителя на дъното) пакета с изходния код за компилирането му, но при опит за такова :) на модула показва:
Код
GeSHi (Bash):
  1. laughter src # make CFLAGS_EXTRA=-DCONFIG_E1000E_SEPARATE_TX_HANDLER CFLAGS_EXTRA=-DDISABLE_PCI_MSI CFLAGS_EXTRA=-DE1000E_NO_NAPI install
  2. /usr/bin/make -C /lib/modules/2.6.21-xenH/build SUBDIRS=/usr/local/src/e1000e-0.5.11.2/src modules
  3. make[1]: Entering directory `/usr/src/linux-2.6.21-xen'
  4.  CC [M]  /usr/local/src/e1000e-0.5.11.2/src/netdev.o
  5. /usr/local/src/e1000e-0.5.11.2/src/netdev.c: In function ‘e1000_probe’:
  6. /usr/local/src/e1000e-0.5.11.2/src/netdev.c:5522: error: ‘struct dev_pm_info’ has no member named ‘should_wakeup’
  7. make[2]: *** [/usr/local/src/e1000e-0.5.11.2/src/netdev.o] Error 1
  8. make[1]: *** [_module_/usr/local/src/e1000e-0.5.11.2/src] Error 2
  9. make[1]: Leaving directory `/usr/src/linux-2.6.21-xen'
  10. make: *** [default] Error 2
  11.  
и това е при по-усложнения вариант, не че
Код
GeSHi (Bash):
  1. make install
работи.... Тъй като не разбирам от програмиране (при все че ползвам gentoo  ;D), искам да помоля за помощ.... Предполагам, съм изключил нейде някоя поддръжка на нещо-си-в-ядрото, но като не знам кое и какво...
Благодаря предварително!


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: gat3way в Mar 20, 2009, 12:37
include/linux/pm.h:

Код:
struct dev_pm_info {
        pm_message_t            power_state;
        unsigned                can_wakeup:1;
#ifdef  CONFIG_PM
        unsigned                should_wakeup:1;
        pm_message_t            prev_state;
        void                    * saved_state;
        struct device           * pm_parent;
        struct list_head        entry;
#endif
};

...

kernel/power/Kconfig:

Код:
config PM
        bool "Power Management support"
        depends on !IA64_HP_SIM
        ---help---
          "Power Management" means that parts of your computer are shut
          off or put into a power conserving "sleep" mode if they are not
          being used.  There are two competing standards for doing this: APM
          and ACPI.  If you want to use either one, say Y here and then also
          to the requisite support below.

          Power Management is most important for battery powered laptop
          computers; if you have a laptop, check out the Linux Laptop home
          page on the WWW at <http://www.linux-on-laptops.com/> or
          Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>
          and the Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.

          Note that, even if you say N here, Linux on the x86 architecture
          will issue the hlt instruction if nothing is to be done, thereby
          sending the processor to sleep and saving power.


Те тва е.


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 13:40
Така.... Мисля, че разбрах къде ще да е проблема, но не и как да го разреша - gat3way ме е надценил доста :), рових малко по въпросния гърмящ файл (netdev.c), но след редакцията му от моя страна грешките станаха още повече... Искам да помоля за още малко търпение и помощ - да не би да трябва да изключа поддръжката на power management ? (макар да пише, че това не разрешава проблема...)


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: gat3way в Mar 20, 2009, 14:05
Не, не пипай сорса :)



Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 14:29
'Мчи то реално погледнато и двете неща са сорс :D - било на ядро, било на отделния драйвер... Чини ми се че вдянах де :) -да видим, дано следващия път да черпя с виртуална бира....


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 15:13
Поне това което аз правих като прекомпилация на два пъти на ядрото, не се получи - т.е. спрях cpu frequency scaling и някои неща на ACPI... Ще се радвам на някаква конкретика в помощта, не точно подбутване отстрани и подмятане /нищо лично към другия участник досега в темата/
Благодаря предварително!


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: gat3way в Mar 20, 2009, 15:20
ACPI няма отношение към нещата, нито frequency scaling-a. Сега не знам точно къде в кое подменю се намира въпросната настройка.

Що не пробваш да влезеш в директорията със сорса на ядрото, да набиеш:

echo "CONFIG_PM=y" >> .config

и после да го компилираш и инсталираш отново. След това рестарт и пробвай да си компилираш драйвера наново.


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 16:22
Чак на второто компилиране се усетих да пробвам дали резултата от echo-то седи, и видях, че липсва..., респективно ядрото няма поддръжка за powermanagement,  сега ще пробвам в menuconfig къде точно се активира CONFIG_PM-a, и от какво зависи - ако успея, ще опиша. Благодаря много за помощта!


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: gat3way в Mar 20, 2009, 16:38
Хм, това е странно. Да не би да пускаш след echo-to нещо от сорта на make config/menuconfig/xconfig ?


Титла: Re: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 20, 2009, 17:13
Определено не :). Поне ядра съм компилирал доста, и то покрай това dom0 - още повече. Gentoo си има собствен инструмент за компилиране на ядрото (genkernel), в случая го пренебрегнах, и заложих на метода, който предложи ти - направо тръгнах с make, след echo-то - не помогна. Почти се отказах от тази версия на ядрото, намерих едни неофициални ebuilds, да видим дали някое от тези ядра ще понечи да тръгне :D...


Титла: РЕШЕН: Модул e1000e за 2.6.21-xen...
Публикувано от: abscent в Mar 26, 2009, 13:54
След неколкократни опити за компилация на ядро 2.6.21, преминах на 2.6.27 (неофициален ebuild, естествено :)), където се реши проблема с драйвера. Оказа се невъзможно да се включи поддръжка за Power Management ако е избрано ядрото да е XEN (т.е. CONFIG_X86_64_XEN=y) - просто двете неща са взаимно изключващи се, а на мен все пак ми трябва xen-опцията....
Нека да решим темата и проблема за приключени, ако някой иска конфиг-а - да свирка :)