Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Jun 2004 21:30:10 -0700 (PDT)
From:      "Joshua Lewis" <jmlewis@dslextreme.com>
To:        freebsd-newbies@freebsd.org
Subject:   Compiling my first Kernel
Message-ID:  <4d58aba54a124f8aff78a.20040601213010.wzyrjvf@www.dslextreme.com>

next in thread | raw e-mail | index | archive | help
I didn't know if this belonged in the -newbie section. But I figured I was
a newbie so I would give it a shot. Please excuse the lengthy e-mail.

I am creating my first kernel (one just to learn and two to see how much
faster it is after I remove any unnecessary devices)

I got lots of errors. But I fixed them. Then after several fixes in my
kernel configuration file I was able to run


make buildkernel KERNCONF=APOLLO

After watching it run through for a few mins and feeling really cool it
errored again. However I have no idea what to do now. When it errored due
to the config file it gave me a line number and enough info to realize I
had commented out isa support and apparently still needed it somewhere (I
am not sure why I have no ISA devices. USB mouse/keyboard/, no
Parallel/Serial or any devices that I can think would use isa).

So here are the last several lines of the error followed by my config file
if someone needs it. I am running 4.10 that was a clean install last
weekend.

Also if someone sees any tweaks I should make to my config I am all ears.



#################### Kernel Error ######################

sh /usr/src/sys/conf/newvers.sh APOLLO
cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
-Wcast-qual  -fformat-extensions -ansi  -nostdinc -I- -I. -I/usr/src/sys
-I/usr/src/sys/../include -I/usr/src/sys/contrib/dev/acpica
-I/usr/src/sys/contrib/ipfilter  -D_KERNEL -include opt_global.h 
-mpreferred-stack-boundary=2  vers.c
linking kernel
umass.o: In function `umass_cam_attach_sim':
umass.o(.text+0x1637): undefined reference to `cam_simq_alloc'
umass.o(.text+0x165d): undefined reference to `cam_sim_alloc'
umass.o(.text+0x1676): undefined reference to `xpt_bus_register'
umass.o(.text+0x1686): undefined reference to `cam_simq_free'
umass.o: In function `umass_cam_rescan_callback':
umass.o(.text+0x169f): undefined reference to `xpt_free_path'
umass.o: In function `umass_cam_rescan':
umass.o(.text+0x16ef): undefined reference to `xpt_periph'
umass.o(.text+0x16f8): undefined reference to `xpt_create_path'
umass.o(.text+0x170b): undefined reference to `xpt_setup_ccb'
umass.o(.text+0x1726): undefined reference to `xpt_action'
umass.o: In function `umass_cam_detach_sim':
umass.o(.text+0x17df): undefined reference to `xpt_bus_deregister'
umass.o(.text+0x17fd): undefined reference to `cam_sim_free'
umass.o: In function `umass_cam_detach':
umass.o(.text+0x183e): undefined reference to `xpt_create_path'
umass.o(.text+0x185f): undefined reference to `xpt_async'
umass.o(.text+0x1867): undefined reference to `xpt_free_path'
umass.o: In function `umass_cam_action':
umass.o(.text+0x1beb): undefined reference to `xpt_done'
umass.o(.text+0x1bfd): undefined reference to `xpt_done'
umass.o: In function `umass_cam_cb':
umass.o(.text+0x1d19): undefined reference to `xpt_done'
umass.o: In function `umass_cam_sense_cb':
umass.o(.text+0x1e20): undefined reference to `xpt_done'
umass.o(.text+0x1e31): undefined reference to `xpt_done'
umass.o(.text+0x1e4b): more undefined references to `xpt_done' follow
*** Error code 1

Stop in /usr/obj/usr/src/sys/APOLLO.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
apollo#



#################################################################
# APOLLO -- Custom kernel configuration file for FreeBSD/i386      #
#                                                          #
# Joshua Lewis - 6/01/2004 My first Custom Kernel          #
#################################################################
machine            i386
cpu                I686_CPU
ident              APOLLO
maxusers   0

#makeoptions       DEBUG=-g                #Build kernel with gdb(1) debug
symbols

options    MATH_EMULATE            #Support for x87 emulation
options    INET                    #InterNETworking
#options   INET6                   #IPv6 communications protocols
options    FFS                     #Berkeley Fast Filesystem
options    FFS_ROOT                #FFS usable as root device [keep this!]
options    SOFTUPDATES             #Enable FFS soft updates support
options    UFS_DIRHASH             #Improve performance on big directories
options    MFS                     #Memory Filesystem
options    MD_ROOT                 #MD is a potential root device
options    NFS                     #Network Filesystem
options    NFS_ROOT                #NFS usable as root device, NFS required
options    MSDOSFS                 #MSDOS Filesystem
options    CD9660                  #ISO 9660 Filesystem
options    CD9660_ROOT             #CD-ROM usable as root, CD9660 required
options    PROCFS                  #Process filesystem
options    COMPAT_43               #Compatible with BSD 4.3 [KEEP THIS!]
options    SCSI_DELAY=15000        #Delay (in ms) before probing SCSI
options    UCONSOLE                #Allow users to grab the console
options    USERCONFIG              #boot -c editor
options    VISUAL_USERCONFIG       #visual boot -c editor
options    KTRACE                  #ktrace(1) support
options    SYSVSHM                 #SYSV-style shared memory
options    SYSVMSG                 #SYSV-style message queues
options    SYSVSEM                 #SYSV-style semaphores
options   P1003_1B                #Posix P1003_1B real-time extensions
options   _KPOSIX_PRIORITY_SCHEDULING
options   ICMP_BANDLIM            #Rate limit bad replies
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.

# To make an SMP kernel, the next two are needed
#options  SMP                     # Symmetric MultiProcessor Kernel
#options  APIC_IO                 # Symmetric (APIC) I/O

device            isa
device            eisa
device            pci

# Floppy drives
device            fdc0    at isa? port IO_FD1 irq 6 drq 2
device            fd0     at fdc0 drive 0
#device           fd1     at fdc0 drive 1
#
# If you have a Toshiba Libretto with its Y-E Data PCMCIA floppy,
# don't use the above line for fdc0 but the following one:
#device           fdc0

# ATA and ATAPI devices
#device           ata0    at isa? port IO_WD1 irq 14
#device           ata1    at isa? port IO_WD2 irq 15
device            ata
device            atadisk                 # ATA disk 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           mpt             # LSI-Logic MPT/Fusion
#device           ncr             # NCR/Symbios Logic
#device           sym             # NCR/Symbios Logic (newer chipsets)
#options  SYM_SETUP_LP_PROBE_MAP=0x40
                          # Allow ncr to attach legacy NCR devices when
                          # both sym and ncr are configured

#device           adv0    at isa?
#device           adw
#device           bt0     at isa?
#device           aha0    at isa?
#device           aic0    at isa?

#device           ncv             # NCR 53C500
#device           nsp             # Workbit Ninja SCSI-3
#device           stg             # TMC 18C30/18C50

# SCSI peripherals
#device           scbus           # SCSI bus (required)
#device           da              # Direct Access (disks)
#device           sa              # Sequential Access (tape etc)
#device           cd              # CD
#device           pass            # Passthrough device (direct SCSI access)

# RAID controllers interfaced to the SCSI subsystem
#device           asr             # DPT SmartRAID V, VI and Adaptec SCSI RAID
#device           dpt             # DPT Smartcache - See LINT for options!
#device           iir             # Intel Integrated RAID
#device           mly             # Mylex AcceleRAID/eXtremeRAID
#device           ciss            # Compaq SmartRAID 5* series
#device           twa             # 3ware 9000 series PATA/SATA RAID

# RAID controllers
#device           aac             # Adaptec FSA RAID, Dell PERC2/PERC3
#device           aacp            # SCSI passthrough for aac (requires CAM)
#device           ida             # Compaq Smart RAID
#device           amr             # AMI MegaRAID
#device           mlx             # Mylex DAC960 family
#device           pst             # Promise Supertrak SX6000
#device           twe             # 3ware Escalade

# atkbdc0 controls both the keyboard and the PS/2 mouse
#device           atkbdc0 at isa? port IO_KBD
#device           atkbd0  at atkbdc? irq 1 flags 0x1
#device           psm0    at atkbdc? irq 12

device            vga0    at isa?

# splash screen/screen saver
pseudo-device     splash

# syscons is the default console driver, resembling an SCO console
device            sc0     at isa? flags 0x100

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device           vt0     at isa?
#options  XSERVER                 # support for X server on a vt console
#options  FAT_CURSOR              # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT
lines
#options  PCVT_SCANSET=2          # IBM keyboards are non-std

device            agp             # support several AGP chipsets

# Floating point support - do not disable.
device            npx0    at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
#device           apm0    at nexus? disable flags 0x20 # Advanced Power
Management

# PCCARD (PCMCIA) support
#device           card
#device           pcic0   at isa? irq 0 port 0x3e0 iomem 0xd0000
#device           pcic1   at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
#device           sio0    at isa? port IO_COM1 flags 0x10 irq 4
#device           sio1    at isa? port IO_COM2 irq 3
#device           sio2    at isa? disable port IO_COM3 irq 5
#device           sio3    at isa? disable port IO_COM4 irq 9

# Parallel port
#device           ppc0    at isa? irq 7
#device           ppbus           # Parallel port bus (required)
#device           lpt             # Printer
#device           plip            # TCP/IP over parallel
#device           ppi             # Parallel port interface device
#device           vpo             # Requires scbus and da


# PCI Ethernet NICs.
#device           de              # DEC/Intel DC21x4x (``Tulip'')
#device           em              # Intel PRO/1000 adapter Gigabit
Ethernet Card (``Wiseman'')
#device           txp             # 3Com 3cR990 (``Typhoon'')
#device           vx              # 3Com 3c590, 3c595 (``Vortex'')

# 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           dc              # DEC/Intel 21143 and various workalikes
#device           fxp             # Intel EtherExpress PRO/100B (82557,
82558)
#device           pcn             # AMD Am79C97x PCI 10/100 NICs
device            rl              # RealTek 8129/8139
#device           sf              # Adaptec AIC-6915 (``Starfire'')
#device           sis             # Silicon Integrated Systems SiS 900/SiS
7016
#device           ste             # Sundance ST201 (D-Link DFE-550TX)
#device           tl              # Texas Instruments ThunderLAN
#device           tx              # SMC EtherPower II (83c170 ``EPIC'')
#device           vr              # VIA Rhine, Rhine II
#device           wb              # Winbond W89C840F
#device           xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')
#device           bge             # Broadcom BCM570x (``Tigon III'')

# ISA Ethernet NICs.
# 'device ed' requires 'device miibus'
#device           ed0     at isa? disable port 0x280 irq 10 iomem 0xd8000
#3device          ex
#device           ep
#device           fe0     at isa? disable port 0x300
# Xircom Ethernet
#device           xe
# PRISM I IEEE 802.11b wireless NIC.
#device           awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
#device           wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
#device           an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
#device           ie0     at isa? disable port 0x300 irq 10 iomem 0xd0000
#device           le0     at isa? disable port 0x300 irq 5 iomem 0xd0000
#device           lnc0    at isa? disable port 0x280 irq 10 drq 0
#device           cs0     at isa? disable port 0x300
#device           sn0     at isa? disable port 0x300 irq 10

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device     loop            # Network loopback
pseudo-device     ether           # Ethernet support
#pseudo-device    sl      1       # Kernel SLIP
#pseudo-device    ppp     1       # Kernel PPP
pseudo-device     tun             # Packet tunnel.
pseudo-device     pty             # Pseudo-ttys (telnet etc)
pseudo-device     md              # Memory "disks"
pseudo-device     gif             # IPv6 and IPv4 tunneling
pseudo-device     faith   1       # IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device     bpf             #Berkeley packet filter

# USB support
device            uhci            # UHCI PCI->USB interface
device            ohci            # OHCI PCI->USB interface
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
device            uscanner        # Scanners
#device           urio            # Diamond Rio MP3 Player
# USB Ethernet, requires mii
#device           aue             # ADMtek USB ethernet
#device           cue             # CATC USB ethernet
#device           kue             # Kawasaki LSI USB ethernet

# FireWire support
device            firewire        # FireWire bus code
#device           sbp             # SCSI over FireWire (Requires scbus and
da)
#device           fwe             # Ethernet over FireWire (non-standard!)



Thank you,
Joshua Lewis






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4d58aba54a124f8aff78a.20040601213010.wzyrjvf>