OSDN Git Service

* support vbox audio (issue #7)
[android-x86/bootable-newinstaller.git] / initrd / scripts / 0-auto-detect
1 #
2 # By Chih-Wei Huang <cwhuang@linux.org.tw>
3 # Last updated 2009/07/18
4 #
5 # License: GNU Public License
6 # We explicitely grant the right to use the scripts
7 # with Android-x86 project.
8 #
9
10 # TODO: implement a more generic auto detection by scanning /sys
11 # For now we just look up the machine name.
12
13 # FB0DEV: framebuffer driver
14 # LANDEV: lan driver
15 # WIFDEV: wifi driver
16 # SNDDEV: sound driver
17 # CAMDEV: camera driver
18 # PREDEV: any module the drivers depend on but can't be loaded automatically
19
20 get_asus_info()
21 {
22         board=`cat /sys/class/dmi/id/board_name`
23         # assume Eee PC models
24         case "$board" in
25                 700|701|900)
26                         LANDEV=atl2
27                         WIFDEV=ath5k
28                         ;;
29                 701SD|900SD)
30                         LANDEV=atl1e
31                         WIFDEV=rtl8187se
32                         ;;
33                 900A|904HD)
34                         LANDEV=atl1e
35                         WIFDEV=ath5k
36                         ;;
37                 *)
38                         LANDEV=atl1e
39                         WIFDEV=ath9k
40 #                       WIFDEV=rt2860sta
41                         ;;
42         esac
43
44         # common for all Eee PC models
45         FB0DEV=i915
46         SNDDEV=snd-hda-intel
47         CAMDEV=uvcvideo
48         PREDEV=snd-hda-codec-realtek
49 }
50
51 get_vbox_info()
52 {
53         LANDEV=pcnet32
54         SNDDEV="snd-sb16 isapnp=0 irq=5"
55 }
56
57 get_qemu_info()
58 {
59         LANDEV=8139cp
60         SNDDEV=snd-ens1370
61 }
62
63 get_vmware_info()
64 {
65         LANDEV=pcnet32
66         SNDDEV=snd-ens1371
67 }
68
69 check_product()
70 {
71         grep -q "$1" /sys/class/dmi/id/uevent
72 }
73
74 detect_hardware()
75 {
76         check_product ASUSTeK && get_asus_info
77         check_product VirtualBox && get_vbox_info
78         check_product QEMU && get_qemu_info
79         check_product VMware && get_vmware_info
80 }
81
82 load_modules()
83 {
84         detect_hardware
85         for m in $PREDEV; do
86                 modprobe $m
87         done
88         [ -n "$FB0DEV" ] && modprobe $FB0DEV
89         [ -n "$LANDEV" ] && modprobe $LANDEV
90         [ -n "$WIFDEV" ] && modprobe $WIFDEV
91         [ -n "$SNDDEV" ] && modprobe $SNDDEV
92         [ -n "$CAMDEV" ] && modprobe $CAMDEV
93 }