LINUX.ORG.RU

Драйвер rtl8187


0

2

Пытаюсь собрать драйвер для rtl8187. Скачал исходники отсюда:

http://sourceforge.net/projects/rtl8180-sa2400/files/rtl8180-sa2400/0.21/rtl8...

Распаковал, запускаю make, выдаёт:

root@debian:/home/user/tv/build/rtl8180# make
make -C /lib/modules/2.6.32-5-686/build SUBDIRS=/home/user/tv/build/rtl8180 MODVERDIR=/home/user/tv/build/rtl8180 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-686'
/usr/src/linux-headers-2.6.32-5-common/scripts/Makefile.build:44: /home/user/tv/build/rtl8180/Makefile: Нет такого файла или каталога
make[4]: *** Нет правила для сборки цели `/home/user/tv/build/rtl8180/Makefile'.  Останов.
make[3]: *** [_module_/home/user/tv/build/rtl8180] Ошибка 2
make[2]: *** [sub-make] Ошибка 2
make[1]: *** [all] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-686'
make: *** [2.6] Ошибка 2

и каталог с исходниками становится пустой. Почему не собирается, и исходники удаляются?

Ответ на: комментарий от anonymous

Да это я пытаюсь собрать под i686 для теста, что он вообще собирается. Та же ошибка возникает и при сборке под mips:

root@debian:/home/user/tv/build/rtl8180-0.21# PATH=/home/user/tv/build/toolchain/bin/:$PATH make -e KSRC=/home/user/tv/build/kernel CC='/home/user/tv/build/toolchain/bin/mips24ke_nfp_be-gcc -mglibc' CPP=/home/user/tv/build/toolchain/bin/mips24ke_nfp_be-g++ LD=/home/user/tv/build/toolchain/bin/mips24ke_nfp_be-ld TOPDIR=/ohome/user/tv/build/kernel
make -C /home/user/tv/build/kernel SUBDIRS=/home/user/tv/build/rtl8180-0.21 MODVERDIR=/home/user/tv/build/rtl8180-0.21 modules
make[1]: Entering directory `/home/user/tv/build/kernel'
make[2]: Entering directory `/home/user/tv/build/kernel'
scripts/Makefile.build:17: /home/user/tv/build/rtl8180-0.21/Makefile: Нет такого файла или каталога
make[2]: *** Нет правила для сборки цели `/home/user/tv/build/rtl8180-0.21/Makefile'.  Останов.
make[2]: Leaving directory `/home/user/tv/build/kernel'
make[1]: *** [_module_/home/user/tv/build/rtl8180-0.21] Ошибка 2
make[1]: Leaving directory `/home/user/tv/build/kernel'
make: *** [2.6] Ошибка 2
Nekto13 ()

Исходники пропадают потому что Makefile от этого дравера определяет MODVERDIR . Я точно не знаю, что это должен быть за каталог, но он используется про сборке модулей через ядреный Makefile и раньше его в исходниках модуля определяли, а где то с 2006 его стало не нужно опеределять, ядро по умолчанию само стало создавать каталог .tmp_versions.

Так что уберите это определение из Makefile и компиляция запустится. Только особо легче вам от этого не станет, драйвер датирован 2005 годом и не скомпилируется с 2.6.32, которое вышло заметно позже и с сильно изменённой подсистемой wifi.

mky ★★★★★ ()
Ответ на: комментарий от mky

Спасибо за совет. Позже тоже нашёл MODVERDIR, определил его как путь_до_каталога_сборки/tmp, компиляция пошла дальше, но опять стопорнулось с кучей ошибок. Не подскажите где почитать на тему особенностей сборки старых драйверов под новые ядра (даже не знаю как вопрос сформулировать :) )?

Nekto13 ()
Ответ на: комментарий от Nekto13

этот драйвер в нужном ядре ОТСУТСТВУЕТ или НЕ СОБРАН?

если второе то просто скросскомпилить ядро целиком с конфигом из /proc/config.gz

Slackware_user ★★★★★ ()
Ответ на: комментарий от Nekto13

Не встречал такое руководство. И это не особенности сборки, это именно изменения в интерфейсах ядра, то есть нужно смотреть как работал драйвер со старым ядром, смотреть что изменилось, и править исходники драйвера.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.