X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fdevice-generic-common.git;a=blobdiff_plain;f=init.sh;h=2287b62e2522b75fbaad31f5ad6add8cb2e63c37;hp=c6f9760c89195d61e9b31bb15f72234b4db64bd9;hb=246d718313e8d999f44c519e899b4fa09ed973a9;hpb=4214dff80c68c4215391d6b1df43649f820f0c2f diff --git a/init.sh b/init.sh index c6f9760..2287b62 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,11 @@ function set_property() [ -n "$DEBUG" ] && echo "$1"="$2" >> /dev/x86.prop } +function set_prop_if_empty() +{ + [ -z "$(getprop $1)" ] && set_property "$1" "$2" +} + function init_misc() { # device information @@ -21,6 +26,10 @@ function init_misc() # in case no cpu governor driver autoloads [ -d /sys/devices/system/cpu/cpu0/cpufreq ] || modprobe acpi-cpufreq + + # enable sdcardfs if /data is not mounted on tmpfs or 9p + mount | grep /data\ | grep -qE 'tmpfs|9p' + [ $? -ne 0 ] && modprobe sdcardfs } function init_hal_audio() @@ -29,13 +38,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 [ "`cat /proc/asound/card0/id`" = "IntelHDMI" ]; then - [ -d /proc/asound/card1 ] || set_property ro.hardware.audio.primary hdmi - fi } function init_hal_bluetooth() @@ -46,7 +52,10 @@ 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 ;; @@ -66,7 +75,7 @@ function init_hal_bluetooth() modprobe btusb ;; *) - for bt in $(lsusb -v | awk ' /Class:.E0/ { print $9 } '); do + for bt in $(busybox lsusb -v | awk ' /Class:.E0/ { print $9 } '); do chown 1002.1002 $bt && chmod 660 $bt done ;; @@ -77,6 +86,16 @@ function init_hal_bluetooth() chown bluetooth.bluetooth $BTUART_PORT start btattach fi + + # rtl8723bs bluetooth + if dmesg -t | grep -qE '8723bs.*BT'; then + TTYSTRING=`dmesg -t | grep -E 'tty.*MMIO' | awk '{print $2}' | head -1` + if [ -n "$TTYSTRING" ]; then + echo "RTL8723BS BT uses $TTYSTRING for Bluetooth." + ln -sf $TTYSTRING /dev/rtk_h5 + start rtk_hciattach + fi + fi } function init_hal_camera() @@ -97,6 +116,7 @@ function set_drm_mode() drm_mode=1366x768 ;; *) + [ -n "$video" ] && drm_mode=$video ;; esac @@ -105,6 +125,8 @@ function set_drm_mode() function init_uvesafb() { + UVESA_MODE=${UVESA_MODE:-${video%@*}} + case "$PRODUCT" in ET2002*) UVESA_MODE=${UVESA_MODE:-1600x900} @@ -113,19 +135,26 @@ function init_uvesafb() ;; esac - [ "$HWACCEL" = "0" ] && bpp=16 || bpp=32 - modprobe uvesafb mode_option=${UVESA_MODE:-1024x768}-$bpp ${UVESA_OPTION:-mtrr=3 scroll=redraw} + modprobe uvesafb mode_option=${UVESA_MODE:-1024x768}-32 ${UVESA_OPTION:-mtrr=3 scroll=redraw} } function init_hal_gralloc() { + [ "$VULKAN" = "1" ] && GRALLOC=gbm + case "$(cat /proc/fb | head -1)" in *virtiodrmfb) -# set_property ro.hardware.hwcomposer drm - ;& - 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb) - set_property ro.hardware.gralloc drm - set_drm_mode + 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) + if [ "$HWACCEL" != "0" ]; then + set_property ro.hardware.gralloc ${GRALLOC:-drm} + set_drm_mode + fi ;; "") init_uvesafb @@ -143,6 +172,20 @@ function init_hal_hwcomposer() return } +function init_hal_vulkan() +{ + case "$(cat /proc/fb | head -1)" in + 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 @@ -156,6 +199,9 @@ function init_hal_power() # TODO case "$PRODUCT" in + HP*Omni*|OEMB|Standard*PC*|Surface*3|T10*TA|VMware*) + set_prop_if_empty sleep.state none + ;; *) ;; esac @@ -226,14 +272,22 @@ function init_hal_sensors() modprobe hdaps hal_sensors=hdaps ;; - *i7Stylus*) - set_property hal.sensors.iio.accel.matrix 1,0,0,0,-1,0,0,0,-1 + *i7Stylus*|*M80TA*) + set_property ro.iio.accel.x.opt_scale -1 + ;; + *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 ;; *ST70416-6*) - set_property hal.sensors.iio.accel.matrix 0,-1,0,-1,0,0,0,0,-1 + set_property ro.iio.accel.order 102 ;; - *ONDATablet*) - set_property hal.sensors.iio.accel.matrix 0,1,0,1,0,0,0,0,-1 + *pnEZpad*) + set_property ro.iio.accel.quirks no-trig + ;& + *T*0*TA*) + set_property ro.iio.accel.y.opt_scale -1 ;; *) has_sensors=false @@ -243,14 +297,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*/ - lsmod | grep -q hid_sensor_accel_3d && hal_sensors=hsb || hal_sensors=iio + [ -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() @@ -324,6 +381,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 @@ -339,14 +397,13 @@ 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 - # FIXME: autosleep works better on i965? - [ "$(getprop debug.mesa.driver)" = "i965" ] && setprop debug.autosleep 1 - - lsmod | grep -e brcmfmac && setprop wlan.no-unload-driver 1 + lsmod | grep -Ehq "brcmfmac|rtl8723be" && setprop wlan.no-unload-driver 1 case "$PRODUCT" in 1866???|1867???|1869???) # ThinkPad X41 Tablet @@ -380,6 +437,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 + ;; + VMware*) + pm disable com.android.bluetooth + ;; *) ;; esac @@ -396,12 +459,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 'Mic Boost' 3 - alsa_amixer -c $c set 'Internal Mic Boost' 3 + alsa_amixer -c $c set IEC958 on + alsa_amixer -c $c set 'Mic Boost' 1 + alsa_amixer -c $c set 'Internal Mic Boost' 1 fi done @@ -423,9 +487,6 @@ for c in `cat /proc/cmdline`; do eval $c if [ -z "$1" ]; then case $c in - HWACCEL=*) - set_property debug.egl.hw $HWACCEL - ;; DEBUG=*) [ -n "$DEBUG" ] && set_property debug.logcat 1 ;;