X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fdevice-generic-common.git;a=blobdiff_plain;f=init.sh;h=3e5ae244f1ba29a55a49a93bb875c63f5cb732bf;hp=c77d483cd0e9fc84a40b1e27a5f0965565ce203c;hb=7a6799a85946971f09e48a53d4384afe1775448e;hpb=01f5019b0ab2f27407479be1950edf1643741976 diff --git a/init.sh b/init.sh index c77d483..3e5ae24 100644 --- a/init.sh +++ b/init.sh @@ -1,5 +1,5 @@ # -# Copyright (C) 2013-2015 The Android-x86 Open Source Project +# Copyright (C) 2013-2018 The Android-x86 Open Source Project # # License: GNU Public License v2 or later # @@ -10,6 +10,18 @@ function set_property() [ -n "$DEBUG" ] && echo "$1"="$2" >> /dev/x86.prop } +function set_prop_if_empty() +{ + [ -z "$(getprop $1)" ] && set_property "$1" "$2" +} + +function rmmod_if_exist() +{ + for m in $*; do + [ -d /sys/module/$m ] && rmmod $m + done +} + function init_misc() { # device information @@ -25,6 +37,27 @@ function init_misc() # enable sdcardfs if /data is not mounted on tmpfs or 9p mount | grep /data\ | grep -qE 'tmpfs|9p' [ $? -ne 0 ] && modprobe sdcardfs + + # remove wl if it's not used + local wifi + if [ -d /sys/class/net/wlan0 ]; then + wifi=$(basename `readlink /sys/class/net/wlan0/device/driver`) + [ "$wifi" != "wl" ] && rmmod_if_exist wl + fi + + # enable virt_wifi if needed + local eth=`getprop net.virt_wifi eth0` + if [ -d /sys/class/net/$eth -a "$VIRT_WIFI" != "0" ]; then + if [ -n "$wifi" -a "$VIRT_WIFI" = "1" ]; then + rmmod_if_exist iwlmvm $wifi + fi + if [ ! -d /sys/class/net/wlan0 ]; then + ifconfig $eth down + ip link set $eth name wifi_eth + ifconfig wifi_eth up + ip link add link wifi_eth name wlan0 type virt_wifi + fi + fi } function init_hal_audio() @@ -50,10 +83,12 @@ function init_hal_bluetooth() done case "$PRODUCT" in - T10*TA|HP*Omni*) + T100TAF) + set_property bluetooth.interface hci1 + ;; + T10*TA|M80TA|HP*Omni*) BTUART_PORT=/dev/ttyS1 set_property hal.bluetooth.uart.proto bcm - [ -z "$(getprop sleep.state)" ] && set_property sleep.state none ;; MacBookPro8*) rmmod b43 @@ -96,7 +131,14 @@ function init_hal_bluetooth() function init_hal_camera() { - return + case "$PRODUCT" in + e-tab*Pro) + set_prop_if_empty hal.camera.0 0,270 + set_prop_if_empty hal.camera.2 1,90 + ;; + *) + ;; + esac } function init_hal_gps() @@ -111,10 +153,8 @@ function set_drm_mode() ET1602*) drm_mode=1366x768 ;; - VMware*) - [ -n "$video" ] && drm_mode=$video - ;; *) + [ -n "$video" ] && drm_mode=$video ;; esac @@ -123,6 +163,8 @@ function set_drm_mode() function init_uvesafb() { + UVESA_MODE=${UVESA_MODE:-${video%@*}} + case "$PRODUCT" in ET2002*) UVESA_MODE=${UVESA_MODE:-1600x900} @@ -141,7 +183,9 @@ function init_hal_gralloc() if [ "$HWACCEL" != "0" ]; then set_property ro.hardware.hwcomposer drm set_property ro.hardware.gralloc gbm + set_property debug.drm.mode.force ${video:-1280x800} fi + set_prop_if_empty sleep.state none ;; 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb|0*amdgpudrmfb) if [ "$HWACCEL" != "0" ]; then @@ -178,6 +222,12 @@ function init_hal_power() # TODO case "$PRODUCT" in + HP*Omni*|OEMB|Surface*3|T10*TA) + set_prop_if_empty sleep.state none + ;; + e-tab*Pro) + set_prop_if_empty sleep.state force + ;; *) ;; esac @@ -248,22 +298,28 @@ function init_hal_sensors() modprobe hdaps hal_sensors=hdaps ;; - *i7Stylus*) - set_property ro.iio.accel.y.opt_scale -1 + *LINX1010B*) set_property ro.iio.accel.z.opt_scale -1 + ;& + *i7Stylus*|*M80TA*) + set_property ro.iio.accel.x.opt_scale -1 ;; - *ONDATablet*) + *LenovoMIIX320*|*ONDATablet*) set_property ro.iio.accel.order 102 + set_property ro.iio.accel.x.opt_scale -1 + set_property ro.iio.accel.y.opt_scale -1 ;; + *SP111-33*) + set_property ro.iio.accel.quirks no-trig + ;& *ST70416-6*) set_property ro.iio.accel.order 102 + ;; + *e-tabPro*|*pnEZpad*) + set_property ro.iio.accel.quirks no-trig ;& - *Surface.3*|*svnOEMB*|*T305CA*) + *T*0*TA*) set_property ro.iio.accel.y.opt_scale -1 - ;& - *T10*TA*) - set_property ro.iio.accel.x.opt_scale -1 - set_property ro.iio.accel.z.opt_scale -1 ;; *) has_sensors=false @@ -273,14 +329,17 @@ function init_hal_sensors() # has iio sensor-hub? if [ -n "`ls /sys/bus/iio/devices/iio:device* 2> /dev/null`" ]; then busybox chown -R 1000.1000 /sys/bus/iio/devices/iio:device*/ + [ -n "`ls /sys/bus/iio/devices/iio:device*/in_accel_x_raw 2> /dev/null`" ] && has_sensors=true hal_sensors=iio elif lsmod | grep -q lis3lv02d_i2c; then hal_sensors=hdaps + has_sensors=true + elif [ "$hal_sensors" != "kbd" ]; then + has_sensors=true fi set_property ro.hardware.sensors $hal_sensors - [ "$hal_sensors" != "kbd" ] && has_sensors=true - set_property config.override_forced_orient $has_sensors + set_property config.override_forced_orient ${HAS_SENSORS:-$has_sensors} } function create_pointercal() @@ -369,6 +428,8 @@ function do_netconsole() function do_bootcomplete() { + hciconfig | grep -q hci || pm disable com.android.bluetooth + init_cpu_governor [ -z "$(getprop persist.sys.root_access)" ] && setprop persist.sys.root_access 3 @@ -407,6 +468,12 @@ function do_bootcomplete() setkeycodes 0x66 172 setkeycodes 0x6b 127 ;; + Surface*Go) + echo on > /sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power/control + ;; + X80*Power) + set_property power.nonboot-cpu-off 1 + ;; *) ;; esac @@ -423,13 +490,13 @@ function do_bootcomplete() alsa_amixer -c $c set Headphone on alsa_amixer -c $c set Headphone 100% alsa_amixer -c $c set Speaker 100% - alsa_amixer -c $c set Capture 100% + alsa_amixer -c $c set Capture 80% alsa_amixer -c $c set Capture cap alsa_amixer -c $c set PCM 100 unmute alsa_amixer -c $c set SPO unmute alsa_amixer -c $c set IEC958 on - alsa_amixer -c $c set 'Mic Boost' 3 - alsa_amixer -c $c set 'Internal Mic Boost' 3 + alsa_amixer -c $c set 'Mic Boost' 1 + alsa_amixer -c $c set 'Internal Mic Boost' 1 fi done