З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?
Ядро FreeBSD (...вроде не ламер, а никак...)
Модератор: arachnid
-
Alve
- Сообщения: 12
Ядро FreeBSD
Привет, All! Подскажите, пожалуйста, где найти _работоспособную_ инструкцию по пересборке ядра БСД 5.2.1 или расскажите основные пункты. Не могу найти - в разных книжках всё по разному, рекомендуют разные наборы команд. Хотелось бы конкретнее
Заранее спасибо.
З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?
З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
(Alve @ Среда, 14 Сентября 2005, 10:01) писал(а):Привет, All! Подскажите, пожалуйста, где найти _работоспособную_ инструкцию по пересборке ядра БСД 5.2.1 или расскажите основные пункты. Не могу найти - в разных книжках всё по разному, рекомендуют разные наборы команд. Хотелось бы конкретнееЗаранее спасибо.
З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?
наиболее правильный порядок действий для любой текущей версии описан в ее исходниках - /usr/src/Makefile,
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Ядро FreeBSD
в хендбуке, а также у скромного alv'a в книжке 
а вообще я делаю так:
cvsup -g -L 2 ~/current.sup
cd /usr/src
make buildkernel && make buildworld && shutdown +1
после перехода в single user:
mergemaster -p
make installkernel && make installworld
mergemaster
(я всегда после обновлений пересобираю world - вам это, наверное, не надо -так что хватит только make KERNCONF=YOUR_CONF buildkernel && make KERNCONF=YOUR_CONF installkernel
а вообще я делаю так:
cvsup -g -L 2 ~/current.sup
cd /usr/src
make buildkernel && make buildworld && shutdown +1
после перехода в single user:
mergemaster -p
make installkernel && make installworld
mergemaster
(я всегда после обновлений пересобираю world - вам это, наверное, не надо -так что хватит только make KERNCONF=YOUR_CONF buildkernel && make KERNCONF=YOUR_CONF installkernel
И немедленно выпил.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
2polachok
Вы все совершенно правильно сказали на данный момент времени. Просто на моей памяти весь этот процесс столько раз менялся в мелочах (влекших иногда, однако, фатальные последствия), типа - нужна обязательная перезагрузка с single mode или достаточно перейти в single mode просто, и так далее, что я, подобно папаше Мюллеру из гестапо, перестал верить кому бы то ни было, кроме Makefile текущей ветки исходников (в том числе и самому себе :-))
Впрочем, и Makefile текущих версий - тоже не панацея. ИМХО, один из mergemaster вовсе не обязателен
И еще они забывают предупредить, что после перезагрузки в single mode нужно перемонтировать на r/w все задействуемые файловые системы
/sbin/mount -a
Вы все совершенно правильно сказали на данный момент времени. Просто на моей памяти весь этот процесс столько раз менялся в мелочах (влекших иногда, однако, фатальные последствия), типа - нужна обязательная перезагрузка с single mode или достаточно перейти в single mode просто, и так далее, что я, подобно папаше Мюллеру из гестапо, перестал верить кому бы то ни было, кроме Makefile текущей ветки исходников (в том числе и самому себе :-))
Впрочем, и Makefile текущих версий - тоже не панацея. ИМХО, один из mergemaster вовсе не обязателен
И еще они забывают предупредить, что после перезагрузки в single mode нужно перемонтировать на r/w все задействуемые файловые системы
/sbin/mount -a
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Ядро FreeBSD
да-да, необязателен первый (но рекомендуется - с комментарием типа "все равно хуже не будет, а лучше вполне возможно"), это верно.
/OFFTOP а что это Вы ко мне на вы
?
/OFFTOP а что это Вы ко мне на вы
И немедленно выпил.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
привычка старого бюрократа, исправлюсь :-)
-
Alve
- Сообщения: 12
Re: Ядро FreeBSD
Спасибо. Сегодня попробую. Но тогда спрошу ещё и вот о чём. Точно такая же ситуация с файлом конфигурации - по учебнику(!) не получается собрать ядро, причём конфиг ядра очень мал
. Встречаются в разных источниках шаманские команды, после которых (насколько я понял) можно доп. опции получить. Так ли это?
Понимаете ли, ядро тоже же Red Hat'a собирал без проблем, а с BSD не совладаю - почему-то при всей логичности и стройности системы, сборка ядра выглядит странно. А пересобирать надо, будем сервера переводить на Free...
Понимаете ли, ядро тоже же Red Hat'a собирал без проблем, а с BSD не совладаю - почему-то при всей логичности и стройности системы, сборка ядра выглядит странно. А пересобирать надо, будем сервера переводить на Free...
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
полный список опций - в файле LINT (в NOTES, говорят, не все)
по умолчанию в пятерке LINT'а нет, его нужно создать командой make LINT
но реально обычно требуется наоборот - из ядра GENERIC повычеркивать все ненужные опции (отсутствующие сетевые и скази-карты, например)
по умолчанию в пятерке LINT'а нет, его нужно создать командой make LINT
но реально обычно требуется наоборот - из ядра GENERIC повычеркивать все ненужные опции (отсутствующие сетевые и скази-карты, например)
-
Kotjara
- Сообщения: 307
- ОС: FreeBSD 7.0/Ubuntu 8.04
Re: Ядро FreeBSD
Alve
Процессс проще некуда. Вам нужна просто пересборка ядра? Или всего мира?
I Для ядра
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) /usr/sbin/config MY_CONFIG
4) cd ../compile/MY_CONFIG && make depend&&make&&make install
Всё
II Для мира и ядра (после cvsup-а для исходников системы)
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) cd /usr/src
4) make buildworld (сборка мира)
5) make buildkernel KERNCONF=MY_CONFIG (сборка ядра)
6) make installkernel KERNCONF=MY_CONFIG (установка ядра)
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p
9) перезагрузка, cd /usr/src
10) make installworld
11) Перезагрузка
Всё, процесс окончен.
Процессс проще некуда. Вам нужна просто пересборка ядра? Или всего мира?
I Для ядра
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) /usr/sbin/config MY_CONFIG
4) cd ../compile/MY_CONFIG && make depend&&make&&make install
Всё
II Для мира и ядра (после cvsup-а для исходников системы)
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) cd /usr/src
4) make buildworld (сборка мира)
5) make buildkernel KERNCONF=MY_CONFIG (сборка ядра)
6) make installkernel KERNCONF=MY_CONFIG (установка ядра)
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p
9) перезагрузка, cd /usr/src
10) make installworld
11) Перезагрузка
Всё, процесс окончен.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
да в общем-то помнить и не обязательно (я тоже перестал запоминать), просто поглядеть в /usr/src/Makefile, там точная последовательность действий именно для той версии, к которой относится /usr/src
PS В случае расхождения с др. источниками - верить только /usr/src/Makefil
-
Marduk
- Сообщения: 247
Re: Ядро FreeBSD
Kotjara писал(а): ↑22.09.2005 09:30Alve
Процессс проще некуда. Вам нужна просто пересборка ядра? Или всего мира?
I Для ядра
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) /usr/sbin/config MY_CONFIG
4) cd ../compile/MY_CONFIG && make depend&&make&&make install
Всё
II Для мира и ядра (после cvsup-а для исходников системы)
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) cd /usr/src
4) make buildworld (сборка мира)
5) make buildkernel KERNCONF=MY_CONFIG (сборка ядра)
6) make installkernel KERNCONF=MY_CONFIG (установка ядра)
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p
9) перезагрузка, cd /usr/src
10) make installworld
11) Перезагрузка
Всё, процесс окончен.
После make installworld должен следовать mergemaster.
[ Arch Linux || xmonad || dzen2 ]
-
Kotjara
- Сообщения: 307
- ОС: FreeBSD 7.0/Ubuntu 8.04
Re: Ядро FreeBSD
После make installworld должен следовать mergemaster.
точнее mergemaster -p
и перед installworld. Так у меня в 6.5 BETA. А так првильно alv сказал, читайте в /usr/src/
-
koshak
- Сообщения: 61
Re: Ядро FreeBSD
а чем лучше makeworld? Мне время жалко убивать на это. Почему не легче просто ядро пересобрать?
Время уходит. А мы остаемся.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Ядро FreeBSD
при переходе с ветки на ветку весь юзерланд, скорее всего, просто не будет нормально работать
при переходе с версии на версию такое тоже случается :-)
но обычно с версии X.Y на X.Z, если Z=Y+1(2), можно обойтись и без пересборки мира. Правда, и смысла в этом не очень много :-)
-
Marduk
- Сообщения: 247
Re: Ядро FreeBSD
Kotjara и написал mergemaster -p перед make installworld. А после - запускается ведь просто mergemaster без -p.
[ Arch Linux || xmonad || dzen2 ]
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Ядро FreeBSD
как и у линукс - смешанное. монолит + модули.
Кстати, не пойму зачем повторяться?! В посте нумеро труа я описал правильный способ.
Кстати, не пойму зачем повторяться?! В посте нумеро труа я описал правильный способ.
И немедленно выпил.
-
RedStalker_Mike
- Сообщения: 108
Re: Ядро FreeBSD
На самом деле у FreeBSD не полностью монолитное ядро ) Его можно облегчить до такой степени, что оно будет напоминать ядро Соляриса. Официально это называется "Улучшенной архитектурой монолитного ядра", или просто говоря модульной. В хэндбуке об этом написано.
Along the Unixway...
-
Kotjara
- Сообщения: 307
- ОС: FreeBSD 7.0/Ubuntu 8.04
Re: Ядро FreeBSD
RedStalker_Mike
Облегчить то его можно только в /boot/loader.conf дофига запихнуть прийдётся, вопрос только зачем?
И скорость IMHO не увеличится.
Кстати и каков объём kernel в Solaris?
У меня на сервере во Free 4.11 2119489
Облегчить то его можно только в /boot/loader.conf дофига запихнуть прийдётся, вопрос только зачем?
И скорость IMHO не увеличится.
Кстати и каков объём kernel в Solaris?
У меня на сервере во Free 4.11 2119489
-
Paul7
- Сообщения: 40
Re: Ядро FreeBSD
OpenSolaris Nevada-22 SPARC - 1151216 B)
Кстати, "смешанных" ядер не бывает. Или микро, или нет. Модульность и микроядерность - теплое с мягким.
HP i2000 Dual Itanium / Debian Sarge & Win2k3
Sun Ultra 5 M270 / OpenSolaris Nevada-41
DEC Multia VX42 / OpenBSD 3.8
HP 9000 Model C100 / HP-UX B.11.00
Sun Ultra 5 M270 / OpenSolaris Nevada-41
DEC Multia VX42 / OpenBSD 3.8
HP 9000 Model C100 / HP-UX B.11.00
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Ядро FreeBSD
ну-ну, мелкое с мягким... микроядро - есть предельный вид модульности.
(я не говорил что это возможно в рамках одного ядра)
естественно с точки зрения пользователя, с точки зрения умника смешанных ядер и впрямь не бывает.
(я не говорил что это возможно в рамках одного ядра)
естественно с точки зрения пользователя, с точки зрения умника смешанных ядер и впрямь не бывает.
И немедленно выпил.
-
RedStalker_Mike
- Сообщения: 108
Re: Ядро FreeBSD
2Kotjara:
Многие вещи не надо просисывать в loader.conf, они сами подгрузятся в момент необходимый. Модульность имеет то преимущество, что когда постоянно не нужен некий код в ядре, то мы его можем вынести за его пределы и загружать / выгружать по своему усмотрению.
Микроядро - это микроядро, а модульность - это модульность. Между ними есть схожие черты, безусловно, но тем не менее это разные вещи. Модульные - это улучшенные монолитные ядра, которые на самом деле тоже не являются уже монолитными ядрами, коли поддерживают модульность до значительного уровня. Но подобное разделение - это уже черта микроядерных систем. Т.е. мы получаем смешанную архитектуру. Но если строго формализовывать, то да, получается всё таки моно-ядро.
Многие вещи не надо просисывать в loader.conf, они сами подгрузятся в момент необходимый. Модульность имеет то преимущество, что когда постоянно не нужен некий код в ядре, то мы его можем вынести за его пределы и загружать / выгружать по своему усмотрению.
Микроядро - это микроядро, а модульность - это модульность. Между ними есть схожие черты, безусловно, но тем не менее это разные вещи. Модульные - это улучшенные монолитные ядра, которые на самом деле тоже не являются уже монолитными ядрами, коли поддерживают модульность до значительного уровня. Но подобное разделение - это уже черта микроядерных систем. Т.е. мы получаем смешанную архитектуру. Но если строго формализовывать, то да, получается всё таки моно-ядро.
Along the Unixway...