X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=init.sh;h=21dbb6969184b6b9bdfdeb680862dbeb93adbd5b;hb=b6b3228b44d9c2c8a8750a3a9aa7ae7be4dc8e7e;hp=67e8ceab48208a30a019e39c7da3beaca26a3bb1;hpb=2a143a7c18a102af2ade8b36f681170e0e5acc48;p=android-x86%2Fdevice-generic-common.git diff --git a/init.sh b/init.sh index 67e8cea..21dbb69 100644 --- a/init.sh +++ b/init.sh @@ -15,6 +15,13 @@ 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 @@ -30,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() @@ -38,13 +66,10 @@ function init_hal_audio() VirtualBox*|Bochs*) [ -d /proc/asound/card0 ] || modprobe snd-sb16 isapnp=0 irq=5 ;; - *) + TS10*) + set_prop_if_empty hal.audio.out pcmC0D2p ;; esac - - if grep -qi "IntelHDMI" /proc/asound/card0/id; then - [ -d /proc/asound/card1 ] || set_property ro.hardware.audio.primary hdmi - fi } function init_hal_bluetooth() @@ -103,7 +128,18 @@ function init_hal_bluetooth() function init_hal_camera() { - return + case "$UEVENT" in + *e-tabPro*) + set_prop_if_empty hal.camera.0 0,270 + set_prop_if_empty hal.camera.2 1,90 + ;; + *LenovoideapadD330*) + set_prop_if_empty hal.camera.0 0,90 + set_prop_if_empty hal.camera.2 1,90 + ;; + *) + ;; + esac } function init_hal_gps() @@ -118,10 +154,8 @@ function set_drm_mode() ET1602*) drm_mode=1366x768 ;; - VMware*) - [ -n "$video" ] && drm_mode=$video - ;; *) + [ -n "$video" ] && drm_mode=$video ;; esac @@ -130,6 +164,8 @@ function set_drm_mode() function init_uvesafb() { + UVESA_MODE=${UVESA_MODE:-${video%@*}} + case "$PRODUCT" in ET2002*) UVESA_MODE=${UVESA_MODE:-1600x900} @@ -143,17 +179,18 @@ function init_uvesafb() function init_hal_gralloc() { + [ "$VULKAN" = "1" ] && GRALLOC=gbm + case "$(cat /proc/fb | head -1)" in - *virtiodrmfb) - if [ "$HWACCEL" != "0" ]; then - set_property ro.hardware.hwcomposer drm - set_property ro.hardware.gralloc gbm - fi - set_prop_if_empty sleep.state none - ;; - 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb|0*amdgpudrmfb) + *virtio*drmfb|*DRM*emulated) + HWC=${HWC:-drm} + GRALLOC=${GRALLOC:-gbm} + video=${video:-1280x768} + ;& + 0*i915drmfb|0*inteldrmfb|0*radeondrmfb|0*nouveau*|0*svgadrmfb|0*amdgpudrmfb) if [ "$HWACCEL" != "0" ]; then - set_property ro.hardware.gralloc drm + set_property ro.hardware.hwcomposer ${HWC:-} + set_property ro.hardware.gralloc ${GRALLOC:-drm} set_drm_mode fi ;; @@ -164,6 +201,7 @@ function init_hal_gralloc() ;; esac + [ -z "$(getprop ro.hardware.gralloc)" ] && set_property ro.hardware.egl swiftshader [ -n "$DEBUG" ] && set_property debug.egl.trace error } @@ -173,6 +211,20 @@ function init_hal_hwcomposer() return } +function init_hal_vulkan() +{ + case "$(cat /proc/fb | head -1)" in + 0*i915drmfb|0*inteldrmfb) + set_property ro.hardware.vulkan android-x86 + ;; + 0*amdgpudrmfb) + set_property ro.hardware.vulkan radv + ;; + *) + ;; + esac +} + function init_hal_lights() { chown 1000.1000 /sys/class/backlight/*/brightness @@ -186,9 +238,12 @@ function init_hal_power() # TODO case "$PRODUCT" in - HP*Omni*|OEMB|Surface*3|T10*TA) + HP*Omni*|OEMB|Standard*PC*|Surface*3|T10*TA|VMware*) set_prop_if_empty sleep.state none ;; + e-tab*Pro) + set_prop_if_empty sleep.state force + ;; *) ;; esac @@ -202,7 +257,7 @@ function init_hal_sensors() local hal_sensors=kbd local has_sensors=true - case "$(cat $DMIPATH/uevent)" in + case "$UEVENT" in *Lucid-MWE*) set_property ro.ignore_atkbd 1 hal_sensors=hdaps @@ -259,18 +314,35 @@ function init_hal_sensors() modprobe hdaps hal_sensors=hdaps ;; - *i7Stylus*|*M80TA*) + *LenovoideapadD330*) + set_property ro.iio.accel.quirks no-trig + set_property ro.iio.accel.order 102 + ;& + *LINX1010B*) + set_property ro.iio.accel.x.opt_scale -1 + set_property ro.iio.accel.z.opt_scale -1 + ;; + *i7-WN*) + set_property ro.iio.accel.quirks no-trig + ;& + *i7Stylus*) 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 ;; - *T10*TA*|*pnEZpad*) + *e-tabPro*|*pnEZpad*|*TECLAST:rntPAD*) + set_property ro.iio.accel.quirks no-trig + ;& + *T*0*TA*|*M80TA*) set_property ro.iio.accel.y.opt_scale -1 ;; *) @@ -307,11 +379,11 @@ function create_pointercal() function init_tscal() { - case "$PRODUCT" in - ST70416-6*) + case "$UEVENT" in + *ST70416-6*) modprobe gslx680_ts_acpi ;& - T91|T101|ET2002|74499FU|945GSE-ITE8712|CF-19[CDYFGKLP]*) + *T91*|*T101*|*ET2002*|*74499FU*|*945GSE-ITE8712*|*CF-19[CDYFGKLP]*|*TECLAST:rntPAD*) create_pointercal return ;; @@ -333,7 +405,7 @@ function init_tscal() function init_ril() { - case "$(cat $DMIPATH/uevent)" in + case "$UEVENT" in *TEGA*|*2010:svnIntel:*|*Lucid-MWE*) set_property rild.libpath /system/lib/libhuaweigeneric-ril.so set_property rild.libargs "-d /dev/ttyUSB2 -v /dev/ttyUSB1" @@ -365,6 +437,7 @@ function do_init() init_hal_gps init_hal_gralloc init_hal_hwcomposer + init_hal_vulkan init_hal_lights init_hal_power init_hal_sensors @@ -420,6 +493,15 @@ 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 + ;; + VMware*) + pm disable com.android.bluetooth + ;; + X80*Power) + set_property power.nonboot-cpu-off 1 + ;; *) ;; esac @@ -454,6 +536,7 @@ PATH=/sbin:/system/bin:/system/xbin DMIPATH=/sys/class/dmi/id BOARD=$(cat $DMIPATH/board_name) PRODUCT=$(cat $DMIPATH/product_name) +UEVENT=$(cat $DMIPATH/uevent) # import cmdline variables for c in `cat /proc/cmdline`; do @@ -466,8 +549,13 @@ for c in `cat /proc/cmdline`; do case $c in DEBUG=*) [ -n "$DEBUG" ] && set_property debug.logcat 1 + [ "$DEBUG" = "0" ] || SETUPWIZARD=${SETUPWIZARD:-0} + ;; + DPI=*) + set_property ro.sf.lcd_density "$DPI" ;; esac + [ "$SETUPWIZARD" = "0" ] && set_property ro.setupwizard.mode DISABLED fi ;; esac