Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: компиляция ядра  (Прочитано 53939 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Master_005

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: компиляция ядра
« Ответ #45 : 10 Августа 2007, 00:52:05 »
Если речь идет об vmware, а не реальном железе, то скорей всего не критично, тут уже уже лучше vmware tools установить.
Пасиба, я в курсе :coolsmiley: Там вообще об nvidia речи нет.
Цитировать
А вообще дрова можно очень просто установить через менеджер проприетарных драйверов, где-то в настройках системы (в менюшках гнома) есть такая штука.
Ubuntu гоняю не только под VMware, но и на реальном десктопе.
Спасибо, будем искать в менюшках  :)
Предполагаю, что с ядром идут некие дефолтные дрова nvidia, которые впрочем и сами неправильно названы. Ну да бог с ними, надеюсь, со временем ошибка исправится.

P.S. Но вот с GRUB'ом они явно накосячили :tickedoff:  Нафига эти uuid...  ???

Оффлайн Stomp

  • Активист
  • *
  • Сообщений: 343
    • Просмотр профиля
Re: компиляция ядра
« Ответ #46 : 16 Августа 2007, 14:29:46 »
Да, мне вот тоже интересно нафига эти uuid  и каков механизм вычленения из этого uuid каких-то данных?

А пока нештатная ситуация при сборке ядра, вернее при наложении патчей:

Ядро у меня в виде тарбола:

linux-2.6.22.1.tar.bz2

Скачал 2 патча:

patch-2.6.22.2.bz2 
patch-2.6.22.3.bz2

Начинаю накладывать на ядро:

patch -p1 -i patch-2.6.22.2

Получаю:
 
Reversed (or previously applied) patch detected!  Assume -R? [n]

Что с этим делать???

Update: с этим разобрался, таким образом

patch -p1 -i patch-2.6.22.1 -R
patch -p1 -i patch-2.6.22.3

т.е patch-2.6.22.2 даже не понадобился...


нормально.
попробуй добавить в переменную CFLAGS параметр -pipe, это сократит число временных файлов. или вынеси исходники в другое место
а где в убунте это добавлять? а то хотелось бы такие флаги как в генту: 

CFLAGS="-O2 -march=athlon-xp -pipe"
CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

у меня с ними в генту ядро за 15 минут собиралось, а не за час как убунте...

PS. И еще как сделать, чтобы  надписи при загрузке ядра были разноцветными (как в Gentoo)?
« Последнее редактирование: 16 Августа 2007, 16:14:49 от Stomp »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: компиляция ядра
« Ответ #47 : 16 Августа 2007, 22:03:20 »
$ grep FLAGS /usr/src/linux/Makefile
$ export CFLAGS="-O2 -march=athlon-xp -pipe"
$ export CXXFLAGS="${CFLAGS}"
$ export MAKEOPTS="-j2"

Оффлайн ia

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: компиляция ядра
« Ответ #48 : 01 Июля 2008, 23:42:02 »
Здравствуйте. Такой вопрос по сабжу.
Как известно, с определённой версии ядра практически все устройства для хранения данных стали именоваться /dev/sdX, независимо от того, какой интерфейс они используют физически. какая именно опция/модуль в конфиге ядра за это отвечает? понятно, что это в области IDE/SATA/PATA/SCSI, но нужно точное название. Пожалуйста, подскажите, кто чем может. И инет вроде перерыл, и гугл, и опции казалось бы все, что связаны с IDE/SATA/PATA/SCSI повключал - всё равно диски видит как hdX.  :-\
...may the Source be with you...

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #49 : 04 Июля 2008, 00:11:25 »
Здравствуйте. Такой вопрос по сабжу.
Как известно, с определённой версии ядра практически все устройства для хранения данных стали именоваться /dev/sdX, независимо от того, какой интерфейс они используют физически. какая именно опция/модуль в конфиге ядра за это отвечает?
В своё время тоже искал инфу об этом, вобщем тебе нужно отключить Device drivers-> ATA/ATAPI/MFM/RLL support и включить Device drivers->  Serial ATA (prod) and Parallel ATA (experimental) drivers (желательно не модулем), потом зайти в этот раздел и включить поддержку своего чипсета/контроллера(если не уверен,какой именно нужен - лучше включи все, и тоже в ядро,не модулем. Потом при загрузке в логах ядра будет видно какой у тебя контроллер, и при следующей компиляции лишнее можно поотключать)
И ещё, если вдруг не включено, то нужно включить в разделе Device drivers-> SCSI device support опции SCSI disk support, SCSI CDROM support и  SCSI generic support (насчёт этого не уверен, но непомешает)
« Последнее редактирование: 04 Июля 2008, 00:15:43 от alex_pa »

Home PC: Athlon X2 7750BE/AMD780G/2Gb/nVidia 8800GT /w Ubuntu 11.10
Home 'Server': Atom 425/1Gb RAM /w Ubuntu Server 10.04 LTS

Оффлайн ia

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: компиляция ядра
« Ответ #50 : 09 Июля 2008, 16:57:47 »
2 alex_pa: большое спасибо - всё получилось.

Но тут возник другой вопрос - как известно, в Ubuntu, в пакете linux-source, содержатся исходники актуальной (в рамках дистрибутива) версии ядра с дополнительными патчами от разработчиков Ubuntu. Подскажите пожалуйста, можно ли как-то сделать так:  скачать с kernel.org последнее стабильное ванильное ядро и пропатчить его убунтовскими патчами? Если да, то, собственно вопрос - где эти самые убунтовские патчи взять в виде исходников отдельными файлами? Я правильно понимаю, что все пакеты вида linux-patch-* и kernel-patch-* - и есть все те патчи, с которыми ядро лежит в linux-source?
И потом, кто нибудь из присутствующих так делал (т.е. собирал ли ванильное ядро с убунтовскими патчами)?
...may the Source be with you...

Оффлайн unixnik

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: компиляция ядра
« Ответ #51 : 21 Августа 2008, 23:42:49 »
При выполнении команды kernel_image kernel_headers выводит нет команды. Следовал инструкции http://linux.xlibs.net/2006/11/20/howto-compile-a-kernel-the-ubuntu-way/      Что то не то
Fujitsu-SIEMENS AMD Ubuntu 8.04 amd64

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #52 : 21 Августа 2008, 23:56:16 »
При выполнении команды kernel_image kernel_headers выводит нет команды. Следовал инструкции http://linux.xlibs.net/2006/11/20/howto-compile-a-kernel-the-ubuntu-way/      Что то не то
Нужно не kernel_image kernel_headers а linux-image-версия_ядра и linux-headers-версия_ядра (напр. так: linux-image-2.6.24-21-386 linux-headers-2.6.24-21-386) и наверно имеется ввиду apt-get install linux-image-2.6.24-21-386 linux-headers-2.6.24-21-386, если просто так вводить - ничего не получится!
« Последнее редактирование: 21 Августа 2008, 23:58:18 от alex_pa »

Home PC: Athlon X2 7750BE/AMD780G/2Gb/nVidia 8800GT /w Ubuntu 11.10
Home 'Server': Atom 425/1Gb RAM /w Ubuntu Server 10.04 LTS

Оффлайн SauronTheDark

  • Активист
  • *
  • Сообщений: 674
    • Просмотр профиля
Re: компиляция ядра
« Ответ #53 : 22 Августа 2008, 02:47:20 »
Вот честно говоря сколько ни пробовал в Убунте сконфигурировать своё ядро неизбежно возращался к Generic, помоему соберать ядра это всё же скорее Gentoo way, в Убунте ничего особо хорошего из этого неполучается обычно, очень уж задалбывает гемморой потом с его обновлениями

Оффлайн Strangelet

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: компиляция ядра
« Ответ #54 : 26 Сентября 2008, 13:41:21 »
Привет,всем! Нехочу начинать снова-новичек и т.д. Возникла необходимость обновить ядро (Ubuntu 8.04.1 x64) c large pages support. Комп с линуксом не подключен к сети и скорей всего не будет в будущем, поэтому немогу скачать необходимые пакеты (могу со второго компа из- под Винды и потом перенести на Линукс-комп). Я скачал linux-2.6.26.5-tar.bz2, а также один товарищ переслал мне config для компиляции.Есть л и возможность произвести данную процедуру. 

Оффлайн srid

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: компиляция ядра
« Ответ #55 : 09 Ноября 2008, 23:36:05 »
При выполнении команды kernel_image kernel_headers выводит нет команды. Следовал инструкции http://linux.xlibs.net/2006/11/20/howto-compile-a-kernel-the-ubuntu-way/      Что то не то

в статье fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
читай одной строкой, а не двумя

Оффлайн Euripus

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: компиляция ядра
« Ответ #56 : 19 Ноября 2008, 00:33:03 »
Доброго времени суток!
Не хотелось начинать новой темы поэтому задаю вопрос в этой.
В общем проблема такова: решил обновить ядро скачал последнюю версию
с  ftp.kernel.org (2.6.27.6) сконфигурировал и скомпилировал как описано в этой теме
после запуска под новым ядром решил переустановить драйвера для видеокарты (Nvidia)
при запуске компиляции драйвера получил сообщение что файл : "/lib/modules/2.6.27.6/build/include/linux/version.h" не найден и соответственно драйвер не установился :(
пакет linux-headers-2.6.27.6_686_i386.deb установлен.
Тем более странно что для старого ядра(2.6.24-16-generic) этот файл естью.
Не подскажете что нужно сделать?
« Последнее редактирование: 19 Ноября 2008, 00:37:58 от Euripus »

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: компиляция ядра
« Ответ #57 : 19 Ноября 2008, 00:47:00 »
Могу сказать, как делаю я.
Скачиваю исходники ядра в, например, /usr/src/linux-2.6.27.6.
компилю там исходники с помощью make.
Устанавливаю ядро make install и модули make modules_install
В каталоге /usr/src/ есть символическая ссылка linux, перенаправляю её на /usr/src/linux-2.6.27.6
Далее беру установщик драйвера nvidia, который у меня уже установлен, и устанавливаю только модуль ядра nvidia.ko с помощью команды
sh NVIDIA-номер_драйвера-pkg2.run -k 2.6.27.6 -KОпция -k с номером версия ядра, означает, что будет установлен драйвер для версии 2.6.27.6
Опция -K означает, что будет установлен только модуль ядра.
При выполнении указанной выше команды установщик скомпилит модуль ядра nvidia.ko и положит его куда-то в дебри /lib/modules/2.6.27.6/...
Перезагружаюсь с новым ядром и - вуаля! - все работает.
Уже несколько раз так делал, работает как часы  :coolsmiley:

P.S. Не забыть перед перезагрузкой сделать update-initramfs с опциями, если ядро компилилось с поддержкой initramfs
« Последнее редактирование: 19 Ноября 2008, 00:51:09 от Saha »

Оффлайн Euripus

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: компиляция ядра
« Ответ #58 : 19 Ноября 2008, 01:10:57 »
пробовал так
sh nvidia-linux.run -k 2.6.27.6 -K
не получилось :(
Вот что в логе пишет

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Wed Nov 19 00:03:15 2008
installer version: 1.0.7

option status:
  license pre-accepted    : false
  update                  : false
  force update            : false
  expert                  : false
  uninstall               : false
  driver info             : false
  precompiled interfaces  : false
  no ncurses color        : false
  query latest version    : false
  OpenGL header files     : true
  no questions            : false
  silent                  : false
  no recursion            : false
  no backup               : false
  kernel module only      : true
  sanity                  : false
  add this kernel         : false
  no runlevel check       : false
  no network              : false
  no ABI note             : false
  no RPMs                 : false
  no kernel module        : false
  force SELinux           : default
  no X server check       : false
  no cc version check     : true
  force tls               : (not specified)
  X install prefix        : (not specified)
  X library install path  : (not specified)
  X module install path   : (not specified)
  OpenGL install prefix   : (not specified)
  OpenGL install libdir   : (not specified)
  utility install prefix  : (not specified)
  utility install libdir  : (not specified)
  doc install prefix      : (not specified)
  kernel name             : 2.6.27.6
  kernel include path     : (not specified)
  kernel source path      : (not specified)
  kernel output path      : (not specified)
  kernel install path     : (not specified)
  proc mount point        : /proc
  ui                      : (not specified)
  tmpdir                  : /tmp
  ftp mirror              : ftp://download.nvidia.com
  RPM file list           : (not specified)

Using: nvidia-installer ncurses user interface
-> Only installing a kernel module for a non-running kernel; skipping the "is
   an X server running?" test.
-> Only installing a kernel module for a non-running kernel; skipping the "is
   an NVIDIA kernel module loaded?" test.
-> License accepted.
-> Installing NVIDIA driver version 177.61.02.
-> Not probing for precompiled kernel interfaces.
-> Performing CC sanity check with CC="cc".
ERROR: The kernel header file
       '/lib/modules/2.6.27.6/build/include/linux/version.h' does not exist.
       The most likely reason for this is that the kernel source files in
       '/lib/modules/2.6.27.6/build' have not been configured.

Возникает вопрос как папку build проконфигурировать. Возможно нужен какой-нибудь
 флаг при компиляции передать но чтение make help ситуацию не прояснило
компилировал такой командой: make-kpkg -initrd --revision=686 kernel_image kernel_headers modules_image

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: компиляция ядра
« Ответ #59 : 19 Ноября 2008, 09:48:06 »
хм, а просто скомпилировать при помощи make?
А затем установить модули при помощи make modules_install
А то твой способ первый раз вижу, поэтому не могу ничего о нем сказать  :)
А по сути, make modules_install просто копирует все необходимые файлы в /lib/modules/2.6.27.6/, в том числе и этот твой злосчастный /lib/modules/2.6.27.6/build/include/linux/version.h
Так что как первый шаг рекомендую:
перейти в директорию с откомпиленными исходниками ядра и сделать make modules_install, а потом посмотреть, появился ли файл /lib/modules/2.6.27.6/build/include/linux/version.h

 

Страница сгенерирована за 0.031 секунд. Запросов: 23.