Автор Тема: Slackware kernel info  (Прочетена 5376 пъти)

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Slackware kernel info
« -: Jun 25, 2004, 12:24 »
Въпроса ми е следния:
В Slackware има два пакета които се казват съответно kernel-headers и kernel-source. Знам че когато се инсталира компилирания kernel (kernel-ide-x.x.x)от дистрибуцията, пакета kernel-headers е необходим за (пре)компилиране на различни приложения търсещи файлове от там, но ... kernel-headers слага фаиловете в /usr/include/linux/, докато kernel-source (където също ги има) стои в /usr/src/linux-$version.$of.$kernel и тъй като единия пакет носи нужните *.h файлове не виждам причина да трябва да инсталирам и двата (+/- 4MB) но дали make и gcc ще се сетят да търсят в /usr/src/linux/include/linux/ вместо в /usr/include/linux/. Предполагам че това може да се даде като опция в някой conf файл ( кой ? ).
Знам че символни връзки от типа на:
ln -s /usr/src/linux/include/linux/ /usr/include/linux/
ln -s /usr/src/linux/ /usr/src/linux-x.x.x/ (което си се прави от install скрипта на kernel-source )
ще са достатъчни за да работя нормално, но ми се иска ако мога да го подам като default опция. Така че ако някой знае кой е нужния файл, ще съм благодарен ако го каже. Това е  '<img'>

Поздрави
Н. Тенев
Активен

  • Гост
Slackware kernel info
« Отговор #1 -: Jun 25, 2004, 14:52 »
Макар да не разбрах много какво имаш точно предвид под default.
Ако компилираш от команден ред може да ги сложиш с опция -I <дир>
Ако искаш може и в Makefile да ги сложиш като опция на компилатора.
Активен

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Slackware kernel info
« Отговор #2 -: Jun 25, 2004, 15:02 »
tuxbg 10x  '<img'> . Наистина с това default звучи тъпо. Идеята ми беше:
 има ли conf файл в който да му задам да търси в /usr/src/linux/include/linux/ без да ми се налага всеки (първи) път да го добавям в маке файла или да го подавам като -i опция ... не че ще ми е проблем ... интересно ми е '<img'>

Поздрави
Н. Тенев
Активен

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Slackware kernel info
« Отговор #3 -: Jun 25, 2004, 15:07 »
Или казано още по-ясно (надявам се)

gcc и make имат ли някакви conf файлове ?
Активен

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
Slackware kernel info
« Отговор #4 -: Jun 25, 2004, 15:31 »
Здравей едните файлове са тези с който е компилирана системата тоест kernel-headers и по прицнип трябва да се ползват за компилация на програми другите са от в самия кърнел(kernel-source). И тъй като може да се различава кърнел сорс хедърите с тези който са в kernel-headers по добре да си ги инсталираш. Така имаше някакви мисли по този въпрос на Линус Торвалдс(извинете ме ако му бъркам нещо името) и той препоръчва да се пазат хеадърите с който е компилирана glibc библиотеката тоест в нашия случай преполагам kernel-headers.

Ако нещо греша моля да ме поправите.

П.П. : Това за Линус го четох докато си правих Linux from scratch. Така че преполагам че е достоверно.
Активен

Поздрави,
Филип Бонев

  • Гост
Slackware kernel info
« Отговор #5 -: Jun 25, 2004, 15:33 »
Имат ама те не ти тряба да пипаш там за сега.
Слагай си го в Makefile, като опция на компилатора и ползвай make.
Активен

dafo

  • Напреднали
  • *****
  • Публикации: 293
  • Distribution: Fedora
  • Window Manager: KDE
    • Профил
Slackware kernel info
« Отговор #6 -: Jun 25, 2004, 15:57 »
Някой софтуер иска повече от сорса - например драйверите на nVIDIA. В по-голяма част от случаите само kernel-headers са достатъчни. И връзки също вършат работа - /usr/include/linux -> /път_до_kernel_source/linux/include/linux и /usr/include/asm -> /път_до_kernel_source/linux/include/asm/подходяща_платформа_asm
Пиша леко по памет, защото съм ги разкарал и двата пакета, поради липса на дисково пространство. За ядро 2.6.x ти трябва и /usr/include/asm-generic връзка.
Активен

ntenev

  • Напреднали
  • *****
  • Публикации: 125
    • Профил
Slackware kernel info
« Отговор #7 -: Jun 25, 2004, 16:25 »
tuxbg 10х отново '<img'> ... ама сега вече ме провокираш и за въпроса "Защо да не пипам ?" Ако имаш някакъв линк с полезна информация, може да ми го дадеш, ако искаш, да зачета за да не тормозя форума с подобни питания '<img'>

philip_bonev - Принципно си прав. Но в Slackware нешщата са подредени по следния начин (KB валидни за 2.4.26):

3 пакета
kernel-headers  -   4700 KB
kernel-ide         -   1880 KB
kernel-modules  - 11140 KB
                          ------------
                           17720 KB
1 пакет
kernel-source   - 171380 KB

Идеята каква е:
С първите 3 пакета получаваш работещ кернел + модули + *.h файловете необходими за компилиране на други приложения. Добър вариант с недостатъка че
1. vmlinuz (bzImage) е компилирано за i486 процесор
2. vmlinuz (bzImage) е компилирано за 1 процесор ( без multi processor support)
3. ако ти трабва модул, който не е в kernel-modules - увисваш (истината е че досега не ми се е случвало, но това не е причина да го пренебрегвам като възможност).

Ако имаш kernel-source, то имаш пълния код на ядрото + config файла с опциите за получаване при компилация именно на пакетите kernel-ide и kernel-modules. *.h файловете които получаваш със kernel-headers са абсолютно идентични със *.h файловете които получаваш със kernel-source (всъщност те са взети именно от него) със разликата че в единия случай се слагат в /usr/include/linux/ (при kernel-headers) а в другия - /usr/src/linux-x.x.x/include/linux/ (при kernel-source). Това е именно за да се спази съвета на Линус да се пазят *.h файловете kernel-а (glibc библиотеките са друг случай - отделни пакети и са по-скоро свързани с gcc компилатора отколкото с kernel-а)

При мен нещата изхождат от следната постановка:
До едно известно време използвах slackcheck на Георги Чорбаджийски за обновяване на пакети, използвайки само готовите прекомпилирани tgz файлове на slackware-current и не съм имал никакви проблеми (за да не останат някои хора с грешно впечатление - slackcheck само обновява съществуващите пакети + няколко по-специфични проверки, но пак си трябва четене, ако има по-сериозни промени защото при slackware няма зависимости и автоматични инсталации на такива). Сега обаче ще имам двупроцесорна PIII машина и затова ще ми трябват 3-4 нови опции в ядрото, които немогат да са модули. Така че че ми трябват пакетите:
kernel-source (за да мога да ги включвам и прекомпилирам)
и (евентуално)
kernel-modules (за да си спестя make modules и make modules install (то не че печеля кой знае какво '<img'> ) )

И след като ще имам *.h файловете от kernel-source не виждам защо да ги слагам още един път и със kernel-headers (ех как ми се свидят тези 4,7 MB '<img'> ).

Както казах и по-горе това не е точно проблем и решения поне 2 (поне за толкова се сещам). Мога да направя символни връзки, мога и да си имам kernel-headers, пък kernel-source да го тегля, компилирам и след това - изтривам. Така де ... не компилирам всеки ден '<img'> Може и (както каза tuxbg) със опции към configure, make или gcc. Аз пък искам да е със опция в conf файл, да го направя един път и после да обновявам само модули и source (+ компилиране) когато ми е необходимо, но да не се сещам за това когато компилирам някакви други програми ... глезотия общо взето '<img'>

Поздрави
Н. Тенев
Активен

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
Slackware kernel info
« Отговор #8 -: Jun 25, 2004, 20:13 »
Като говорех за това да се инсталират хедърите имах предвид този пост(някъде) на Линус Торвалдс:
Цитат
I would suggest that people who compile new kernels should:

 - not have a single symbolic link in sight (except the one that the
   kernel build itself sets up, namely the “linux/include/asm”
   symlink that is only used for the internal kernel compile itself)

And yes, this is what I do. My /usr/src/linux still has the old 2.2.13
header files, even though I haven't run a 2.2.13 kernel in a _loong_
time. But those headers were what Glibc was compiled against, so those
headers are what matches the library object files.

And this is actually what has been the suggested environment for at
least the last five years. I don't know why the symlink business keeps
on living on, like a bad zombie. Pretty much every distribution still
has that broken symlink, and people still remember that the linux
sources should go into “/usr/src/linux” even though that hasn't
been true in a _loong_ time.


Имаше и малко коментари след това но ги орязах, за пълно разбиране имаго в linuxfromscratch 5.1.

Малко се разрових и го намерих. До сега бях със слак и съм запознат с дистрибуцията. Мисълта е че с каквито хедъри е компилиран glibc  с такива трябва да се копилира и останалото. А пък ако си инсталнеш 2.6.7 примерно и искаш да добавиш външен драйвер той си намира кернела и каквото му тряба от сим линк-а в /lib/modules/2.x.x/build

Мисля, че щом Линус Торвалдс казва, че така е по правилно - би трябвало да е '<img'>
Все пак човека е написал основата.
Активен

Поздрави,
Филип Бонев

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Slackware 10.2 kernel problem
Настройка на програми
dim3r 6 3777 Последна публикация Oct 02, 2005, 10:59
от dim3r
VPN проблем Slackware 10.2, kernel 2.6.15.1
Настройка на програми
windproof 0 2562 Последна публикация Jan 29, 2006, 23:13
от windproof
Slackware kernel compile help
Настройка на програми
PsYhLo 11 4993 Последна публикация Aug 12, 2006, 17:15
от PsYhLo
Slackware + kernel 2.6.27 ?
Настройка на програми
SK0RP10N 13 6114 Последна публикация Oct 15, 2008, 00:11
от neter
slackware-14 x86 kernel panik
Хардуерни и софтуерни проблеми
purko 0 2586 Последна публикация Aug 25, 2013, 16:57
от purko