Купить сервер в Киеве. Cерверы и рабочие станции в Украине
Продажа мощных серверов по низким ценам. Серверы Dell, HP, Supermicro. Мощные рабочие станции из США. В наличии новые и б/у за наличку и по безналу.
  • Главная
  • Серверы
  • Рабочие станции
  • Комплектующие
  • Статьи
  • Контакт
  • Главная
  • Серверы
  • Рабочие станции
  • Комплектующие
  • Статьи
  • Контакт

Пересборка ядра FreeBSD

Ядро — это основная часть операционной системы FreeBSD. Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое.

Зачем необходимо пересобирать собственное ядро?

Вопрос вполне вменяем, ведь с развитием системы — чем дальше, тем она динамичнее и более самодостаточна, но всё же. Представим ситуацию, когда у нас есть старенькое железо например:

CPU: 200Mhz
Memory: 128Mb
HDD: 4Mb
на борту есть 3 PCI слота в которые установлены две супер модные
и современные сетевые карты. Одна (на входе) - оптическая, вторая
(на выходе) - под витую пару в домашний супер свич.

Мы все это железо хотим использовать для домашнего роутера, а точнее шлюза, но….

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

Вот и получается, что нам теперь нужно вкомпилить драйвера в нашу свежую систему, и попутно убрать из ядра неиспользуемое железо, что бы не забирало лишнюю память.

Кроме того, заранее планируем использование netgraph и включим firewall.

Приступим к нашей затее.

Первым делом, нам нужно убедится в наличии исходных кодов ядра в папке /usr/src

# ls -la /usr/src/
total 4
drwxr-xr-x   22 root  wheel     512 Oct 29 13:22 .
drwxr-xr-x   18 root  wheel     512 Oct 29 14:20 ..

Пусто. Значит у нас есть задача сюда положить исходники ядра. Данную операцию можно выполнить как минимум 2мя способами, в нашем случае — это будет через меню sysinstall из диска, так как сети у нас еще нет.

#sysinstall

далее:
Configure, Distributions, src, здесь выбираем «sys» (/usr/src/sys) и выходим из меню, выходим еще раз и у нас спросят откуда ставить — выбираем CD/DVD и жмем «OK»

Второй вариант, занести их через флешь :)
Но можно и ухитрится, временно поставить какую-нибудь попроще сетевую карточку, что бы появилась сеть и воспользоваться утилитой cvsup (а вдруг уже добавили наше железо в исходники ;) ):

Создаем файл supfile-src-sys

# cat /other/work/supfile-src-sys
#
# Kernel source supfile
#
  *default host=cvsup5.FreeBSD.org
  *default base=/var/db
  *default prefix=/usr
  *default release=cvs tag=RELENG_6_3_0_RELEASE
  *default delete use-rel-suffix
  *default compress
  src-sys

PS. На наше железо стала версия 6.3, если на вашем другое — то tag= должно быть другое.

Запустим:

# cvsup -g -L 2  /other/work/supfile-src-sys

и спустя несколько минут (5-25), всё зависит от машинки и скорости интернета с узла cvsup5.FreeBSD.org.

перепроверим еще раз папку и /usr/src и убедимся, что теперь она не пуста.

# ls -la /usr/src/
total 5
drwxr-xr-x   22 root  wheel     512 Oct 29 13:22 .
drwxr-xr-x   18 root  wheel     512 Oct 29 14:20 ..
drwxr-xr-x   56 root  wheel    1024 Oct 28 10:12 sys

Теперь можем приступать к конфигурации нашего ядра.
Заходим:

# cd /usr/src/sys/i386/conf/
также можно зайти по симлинку, кому как удобнее
# cd /sys/i386/conf/

# ls -l | grep GENERIC
-rw-r--r--  1 root  wheel  12472 Oct 28 10:12 GENERIC
-rw-r--r--  1 root  wheel   1745 Oct 28 10:12 GENERIC.hints

далее, делаем копию GENERIC во что нибудь свое.

PS. ВНИМАНИЕ!!!! GENERIC ПРАВИТЬ НЕ НУЖНО. На форумах часто встречаются глупые вопросы, я правлю GENERIC и почему вот у меня нифига не получается. Ругань и прочее..

# cp GENERIC MYKERNEL

И уж потом правим MYKERNEL

# mcedit MYKERNEL

Вспоминая нашу изначальную задачу — заставить нашу железку работать с суперновыми сетевыми картами, дописываем на диск в наше залитое ядро файлы, которые предоставил производитель. И добавляем соответствующие строки в MYKERNEL (соблюдая инструкцию от производителя)

Попутно, оптимизируем — добавляя необходимое и убирая лишнее..

machine i386        # Тип платформы. 
cpu I586_CPU       # Тип процессора, с которыми будет работать ОС. 
cpu I686_CPU       # Здесь можно указать несколько значений. 
ident	   MYKERNEL # Название файла который мы правим :)
maxusers 32         # Максимальное число пользователей. 

Коментим лишнее
#options 	INET6 # Я обычно коменчу, пока что мы не юзаем IPv6 протокол
#options 	NFSSERVER # Я не собираюсь на такой тачке делать NFSSERVER

options EXT2FS    # Включаем поддержку файловой системы Ext2 (Linux)
device apm0        # Поддержка автоматического управления питанием 
(меняем c #device apm0 at nexus? disable flags 0x20 )

Добавляем стандартный набор, как правило для нашего домашнего роутера он будет выглядеть так:

options         EXT2FS
options         DEVICE_POLLING
options         HZ=1000
#options         IPFILTER
#options         IPFILTER_LOG
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=200
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         IPFIREWALL_NAT
options         DUMMYNET
options         IPDIVERT
options         QUOTA
options         LIBALIAS
options         ROUTETABLES=2
options         ACCEPT_FILTER_DATA
#options         TCP_DROP_SYNFIN
#options         ICMP_BANDLIMIT
#options         TCP_RESTRICT_RST
#####NETGRAPH##### Эту часть не обязательно добавлять, мы ее добавляем 
#только в том случае, если будем использовать NETGRAPH.
options         NETGRAPH
options         NETGRAPH_PPP
options         NETGRAPH_PPPOE
options         NETGRAPH_PPTPGRE
options         NETGRAPH_BPF
options         NETGRAPH_ETHER
options         NETGRAPH_IFACE
options         NETGRAPH_VJC
options         NETGRAPH_SOCKET
options         NETGRAPH_KSOCKET
options         NETGRAPH_TEE
options         NETGRAPH_RFC1490
options         NETGRAPH_MPPC_ENCRYPTION
#######Если у Вас на этой машинке есть пишущий привод, то сразу добавим:
device          atapicam
###В секцию: # SCSI peripherals

Коментим по описанному принципу лишнее, только не переусердствуйте (что бы не получилось как у меня в первый раз, я совсем все лишнее отключил :) )

Но если всё таки вы переусердствуете, и у вас ничего не запуститься после перезапуска системы — не переживайте, всё нормально, жизнь на этом не остановилась.. У нас есть выход:
Жмем RESET и на этапе загрузчика жмакаем на ESC.
появится запрос, мы в него напишем:
boot kernel.old и нажмем ENTER, тем самым загрузив старое ядро.
PS. Важно знать!!! После каждой пересборки ядра — в ее процессе создается директория /boot/kernel.old которая за каждым разом заменяется файлами из /boot/kernel. Поэтому, рекомендую сделать такую хитрость: скопируйте себе сразу же рабочее ядро например в директорию /boot/generic:

# cd /boot
# cp -r kernel.old generic

Тем самым вы обезопасите себя, если у вас и во второй раз не заведется система, вы просто наберете boot /boot/generic

Теперь вернемся к нашему процессу сборки.
Проверяем, убеждаемся что броде бы все правильно, лишнее убрано, недостающее — дописано. Переходим к процессу компиляции.

Сейчас рекомендуют делать так:

# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL
# shutdown -r now

Раньше было так:

# cd /sys/i386/conf/
# config MYKERNEL #При этом вам выдадут дальнейшие инструкции,
 и подскажут о ваших ошибках (если они есть)
# cd ../compile/MYKERNEL
# make cleandepend; make depend && make install && reboot
И ждем...

После сборки нового ядра, перезагружаемся и смотрим, завелось или нет, если нет — читаем примечание выше, если да — радуемся и попиваем пивко.

PS. Если вам нужно чего-то еще добавить в ядро, можем пройтись еще раз по уже накатанной дороге, но можем сделать и немного по другому.. Мы можем подгрузится модулем ядра:
(попутно вспомнил анекдот:
— Любимый, ты борщ умеешь варить?
— секундочку… kldload borsh, теперь да!!!!)

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

Также можно дописать в файл лоадера, что подгружать ядром (не будем же мы всё время ручками это делать)

# cat /boot/loader.conf
accf_http_load="YES"
bridge_load="YES"
snd_driver_load="YES"

Удачного и стабильного вам ядра…

Источник: http://noted.org.ua/255

Опубликовано 16.08.2013
77
Установка тестового ядра, FreeBSD

Смотрите также:

Программе установки не удалось создать новый или найти существующий системный раздел

Решение проблем с установкой Windows 10 (8.1, 8, 7) с USB флешки (Программе установки не удалось создать новый или найти существующий системный раздел)

Mysql

Журналы (logs) в MySQL

ddosattack

Полезные команды, которые могут пригодиться при DDoS и не только

netstat

Использование netstat

    Контакт

    e-mail  sales@server-kiev.com
    skype  l_o_t_u_s33
    skype  +38 (068) 784-3255

    Комплектующие

    • Процессоры (CPU) (0)
    • Блоки питания (3)
    • Жесткие диски (HDD) (7)
    • Видеокарты (0)
    • Контроллеры (4)
    • Материнские платы (7)
    • Оперативная память (2)
    • Радиаторы / Кулеры (0)
    • Мониторы (2)
    • Проекторы (0)
    • SSD (0)
    • Сетевое оборудование (0)

    Новые поступления

    • Gigabyte 7PESH2MS-00 Intel C602 Chipset Rev 1.0 LGA2011 E-ATX
    • Сервер HP DL560p Gen8 4×E5-4650 48GB RAM
    • Acer ET322QU 32″ Black Freesync 75Hz LED IPS Monitor 2560×1440
    • Dell Precision T5600 2x Xeon E5-4650L 64GB HDD 1TB
    • LG 32UK50T-W 32″ Class 4K UHD (3840 x 2160)
    • HP Z420 6-ти ядерный Xeon E5-1650 3,2 GHZ 32GB RAM 120GB SSD 3000GB HDD
    • Supermicro PWS-1K62P-1R 1620 Watt Power Supply — 180-240 V
    • Серверный блок питания SUPERMICRO Ablecom 560W/600W 1U PWS-563-1H
    • SUPERMICRO Ablecom PWS-521-1H 520W Watt Switching Power Supply
    • HP DL580 Gen8 E7-4880v2 2.80GHz 120 потоков 256Gb DDR3 16x16GB
    • Рабочая станция E5-2697v3 28/56 Ядер-Потоков Intel Xeon / 256GB DDR4 / 3/3TB SSD/HDD / GTX 1080 / 1300W
    • 1C Сервер Supermicro 1-2U 2PS Xeon 32x 2.6GHz 128GB DDR3 ECC SAS-SATA
    • Монитор Dell S2817Q
    • Twin Сервер Supermicro 6027TR-DTRF 2U 2PS 4x Xeon 32x 2.9GHz 4x E5-4650L 128GB DDR3 ECC SAS-SATA
    • Supermicro X9DRi-LN4F+ v1.20 Dual LGA 2011 DDR3 Xeon v1. v2
    • Рабочая станция SuperMicro Xeon E5-4650L 96GB DDR3 SSD 240GB 3TB HDD Quadro
    • Рабочая станция GIGABYTE Xeon E5-4650L 64GB DDR3 SSD 240GB 3TB HDD GTX
    • DELL SAS 1GB 9265-8I 6GB/S Raid DNKYM 6GB/S LSI MEGARAID
    • MSI Z97 Gaming 5
    • HP ProLiant DL370 G6 ML370 G6

    Translate:

    Метки

    1С бухгалтерия 1С предприятие 10600R avocent binary log c6100 command line ddos dell error log freebsd IPKVM kernel linux log mysql netstat nettop networking poweredge query log slow query log snippets sysadmin tcp/ip unix windows 10 windows 10 setup troubleshooting Виртуализация Программе установки не удалось создать новый или найти существующий системный раздел команды freebsd консоль лог всех запросов mysql оперативная память память для серверов полезные мелочи проблемы с установкой windows продажа сервер сисадмин сниппеты установка windows установщик не может найти раздел фрибсд ядро
Яндекс.Метрика
e-mail  sales@server-kiev.com
skype  server-kiev
Купить сервер в Киеве
Купить рабочую станцию в Киеве
Серверы Dell купить
Серверы Supermicro купить
Недвижимость Киева и Украины