RU EN

Компиляция ядра OpenBSD для AMD K8

 

Получение исходников

От того, какая ветка ядра будет использоваться для компиляции ( current или stabile ), а так же в зависимости от того нужно исходники обновить, или скачать с нуля, будут использоваться различные команды:

Скачиваем current "с нуля":

cd /usr
cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -P src

Скачиваем stable "с нуля":

cd /usr
cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_4_9 -P src

Обновляем current:

cd /usr/src
cvs -q up -Pd

Обновляем stable:

cd /usr/src
cvs -q up -rOPENBSD_4_9 -Pd

ВАЖНО! Если обновляемые исходники были получены с другого сервера или с CD, в команду обновления необходимо добавить параметр "-d anoncvs@anoncvs.ca.openbsd.org:/cvs":

cd /usr/src
cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs -q up -Pd

 

 Добавление оптимизирующих ключей в Makefile

Подробнее об оптимизирующих ключах: ключи gcc компилятора, безопасные ключи для AMD.

cd /usr/src/sys/arch/amd64/conf
config GENERIC.MP
cd ../compile/GENERIC.MP
nano Makefile

В файле комментируем переменную CMACHFLAGS и добавляем свой вариант ключей:

#CMACHFLAGS= -mcmodel=kernel -mno-red-zone -mno-sse2 -mno-sse \
             -mno-3dnow -mno-mmx -msoft-float -fno-omit-frame-pointer
CMACHFLAGS= -mcmodel=kernel -msse2 -msse -m3dnow -mmmx \
            -msoft-float -fomit-frame-pointer -mno-red-zone

 

Компилируем и устанавливаем ядро

# Чтобы отключить вывод можно использовать:
# make clean && make depend 1>/dev/null && make 1>/dev/null
make clean && make depend && make
make install
reboot

Компилируем userland

После компиляции ядра настоятельно рекомендуется перекомпилировать и его окружение (набор системных утилит, взаимодействующих с ядром).

# Очищаем /usr/obj директорию и ребилдим ссылки:
rm -rf /usr/obj/*
cd /usr/src
make obj

# Убеждаемся, что все необходимые директории созданы:
cd /usr/src/etc && env DESTDIR=/ make distrib-dirs

# Компилируем:
cd /usr/src
make build

Либо можно сделать это всё вот так (silent userland rebuild):

rm -rf /usr/obj/* 1>/dev/null && cd /usr/src && make obj 1>/dev/null \
&& cd /usr/src/etc && env DESTDIR=/ make distrib-dirs \
&& cd /usr/src && make build 1>/dev/null

Янчарук А.В.
16.10.2011 18:27


Оставить комментарий


Имя  


Комментарий *