[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