Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: bashi1 в May 07, 2007, 16:17



Титла: 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
Примерен код

bash: cd: /usr/src/linux-source-2.6.xyz: No such file or directory


Титла: 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
Изпълних командите:
Примерен код
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
Публикувано от: Gaara в May 07, 2007, 21:07
Примерен код

apt-get install linux-source-$(uname -r)
cd /usr/src
tar jxvf linux-source-$(uname -r)
cd linux-source-$(uname -r)
make menuconfig


Титла: 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
Цитат (tvkkk @ Май 07 2007,17:58)
http://www.howtoforge.com/kernel_compilation_ubuntu

A този пост май не си му обърнал внимание?


Титла: Kernel
Публикувано от: bashi1 в May 07, 2007, 21:48
Много благодаря на всички за помоща и отделеното време! Работата стана без да се компилира ядрато и сега всичко работи на 6 :)