Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Компиляция ядра


Автор: Tror 10.4.2006, 12:27
Доброго времени суток всем
smile
Сделал таки это.
Но после компиляции заглянул в /boot
и увидел, что размер каталога kernel
равен размеру kernel.old.
В чем причина, ведь я удалил из конфигурационного
файла почти половину smile

Автор: bilbobagginz 10.4.2006, 12:39
несколько причин:
  • часто в дистрибутивах файлы - /boot/kernel, /boot/kernel.old - это символьные ссылки на настоящие файлы.
  • если ты удалил только модули не встроенные в ядро, то на величину ядра это не воздействует
  • если ты в ручную собирал ядро, то может быть ты еще не скопировал новые данные в папку /boot
я немного не понял, что ты имеешь в виду под словом 'каталог' ?
файл или папка ?

Автор: Tror 10.4.2006, 12:53
Цитата(bilbobagginz @ 10.4.2006, 12:39 Найти цитируемый пост)
я немного не понял, что ты имеешь в виду под словом 'каталог' ?
файл или папка ?

папку

а ядро я собирал как хэндбуке описано
Код

1. cd /sys/prof
2. cp GENERIC MY_KERNEL
3. ee MY_KERNEL(редактирование)
4. /usr/sbin/config MY_KERNEL
5. cd ../compile/MY_KERNEL
6. meke depend; make; make install


Автор: bilbobagginz 13.4.2006, 02:28
да.... коммуникация штука тяжелая.
во-первых: было бы неплохо указать весию (да и вид) ОС. я, напр., предположил (ошибочно), что ты в линухе.
во-вторых: все пункты остаются в силе.
в-третьих: В ФриБСД большинство дров - собираются отдельно. ( как модули, lkm-ы )
в-чевертых: теперь объясни мне, тупому, почему ты использовал 'старый' метод сборки ядра а не новый:
Код

# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL


?
у тебя система 4.x или 3.x ?


пока.

Автор: Tror 13.4.2006, 12:15
Посыпаю голову пеплом smile

у меня FreeBSD 5.3

Цитата(bilbobagginz @ 13.4.2006, 02:28 Найти цитируемый пост)
теперь объясни мне, тупому, почему ты использовал 'старый' метод сборки ядра а не новый:


видать невнимательно хэндбук читал

Автор: bilbobagginz 13.4.2006, 15:40
в догонку.

если не править /etc/make.conf перед сборкой, все модули собираются по умолчанию все равно.
есть переменная там, в которую можно вписАть только модули к-рые нужно скомпилировать,
какая переменная не помню но в хендбуке написано все.

Автор: Wumber 13.4.2006, 20:31
bilbobagginz, точно.
Код
     MODULES_OVERRIDE
                   (str) Set to a list of modules to build instead of all of
                   them.

Tror
Вообще можно просто:
Код
cd /usr/src && make kernel KERNCONF=MYKERNEL

Ничего сложного нет совершенно. make kernel в Makefile является просто алиасом для make buildkernel && make installkernel.

Автор: Tror 14.4.2006, 11:32
может я совсем бестолковый, но ничего не получается у меня с этим новым
способом сборки. старый катит, а новый нет.
при запуске
Код

cd /usr/src && make kernel KERNCONF=MYKERNEL

говорит, что нет информации для сборки ядра smile

Автор: Tror 14.4.2006, 12:02
опять здрасьте smile

вот что нашел на сайте фряхи
Цитата

Способ 2. Сборка ядра ''новым'' способом.

  1.

      Перейдите в каталог /usr/src.

      # cd /usr/src

  2.

      Соберите ядро.

      # make buildkernel KERNCONF=MYKERNEL

  3.

      Установите новое ядро.

      # make installkernel KERNCONF=MYKERNEL

    Замечание: Этот способ построения требует наличия всех исходных файлов систем. Если вы только установили исходные файлы ядра, то используйте традиционный способ, как описано выше.

    Подсказка: По умолчанию, при построении ядра, все модули ядра так же будут пересобраны. Если вы хотите обновить ядро быстрее или построить только определённые модули, то вам нужно отредактировать файл /etc/make.conf перед началом процесса сборки ядра:

    MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

    Эта переменная устанавливает список модулей, которые нужно построить вместо построения всех модулей. За другими переменными, которые вы можете посчитать полезными в процессе сборки ядра, обращайтесь к странице справочника make.conf(5).


у меня на компе был старый хэндбук и Замечания и Подсказки там не было.
теперь вроде стало понятней, НО

Цитата

Этот способ построения требует наличия всех исходных файлов систем

это значит, что мне надо устанавливать исходные коды всей системы?

Автор: DENNN 14.4.2006, 15:03
Цитата(Tror @ 14.4.2006, 12:02 Найти цитируемый пост)
это значит, что мне надо устанавливать исходные коды всей системы?

Если система собирается через make buildworld, то нужны ВСЕ исходные коды, как ядра, так и всех служебных программ и утилит, входящих в поставку ОС (не путать с доп. устанавливаемыми пакетами)
В этом случае будет пересобрана ВСЯ система. Перед выполнением этой процедуры очень рекомендуется воспользваоться CVSUP

Если необходимо пересобрать ТОЛЬКО ЯДРО ДЛЯ ТЕКУЩЕЙ УСТАНОВЛЕННОЙ ВЕРСИИ ОС, то достаточно воспользоваться
make depend all install clean (при условии, что исходники есть в системе)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)