Мар 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)

38 Запросов к базе. 0,463 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.80.58.121