Hello,
NetBSD does support modules but not everything is available/build as module contrary to FreeBSD- you have to compile your own kernel. I attach my config of NetBSD kernel I used up to version 5.99.24 if I remember. Config was for T61 Thinkpad.
The kernel driver for thinkpad support:
Code:
thinkpad* at acpi? # IBM/Lenovo Thinkpad hotkeys
Synaptics works:
Code:
options PMS_SYNAPTICS_TOUCHPAD # Enable support for Synaptics Touchpads
Fan I don't know- I didn't really want to set the speed- on T61 fan was quite quiet.
The motion sensor is available:
Code:
aps0 at isa? port 0x1600
Please also read here about aps:
http://netbsd.gw.com/cgi-bin/man-cgi?aps+4+NetBSD-5.0
If I could tell you something about NetBSD support for Thinkapd is that almost all is supported well: function keys, audio keys, docking station, audio card, wireless (only intel3945 gave some problems), sd card reader, suspend/resume works but not in every case (bluetooth devices, aps, usb audio devices and built in sd card reader disallow suspend- perhaps something changed in the most current branch).
Apart that I have never had any other problems with NetBSD.
Code:
include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
ident "Guusje"
maxusers 32 # estimated number of users
options VM86 # virtual 8086 emulation
options USER_LDT # user-settable LDT; used by WINE
options ENHANCED_SPEEDSTEP
options EST_FREQ_USERWRITE # any user can set frequency
options INTEL_ONDEMAND_CLOCKMOD
options MTRR # memory-type range register syscall support
options PERFCTRS # performance-monitoring counters support
options MULTIBOOT # Multiboot support (see multiboot(8))
options INSECURE # disable kernel security levels - X needs this
options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
options NTP # NTP phase/frequency locked loop
options APM_NO_IDLE # needed for SMP
options KTRACE # system call tracing via ktrace(1)
options SYSVMSG # System V-like message queues
options SYSVSEM # System V-like semaphores
options SEMMNI=10 # number of semaphore identifiers
options SEMMNS=60 # number of semaphores in system
options SEMUME=10 # max number of undo entries per process
options SEMMNU=30 # number of undo structures in system
options SYSVSHM # System V-like memory sharing
options SHMMAXPGS=2048 # 2048 pages is the default
options P1003_1B_SEMAPHORE # p1003.1b semaphore support
options MODULAR # new modules framework
options USERCONF # userconf(4) support
options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
options BUFQ_READPRIO
options BUFQ_PRIOCSCAN
options COMPAT_NOMID # NetBSD 0.8, 386BSD, and BSDI
options COMPAT_43
options COMPAT_LINUX # binary compatibility with Linux
options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
options X86EMU # 386 Real Mode emulator
file-system FFS # UFS
file-system EXT2FS # second extended file system (linux)
file-system MFS # memory file system
file-system CD9660 # ISO 9660 + Rock Ridge file system
file-system MSDOSFS # MS-DOS file system
file-system NFS # Network File System client
file-system KERNFS # /kern
file-system NULLFS # loopback file system
file-system PROCFS # /proc
file-system SYSVBFS # System V boot file system
file-system PTYFS # /dev/ptm support
file-system TMPFS # Efficient memory file-system
file-system PUFFS # experimental - Userspace file system support
options WAPBL # File system journaling support - Experimental
options NFSSERVER # Network File System server
options GATEWAY # packet forwarding
options INET # IP + ICMP + TCP + UDP
options INET6 # IPV6
options PPP_BSDCOMP # BSD-Compress compression support for PPP
options PPP_DEFLATE # Deflate compression support for PPP
options PPP_FILTER # Active filter support for PPP (requires bpf)
options PFIL_HOOKS # pfil(9) packet filter hooks
options IPFILTER_LOG # ipmon(8) log support
options IPFILTER_LOOKUP # ippool(8) support
options ACPIVERBOSE # verbose ACPI device autoconfig messages
options MIIVERBOSE # verbose PHY autoconfig messages
options PCIVERBOSE # verbose PCI device autoconfig messages
options PCMCIAVERBOSE # verbose PCMCIA configuration messages
options SCSIVERBOSE # human readable SCSI error messages
options USBVERBOSE # verbose USB device autoconfig messages
options I2C_SCAN # Scan i2c bus for responses
options WSEMUL_VT100 # VT100 / VT220 emulation
options WSDISPLAY_CUSTOM_OUTPUT # color customization from wsconsctl(8)
options WS_DEFAULT_FG=WSCOL_WHITE
options WS_DEFAULT_BG=WSCOL_BLACK
options WS_DEFAULT_COLATTR="(0)"
options WS_DEFAULT_MONOATTR="(0)"
options WS_KERNEL_FG=WSCOL_GREEN
options WS_KERNEL_BG=WSCOL_BLACK
options WS_KERNEL_COLATTR="(0)"
options WS_KERNEL_MONOATTR="(0)"
options WSDISPLAY_CUSTOM_BORDER # custom border colors via wsconsctl(8)
options WSDISPLAY_BORDER_COLOR=WSCOL_BLUE # default color
options WSDISPLAY_COMPAT_PCVT # emulate some ioctls
options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls
options WSDISPLAY_COMPAT_USL # VT handling
options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
options PCKBD_CNATTACH_MAY_FAIL
options WSDISPLAY_DEFAULTSCREENS=4
options VGA_CONSOLE_SCREENTYPE="\"80x24\""
options VGA_POST
options WSDISPLAY_SCROLLSUPPORT
#options VGA_RASTERCONSOLE
config netbsd root on ? type ?
apm0 at mainbus0 # Advanced power management
options APM_POWER_PRINT # Print stats on the console
options APM_DISABLE_INTERRUPTS=0 # Don't disable interrupts
options MPBIOS_SCANPCI # find PCI roots using MPBIOS
options ACPI_SCANPCI # find PCI roots using ACPI
ipmi0 at mainbus?
acpi0 at mainbus0
options ACPI_ACTIVATE_DEV # If set, activate inactive devices
options ACPICA_PEDANTIC # force strict conformance to the Spec.
apm* at acpi?
acpiacad* at acpi? # ACPI AC Adapter
acpibat* at acpi? # ACPI Battery
acpibut* at acpi? # ACPI Button
acpiec* at acpi? # ACPI Embedded Controller (late binding)
acpiecdt* at acpi? # ACPI Embedded Controller (early binding)
acpilid* at acpi? # ACPI Lid Switch
acpitz* at acpi? # ACPI Thermal Zone
acpidalb* at acpi?
acpiwmi* at acpi?
attimer* at acpi? # AT Timer
hpet* at acpi? # High Precision Event Timer
npx* at acpi? # Math coprocessor
pckbc* at acpi? # PC keyboard controller
thinkpad* at acpi? # IBM/Lenovo Thinkpad hotkeys
wb* at acpi?
sdmmc* at wb?
pci* at mainbus? bus ?
pci* at pchb? bus ?
options PCIBIOS # PCI BIOS support
options PCIBIOSVERBOSE # PCI BIOS verbose info
options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options PCIBIOS_INTR_GUESS # see pcibios(4)
options PCI_ADDR_FIXUP # fixup PCI I/O addresses
options PCI_BUS_FIXUP # fixup PCI bus numbering
options PCI_INTR_FIXUP # fixup PCI interrupt routing
ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ watchdog and
hpet0 at ichlpcib? # High Precision Event Timer
pchb* at pci? dev ? function ? # PCI-Host bridges
pcib* at pci? dev ? function ? # PCI-ISA bridges
ppb* at pci? dev ? function ? # PCI-PCI bridges
agp* at pchb?
isa0 at ichlpcib?
cbb* at pci? dev ? function ?
cardslot* at cbb?
cardbus* at cardslot?
pcmcia* at cardslot?
pckbd* at pckbc? # PC keyboard
pms* at pckbc? # PS/2 mouse for wsmouse
options PMS_SYNAPTICS_TOUCHPAD # Enable support for Synaptics Touchpads
#vga* at pci? dev ? function ?
#wsdisplay* at vga? console ?
wskbd* at pckbd? console ?
wsmouse* at pms? mux 0
#i915drm* at vga? # Intel i915, i945 DRM driver
genfb* at pci? dev ? function ?
wsdisplay* at genfb? console ?
i915drm* at genfb?
options INTEL_CORETEMP
ichsmb* at pci? dev ? function ?
iic* at ichsmb?
scsibus* at scsi?
sd* at scsibus? target ? lun ? # SCSI disk drives
uk* at scsibus? target ? lun ? # SCSI unknown
piixide* at pci? dev ? function ? # Intel IDE controllers
atabus* at ata?
atapibus* at atapi?
wd* at atabus? drive ? flags 0x0000
cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives
sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives
uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown
wm* at pci? dev ? function ? # Intel 8254x gigabit
wpi* at pci? dev ? function ? # Intel PRO/Wireless 3945ABG
igphy* at mii? phy ? # Intel IGP01E1000
ukphy* at mii? phy ? # generic unknown PHYs
ehci* at pci? dev ? function ? # Enhanced Host Controller
uhci* at pci? dev ? function ? # Universal Host Controller (Intel)
usb* at ehci?
usb* at uhci?
uhub* at usb?
uhub* at uhub? port ?
uhidev* at uhub? port ? configuration ? interface ?
ums* at uhidev? reportid ?
wsmouse* at ums? mux 0
ukbd* at uhidev? reportid ?
wskbd* at ukbd? console ? mux 1
uhid* at uhidev? reportid ?
ulpt* at uhub? port ? configuration ? interface ?
umass* at uhub? port ? configuration ? interface ?
wd* at umass?
uaudio* at uhub? port ? configuration ?
ugen* at uhub? port ?
options UGEN_BULK_RA_WB
fwohci* at pci? dev ? function ? # IEEE1394 Open Host Controller
fwohci* at cardbus? function ? # IEEE1394 Open Host Controller
ieee1394if* at fwohci?
fwip* at ieee1394if? # IP over IEEE1394
sbp* at ieee1394if? euihi ? euilo ? # SCSI over IEEE1394
sdhc* at pci?
sdmmc* at sdhc?
ld* at sdmmc?
hdaudio* at pci? dev ? function ?
hdafg* at hdaudiobus?
audio* at audiobus?
uvideo* at uhub? # USB Video Class capture devices
video* at videobus?
ubt* at uhub? port ?
bthub* at bcsp?
bthub* at btuart?
bthub* at ubt?
bthub* at sbt?
bthidev* at bthub?
btms* at bthidev? reportid ?
wsmouse* at btms? mux 0
btkbd* at bthidev? reportid ?
wskbd* at btkbd? console ? mux 1
sbt* at sdmmc?
pseudo-device crypto # /dev/crypto device
pseudo-device swcrypto # software crypto implementation
pseudo-device ccd 4 # concatenated/striped disk devices
pseudo-device cgd 4 # cryptographic disk devices
pseudo-device fss 4 # file system snapshot device
pseudo-device md 1 # memory disk device (ramdisk)
options MEMORY_DISK_HOOKS # enable root ramdisk
options MEMORY_DISK_DYNAMIC # loaded via kernel module
pseudo-device vnd # disk-like interface to files
options VND_COMPRESSION # compressed vnd(4)
pseudo-device bpfilter # Berkeley packet filter
pseudo-device ipfilter # IP filter (firewall) and NAT
pseudo-device loop # network loopback
pseudo-device ppp # Point-to-Point Protocol
pseudo-device pppoe # PPP over Ethernet (RFC 2516)
pseudo-device tap # virtual Ethernet
pseudo-device bridge # simple inter-network bridging
options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too
pseudo-device pf # PF packet filter
pseudo-device pflog # PF log if
pseudo-device pty # pseudo-terminals
pseudo-device rnd # /dev/random and in-kernel generator
pseudo-device clockctl # user control of clock subsystem
pseudo-device ksyms # /dev/ksyms
pseudo-device bcsp # BlueCore Serial Protocol
pseudo-device btuart # Bluetooth HCI UART (H4)
pseudo-device wsmux # mouse & keyboard multiplexor
pseudo-device wsfont
options FILEASSOC # fileassoc(9) - required for Veriexec
pseudo-device veriexec
pseudo-device drvctl
pseudo-device swwdog
pseudo-device cmos
pseudo-device putter
pseudo-device pud
pseudo-device pad
options VERIFIED_EXEC_FP_RMD160
options VERIFIED_EXEC_FP_SHA256
options VERIFIED_EXEC_FP_SHA384
options VERIFIED_EXEC_FP_SHA512
options VERIFIED_EXEC_FP_SHA1
options VERIFIED_EXEC_FP_MD5
options PAX_MPROTECT=0 # PaX mprotect(2) restrictions
options PAX_SEGVGUARD=0 # PaX Segmentation fault guard
options PAX_ASLR=0 # PaX Address Space Layout Randomization
Goodluck !
Pjoter