[Comm] Поможите скомпилировать stir4200.o

Sergey Stepanov =?iso-8859-1?q?dlagovna_=CE=C1_mail=2Eru?=
Пт Июн 16 00:21:32 MSD 2006


Здравствуйте товарищи.


Имею AltLinuxMaster2.4, ядро 2.4.26-std-up-alt12.

Вот захотел скомпилировать драйвер для инфракрасника IrMmate 410W.
Система про него рассказывает так

# /usr/sbin/lsusb
Bus 001 Device 003: ID 066f:4200 SigmaTel, Inc. STIr4200 IrDA Bridge

Нашол в инете драйвер stir4200 тут
http://wetlogic.net/stewart/stir4200/stir4200.tgz

Его нужно скомпилировать.
В архиве лежат файлы

# ls -l
-rw-r--r--  1 root root   775 Июн 15 23:33 Makefile
-rw-r--r--  1 root root 53225 Июн 15 22:41 stir4200.c
-rw-r--r--  1 root root  5313 Апр  5  2003 stir4200.h
-rw-r--r--  1 root root  1206 Фев 24  2004 troubleshooting.txt


Запускаю make и получаю лог ошибок

cc -I/lib/modules/2.4.26-std-up-alt12/build/include -I../include -Wall 
-Wcast-align -Wstrict-prototypes -O2 -DLINUX -D__KERNEL__ -DMODULE 
-DMODVERSIONS -fomit-frame-pointer -fno-common -pipe 
-mpreferred-stack-boundary=2 -include 
/lib/modules/2.4.26-std-up-alt12/build/include/linux/modversions.h 
-DKBUILD_BASENAME=stir4200 -o stir4200.o -c stir4200.c
<command line>:2711171:1: 
/lib/modules/2.4.26-std-up-alt12/build/include/linux/modversions.h: No 
such file or directory

In file included from /usr/include/linux/config.h:4,
                  from /usr/include/linux/module.h:10,
                  from stir4200.c:39:
/usr/include/linux/autoconf.h:1:2: #error Invalid kernel header included 
in userspace

In file included from /usr/include/linux/prefetch.h:13,
                  from /usr/include/linux/list.h:6,
                  from /usr/include/linux/module.h:12,
                  from stir4200.c:39:
/usr/include/asm/processor.h:56: `CONFIG_X86_L1_CACHE_SHIFT' undeclared 
here (not in a function)
/usr/include/asm/processor.h:56: requested alignment is not a constant

In file included from /usr/include/asm/pgtable.h:17,
                  from /usr/include/linux/mm.h:26,
                  from /usr/include/linux/skbuff.h:26,
                  from stir4200.c:45:
/usr/include/asm/fixmap.h:18:22: asm/acpi.h: No such file or directory

In file included from stir4200.c:46:
/usr/include/linux/netdevice.h:171: `CONFIG_X86_L1_CACHE_SHIFT' 
undeclared here (not in a function)


Первую ошибку на modversions.h я могу побороть - файл лежит не по пути
/lib/modules/2.4.26-std-up-alt12/build/include/linux/modversions.h
а по пути
/usr/include/linux/modversions.h
и я могу прописать жестко в Makefile его подключение, если я это делаю,
ошибка исчезает, все остальные остаются.

Вторая ошибка - какая-то дикая. Если пройти по цепочке подклченных
файлов stir4200.c -> module.h -> config.h -> autoconf.h,
то действительно, в файле autoconf.h содержится только директива
генерации ошибки #error Invalid kernel header included in userspace
Что это значит - для меня загадка... Получается что вообще нельзя
подключать #include <linux/module.h> - будет генерироваться ошибка.

Третья ошибка про CONFIG_X86_L1_CACHE_SHIFT мне совсем непонятна,
видимо не хватает какого-то #define.

Четвертая ошибка снова связана с неправильным путем.
/usr/include/asm/fixmap.h:18:22: asm/acpi.h
А файл лежит в другом каталоге
/usr/src/kernel-source-2.4.26/include/acpi/acpi.h
Как указать чтобы этот файл искался по другому пути - я не знаю.


Пятая ошибка ... и т.д. Всего лог ошибок составляет ~350 строк,
и торжественно завершается так

stir4200.c:1757: dereferencing pointer to incomplete type
stir4200.c:1758: dereferencing pointer to incomplete type
stir4200.c: At top level:
stir4200.c:97: storage size of `stir_instance' isn't known
make: *** [stir4200.o] Ошибка 1


Вот. Кто-нибудь может мне рассказать, как же всетаки скомпилить
этот драйвер? Или может, где-то уже есть stir4200.o, готовый,
скомпиленый для AltMaster2.4?


-- 
Со всяческими пожеланиями, Сергей.
http://xi.net.ru



Подробная информация о списке рассылки community