Мар 162011
 

У меня от Gentoo Linux привычка осталась компелить ядро на свой лад.

Приступим.
Информации взята из этой статьи, Удаленное обновление мира на FreeBSD.
для начало нам нужно по минимум с конфигурить файл настроек для компиляции пакетов

/etc/make.conf # Основная цель make.conf это контроль компиляции,

KERNCONF=MY  # мое ядро
#Опции компиляции ядра
CPUTYPE?=core2
CFLAGS=-O2 -pipe
COPTFLAGS=-O2 -pipe
DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R  #Поддерживаемые кодировки для документации
MAKE_IDEA=true #Алгоритм шифрования
#Дома мне эта поддержка не нужна, в домашних условиях подымать сервер ldap :D , так что отказываемся
MAKE_KERBEROS4=false
MAKE_KERBEROS5=false
NO_PROFILE=true # Обход построения библиотек для профилирования
NO_CPU_CFLAGS=false # Говорим что флаги включать обязательно
NO_CPU_COPTFLAGS=false
FORCE_PKG_REGISTER=yes
PERL_VERSION=5.10.1
OVERRIDE_LINUX_NONBASE_PORTS= f10
OVERRIDE_LINUX_BASE_PORT= f10
LINUX_DIST_SUFFIX= -f10
WRKDIRPREFIX=/mnt/x11/  # рабочая директория для компиляции портов.
PACKAGES=/mnt/packages # Склад бинарных пакетов
DISTDIR=/mnt/distfiles # Держим отдельно distfiles
SUP_UPDATE=
SUP= /usr/bin/csup
SUPFLAGS= -g -L 2 -z
SUPHOST= cvsup3.ru.FreeBSD.org
SUPFILE= /etc/supfiles

Полный список параметров .

/etc/src.conf # опции компиляции программного обеспечения.
NO_BIND=true
NO_SENDMAIL=true
NO_GAMES=true
WITH_THREADS=true
WITH_GECKO=xulrunner
WITHOUT_IPV6=YES
WITHOUT_GAMES=yes
WITHOUT_BLUETOOTH=YES

Полный список параметров .

Теперь конфиг ядра, это конфиг от домашней машины.

cat /usr/src/sys/i386/conf/MY

machine      i386
cpu             I686_CPU
ident           MY

maxusers        0

options         SCHED_ULE               # ULE scheduler
options         PREEMPTION              # Enable kernel thread preemption
options         INET                    # InterNETworking
options         SCTP                    # Stream Control Transmission Protocol
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_ACL                 # Support for access control lists
options         UFS_DIRHASH             # Improve performance on big directories
options         UFS_GJOURNAL            # Enable gjournal-based UFS journaling
options         MSDOSFS                 # MSDOS Filesystem
options         CD9660                  # ISO 9660 Filesystem
options         PROCFS                  # Process filesystem (requires PSEUDOFS)
options         PSEUDOFS                # Pseudo-filesystem framework
options         GEOM_PART_GPT           # GUID Partition Tables.
options         GEOM_LABEL              # Provides labelization
options         COMPAT_43TTY            # BSD 4.3 TTY compat [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         COMPAT_FREEBSD6         # Compatible with FreeBSD6
options         STACK                   # stack(9) support
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores
options         P1003_1B_SEMAPHORES     # POSIX-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         ADAPTIVE_GIANT          # Giant mutex is adaptive.
options         STOP_NMI                # Stop CPUS using NMI instead of IPI
options         AUDIT                   # Security event auditing
options         INCLUDE_CONFIG_FILE     # Include this file in kernel

# To make an SMP kernel, the next two lines are needed
options         SMP                     # Symmetric MultiProcessor Kernel
device          apic                    # I/O APIC

# CPU frequency control
device          cpufreq

# Bus support.
device          eisa
device          pci

# Floppy drives
device          fdc

# ATA and ATAPI devices
device          ata
device          atadisk         # ATA disk drives
device          atapicd         # ATAPI CDROM drives
options         ATA_STATIC_ID   # Static device numbering

# SCSI Controllers
device          ahb             # EISA AHA1742 family
device          ahc             # AHA2940 and onboard AIC7xxx devices
options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
device          ahd             # AHA39320/29320 and onboard AIC79xx devices
options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
# SCSI peripherals
device          scbus           # SCSI bus (required for SCSI)
device          ch              # SCSI media changers
device          da              # Direct Access (disks)
device          cd              # CD
device          pass            # Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc          # AT keyboard controller
device          atkbd           # AT keyboard
device          kbdmux          # keyboard multiplexer
device          vga             # VGA video card driver
device          splash          # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device          sc
# Add suspend/resume support for the i8254.
device          pmtimer

# Serial (COM) ports
device          sio             # 8250, 16[45]50 based serial ports

# Parallel port
device          ppc
device          ppbus           # Parallel port bus (required)
device          ppi             # Parallel port interface device

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device          miibus          # MII bus support
device          msk             # Marvell/SysKonnect Yukon II Gigabit Ethernet
device          re              # RealTek 8139C+/8169/8169S/8110S

# Pseudo devices.
device          loop            # Network loopback
device          random          # Entropy device
device          ether           # Ethernet support
device          pty             # Pseudo-ttys (telnet etc)
device          bpf             # Berkeley packet filter

# USB support
device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          ehci            # EHCI PCI->USB interface (USB 2.0)
device          usb             # USB Bus (required)
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ukbd            # Keyboard
device          ulpt            # Printer
device          umass           # Disks/Mass storage - Requires scbus and da
device          ums             # Mouse

# FireWire support
device          firewire        # FireWire bus code
device          sbp             # SCSI over FireWire (Requires scbus and da)

#fireval
options         IPFIREWALL               
options         IPFIREWALL_VERBOSE       
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD       
options         IPDIVERT                 
options         DUMMYNET                 
options         IPFIREWALL_DEFAULT_TO_ACCEPT

#samba support
options         NETSMB          #SMB/CIFS requester
options         LIBMCHAIN       #mbuf management library options LIBICONV
options         LIBICONV
options         SMBFS

#color console
options         VGA_WIDTH90
options         VESA
options         SC_PIXEL_MODE
options         SC_KERNEL_CONS_REV_ATTR="(FG_BLACK|BG_RED)"
options         SC_KERNEL_CONS_ATTR="(FG_LIGHTBLUE|BG_BLACK)"
options         SC_NORM_REV_ATTR="(FG_BLACK|BG_GREEN)"
options         SC_NORM_ATTR="(FG_LIGHTGREEN|BG_BLACK)"

#Sound
device sound
device snd_hda

#ntfs
options LIBICONV
options NTFS
options NTFS_ICONV
serv0# 

Так, приступим к собранию мира и ядра и в дальнейшем утсвноки их.

cd /usr/src/ && rm -rf /usr/obj/
make -j6 buildworld # собраем мир не забываем перед этим обновить дерево портов. Как собиреться начинаем компилить  ядро.
make -j6 buildkernel KERNCONF=MY # Компелим ядро, как с компелиться ядро , устанавливаем его.
make installkernel KERNCONF=MY # Ставим только не забываем , что при уставноки дяра не вкоемслучае нельзя указывать параметр  -jn .

Дальше переходим в однопользовательский режим:
boot -s
Или
Или перегружаемся и при выборе параметров загруски системы выбираем 4-й пункт single user mode
Подмантируем FS

# mount -u /
# mount -a -t ufs
# swapon -a

mergemaster поможет нам в определении разницы между нашими конфигурационными файлами в каталоге /etc и конфигурационными файлами из дерева исходных текстов /usr/src/etc.
# mergemaster -p # Данная команда будет сравнивать только те файлы, которые необходимы для успешного выполнения целей buildworld или installworld, включая /etc/make.conf
Ставим мир

# cd /usr/src
# make installworld

После утсвноки мира обновляем конфигурационные файлы
# mergemaster
Проверяем, что изменилось в системе. Команда сравнивает существующие файлы конфигурации с теми, которые нужно установить в новой версии системы. О всех различиях сообщается на экране. В начале сообщения указывается имя файла, в котором есть различия существующего файла от нового, а ниже собственно сами различия. «Минусом» помечаются строки, которые будут удалены, а «плюсом» – которые будут добавлены. Программа предлагает варианты действий со стороны пользователя:

    * d – оставить существующий файл без изменений, а новый удалить
    * i – Ставим новый файл, переписав старый!
    * m – Сравниваем построчно новые файлы с существующими.
    * v – Смотрим различия в файлах еще раз.

Чаще всего нажимаем i, Осторожно, обращение этой опцией может обернуться тем, что мы потеряем конфигурационные файлы, а точнее в место своих конфигурационных файлов получим стандартные. Если не уверены в отношении какого-либо файла, нажимайте m и сравниваем. В этом режиме программа покажет нам построчно оба файла, слева показана версия старого файла, справа – новая версия файла. Нажатии на Enter, программа спросит о действии:

    * l – Использовать вариант с левой стороны.
    * r – Использовать вариант с правой стороны.

После, программа закончит сравнение и она снова спросит:

    * i – Установить получившийся файл.
    * r – Повтор сравнение снова.
    * v – Просмотр получившегося файла.

Внимание, также с новой версией ОС появляются новые файлы. В таком случае программа предлагает только два варианта:

    * d – Удалить новый файл и оставить старый.
    * i – Установить новый файл, удалив старый.

Теперь удалим старые файлы.

cd /usr/src
yes|make delete-old

Перезагружаемся

shutdown -r now
Заходим в готовую систему и удаляем старые бибилотеки .

cd /usr/src/ && make delete-old-lib

Вот и все! Следующим действием будет обновленияе пакетов с помощью portupgrade , но это другая история.

  2 комментария to “FreeBSD пересборка мира и ядра.”

  1. […] в этой статье я не буду описывать, вот статья про то как пересобраять ядро в freebsd Дабавим поддержку к нашей […]

  2. […] после не забываем изменить руту пароль. Вот тут более подробно о пересборке мира и ядра. Удалим старые […]

 Leave a Reply

(required)

(required)

40 Запросов к базе. 0,382 Генерации страницы, 37MB Использование памяти.
Вы зашли с IP: 3.231.167.166