Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 16:17 Здравейте! От скоро ползвам Линукс и сега ми се наложи да си компилирам ядрото за да му добавя няколко модула. Прочетох няколко статии по темата но се сблъсках със следния проблем : Когато вляза в директория /usr/src имам две папки - linux-headers-2.6.17-10 и linux-headers-2.6.17-10-generic.
В която и от двете да вляза при изпълнение на командата make menuconfig ми връща следния резултат: HOSTCC scripts/basic/fixdep scripts/basic/fixdep.c:105:23: error: sys/types.h: No such file or directory scripts/basic/fixdep.c:106:22: error: sys/stat.h: No such file or directory scripts/basic/fixdep.c:107:22: error: sys/mman.h: No such file or directory scripts/basic/fixdep.c:108:20: error: unistd.h: No such file or directory scripts/basic/fixdep.c:109:19: error: fcntl.h: No such file or directory scripts/basic/fixdep.c:110:20: error: string.h: No such file or directory scripts/basic/fixdep.c:111:20: error: stdlib.h: No such file or directory scripts/basic/fixdep.c:112:19: error: stdio.h: No such file or directory In file included from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/syslimits.h:7, from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:11, from scripts/basic/fixdep.c:113: /usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:122:61: error: limits.h: No such file or directory scripts/basic/fixdep.c:114:19: error: ctype.h: No such file or directory scripts/basic/fixdep.c:115:23: error: arpa/inet.h: No such file or directory scripts/basic/fixdep.c: In function ‘usage’: scripts/basic/fixdep.c:129: warning: implicit declaration of function ‘fprintf’ scripts/basic/fixdep.c:129: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:129: error: ‘stderr’ undeclared (first use in this function) scripts/basic/fixdep.c:129: error: (Each undeclared identifier is reported only once scripts/basic/fixdep.c:129: error: for each function it appears in.) scripts/basic/fixdep.c:130: warning: implicit declaration of function ‘exit’ scripts/basic/fixdep.c:130: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c: In function ‘print_cmdline’: scripts/basic/fixdep.c:138: warning: implicit declaration of function ‘printf’ scripts/basic/fixdep.c:138: warning: incompatible implicit declaration of built-in function ‘printf’ scripts/basic/fixdep.c: At top level: scripts/basic/fixdep.c:141: error: ‘NULL’ undeclared here (not in a function) scripts/basic/fixdep.c: In function ‘grow_config’: scripts/basic/fixdep.c:154: warning: implicit declaration of function ‘realloc’ scripts/basic/fixdep.c:154: warning: assignment makes pointer from integer without a cast scripts/basic/fixdep.c:156: warning: implicit declaration of function ‘perror’ scripts/basic/fixdep.c:156: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c: In function ‘is_defined_config’: scripts/basic/fixdep.c:172: warning: implicit declaration of function ‘memcmp’ scripts/basic/fixdep.c: In function ‘define_config’: scripts/basic/fixdep.c:185: warning: implicit declaration of function ‘memcpy’ scripts/basic/fixdep.c:185: warning: incompatible implicit declaration of built-in function ‘memcpy’ scripts/basic/fixdep.c: In function ‘use_config’: scripts/basic/fixdep.c:204: error: ‘PATH_MAX’ undeclared (first use in this function) scripts/basic/fixdep.c:212: warning: incompatible implicit declaration of built-in function ‘memcpy’ scripts/basic/fixdep.c:218: warning: implicit declaration of function ‘tolower’ scripts/basic/fixdep.c:220: warning: incompatible implicit declaration of built-in function ‘printf’ scripts/basic/fixdep.c:204: warning: unused variable ‘s’ scripts/basic/fixdep.c: At top level: scripts/basic/fixdep.c:223: error: expected declaration specifiers or ‘...’ before ‘size_t’ scripts/basic/fixdep.c: In function ‘parse_config_file’: scripts/basic/fixdep.c:225: error: ‘len’ undeclared (first use in this function) scripts/basic/fixdep.c:231: warning: implicit declaration of function ‘ntohl’ scripts/basic/fixdep.c:242: warning: implicit declaration of function ‘isalnum’ scripts/basic/fixdep.c: In function ‘strrcmp’: scripts/basic/fixdep.c:255: warning: implicit declaration of function ‘strlen’ scripts/basic/fixdep.c:255: warning: incompatible implicit declaration of built-in function ‘strlen’ scripts/basic/fixdep.c: In function ‘do_config_file’: scripts/basic/fixdep.c:266: error: storage size of ‘st’ isn’t known scripts/basic/fixdep.c:270: warning: implicit declaration of function ‘open’ scripts/basic/fixdep.c:270: error: ‘O_RDONLY’ undeclared (first use in this function) scripts/basic/fixdep.c:272: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:272: error: ‘stderr’ undeclared (first use in this function) scripts/basic/fixdep.c:274: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c:276: warning: implicit declaration of function ‘fstat’ scripts/basic/fixdep.c:278: warning: implicit declaration of function ‘close’ scripts/basic/fixdep.c:281: warning: implicit declaration of function ‘mmap’ scripts/basic/fixdep.c:281: error: ‘PROT_READ’ undeclared (first use in this function) scripts/basic/fixdep.c:281: error: ‘MAP_PRIVATE’ undeclared (first use in this function) scripts/basic/fixdep.c:281: warning: assignment makes pointer from integer without a cast scripts/basic/fixdep.c:288: error: too many arguments to function ‘parse_config_file’ scripts/basic/fixdep.c:290: warning: implicit declaration of function ‘munmap’ scripts/basic/fixdep.c:266: warning: unused variable ‘st’ scripts/basic/fixdep.c: At top level: scripts/basic/fixdep.c:295: error: expected declaration specifiers or ‘...’ before ‘size_t’ scripts/basic/fixdep.c: In function ‘parse_dep_file’: scripts/basic/fixdep.c:298: error: ‘len’ undeclared (first use in this function) scripts/basic/fixdep.c:300: error: ‘PATH_MAX’ undeclared (first use in this function) scripts/basic/fixdep.c:302: warning: implicit declaration of function ‘strchr’ scripts/basic/fixdep.c:302: warning: incompatible implicit declaration of built-in function ‘strchr’ scripts/basic/fixdep.c:304: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:304: error: ‘stderr’ undeclared (first use in this function) scripts/basic/fixdep.c:305: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c:307: warning: incompatible implicit declaration of built-in function ‘memcpy’ scripts/basic/fixdep.c:308: warning: incompatible implicit declaration of built-in function ‘printf’ scripts/basic/fixdep.c:300: warning: unused variable ‘s’ scripts/basic/fixdep.c: In function ‘print_deps’: scripts/basic/fixdep.c:337: error: storage size of ‘st’ isn’t known scripts/basic/fixdep.c:341: error: ‘O_RDONLY’ undeclared (first use in this function) scripts/basic/fixdep.c:343: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:343: error: ‘stderr’ undeclared (first use in this function) scripts/basic/fixdep.c:345: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c:349: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:353: error: ‘PROT_READ’ undeclared (first use in this function) scripts/basic/fixdep.c:353: error: ‘MAP_PRIVATE’ undeclared (first use in this function) scripts/basic/fixdep.c:353: warning: assignment makes pointer from integer without a cast scripts/basic/fixdep.c:360: error: too many arguments to function ‘parse_dep_file’ scripts/basic/fixdep.c:337: warning: unused variable ‘st’ scripts/basic/fixdep.c: In function ‘traps’: scripts/basic/fixdep.c:372: warning: incompatible implicit declaration of built-in function ‘fprintf’ scripts/basic/fixdep.c:372: error: ‘stderr’ undeclared (first use in this function) scripts/basic/fixdep.c:374: warning: incompatible implicit declaration of built-in function ‘exit’ scripts/basic/fixdep.c: At top level: scripts/basic/fixdep.c:393: fatal error: opening dependency file scripts/basic/.fixdep.d: Permission denied compilation terminated. make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2 Някой може ли да ми каже защо се получава така и какво може да се направи по въпроса. Предварително благодаря! Титла: Kernel Публикувано от: Hapkoc в May 07, 2007, 16:49 1. Кажи какво се опитваш да направиш и с каква дистрибуция/версия си. Току виж има по-лесен начин да си свършиш работата от това да компилираш ново ядро.
2. Грешките ги дава, т.к. не се намираш в директория, съдържаща изходния код на ядрото. Тези две директории (както подсказват имената им) съдържат header файловете за ядрото, но не и самия му код. Пак ще трябва да кажеш с каква дистрибуция си, за може да ти се помогне качествено, а именно как и какво да инсталираш за да имаш кода на ядрото и в някои случаи дори как да го компилираш. Иначе винаги можеш да дръпнеш последното ядро от kernel.org, да го разпакетираш в /usr/src и да си го компилираш (какво предполагам биха те посъветвали някои), но има разни тънки моменти с разните дистрибуции и пакетни системи, поради които аз лично не ти препоръчвам този начин. Титла: Kernel Публикувано от: tolostoi в May 07, 2007, 16:49 А защо се налага компилиране (в Убунту предполагам)кои са тези модули?
Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 16:56 Ами дистрибуцията е убунто 6.10. Имам GSM, който се опитвам да свържа с компа си посредством USB и прочетох в една статия, че трябва да имам модул cdc_acm. Това е цялата история
Титла: Kernel Публикувано от: tvkkk в May 07, 2007, 16:58 Така като гледам, вероятно дистрибуцията е Ubuntu.
Както казаха по-горе имах само хедърите, но не и самия изходен код на ядрото. Виж това how-to http://www.howtoforge.com/kernel_compilation_ubuntu Описаното става както за ubuntu, така и за debian. Аз лично така съм си компилирал на моя debian etch ядро 2.6.21 (заради специфичния хардуер който ползвам и поддържат в най-новото ядро) Титла: Kernel Публикувано от: phantomlord в May 07, 2007, 17:26 Аз така като гледам, май не си свалил сорса на кернела. Той се намира в: /usr/src/linux-source-2.6.xyz и съответно трябва да влезеш там за да изпълниш make menuconfig.
Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 17:30
Титла: Kernel Публикувано от: Lord Bad в May 07, 2007, 18:21 Хехе. Първо трябва да го свалиш тоя код преди да търсиш папката му. Пусни си synaptic и направи там едно търсене за ключова дума kernel. Предполагам ще се ориентираш кой пакет да инсталираш. Иначе винаги може да си дръпнеш и vanilla kernel от kernel.org и да си играеш с него...
Титла: Kernel Публикувано от: phantomlord в May 07, 2007, 18:31 И момче, мисли малко повече. 2.6.xyz означава, че ми е неисзвестно какво ти е ядрото. Ако е 2.6.17, значи ти трябва linux-source-2.6.17.
sudo apt-get install linux-source-2.6.17 cd /usr/src tar jxvf linux-source-2.6.17.tar.bz2 cd linux-source-2.6.17 make menuconfig Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 19:33 Направих всичко но резултатът е пак същият:
make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2 Какво може да съм объркал? Титла: Kernel Публикувано от: Gaara в May 07, 2007, 20:55 А какво си направил?
Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 20:56 Изпълних командите:
Титла: Kernel Публикувано от: Gaara в May 07, 2007, 21:07
Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 21:22 Пак се появи проблем -
bashi@26:~$ sudo apt-get install linux-source-$(uname -r) Четене на списъците с пакети... Готово Изграждане на дървото със зависимости Reading state information... Готово E: Неуспех при намирането на пакет linux-source-2.6.17-10-generic Титла: Kernel Публикувано от: alabal в May 07, 2007, 21:26 Ако си с ядро по подразбиране, братко, cdc-acm го има със сигурност като модул, защото се използва не само от gsm-и, но и от pda устройства.
За целта: # modprobe -l | grep cdc ако има cdc-acm.ko просто даваш: # modprobe cdc-acm Толкова. Титла: Kernel Публикувано от: Gaara в May 07, 2007, 21:30
A този пост май не си му обърнал внимание? Титла: Kernel Публикувано от: bashi1 в May 07, 2007, 21:48 Много благодаря на всички за помоща и отделеното време! Работата стана без да се компилира ядрато и сега всичко работи на 6
![]() |