помогите решить проблему с собиранием ядра freebsd 6.1

Irina22

значит так.
есть freebsd 6.1 хочу скомпилить ядро с поддержкой netgraph и ipfw.
уже 4 часа вожусь - ничего хорошего не выходит:

18 bronze /usr/src(0/2)# cat /usr/src/sys/i386/conf/bronze
#
# GENERIC — Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ke...
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.7.2.2 2006/05/01 00:15:12 scottl Exp $
machine i386
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident BRONZE
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
#options SCHED_ULE # ULE scheduler
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
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 MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
device apic # I/O APIC
# Bus support.
device eisa
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Tekram DC-390(T
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
#device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe

AlexV769

когда последний раз обновлял сорцы?

Irina22

только что всё поставил.
сорцы с сдка

Irina22

как обновить?
руками выкачивать или есть что-нибудь типа cvs?

AlexV769

есть cvsup
подробности - network -> зеркала

Irina22

это в документации?
//что-то голова не соображает хорошо

AlexV769

это в форуме

sergey_m

Если сорцы с сидюка, то всё должно собираться, ничего обновлять не надо. Начни с того, что убери всё что ты придумал из /etc/make.conf. Например -O3.

Irina22

о!
кстати, я этого не делал.
там всё как было.(вернее ничего, только где distfiles брать.)
советовали убрать это
я делал
#make buildkernel KERNCONF=bronze COPTFLAGS="-O -pipe"
тоже самое.

sergey_m

А откуда всё таки взялось -O3? Ядро FreeBSD так не собирается по умолчанию.

an7se

не знаю.

an7se

что делать-то?

sergey_m

Запускать make с дебагом и перенаправив аутпут в файл. Читать файл и пытаться понять откуда взялось -O3.

Irina22

так я убрал 03.
в смысле если явно указать (см выше то всё равно ошибка.
при чём самое ужасное(!) что мне не нужен этот драйвер, в котором ошибка.
мне вот и интересно, почему он собирается и как его отключить.

sergey_m

Не понял что явно указать. Я попробовал твою строчку, та же ошибка. Убрал -O3 - собралось.
При сборке ядра еще собираются все модули. Все. Ты можешь написать -DNO_MODULES, тогда этого не будет.

Irina22

21:03 bronze /root/cvsup(0/2)# cat /etc/make.conf
# added by use.perl 2006-10-16 16:53:20
PERL_VER=5.8.8
PERL_VERSION=5.8.8
MASTER_SITE_OVERRIDE="ftp://lakemoon.gznet.ru/pub/distfiles/${DIST_SUBDIR}/"
21:03 bronze /root/cvsup(0/2)#make buildkernel KERNCONF=bronze
-ошибка.
откуда убрать 03?
я пробовал написать make buildkernel KERNCONF=bronze COPTFLAGS="-O -pipe"
-ошибка

sergey_m

Как я уже сказал, запусти make с дебагом и пойми откуда взялся -O3.

Irina22

как?
gdb make ? //чувствую, что чушь

sergey_m

Верно чувствуешь.
man make

Irina22

ок.
мусор понёсся
будем искать.

sergey_m

-dA сделал?
Скажу честно, перед тобой не простая задача. Дебажить сложные системы сборки - геморр.

Irina22

-dA сделал?

точно.
ох....чувтвую он сейчас испугается и соберётся.

sergey_m

Не, -dA это перебор. Оно тебе полвинта загадит и будет полночи собираться. Нужно с умом включать дебаг.

Irina22

вот как раз только что убил его.
-dv
вроде ничего более подходящего не нашёл

garikus

а чем модули тебя не устраивают?

Irina22

меня всё устраивает
если оно собирается.

garikus

Не обязательно было возиться с ядром, можно было просто загрузить нужные модули:

# kldload netgraph
# kldload ipfw

Если ты будешь использовать IPFW, то даже загружать ничего не надо - нужно только прочитать Handbook - там всё написано.

Irina22

ок. учту.
но что-то подсказывает, что в моём случае лучше будет вкомпилить

Irina22

кажись, что нат без вкомпиливания не пашет
It is not a mandatory requirement that you enable IPFW by compiling the following options into the FreeBSD kernel unless you need NAT function. It is presented here as background information.

garikus

Вероятно это устаревшие сведения - у моего знакомого в FreeBSD 6.1 NAT работает без перекомпиляции ядра.

Irina22

ну тогда видимо придётся оставить это неблагодарное дело на некоторые время

sergey_m

Откуда вообще эта фраза про NAT?

sergey_m

Да, начиная с шестой версии divert модуль подгружаем. В handbook устаревшая информация. Если знаешь SGML, то можешь прислать патч и исправят.

Irina22

УРЯЯЯЯЯЯЯ
я нашёл.
в .zshrc
экспортировалась переменная cflags
пс: нашёл благодаря make -dv.

sergey_m

Поздравляю, ты развил скилл копать в корень проблемы.

Irina22

ага
спасибо!
Оставить комментарий
Имя или ник:
Комментарий: