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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн Master_005

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: компиляция ядра
« Ответ #15 : 28 Июля 2007, 23:40:00 »
Это нормально, что папка с сорцами в процессе компиляции разрастается до 1,5 Гб и более? Никак не могу скомпилить, у меня нет столько свободного места на корневом разделе (
Очень возможно. По крайней мере мне пришлось менять системный диск на большего размера (6Гиг оказалось мало) - здесь поднимал тему о том, как.

хм...

А может подойдёт http://www.howtoforge.com/kernel_compilation_ubuntu , там просто всё, сам так делал.

Этот-же текст, но на русском, читайте во вложенном файле.
Я тоже делал по этой технологии. Заработало с полпинка.
Спасибо за ссылку на Ubuntu-way, а также за перевод.
Правильно ли я понимаю, что попытки собрать ядро 2.6.22.1 "классическим" способом нужно оставить?
Под "классическим" способом я подразумеваю операции:
cp .config .config-saved
make mrproper
cp .config-saved .config
make bzImage modules
make modules_install install
изменение gruib'a



Оффлайн Stomp

  • Активист
  • *
  • Сообщений: 343
    • Просмотр профиля
Re: компиляция ядра
« Ответ #16 : 29 Июля 2007, 00:14:52 »
я вот, по всей видимости, собирал классическим методом - пока безуспешно.

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #17 : 30 Июля 2007, 23:25:50 »
с ubuntu-way у меня как-то не сложилось, поэтому собирал всё по-старинке и как ни странно - всё работает, главное - знать своё железо и вкомпилировать в ядро драйвера для своих железяк (чипсет, контроллер сата\иде, звук,сеть) и для корневой файловой системы (обязательно! если не юзать initrd) всё остальное можно модулями, если что - ядро само подгрузит нужные модули... главное чтобы смонтировало корень

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

Оффлайн Master_005

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: компиляция ядра
« Ответ #18 : 31 Июля 2007, 12:40:46 »
с ubuntu-way у меня как-то не сложилось
А у меня даже и Ubuntu way не получается  :'(  Блин, теперь Ubuntu вообще не грузится :o Как в новой конфигурации, так и в старой.

Цитата: alex_pa
поэтому собирал всё по-старинке и как ни странно - всё работает, главное - знать своё железо и вкомпилировать в ядро драйвера для своих железяк (чипсет, контроллер сата\иде, звук,сеть) и для корневой файловой системы (обязательно! если не юзать initrd) всё остальное можно модулями, если что - ядро само подгрузит нужные модули... главное чтобы смонтировало корень
Большое подозрение, что именно корень и не получается смонтировать. Как с initrd, так и без.
В recovery mode запускается BusyBox, но посмотреть, в чём дело не могу: ни dmesg, ни df в нём нет :(
Есть подозрение, что опять слетел uuid раздела... Но как теперь это проверить, вообще без понятия.

Народ, help! SOS!

P.S. alex_pa, если не в тягость, расскажи пожалуйста, как собирал ядро в последовательности команд. Спасибо.

Оффлайн fanatcom

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: компиляция ядра
« Ответ #19 : 31 Июля 2007, 20:08:35 »
На самом деле точно сказать, как собирается ядро и что устанавливается во время правки конфигурации невозможно. Лучше поискать в сети мануальчик, по которому многие начинают. Например: http://linux4u.jinr.ru/docs/add04/kernel-2.6-install-2.0.html
Там ты найдешь все пожелания и команды.
Еще почитай эту статью, очень полезная и есть хорошие ссылки там: http://mydebianblog.blogspot.com/2006/12/blog-post_20.html
И не забудь досконально изучить свое железо, что у тебя где, сколько, зачем, по чем и когда ;)
Удачи!!!

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #20 : 31 Июля 2007, 21:54:57 »
Большое подозрение, что именно корень и не получается смонтировать. Как с initrd, так и без.
Судя по твоим предидущим постам - так оно и есть...

В recovery mode запускается BusyBox, но посмотреть, в чём дело не могу: ни dmesg, ни df в нём нет :(
Есть подозрение, что опять слетел uuid раздела... Но как теперь это проверить, вообще без понятия.
за uuid  я и забыл упомянуть! кажется у тебя какраз с этим проблемы, я вспомнил теперь - у меня тоже после того как первый раз ядро пересобрал корень перестал монтироваться...
Это решаемо (я так делал,и мне помогло, правильно это или нет незнаю):
1. Для начала вспомни на какой раздел ты ставил Ubuntu, т.е. его нормальное название типа hda6,
2. В загрузчике выдели тот пункт, который хочешь загружать, нажми "e", потом ещё раз "e" и там где будет вот такое: root=uuid=бла-бла-бла, сделай root=/dev/hda6 (или что там у тебя), всё остальное - нетрогай
3. И надо каким-то образом отредактировать fstab, попробуй сделать это в том же recovery mode, в fstab`е надо заменить все uuid`ы на нормальные имена разделов (/dev/hda6 и т.д)
4. после перезагрузки ядро должно смонтировать фс (если конечно ты скомпилил драйвер для той фс, под которой у тебя корень)

Цитировать
P.S. alex_pa, если не в тягость, расскажи пожалуйста, как собирал ядро в последовательности команд. Спасибо.
я бы непротив... но я не очень то умею доступно излагать... боюсь что несмогу понятно всё обяснить, тебе действительно стоит почитать доки (их много в сети) по этому вопросу...

Сам я на первых порах много раз собирал нерабочие или глюкавые ядра, потом как-то со временем стало получаться, хотя и сейчас бывает забудешь что-то, потом гадаешь, чего это оно глючит :)
« Последнее редактирование: 31 Июля 2007, 22:18:39 от 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

Оффлайн Master_005

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: компиляция ядра
« Ответ #21 : 01 Августа 2007, 16:00:10 »
На самом деле точно сказать, как собирается ядро и что устанавливается во время правки конфигурации невозможно.
Не совсем понятно, может автор имел ввиду не "во время", а "после" правки...
Ждал бурной реакции от участников форума на это утверждение, однако её не последовало ???
Хочу верить, что это всё же не так. Раз есть конфиги и makefile'ы, то узнать, что и куда собирается и устанавливается IMHO можно. Суть в наличии опыта в данном вопросе.
Цитировать
Лучше поискать в сети мануальчик, по которому многие начинают. Например: http://linux4u.jinr.ru/docs/add04/kernel-2.6-install-2.0.html
Там ты найдешь все пожелания и команды.
Еще почитай эту статью, очень полезная и есть хорошие ссылки там: http://mydebianblog.blogspot.com/2006/12/blog-post_20.html
Да, спасибо. К сожалению данные ссылки не новы, и упоминались в форуме не один раз, поэтому я их уже проштудировал. Однако пока не разделяю оптимизм авторов - обновить ядро у меня пока не получается.
Цитировать
И не забудь досконально изучить свое железо, что у тебя где, сколько, зачем, по чем и когда ;)
А что тут изучать?! У меня Ubuntu стоит гостевой в VMware, соответственно, винт SCSI на 30гиг, видео стандартное от VMware, IDE CD-ROM привод, сетевой адаптер также стандартный для VMware, USB-контроллер, что ещё?.. Вроде никаких загибонов типа раритетного ТВ-тюнера или LPT-сканера.
Цитировать
Удачи!!!
Спасибо.

Большое подозрение, что именно корень и не получается смонтировать. Как с initrd, так и без.
Судя по твоим предидущим постам - так оно и есть...

В recovery mode запускается BusyBox, но посмотреть, в чём дело не могу: ни dmesg, ни df в нём нет :(
Есть подозрение, что опять слетел uuid раздела... Но как теперь это проверить, вообще без понятия.
за uuid  я и забыл упомянуть! кажется у тебя какраз с этим проблемы, я вспомнил теперь - у меня тоже после того как первый раз ядро пересобрал корень перестал монтироваться...
Это решаемо (я так делал,и мне помогло, правильно это или нет незнаю):
1. Для начала вспомни на какой раздел ты ставил Ubuntu, т.е. его нормальное название типа hda6,
2. В загрузчике выдели тот пункт, который хочешь загружать, нажми "e", потом ещё раз "e" и там где будет вот такое: root=uuid=бла-бла-бла, сделай root=/dev/hda6 (или что там у тебя), всё остальное - нетрогай
3. И надо каким-то образом отредактировать fstab, попробуй сделать это в том же recovery mode, в fstab`е надо заменить все uuid`ы на нормальные имена разделов (/dev/hda6 и т.д)
4. после перезагрузки ядро должно смонтировать фс (если конечно ты скомпилил драйвер для той фс, под которой у тебя корень)
Да, спасибо, я тоже этот способ в одной из конференций нашёл. После смены root=UUID=... на root=/dev/sda1 в menu.lst таки загрузился под старым ядром.
Однако для того, чтобы это сделать, нужно иметь хоть одну загружаемую конфигурацию, а у меня на тот момент, когда я писал сообщение, не было ни одной  :o Поэтому и паника случилась :) Если бы стёр предыдущий загрузочный раздел с Ubuntu, то и не знаю, как бы выкрутился.
Одно не ясно - нахрена установщик прописывает именно UUID, если не работает ?..

Цитировать
Цитировать
P.S. alex_pa, если не в тягость, расскажи пожалуйста, как собирал ядро в последовательности команд. Спасибо.
я бы непротив... но я не очень то умею доступно излагать... боюсь что несмогу понятно всё обяснить, тебе действительно стоит почитать доки (их много в сети) по этому вопросу...

Сам я на первых порах много раз собирал нерабочие или глюкавые ядра, потом как-то со временем стало получаться, хотя и сейчас бывает забудешь что-то, потом гадаешь, чего это оно глючит :)
Успел вчера прочитать ответ и хотел сказать, что ты остановился как раз на самом интересном, но ты его отредактировал. А меня как раз интересует процесс сборки, начиная с настройки конфигурации по make menuconfig.
Разобрал вчера сгенерёный initrd, который на поверку оказался gzip'ованным архиром ASCII. Что сказать, модуля поддержки ext3 (корневой фс моего раздела) в нём не оказалось, хотя это наверное и верно, т.к. при конфигурации я включил его в ядро. Но почему же тогда не монтируется корень??...

Если есть возможность посмотри пожалуйста мой .config (в аттаче) или подари свой, с которым удалось скомпилить и запустить ядро 2.6.22.

Или может у кого-нибудь сохранился .config девственной Ubuntu 7.04 в версии ядра 2.6.20-16-generic (или 2.6.20-15-generic) ? Поделитесь пожалуйста. Может Acronis поможет...

[вложение удалено Администратором]
« Последнее редактирование: 01 Августа 2007, 16:43:44 от Master_005 »

Оффлайн fanatcom

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: компиляция ядра
« Ответ #22 : 01 Августа 2007, 17:23:28 »
Не совсем понятно, может автор имел ввиду не "во время", а "после" правки...
Ждал бурной реакции от участников форума на это утверждение, однако её не последовало ???
Хочу верить, что это всё же не так. Раз есть конфиги и makefile'ы, то узнать, что и куда собирается и устанавливается IMHO можно. Суть в наличии опыта в данном вопросе.
Я имел ввиду то, что пошагово нельзя сказать, что именно выбирать во время настройки конфига, т.к. конфигурация устройств у каждого своя и набор настроек ядра от версии к версии постоянно меняется.
Цитировать
Да, спасибо. К сожалению данные ссылки не новы, и упоминались в форуме не один раз, поэтому я их уже проштудировал. Однако пока не разделяю оптимизм авторов - обновить ядро у меня пока не получается.
Все основные настройки, которые есть в ядре, в этих мануалах описаны, и немного разобраны. Остальное догоняется самостоятельно, если, конечно, есть голова на плечах. Не совсем понимаю, что именно Вы хотите здесь нового узнать? Как подробно установить ядро 2.6.22.1? Вряд ли Вам кто-то это будет расписывать, а общие реккомендации даны вроде.

Оффлайн Geo

  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: компиляция ядра
« Ответ #23 : 01 Августа 2007, 21:20:46 »
Как думают гуру, если пересобрать ядро используя существующий в /usr/src конфиг, оно получится такое же, как и работающее сейчас, или будет отличаться?
Lenovo S10, UNR 10.04, gnome, COMPAQ Presario, Mint13, mate
Desktop AthlonXP, 1Gb, Mint11, gnome
Desktop Core2Duo, 6Gb, Mint12(PAE), gnome

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #24 : 01 Августа 2007, 22:25:50 »
Цитировать
Успел вчера прочитать ответ и хотел сказать, что ты остановился как раз на самом интересном, но ты его отредактировал. А меня как раз интересует процесс сборки, начиная с настройки конфигурации по make menuconfig.
Разобрал вчера сгенерёный initrd, который на поверку оказался gzip'ованным архиром ASCII. Что сказать, модуля поддержки ext3 (корневой фс моего раздела) в нём не оказалось, хотя это наверное и верно, т.к. при конфигурации я включил его в ядро. Но почему же тогда не монтируется корень??...

Если есть возможность посмотри пожалуйста мой .config (в аттаче) или подари свой, с которым удалось скомпилить и запустить ядро 2.6.22.

Или может у кого-нибудь сохранился .config девственной Ubuntu 7.04 в версии ядра 2.6.20-16-generic (или 2.6.20-15-generic) ? Поделитесь пожалуйста. Может Acronis поможет...

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

я тебе свой конфиг могу скинуть, но у меня патченное ядро + оно заточено под мою (реальную, а не виртуальную) систему... так что с моим конфигом оно точно работать не будет...

оригинальный конфиг 2.6.20-15-generic лежит в каталоге /boot, я ещё его в аттач прилеплю на всякий случай

[вложение удалено Администратором]

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

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: компиляция ядра
« Ответ #25 : 01 Августа 2007, 22:34:48 »
Как думают гуру, если пересобрать ядро используя существующий в /usr/src конфиг, оно получится такое же, как и работающее сейчас, или будет отличаться?

в убунте кажется по-умолчанию вообще исходников там нет и в помине, а если поставить пакет linux-source - то там будет дефолтный конфиг ядра (а не тот,с которым собрано ядро убунты)

для того чтобы использовать конфиг ядра убунты, нужно после распаковки исходников ядра скопировать в /usr/src/linux файл конфига из /boot (чтото типа этого: cp /boot/config-2.6.20-15-generic /usr/src/linux/.config) - так 100% будет точная копия рабочего ядра убунты...

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

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: компиляция ядра
« Ответ #26 : 02 Августа 2007, 10:14:33 »
Не будет. тоесть то что open source то конечно будет. а вот restricted-modules надо будет отдельно собирать.

Оффлайн fanatcom

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: компиляция ядра
« Ответ #27 : 02 Августа 2007, 12:40:57 »
для того чтобы использовать конфиг ядра убунты, нужно после распаковки исходников ядра скопировать в /usr/src/linux файл конфига из /boot (чтото типа этого: cp /boot/config-2.6.20-15-generic /usr/src/linux/.config) - так 100% будет точная копия рабочего ядра убунты...
А еще лучше, чтобы наверняка: cp /boot/config-`uname -r` /usr/src/linux/.configЭто универсальный вариант для любой версии загруженного ядра.
Ну а про рестриктед-модули - это да, собирать их надо дополнительно, те же дрова от NVidia, но про это уже писали.

Оффлайн Master_005

  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Re: компиляция ядра
« Ответ #28 : 03 Августа 2007, 17:31:04 »
Нет, что-то нифига у меня не получается  :-[
Может оно и собирается на реальном железе, но с виртуальной машиной реальные только проблемы.
Надеюсь, не возгневаются на меня админы за начало новой темы.

Оффлайн Stomp

  • Активист
  • *
  • Сообщений: 343
    • Просмотр профиля
Re: компиляция ядра
« Ответ #29 : 04 Августа 2007, 18:40:14 »
Ну вот и я, после неудачной попытки в прошлые выходные, сегодня взял да и пересобрал новое ядро 2.6.22.1. На этот раз удачно. Для сборки использовал всего 3  команды в такой последоательности: make menuconfig, make, make modules_install install (никаких Ubuntu-way). Конфиг полностью взял от  2.6.20-16-generic, только изменил на свой тип процессора и кое-какие новые фишки подключил связаныне с low-latency. Пришлось еще переустановить драйвер для nvidia (консольным способом), хорошо что в этой теме упомянули про restricted-modules, а то бы я щас мог на этом застопориться. VirtualBox тоже не запустился, но зато выдал подсказку в виде команды для того чтобы установился нужный модуль ядра и теперь тоже работает.

Только вот одно непомнятно, в файле Makefile я заменил 4-ю строку (как советуют мануалы) для того чтобы ядро имело свое уникальное имя или точнее "хвостик", но вот ядро не смотря на это, все равно называется 2.6.22.1 без "хвостика".


 

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