- cat /sys/bus/*/devices/*/modalias | dev2mod
-}
-
-# FB0DEV: framebuffer driver
-# LANDEV: lan driver
-# WIFDEV: wifi driver
-# SNDDEV: sound driver
-# CAMDEV: camera driver
-# PREDEV: any module the drivers depend on but can't be loaded automatically
-
-get_asus_info()
-{
- # common for all Eee PC models
- [ -c /dev/fb0 ] || FB0DEV=i915
- PREDEV=snd-hda-codec-realtek
- SNDDEV=snd-hda-intel
- CAMDEV=uvcvideo
-
- board=`cat /sys/class/dmi/id/product_name`
- # assume Eee PC models
- case "$board" in
- 700|701|900)
- LANDEV=atl2
- WIFDEV=ath5k
- ;;
- 701SD|900SD)
- LANDEV=atl1e
- WIFDEV=rtl8187se
- ;;
- 900A|904HD|1000HD)
- LANDEV=atl1e
- WIFDEV=ath5k
- ;;
- 901|1000|1000H)
- LANDEV=atl1e
- WIFDEV=rt2860sta
- ;;
- ET1602*)
- FB0DEV=
- UVESA_MODE=${UVESA_MODE:-1366x768}
- LANDEV=r8169
- WIFDEV=rt2860sta
- ;;
- T91)
- FB0DEV=
- UVESA_MODE=${UVESA_MODE:-1024x600}
- LANDEV=atl1e
- WIFDEV=ath9k
- ;;
- *)
- LANDEV=atl1e
- WIFDEV=ath9k
- ;;
- esac
-}
-
-get_vbox_info()
-{
- LANDEV=pcnet32
- SNDDEV="snd-sb16 isapnp=0 irq=5"
-}
-
-get_qemu_info()
-{
- LANDEV=8139cp
- SNDDEV=snd-ens1370
-}
-
-get_vmware_info()
-{
- LANDEV=pcnet32
- SNDDEV=snd-ens1371
-}
-
-check_product()
-{
- grep -q "$1" /sys/class/dmi/id/uevent
-}
-
-detect_hardware()
-{
- check_product ASUSTeK && get_asus_info && return 0
- check_product Acer.*AO && get_ao_info && return 0
- check_product VirtualBox && get_vbox_info && return 0
- check_product QEMU && get_qemu_info && return 0
- check_product VMware && get_vmware_info && return 0
+ cat /sys/bus/*/devices/*/uevent | grep MODALIAS | sed 's/^MODALIAS=//' | awk '!seen[$0]++' | dev2mod
+ cat /sys/devices/virtual/wmi/*/modalias | dev2mod