LINUX.ORG.RU

не могу собрать dvb драйвера - time.h: No such file or directory


0

1

debian sid kernel 2.6.38 самосборный заголовочный файл time.h имеется реально в системе

/usr/include/linux/time.h
/usr/src/linux/include/linux/time.h
arvdr:/usr/src# ls -n | grep 6.38
lrwxrwxrwx  1    0   40       28 Май 13 17:32 linux -> /usr/src/linux-source-2.6.38
lrwxrwxrwx  1    0   40       14 Май 14 05:43 linux-2.6.38.k77 -> /usr/src/linux
lrwxrwxrwx  1    0   40       22 Май 14 05:42 linux-headers-2.6.38.k77 -> /usr/src/linux-headers
lrwxrwxrwx  1    0    0       26 Май  9 19:57 linux-kbuild-2.6.38 -> ../lib/linux-kbuild-2.6.38
drwxr-xr-x 24    0    0     4096 Май 13 20:16 linux-source-2.6.38
/lib/modules/2.6.38.k77# ls -n
итого 1368
lrwxrwxrwx 1 0 0     28 Май 13 19:00 build -> /usr/src/linux-source-2.6.38
drwxr-xr-x 9 0 0   4096 Май 13 19:00 kernel
-rwxr-xr-x 1 0 0  27436 Май 13 18:52 lguest
-rw-r--r-- 1 0 0 293583 Май 13 19:12 modules.alias
-rw-r--r-- 1 0 0 292167 Май 13 19:12 modules.alias.bin
-rw-r--r-- 1 0 0   2166 Май 13 18:55 modules.builtin
-rw-r--r-- 1 0 0 136286 Май 13 19:12 modules.dep
-rw-r--r-- 1 0 0 205972 Май 13 19:12 modules.dep.bin
-rw-r--r-- 1 0 0  55421 Май 13 18:55 modules.order
-rw-r--r-- 1 0 0 149155 Май 13 19:12 modules.symbols
-rw-r--r-- 1 0 0 187438 Май 13 19:12 modules.symbols.bin
lrwxrwxrwx 1 0 0     28 Май 13 19:00 source -> /usr/src/linux-source-2.6.38

но собрать s2-liplianin dvb драйвера не получается

/usr/src/s2-liplianin# make
make -C /usr/src/s2-liplianin/v4l
make[1]: Entering directory `/usr/src/s2-liplianin/v4l'
creating symbolic links...
make -C firmware prep
make[2]: Entering directory `/usr/src/s2-liplianin/v4l/firmware'
make[2]: Leaving directory `/usr/src/s2-liplianin/v4l/firmware'
make -C firmware
make[2]: Entering directory `/usr/src/s2-liplianin/v4l/firmware'
make[2]: Nothing to be done for `default'.
make[2]: Leaving directory `/usr/src/s2-liplianin/v4l/firmware'
Kernel build directory is /lib/modules/2.6.38.k77/build
make -C /lib/modules/2.6.38.k77/build SUBDIRS=/usr/src/s2-liplianin/v4l  modules
make[2]: Entering directory `/usr/src/linux-source-2.6.38'
  CC [M]  /usr/src/s2-liplianin/v4l/au0828-core.o
In file included from /usr/src/s2-liplianin/v4l/demux.h:33:0,
                 from /usr/src/s2-liplianin/v4l/au0828.h:33,
                 from /usr/src/s2-liplianin/v4l/au0828-core.c:29:
/usr/src/s2-liplianin/v4l/../linux/include/linux/dvb/dmx.h:28:18: fatal error: time.h: No such file or directory
compilation terminated.
make[3]: *** [/usr/src/s2-liplianin/v4l/au0828-core.o] Ошибка 1
make[2]: *** [_module_/usr/src/s2-liplianin/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-source-2.6.38'
make[1]: *** [default] Ошибка 2
make[1]: Leaving directory `/usr/src/s2-liplianin/v4l'
make: *** [all] Ошибка 2

не пойму - почему компилятор не может найти заголовочный time.h если он находится везде, где можно у меня в системе


то, что у тебя есть, это «linux/time.h». а программе нужен «time.h». это совершенно разные файлы, да. последний ищи в пакете [g]libc[-dev].

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

сорри - а в чем разница между linux/time.h и time.h ?

пакет linux-libc-dev в котором есть /usr/include/linux/time.h у меня установлен

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

> какой из этих пакетов с time.h мне надо установить

тебе нужен «/usr/include/time.h». т.е. получается «libc0.1-dev».

> почему существующих пакетов недостаточно

в существующих пакетах нет «time.h» (он же «/usr/include/time.h»).

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

ах да, это же ядерный модуль, он собирается с -nostdinc, т.е. в /usr/include он вообще не ищет, ведь в ядре libc итп нету… тогда хз.

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

я правильно понимаю, что если я сам перекомпилировал ядро на debian sid , то имея исходники ядра в

/usr/src/linux-source-2.6.38.k77

мне не надо устанавливать отдельный пакет с заголовками

/linux-headers-2.6.38-2-common 

вот эти симлинки правильные ?

/lib/modules/2.6.38.k77# ls -l
 итого 1368
 lrwxrwxrwx 1 root root 28 Май 13 19:00 build -> /usr/src/linux-source-2.6.38
 lrwxrwxrwx 1 root root 28 Май 13 19:00 source -> /usr/src/linux-source-2.6.38
Sky777
() автор топика
Ответ на: комментарий от Sky777

> мне не надо устанавливать отдельный пакет с заголовками

нет, это для user-space приложений. модули, как и другие компоненты ядра, не используют заголовочных файлов вне дерева исходников ядра (да и не могут). правда, для ядерных утилит необходимы заголовочные файлы libc, но это не они.

> вот эти симлинки правильные ?

скорее всего, да.

где можно взять исходники этого модуля?

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

пробуй собрать свежую версию.

твой лог:

/usr/src/s2-liplianin/v4l/../linux/include/linux/dvb/dmx.h:28:18: fatal error: time.h: No such file or directory

в той версии s2-liplianin, что я стянул несколько минут назад, в этом файле в строке 28+:

28  #ifdef __KERNEL__
29  #include <linux/time.h>
30  #else
31  #include <time.h>
32  #endif

т.е. уже заметили и исправили :) у меня все 432 модуля собрались без лишних манипуляций. правда, ядро не .38 и не дебиан… :)

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

> мне не надо устанавливать отдельный пакет с заголовками

нет, это для user-space приложений.


но я планирую и софт собирать из исходников. Надо ли устанавливать еще и отдельно заголовки, если исходники ядра уже установлены ?

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

да, если софт будет использовать линукс-специфические константы и структуры данных для управления или обмена с устройствами. ядерные заголовочные файлы в том виде, в котором они находятся в дереве исходников ядра, для user-space приложений не годятся.

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

>>liplianin - это дрова для твинхана или для тевии?

и для того и для другого

это альтернатива официальным v4l-dvb

Sky777
() автор топика
Ответ на: комментарий от Fletch

относительно tevii могу сказать - Игорь пишет качественные драйвера, обязательно тестируя их. Не всеего исправления попадают в официальный кернел. Кроме того, он всегда на cвязи на linuxdvb.org.ru - всегда можно отрапортовать о проблеме

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

э… зачем? о_О

ядерные заголовочные файлы для юзерспейса находятся в /usr/include/linux, /usr/include/asm, /usr/include/drm и т.д. для сборки юзерспейс-программ ни исходники ядра, ни его личные заголовочные файлы не нужны.

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

оба-на - не знал :)

всегда ставил пакет linux-headers-2.6-686 перед сборкой каких-либо прог.


а зачем этот пакет linux-headers-2.6-686 тогда нужен, если он ен используется при сборке user-space софта ?

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

> а зачем этот пакет linux-headers-2.6-686 тогда нужен, если он ен используется при сборке user-space софта ?

-_-'

именно _этот_ пакет и нужен. там модифицированные (ядерным скриптом, кстати) заголовочные файлы ядра, необходимые для сборки некоторых пользовательских приложений. этот пакет для сборки самого ядра не нужен, у ядра свои копии всех файлов из этого пакета. и даже не копии, а оригиналы :)

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

видимо я не правильно понял предыдущий пост про заголовки

Итак, я устанавливаю

linux-headers-2.6-686

делаю симлинк с /usr/src/linux-headers-2.6.38-2-common на /usr/src/linux-headers

правильно ?


а что делать с симлинком /lib/modules/2.6.38.k77/build ?

на что он должен указывать ?

ps
liplianin-s2 я собрал успешно



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

фух, вроде разобрался… ну и бардак в этом вашем дебиане с пакетами :)

ядерные хэдеры для юзерспейса в пакете linux-libc-dev (аналог слаковского kernel-headers). зачем вообще существует linux-headers я так и не понял… может, для кросс-компиляции…

да, кстати, симлинки создавать/править не нужно.

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