|
ROMs y desarrollo Xiaomi Redmi Note 5 ROMs y desarrollo Xiaomi Redmi Note 5 |
|
Herramientas |
#1
|
||||
|
||||
Deshabilitar sensores en kernel
Hola, tengo un problema con el sensor HAL. Cuando esta activada la opción en MIUI del fondo inteligente, de vez en cuando mi RN5 detecta un campo magnético y se apaga la pantalla y vuelve a encenderse en un instante. No llevo funda magnética. Me pasa en cualquier parte. La cuestión es que en MIUI se puede quitar la opción pero en AOSP no, y me gustaría probar ROMS nuevas, pero estoy ligado a MIUI porque en AOSP por defecto el HAL esta activo, y me es imposible estar con el móvil apagándose y encendiendo la pantalla aleatoriamente. Por eso mi pregunta es si existe alguna manera de deshabilitar el sensor HAL mediante root SIN Xposed o directamente desde el kernel. Se que habría que compilar de nuevo el kernel y flashearlo a la custom ROM, pero no se que archivos es el que controla el comportamiento de los sensores.
Gracias |
|
#2
|
||||
|
||||
Prueba con esto: https://transfer.sh/tWCRC/SantiagoKe...yred-06-03.zip, el driver se encuentra en drivers/input/hall.c
|
#3
|
||||
|
||||
Prueba con esto: https://transfer.sh/tWCRC/SantiagoKe...yred-06-03.zip, el driver se encuentra en drivers/input/hall.c
Gracias por tu respuesta, un saludo |
#4
|
||||
|
||||
34 lines (26 sloc) 1005 Bytes # # Makefile for the input core drivers. # # Each configuration option enables a list of files. obj-$(CONFIG_INPUT) += input-core.o input-core-y := input.o input-compat.o input-mt.o ff-core.o obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o obj-$(CONFIG_INPUT_LEDS) += input-leds.o obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o obj-$(CONFIG_INPUT_JOYDEV) += joydev.o obj-$(CONFIG_INPUT_EVDEV) += evdev.o obj-$(CONFIG_INPUT_EVBUG) += evbug.o obj-$(CONFIG_INPUT_KEYBOARD) += keyboard obj-$(CONFIG_INPUT_MOUSE) += mouse obj-$(CONFIG_INPUT_JOYSTICK) += joystick obj-$(CONFIG_INPUT_TABLET) += tablet obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen obj-$(CONFIG_INPUT_MISC) += misc obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o obj-$(CONFIG_INPUT_KEYRESET) += keyreset.o obj-$(CONFIG_INPUT_KEYCOMBO) += keycombo.o obj-y += fingerprint obj-y += hall.o La he marcado con negrita, puedes eliminarla o comentarla agregando un "#" al inicio de la línea, si no lo haces la compilación fallará. |
#5
|
||||
|
||||
En efecto.
Eliminar el archivo y su entrada en el Makefile (drivers/input/Makefile): 34 lines (26 sloc) 1005 Bytes # # Makefile for the input core drivers. # # Each configuration option enables a list of files. obj-$(CONFIG_INPUT) += input-core.o input-core-y := input.o input-compat.o input-mt.o ff-core.o obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o obj-$(CONFIG_INPUT_LEDS) += input-leds.o obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o obj-$(CONFIG_INPUT_JOYDEV) += joydev.o obj-$(CONFIG_INPUT_EVDEV) += evdev.o obj-$(CONFIG_INPUT_EVBUG) += evbug.o obj-$(CONFIG_INPUT_KEYBOARD) += keyboard obj-$(CONFIG_INPUT_MOUSE) += mouse obj-$(CONFIG_INPUT_JOYSTICK) += joystick obj-$(CONFIG_INPUT_TABLET) += tablet obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen obj-$(CONFIG_INPUT_MISC) += misc obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o obj-$(CONFIG_INPUT_KEYRESET) += keyreset.o obj-$(CONFIG_INPUT_KEYCOMBO) += keycombo.o obj-y += fingerprint obj-y += hall.o La he marcado con negrita, puedes eliminarla o comentarla agregando un "#" al inicio de la línea, si no lo haces la compilación fallará. |
#6
|
||||
|
||||
En efecto.
Eliminar el archivo y su entrada en el Makefile (drivers/input/Makefile): 34 lines (26 sloc) 1005 Bytes # # Makefile for the input core drivers. # # Each configuration option enables a list of files. obj-$(CONFIG_INPUT) += input-core.o input-core-y := input.o input-compat.o input-mt.o ff-core.o obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o obj-$(CONFIG_INPUT_LEDS) += input-leds.o obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o obj-$(CONFIG_INPUT_JOYDEV) += joydev.o obj-$(CONFIG_INPUT_EVDEV) += evdev.o obj-$(CONFIG_INPUT_EVBUG) += evbug.o obj-$(CONFIG_INPUT_KEYBOARD) += keyboard obj-$(CONFIG_INPUT_MOUSE) += mouse obj-$(CONFIG_INPUT_JOYSTICK) += joystick obj-$(CONFIG_INPUT_TABLET) += tablet obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen obj-$(CONFIG_INPUT_MISC) += misc obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o obj-$(CONFIG_INPUT_KEYRESET) += keyreset.o obj-$(CONFIG_INPUT_KEYCOMBO) += keycombo.o obj-y += fingerprint obj-y += hall.o La he marcado con negrita, puedes eliminarla o comentarla agregando un "#" al inicio de la línea, si no lo haces la compilación fallará. ------- EDITO: He conseguido que avance la cosa, siguiendo un tutorial de xda, he conseguido estar unos minutos sin errores, ahora me sale este: fatal error: btfm_slim.h: No such file or directory. Donde me sale el error, he probado a cambiar #include <btfm_slim.h> por #include "btfm_slim.h" y asi con todos los que he visto que estaban mal. A ver si así compila. EDITO2: Pues nada, da mas errores de ese tipo, asi que no puede ser que esten mal esas lineas. Última edición por iTheRoxD4N Día 11/03/19 a las 00:36:21. |
#7
|
||||
|
||||
He instalado el zip que me pasaste y todo perfecto, ya no funciona el sensor hall y es un alivio, muchas gracias. La cuestión es que quiero compilar kernels, pero soy incapaz. Me he bajado todas las herramientas, GCC, Clang, pero use lo que use me da error. He hecho pruebas con las sources de Xiaomi (whyred-o-oss) pero si utilizo GCC me dice que esta deprecado y que utilice Clang en el futuro, y luego me saltan errores. Si utilizo Clang, me dice que no se encuenta el binario clang-gcc (por lo que entiendo, creo que es porque por defecto utiliza gcc con el cross-compiler clang) asi que no puedo compilar nada. Por mas que busco en google no consigo hacer funcionar clang (creo que este es mejor, al menos todos los kernels que veo estan compilados con este). Sabes de alguna guia para compilar que sirva? Gracias, un saludo
------- EDITO: He conseguido que avance la cosa, siguiendo un tutorial de xda, he conseguido estar unos minutos sin errores, ahora me sale este: fatal error: btfm_slim.h: No such file or directory. Donde me sale el error, he probado a cambiar #include <btfm_slim.h> por #include "btfm_slim.h" y asi con todos los que he visto que estaban mal. A ver si así compila. EDITO2: Pues nada, da mas errores de ese tipo, asi que no puede ser que esten mal esas lineas. Utiliza Derp/basic como base, son los mas "limpios", actualizados y sin funciones inútiles. Con respecto a las advertencias de GCC: no implican ningún fallo como tal, pero lo recomendable es utilizar la última versión de Clang. Tutorial para compilar con Clang: https://github.com/nathanchance/android-kernel-clang En caso de que desees utilizar un script para facilitar el proceso de compilación: https://del.dog/gijolufasa.sh. adapta las cosas necesarias a tu setup, puedes eliminar a partir de la línea 73 en adelante, no serán necesarias en tu caso. PD: Toolchain de 32 bits: https://android.googlesource.com/pla...droideabi-4.9 (En el script corresponde a la variable "ARM_TOOLCHAIN" la necesitarás para compilar VDSO) y AnyKernel2 https://github.com/osm0sis/AnyKernel2 (Lee el readme y haz los cambios antes de compilar, sino no podrás flashear el zip) |
#8
|
||||
|
||||
No compiles el kernel de Xiaomi, está basado en un tag antíguo, una versión de kernel antígua, no contiene los drivers del wifi (qcacld, fw-api, wifi-host-cmn), las warnings de Clang no están fixeadas, hay mucha basura innecesaria, y los Makefile son un desastre, en resumen: si ocurre un milagro y logras compilarlo, hay un 99% de probabilidades que no bootee, y si lo hace, el wifi no funcionará.
Utiliza Derp/basic como base, son los mas "limpios", actualizados y sin funciones inútiles. Con respecto a las advertencias de GCC: no implican ningún fallo como tal, pero lo recomendable es utilizar la última versión de Clang. Tutorial para compilar con Clang: https://github.com/nathanchance/android-kernel-clang En caso de que desees utilizar un script para facilitar el proceso de compilación: https://del.dog/gijolufasa.sh. adapta las cosas necesarias a tu setup, puedes eliminar a partir de la línea 73 en adelante, no serán necesarias en tu caso. PD: Toolchain de 32 bits: https://android.googlesource.com/pla...droideabi-4.9 (En el script corresponde a la variable "ARM_TOOLCHAIN" la necesitarás para compilar VDSO) y AnyKernel2 https://github.com/osm0sis/AnyKernel2 (Lee el readme y haz los cambios antes de compilar, sino no podrás flashear el zip) De todas maneras probaré con el script a ver qué tal va. Muchas gracias por tu respuesta. |
#9
|
||||
|
||||
He seguido esa guía tal cual, tanto con Derp como con las sources de Xiaomi y obtenía errores. Que dependencias son necesarias? Antes de la guía he hecho "apt-get install -y build-essential kernel-package libncurses5-dev bzip2" porque sino no podía usar make. Es necesario algo más?
De todas maneras probaré con el script a ver qué tal va. Muchas gracias por tu respuesta. |
#10
|
||||
|
||||
Gracias, ahora ya si, ha compilado hasta el final sin errores. Ya solo me queda solucionar el error de que no bootea cuando lo flasheo. Seguramente sea por el AnyKernel2, que no haya configurado el .sh correctamente. Aun asi gracias, ya puedo compilar cualquier kernel eliminando el driver del dichoso sensor HALL
|
#11
|
||||
|
||||
La primera vez que he flasheado el Kernel, no me iniciaba el sistema. En el sh de AnyKernel puse en block_boot:auto y la siguiente línea igual. Luego he vuelto a compilar el Kernel modificando el sh igual que en el de Santiago Kernel y cuando he ido a flashearlo me ha dado error el recovery.
|
Estás aquí | ||||||
|