OSDN Git Service

initrd: move find_network_dev_name after post_detect.
[android-x86/bootable-newinstaller.git] / initrd / scripts / 0-auto-detect
1 #
2 # By Chih-Wei Huang <cwhuang@linux.org.tw>
3 # Last updated 2012/07/10
4 #
5 # License: GNU Public License
6 # We explicitely grant the right to use the scripts
7 # with Android-x86 project.
8 #
9
10 # An auto detect function provided by kinneko
11 auto_detect()
12 {
13         tmp=/tmp/dev2mod
14         echo 'dev2mod() { while read dev; do case $dev in' > $tmp
15         sort -r /lib/modules/`uname -r`/modules.alias | \
16                 sed -n 's/^alias  *\([^ ]*\)  *\(.*\)/\1)modprobe \2;;/p' >> $tmp
17         echo 'esac; done; }' >> $tmp
18         source $tmp
19         cat /sys/bus/*/devices/*/modalias | dev2mod
20         cat /sys/devices/virtual/wmi/*/modalias | dev2mod
21 }
22
23 load_uvesafb()
24 {
25         [ -x /sbin/v86d ] || ln -s ../android/sbin/v86d /sbin
26         [ -c /dev/fb0 ] || modprobe uvesafb mode_option=${UVESA_MODE:-800x600}-16 ${UVESA_OPTION:-mtrr=3 scroll=redraw}
27         if [ -z "$HWACCEL" ]; then
28                 case "`cat /proc/fb`" in
29                         *inteldrmfb|*radeondrmfb)
30                                 ;;
31                         *)
32                                 export HWACCEL=0
33                                 ;;
34                 esac
35         fi
36 }
37
38 find_network_dev_name()
39 {
40         INITRC=init.rc
41         DHCPCD="/system/bin/dhcpcd -o domain_name_servers"
42         rmline=`grep -n "#REMOVE FROM HERE" $INITRC | cut -d':' -f1`
43         rmline=`expr $rmline + 1`
44         sed -i -e "$rmline,\$d" $INITRC
45         for netdev in `ls /sys/class/net`; do
46                 case "$netdev" in
47                         lo|ip6tnl*|sit*|tun*|eth0|wlan0|wmaster*)
48                                 ;;
49                         *)
50                                 echo -e "\nservice dhcpcd_$netdev $DHCPCD -ABDKL\n    class main\n    disabled\n    oneshot\n" >> $INITRC
51                                 echo -e "service iprenew_$netdev $DHCPCD -n\n    class main\n    disabled\n    oneshot" >> $INITRC
52                                 ;;
53                 esac
54         done
55 }
56
57 load_modules()
58 {
59         if [ -n "$FOUND" ]; then
60                 [ -n "$PREDEV" ] && modprobe $PREDEV
61                 [ -n "$FB0DEV" -a -z "$UVESA_MODE" ] && modprobe $FB0DEV
62                 [ -n "$LANDEV" ] && modprobe $LANDEV
63                 [ -n "$WIFDEV" ] && modprobe $WIFDEV
64                 [ -n "$SNDDEV" ] && modprobe $SNDDEV
65                 [ -n "$CAMDEV" ] && modprobe $CAMDEV
66         else
67                 auto_detect
68         fi
69
70         # bluetooth modules
71         EXTMOD="$EXTMOD bnep rfcomm sco btusb"
72         # 3G modules
73         EXTMOD="$EXTMOD cdc-acm option pppoe ppp-async ppp-deflate bsd-comp"
74         for m in $EXTMOD; do
75                 modprobe $m
76         done
77
78         [ -c /dev/video0 ] || modprobe vivi
79         [ -d /proc/asound/card0 ] || modprobe snd-dummy
80         load_uvesafb
81 }