Re: kernel question ???

From: Vincent Blondel <vincent_at_xtra-net.org>
Date: Wed, 2 Nov 2005 13:58:15 +0100 (CET)
Thanks for your reply ... Everything is working fine now.

Regards
Vincent

> ----- Original Message -----
> From: "Vincent Blondel" <vincent_at_xtra-net.org>
> To: <current_at_freebsd.org>
> Sent: Tuesday, November 01, 2005 8:52 AM
> Subject: kernel question ???
>
>
>> Hello all,
>>
>> Sorry for this, maybe stupid, question but I more often compile kernels
>> on Linux platforms.
>>
>> So, in linux world, there is a very simple way to compile devices as
>> modules and I am now trying to do this same feature in my FreeBSD kernel
>> ( 7.0-current ) for all network devices ( all /boot/kernel/if_xxx.so )
>> that I would like to (un)load when it is necessary.
>>
>> I don't know if it is the right way to do it but I removed all network
>> devices from my kernel config file (see below) but I get some problems
>> when compiling the kernel (see below).
>>
>> Could you please help me to solve this problem ?
>
> You took out device miibus
> Yet you left in these nic devices which require miibus, as stated right in
> the comment:
>
> # USB Ethernet, requires miibus
> device aue # ADMtek USB Ethernet
> device axe # ASIX Electronics USB Ethernet
> device cdce # Generic USB over Ethernet
> device cue # CATC USB Ethernet
> device kue # Kawasaki LSI USB Ethernet
> device rue # RealTek RTL8150 USB Ethernet
>
>
> Either take _all_ nic devices out and load what you want as modules in
> /boot/loader.conf
> (The modules still get built when you remove the devices from the kernel
> config.)
>
> /boot/loader.conf:
> miibus_load="YES"
> if_fxp_load="YES"
>
> Or put "device miibus" back in, along with any nic devices you'll actually
> use.
>
> I think it's even possible to load the nic driver as a module even when you
> are pxe booting via that nic.
>
> Brian K. White  --  brian_at_aljex.com  --  http://www.aljex.com/bkw/
> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
> filePro  BBx    Linux  SCO  FreeBSD    #callahans  Satriani  Filk!
>
>
>> Regards
>> Vincent
>>
>> -----
>>
>> kernel config file RELENG_6_i686
>>
>> machine i386
>> cpu I686_CPU
>> ident RELENG_6_i686
>>
>> # 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 SC_DISABLE_REBOOT
>>
>> #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
>> 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.
>>
>> # Debugging for use in -current
>> options KDB # Enable kernel debugger support.
>> options DDB # Support DDB.
>> options GDB # Support remote GDB.
>> options INVARIANTS # Enable calls of extra sanity checking
>> options INVARIANT_SUPPORT # Extra sanity checks of internal structures,
>> required by INVARIANTS
>> options WITNESS # Enable checks to detect deadlocks and cycles
>> options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
>>
>> # To make an SMP kernel, the next two lines are needed
>> #options SMP # Symmetric MultiProcessor Kernel
>> device apic # I/O APIC
>>
>> # Bus support.
>> device isa
>> 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 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 mlx # Mylex DAC960 family
>> device pst # Promise Supertrak SX6000
>> device twe # 3ware ATA RAID
>>
>> # atkbdc0 controls both the keyboard and the PS/2 mouse
>> device atkbdc # AT keyboard controller
>> device atkbd # AT keyboard
>> device psm # PS/2 mouse
>>
>> 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
>>
>> # Enable this for the pcvt (VT220 compatible) console driver
>> #device vt
>> #options XSERVER # support for X server on a vt console
>> #options FAT_CURSOR # start with block cursor
>>
>> # Power management support (see NOTES for more options)
>> #device apm
>> # Add suspend/resume support for the i8254.
>> device pmtimer
>>
>> # PCCARD (PCMCIA) support
>> # PCMCIA and cardbus bridge support
>> device cbb # cardbus (yenta) bridge
>> device pccard # PC Card (16-bit) bus
>> device cardbus # CardBus (32-bit) bus
>>
>> # Serial (COM) ports
>> device sio # 8250, 16[45]50 based serial ports
>>
>> # Parallel port
>> device ppc
>> 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
>>
>> # If you've got a "dumb" serial or parallel PCI card that is
>> # supported by the puc(4) glue driver, uncomment the following
>> # line to enable it (connects to the sio and/or ppc drivers):
>> #device puc
>>
>> # ISA devices that use the old ISA shims
>> #device le
>>
>> # Pseudo devices.
>> device loop # Network loopback
>> device random # Entropy device
>> device ether # Ethernet support
>> device sl # Kernel SLIP
>> device ppp # Kernel PPP
>> device tun # Packet tunnel.
>> device pty # Pseudo-ttys (telnet etc)
>> device md # Memory "disks"
>> device gif # IPv6 and IPv4 tunneling
>> device faith # IPv6-to-IPv4 relaying (translation)
>>
>> # The `bpf' device enables the Berkeley Packet Filter.
>> # Be aware of the administrative consequences of enabling this!
>> # Note that 'bpf' is required for DHCP.
>> 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 udbp # USB Double Bulk Pipe devices
>> 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 ural # Ralink Technology RT2500USB wireless NICs
>> device urio # Diamond Rio 500 MP3 player
>> device uscanner # Scanners
>> # USB Ethernet, requires miibus
>> device aue # ADMtek USB Ethernet
>> device axe # ASIX Electronics USB Ethernet
>> device cdce # Generic USB over Ethernet
>> device cue # CATC USB Ethernet
>> device kue # Kawasaki LSI USB Ethernet
>> device rue # RealTek RTL8150 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!)
>>
>> -----
>>
>> make buildkernel KERNCONF=RELENG_6_i686
>>
>> MAKE=/usr/obj/usr/src/make.i386/make sh /usr/src/sys/conf/newvers.sh
>> RELENG_6_i686
>> cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs
>> -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
>> -Wcast-qual  -fformat-extensions -std=c99 -g -nostdinc -I-  -I.
>> -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
>> -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
>> -finline-limit=8000 --param inline-unit-growth=100 --param
>> large-function-growth=1000  -mno-align-long-strings
>> -mpreferred-stack-boundary=2  -mno-mmx -mno-3dnow -mno-sse -mno-sse2
>> -mno-sse3 -ffreestanding -Werror  vers.c
>> linking kernel.debug
>> if_aue.o(.text+0x96d): In function `aue_attach':
>> /usr/src/sys/dev/usb/if_aue.c:749: undefined reference to
>> `mii_phy_probe'
>> if_aue.o(.text+0xcfe): In function `aue_tick':
>> /usr/src/sys/dev/usb/if_aue.c:1032: undefined reference to `mii_tick'
>> if_aue.o(.text+0x1051): In function `aue_init':
>> /usr/src/sys/dev/usb/if_aue.c:1198: undefined reference to
>> `mii_mediachg'
>> if_aue.o(.text+0x1156): In function `aue_ifmedia_upd':
>> /usr/src/sys/dev/usb/if_aue.c:1263: undefined reference to
>> `mii_phy_reset'
>> if_aue.o(.text+0x1166):/usr/src/sys/dev/usb/if_aue.c:1265: undefined
>> reference to `mii_mediachg'
>> if_aue.o(.text+0x1191): In function `aue_ifmedia_sts':
>> /usr/src/sys/dev/usb/if_aue.c:1279: undefined reference to
>> `mii_pollstat'
>> if_aue.o(.data+0x90): In function `aue_csr_read_2':
>> /usr/src/sys/dev/usb/if_aue.c:294: undefined reference to
>> `miibus_readreg_desc'
>> if_aue.o(.data+0x98):/usr/src/sys/dev/usb/if_aue.c:295: undefined
>> reference to `miibus_writereg_desc'
>> if_aue.o(.data+0xa0):/usr/src/sys/dev/usb/if_aue.c:296: undefined
>> reference to `miibus_statchg_desc'
>> if_aue.o(.data+0x114): In function `aue_csr_write_1':
>> /usr/src/sys/dev/usb/if_aue.c:325: undefined reference to
>> `miibus_driver'
>> if_aue.o(.data+0x118):/usr/src/sys/dev/usb/if_aue.c:325: undefined
>> reference to `miibus_devclass'
>> if_axe.o(.text+0x1fe): In function `axe_ifmedia_upd':
>> /usr/src/sys/dev/usb/if_axe.c:296: undefined reference to
>> `mii_phy_reset'
>> if_axe.o(.text+0x20e):/usr/src/sys/dev/usb/if_axe.c:298: undefined
>> reference to `mii_mediachg'
>> if_axe.o(.text+0x239): In function `axe_ifmedia_sts':
>> /usr/src/sys/dev/usb/if_axe.c:312: undefined reference to `mii_pollstat'
>> if_axe.o(.text+0x6a1): In function `axe_attach':
>> /usr/src/sys/dev/usb/if_axe.c:509: undefined reference to
>> `mii_phy_probe'
>> if_axe.o(.text+0x9ea): In function `axe_tick':
>> /usr/src/sys/dev/usb/if_axe.c:739: undefined reference to `mii_tick'
>> if_axe.o(.data+0x70): In function `axe_cmd':
>> /usr/src/sys/dev/usb/if_axe.c:198: undefined reference to
>> `miibus_readreg_desc'
>> if_axe.o(.data+0x78):/usr/src/sys/dev/usb/if_axe.c:201: undefined
>> reference to `miibus_writereg_desc'
>> if_axe.o(.data+0x80):/usr/src/sys/dev/usb/if_axe.c:204: undefined
>> reference to `miibus_statchg_desc'
>> if_axe.o(.data+0xf4): In function `axe_miibus_readreg':
>> /usr/src/sys/dev/usb/if_axe.c:234: undefined reference to
>> `miibus_driver'
>> if_axe.o(.data+0xf8):/usr/src/sys/dev/usb/if_axe.c:234: undefined
>> reference to `miibus_devclass'
>> if_ural.o(.text+0x3bb): In function `ural_attach':
>> /usr/src/sys/dev/usb/if_ural.c:458: undefined reference to
>> `ieee80211_ieee2mhz'
>> if_ural.o(.text+0x3ef):/usr/src/sys/dev/usb/if_ural.c:463: undefined
>> reference to `ieee80211_ieee2mhz'
>> if_ural.o(.text+0x427):/usr/src/sys/dev/usb/if_ural.c:468: undefined
>> reference to `ieee80211_ieee2mhz'
>> if_ural.o(.text+0x4bb):/usr/src/sys/dev/usb/if_ural.c:480: undefined
>> reference to `ieee80211_ieee2mhz'
>> if_ural.o(.text+0x4e2):/usr/src/sys/dev/usb/if_ural.c:487: undefined
>> reference to `ieee80211_ifattach'
>> if_ural.o(.text+0x513):/usr/src/sys/dev/usb/if_ural.c:493: undefined
>> reference to `ieee80211_media_status'
>> if_ural.o(.text+0x51e):/usr/src/sys/dev/usb/if_ural.c:493: undefined
>> reference to `ieee80211_media_init'
>> if_ural.o(.text+0x580):/usr/src/sys/dev/usb/if_ural.c:507: undefined
>> reference to `ieee80211_announce'
>> if_ural.o(.text+0x628): In function `ural_detach':
>> /usr/src/sys/dev/usb/if_ural.c:535: undefined reference to
>> `ieee80211_ifdetach'
>> if_ural.o(.text+0x73a): In function `ural_free_tx_list':
>> /usr/src/sys/dev/usb/if_ural.c:595: undefined reference to
>> `ieee80211_free_node'
>> if_ural.o(.text+0x8da): In function `ural_media_change':
>> /usr/src/sys/dev/usb/if_ural.c:673: undefined reference to
>> `ieee80211_media_change'
>> if_ural.o(.text+0x954): In function `ural_next_scan':
>> /usr/src/sys/dev/usb/if_ural.c:699: undefined reference to
>> `ieee80211_next_scan'
>> if_ural.o(.text+0xabf): In function `ural_task':
>> /usr/src/sys/dev/usb/if_ural.c:756: undefined reference to
>> `ieee80211_beacon_alloc'
>> if_ural.o(.text+0xc1f): In function `ural_txeof':
>> /usr/src/sys/dev/usb/if_ural.c:826: undefined reference to
>> `ieee80211_free_node'
>> if_ural.o(.text+0xd45): In function `ural_rxeof':
>> /usr/src/sys/dev/usb/if_ural.c:890: undefined reference to
>> `ieee80211_find_rxnode'
>> if_ural.o(.text+0xd5b):/usr/src/sys/dev/usb/if_ural.c:893: undefined
>> reference to `ieee80211_input'
>> if_ural.o(.text+0xd63):/usr/src/sys/dev/usb/if_ural.c:896: undefined
>> reference to `ieee80211_free_node'
>> if_ural.o(.text+0x130c): In function `ural_tx_data':
>> /usr/src/sys/dev/usb/if_ural.c:1218: undefined reference to
>> `ieee80211_crypto_encap'
>> if_ural.o(.text+0x179c): In function `ural_start':
>> /usr/src/sys/dev/usb/if_ural.c:1321: undefined reference to
>> `ieee80211_find_txnode'
>> if_ural.o(.text+0x17eb):/usr/src/sys/dev/usb/if_ural.c:1328: undefined
>> reference to `ieee80211_encap'
>> if_ural.o(.text+0x17fa):/usr/src/sys/dev/usb/if_ural.c:1330: undefined
>> reference to `ieee80211_free_node'
>> if_ural.o(.text+0x1833):/usr/src/sys/dev/usb/if_ural.c:1338: undefined
>> reference to `ieee80211_free_node'
>> if_ural.o(.text+0x18e8): In function `ural_watchdog':
>> /usr/src/sys/dev/usb/if_ural.c:1370: undefined reference to
>> `ieee80211_watchdog'
>> if_ural.o(.text+0x19c4): In function `ural_ioctl':
>> /usr/src/sys/dev/usb/if_ural.c:1417: undefined reference to
>> `ieee80211_ioctl'
>> if_ural.o(.text+0x1e30): In function `ural_set_chan':
>> /usr/src/sys/dev/usb/if_ural.c:1606: undefined reference to
>> `ieee80211_chan2ieee'
>> if_rue.o(.text+0x833): In function `rue_attach':
>> /usr/src/sys/dev/usb/if_rue.c:689: undefined reference to
>> `mii_phy_probe'
>> if_rue.o(.text+0xc8a): In function `rue_tick':
>> /usr/src/sys/dev/usb/if_rue.c:970: undefined reference to `mii_tick'
>> if_rue.o(.text+0xfa4): In function `rue_init':
>> /usr/src/sys/dev/usb/if_rue.c:1145: undefined reference to
>> `mii_mediachg'
>> if_rue.o(.text+0x10f6): In function `rue_ifmedia_upd':
>> /usr/src/sys/dev/usb/if_rue.c:1210: undefined reference to
>> `mii_phy_reset'
>> if_rue.o(.text+0x1106):/usr/src/sys/dev/usb/if_rue.c:1212: undefined
>> reference to `mii_mediachg'
>> if_rue.o(.text+0x1131): In function `rue_ifmedia_sts':
>> /usr/src/sys/dev/usb/if_rue.c:1227: undefined reference to
>> `mii_pollstat'
>> if_rue.o(.data+0x50): In function `rue_read_mem':
>> /usr/src/sys/dev/usb/if_rue.c:231: undefined reference to
>> `miibus_readreg_desc'
>> if_rue.o(.data+0x58):/usr/src/sys/dev/usb/if_rue.c:241: undefined
>> reference to `miibus_writereg_desc'
>> if_rue.o(.data+0x60):/usr/src/sys/dev/usb/if_rue.c:235: undefined
>> reference to `miibus_statchg_desc'
>> if_rue.o(.data+0xd4): In function `rue_write_mem':
>> /usr/src/sys/dev/usb/if_rue.c:261: undefined reference to
>> `miibus_driver'
>> if_rue.o(.data+0xd8):/usr/src/sys/dev/usb/if_rue.c:261: undefined
>> reference to `miibus_devclass'
>> *** Error code 1
>>
>> Stop in /usr/obj/usr/src/sys/RELENG_6_i686.
>> *** Error code 1
>>
>> Stop in /usr/src.
>> *** Error code 1
>>
>> Stop in /usr/src.
>>
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>>
>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Wed Nov 02 2005 - 11:58:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:46 UTC