X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fdevice-generic-common.git;a=blobdiff_plain;f=init.sh;h=25f283b1303cac5d305f52ca11c235d48ac1e0b9;hp=867ae574b29d2c0637344562c6295c0519861c81;hb=802fd7c0b2cdfd0daebbed92b5d5a9b1506a856d;hpb=50609838ad4838ef4bf3b2af638de4573af085a7 diff --git a/init.sh b/init.sh index 867ae57..25f283b 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 @@ -29,7 +36,28 @@ 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 + [ $? -eq 0 ] && set_prop_if_empty ro.sys.sdcardfs false + + # 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() @@ -100,7 +128,21 @@ function init_hal_bluetooth() function init_hal_camera() { - return + case "$UEVENT" in + *81EK*) + set_prop_if_empty hal.camera.0 0,0 + ;; + *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() @@ -142,16 +184,15 @@ 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 ${HWC:-drm} - set_property ro.hardware.gralloc ${GRALLOC:-gbm} - set_property debug.drm.mode.force ${video:-1280x800} - fi - ;; - 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb|0*amdgpudrmfb) + case "$(readlink /sys/class/graphics/fb0/device/driver)" in + *virtio_gpu) + HWC=${HWC:-drm} + GRALLOC=${GRALLOC:-gbm} + video=${video:-1280x768} + ;& + *i915|*radeon|*nouveau|*vmwgfx|*amdgpu) if [ "$HWACCEL" != "0" ]; then + ${HWC:+set_property ro.hardware.hwcomposer $HWC} set_property ro.hardware.gralloc ${GRALLOC:-drm} set_drm_mode fi @@ -159,7 +200,7 @@ function init_hal_gralloc() "") init_uvesafb ;& - 0*) + *) ;; esac @@ -174,11 +215,11 @@ function init_hal_hwcomposer() function init_hal_vulkan() { - case "$(cat /proc/fb | head -1)" in - 0*inteldrmfb) + case "$(readlink /sys/class/graphics/fb0/device/driver)" in + *i915) set_property ro.hardware.vulkan android-x86 ;; - 0*amdgpudrmfb) + *amdgpu) set_property ro.hardware.vulkan radv ;; *) @@ -218,7 +259,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 @@ -275,24 +316,35 @@ function init_hal_sensors() modprobe hdaps hal_sensors=hdaps ;; - *e-tabPro*) + *LenovoideapadD330*) set_property ro.iio.accel.quirks no-trig + set_property ro.iio.accel.order 102 ;& - *i7Stylus*|*M80TA*) + *LINX1010B*) set_property ro.iio.accel.x.opt_scale -1 + set_property ro.iio.accel.z.opt_scale -1 ;; - *ONDATablet*) + *i7-WN*) + set_property ro.iio.accel.quirks no-trig + ;& + *i7Stylus*) + set_property ro.iio.accel.x.opt_scale -1 + ;; + *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 ;; - *pnEZpad*) + *e-tabPro*|*pnEZpad*|*TECLAST:rntPAD*) set_property ro.iio.accel.quirks no-trig ;& - *T*0*TA*) + *T*0*TA*|*M80TA*) set_property ro.iio.accel.y.opt_scale -1 ;; *) @@ -329,11 +381,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]*) + *81EK*|*T91**|*T101*|*ET2002*|*74499FU*|*945GSE-ITE8712*|*CF-19[CDYFGKLP]*|*TECLAST:rntPAD*) create_pointercal return ;; @@ -355,7 +407,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" @@ -449,6 +501,9 @@ function do_bootcomplete() VMware*) pm disable com.android.bluetooth ;; + X80*Power) + set_property power.nonboot-cpu-off 1 + ;; *) ;; esac @@ -467,7 +522,7 @@ function do_bootcomplete() alsa_amixer -c $c set Speaker 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 PCM 100% unmute alsa_amixer -c $c set SPO unmute alsa_amixer -c $c set IEC958 on alsa_amixer -c $c set 'Mic Boost' 1 @@ -483,6 +538,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