First, here's the specs on my laptop. There's no sense in following my directions if you've got something completely different.
dmesg output:
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.4-PRERELEASE #2: Thu Mar 31 01:04:39 EST 2005
root@mojo.freebsdgirl.com:/usr/obj/usr/src/sys/JOJO
ACPI APIC Table: <DELL CPi R >
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (2992.51-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf34 Stepping = 4
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Hyperthreading: 2 logical CPUs
real memory = 804954112 (767 MB)
avail memory = 777936896 (741 MB)
ioapic0: Changing APIC ID to 2
ioapic0 <Version 2.0> irqs 0-23 on motherboard
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <DELL CPi R > on motherboard
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_acad0: <AC Adapter> on acpi0
acpi_cmbat0: <Control Method Battery> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82865 host to AGP bridge> mem 0xe8000000-0xefffffff at device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
acpi_video0: <ACPI video extension> port 0xc000-0xc0ff mem 0xfcff0000-0xfcffffff,0xf0000000-0xf7ffffff irq 16 at device 0.0 on pci1
uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0xbf80-0xbf9f irq 16 at device 29.0 on pci0
usb0: <Intel 82801EB (ICH5) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <Intel 82801EB (ICH5) USB controller USB-B> port 0xbf60-0xbf7f irq 19 at device 29.1 on pci0
usb1: <Intel 82801EB (ICH5) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <Intel 82801EB (ICH5) USB controller USB-C> port 0xbf40-0xbf5f irq 18 at device 29.2 on pci0
usb2: <Intel 82801EB (ICH5) USB controller USB-C> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <Intel 82801EB (ICH5) USB controller USB-D> port 0xbf20-0xbf3f irq 16 at device 29.3 on pci0
usb3: <Intel 82801EB (ICH5) USB controller USB-D> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
pci0: <serial bus, USB> at device 29.7 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib2
bfe0: <Broadcom BCM4401 Fast Ethernet> mem 0xfaffe000-0xfaffffff irq 18 at device 0.0 on pci2
miibus0: <MII bus> on bfe0
bmtphy0: <BCM4401 10/100baseTX PHY> on miibus0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
bfe0: Ethernet address: 00:0f:1f:1e:eb:55
cbb0: <TI4510 PCI-CardBus Bridge> at device 1.0 on pci2
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
fwohci0: <1394 Open Host Controller Interface> mem 0xfaff8000-0xfaffbfff,0xfaffd800-0xfaffdfff irq 19 at device 1.1 on pci2
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 48:4f:c0:00:26:7d:34:a1
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 4a:4f:c0:7d:34:a1
fwe0: Ethernet address: 4a:4f:c0:7d:34:a1
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
ndis0: <Dell TrueMobile 1300 WLAN Mini-PCI Card> mem 0xfaff6000-0xfaff7fff irq 17 at device 3.0 on pci2
ndis0: NDIS API version: 5.1
ndis0: Ethernet address: 00:90:96:cf:e5:1f
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH5 UDMA100 controller> port 0xbfa0-0xbfaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pcm0: <Intel ICH5 (82801EB)> port 0xdc40-0xdc7f,0xd800-0xd8ff mem 0xf8fff400-0xf8fff4ff,0xf8fff800-0xf8fff9ff irq 17 at device 31.5 on pci0
pcm0: <SigmaTel STAC9750/51 AC97 Codec>
pci0: <simple comms> at device 31.6 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model GlidePoint, device ID 0
orm0: <ISA Option ROM> at iomem 0xc0000-0xcffff on isa0
pmtimer0 on isa0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 8250 or not responding
sio1: configured irq 3 not in bitmap of probed irqs 0x200
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2992511700 Hz quality 800
Timecounters tick every 10.000 msec
ad0: 38154MB <FUJITSU MHT2040AH/006C> [77520/16/63] at ata0-master UDMA100
acd0: CDRW <QSI CD-RW/DVD-ROM SBW242U/UD25> at ata1-master UDMA33
cd0 at ata1 bus 0 target 0 lun 0
cd0: <QSI CDRW/DVD SBW242U UD25> Removable CD-ROM SCSI-0 device
cd0: 33.000MB/s transfers
cd0: cd present [302880 x 2048 byte records]
Mounting root from ufs:/dev/ad0s1a
pciconf -lvvv output:
agp0@pci0:0:0: class=0x060000 card=0x01591028 chip=0x25708086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82865G/PE/P, 82848P DRAM Controller / Host-Hub Interface'
class = bridge
subclass = HOST-PCI
pcib1@pci0:1:0: class=0x060400 card=0x00000000 chip=0x25718086 rev=0x02 hdr=0x01
vendor = 'Intel Corporation'
device = '82865G/PE/P, 82848P PCI-to-AGP Bridge'
class = bridge
subclass = PCI-PCI
uhci0@pci0:29:0: class=0x0c0300 card=0x01591028 chip=0x24d28086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1'
class = serial bus
subclass = USB
uhci1@pci0:29:1: class=0x0c0300 card=0x01591028 chip=0x24d48086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2'
class = serial bus
subclass = USB
uhci2@pci0:29:2: class=0x0c0300 card=0x01591028 chip=0x24d78086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3'
class = serial bus
subclass = USB
uhci3@pci0:29:3: class=0x0c0300 card=0x01591028 chip=0x24de8086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4'
class = serial bus
subclass = USB
none0@pci0:29:7: class=0x0c0320 card=0x01591028 chip=0x24dd8086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) USB EHCI Controller'
class = serial bus
subclass = USB
pcib2@pci0:30:0: class=0x060400 card=0x00000000 chip=0x244e8086 rev=0xc2 hdr=0x01
vendor = 'Intel Corporation'
device = '82801BA/CA/DB/DBL/EB/ER (ICH2/3/4/4-L/5/5R), 6300ESB Hub Interface to PCI Bridge'
class = bridge
subclass = PCI-PCI
isab0@pci0:31:0: class=0x060100 card=0x00000000 chip=0x24d08086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) LPC Interface Bridge'
class = bridge
subclass = PCI-ISA
atapci0@pci0:31:1: class=0x01018a card=0x01591028 chip=0x24db8086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) EIDE Controller'
class = mass storage
subclass = ATA
pcm0@pci0:31:5: class=0x040100 card=0x01591028 chip=0x24d58086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller'
class = multimedia
subclass = audio
none1@pci0:31:6: class=0x070300 card=0x4d6414e4 chip=0x24d68086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller'
class = simple comms
acpi_video0@pci1:0:0: class=0x030000 card=0x51021028 chip=0x4e501002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc.'
device = 'Radeon Mobility M10 NP (RV350)'
class = display
subclass = VGA
bfe0@pci2:0:0: class=0x020000 card=0x81271028 chip=0x440114e4 rev=0x01 hdr=0x00
vendor = 'Broadcom Corporation'
device = 'BCM4401 10/100 Integrated Ethernet Controller'
class = network
subclass = ethernet
cbb0@pci2:1:0: class=0x060700 card=0x01591028 chip=0xac44104c rev=0x02 hdr=0x02
vendor = 'Texas Instruments (TI)'
device = 'PCI4510 PC card CardBus Controller'
class = bridge
subclass = PCI-CardBus
fwohci0@pci2:1:1: class=0x0c0010 card=0x01591028 chip=0x8029104c rev=0x00 hdr=0x00
vendor = 'Texas Instruments (TI)'
device = '??? OHCI Compliant IEEE-1394 FireWire Controller'
class = serial bus
subclass = FireWire
ndis0@pci2:3:0: class=0x028000 card=0x00031028 chip=0x432014e4 rev=0x03 hdr=0x00
vendor = 'Broadcom Corporation'
device = 'BCM4306 802.11b/g Wireless LAN Controller'
class = network
There's a few things here that you doubtless won't see on a default FreeBSD 5.4 install, mainly being ndis0, acpi_video0, and pcm0.
First, let's work on the easy stuff. Sound! If you look at my pciconf, you'll see I'm working with an Intel ICH5. Easy stuff. To start sound now, use:
kldload snd_ich
You'll doubtless want to have it working at boot, so just stick this in your /boot/loader.conf:
snd_ich_load="YES"
To verify all of this worked, just take a look at your /dev/sndstat. Mine looks like this:
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <intel ICH5 (82801EB)> at io 0xf8fff800, 0xf8fff400 irq 17 bufsz 16384 kld snd_ich (1p/1r/0v channels duplex default)
ACPI video isn't really necessary. ACPI on Dell laptops is so broken, it's not even funny. I can get to S1 with acpiconf -s 1, but that doesn't really seem to do much. It's somewhat of a power saving mode. Just man acpiconf for more info on the sleep mode numbers. Loading the acpi_video module just lets me shut off my screen when I put my laptop into S1. It's not quite so simple as just loading the module, though. You need to edit your /etc/rc.resume and /etc/rc.suspend files as well.
First, load the module.
kldload acpi_video
Next, edit your /boot/loader.conf.
acpi_video_load="YES"
Now, for the /etc/rc.resume file. Put this right before the exit 0 at the end of the file:
sysctl hw.acpi.video.lcd0.active=1
Add this to the end of /etc/rc.suspend, right before the exit 0:
sysctl hw.acpi.video.lcd0.active=0
That's about as much as I can show you for the ACPI. I'm still a bit lost on that one. Dell, get your act together.
X.org? Easy. Here's my xorg.conf:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "record"
Load "xtrap"
Load "freetype"
Load "speedo"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Emulate3Buttons"
EndSection
Section "Monitor"
#DisplaySize 330 210 # mm
Identifier "Monitor0"
VendorName "SEC"
ModelName "3150"
EndSection
Section "Device"
Identifier "Card0"
Driver "ati"
VendorName "ATI Technologies Inc"
BoardName "RV350 [Mobility Radeon 9600 M10]"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
NDIS is loads of fun. Go to Dell's website and download the self-extracting zip for your network card. You can use unzip(1) to unzip it.
Before we go any further, make sure you have the kernel source tree at /usr/src/sys. You need this. If you don't know how to grab it, read the handbook. :)
Now, copy the *.inf and *.sys for your wireless card into /usr/src/sys/modules/if_ndis. For my network card, the files were bcmwl5.sys and bcmwl5.inf. We're going to use these files to create the ndis_driver_data.h. That handy tool ndiscvt(8) does this for us.
ndiscvt -i bcmwl5.inf -s bcmwl5.sys -o ndis_driver_data.h
make install
This should have created an if_ndis.ko for you and popped it into /boot/kernel.
Load it:
kldload if_ndis
Put it in your /boot/loader.conf:
ndis_load="YES"
if_ndis_load="YES"
Did ndis0 show up in your dmesg? It should. If not, do I look like FreeBSD Technical Support? Contact the freebsd-mobile mailing list. :)
Darius from #freebsdhelp on EFNet also published some information about FreeBSD on Inspirons. Check out his page at http://www.gsoft.com.au/~doconnor/I8600/.