|
||
|
|
|
|||||||
| ROMs y desarrollo Tablet PC 97 IPS ROMs y desarrollo Tablet PC 97 IPS |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Tablet-X ubuntu para tablets allwinner
Buenas a todos:
Estoy trabajando en una distro para tablets allwinner, en especial ahora para esta, PC 97 IPS Las especificaciones son las siguientes Lcd OK Touchscreen OK Usb OTG OK Sound OK Wi-fi Ok Battery status OK Voy a publicarlo a lo largo del día de hoy con las instrucciones simples para hacerlo funcionar desde una micro-sd Cualquier comentario, ayuda o consejo es agradecido Un saludo. Última edición por Pietre.linux Día 10/03/16 a las 14:26:10. |
|
|
|
#2
|
||||
|
||||
|
Linux en Allwinner Parte 1 adb y nanda
Lo primero que hay que hacer para instalar ejecutar Linux en una tablet allwinner como la PC97
es sacar el script.bin , este archivo le dice al kernel que, como y por que tiene que cargar este archivo se encuentra ubicado en la primera partición de la nand, la nand esta dividida en varias particiones nanda nandb nandc etc, lo que nos interesa es sacar la partición nanda para extraer el script.bin , y para esto hay que tener adb instalado: sudo apt-get install android-tools-adb android-tools-fastboot una vez que se instala y conectas la tablet con la depuración usb activada y ejecutas: $ adb devices es posible( casi seguro ) que te diga: List of devices attached ??????????????? device Eso es que android no tiene ni idea de quien o que es nuestra tablet,para ello hay que saber el ID vendor de la tablet Ejecutas: $ lsusb el resultado sería algo como esto: Bus 001 Device 005: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business Bus 001 Device 003: ID 05e3:0605 Genesys Logic, Inc. USB 2.0 Hub Bus 001 Device 008: ID 18d1:0003 Google Inc. Bus 001 Device 008: ID 18d1:0003 Google Inc. es la tablet, 18d1 el ID vendor Con este dato se lo decimos a adb $ echo "0x18d1" > ~/.android/adb_usb.ini 0x18d1 es el ID vendor en mi caso, hay que añadir 0x mas el id que hemos sacado anteriormente después vamos a crear un archivo para adb se entere bien de que tablet es: $ sudo gedit 51-android.rules se nos abre gedit y metemos la siguiente información: SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" Daos cuenta del ID vendor de antes 18d1, guardamos y copiamos el archivo a /etc/udev/rules.d/ $ sudo cp 51-android.rules /etc/udev/rules.d/ Reseteamos adb: $ adb kill-server Ahora deberíamos poder reconocer a la tablet por ADB: $ adb devices List of devices attached 20080411413fc082 device Si no funciona reiniciar el PC El siguiente paso es sacar nanda de android, para ello necesitamos ser root, pero al menos no necesitamos instalar guarrerias para ello $ adb shell $ rm -rf /data/local/tmp $ ln -s /data /data/local/tmp Reinicia la tablet y ejecuta: $ adb shell $ echo "ro.kernel.qemu=1" > /data/local/tmp/local.prop Al reiniciar el dispositivo de nuevo, la shell ADB ya debería estar funcionando como root! $ adb shell root@android:/ # NANDA la mejor forma de extraer nanda de la tablet es así: $ adb shell $ cat /dev/block/nanda > /sdcard/nanda.img $ exit esto nos copiará una imagen de la primera partición de la tablet en la memoria interna de la tablet, ahora podemos copiarla conectando el dispositivo como MTP o podemos hacerlo por el mismo ADB adb pull /sdcard/nanda.img /home/x/Documentos Ya sabéis /home/usuario/donde_quieras ahora tenemos nanda.img que podemos montarlo con pulsar el botón derecho sobre el archivo y montandolo o por terminal claro $ sudo mount nanda.img /tmp $ ls /tmp y nos aparecerán los archivos que contiene la partición: boot.axf drv_de.drv font32.sft magic.bin script0.bin sprite vendor boot.ini font24.sft linux os_show script.bin sprite.axf El archivo script.bin contiene la información necesaria para iniciar Linux copiarlo a una carpeta segura: En el siguiente capitulo: Compilando el kernel de Sunxi
__________________
YO SOY LINUX, Y SOY TU DIOS
|
|
#3
|
||||
|
||||
|
Capitulo 2 Toolchain,kernel y módulos
Que es el kernel?
El kernel es el componente mas importante del sistema operativo, es Linux en si mismo, el sistema, el núcleo, como controla la memoria, la cpu, la compatibilidad con dispositivos, todo El kernel de Linux lo hizo inicialmente Linus torvalds en 1991 que es una copia de unix por supuesto, el sistema se hizo famoso y miles de personas empezaron a contribuir para que aumentase su compatibilidad. Actualmente la ultima versión estable del kernel es la 4.4.5 publicada el 9 de marzo Puedes descargarlo desde https://www.kernel.org Pero para procesadores allwinner existe un kernel modificado y optimizado de sunxi, ¿que es sunxi? Pues hasta donde yo se, es un grupo de personas que han hecho posible que exista Linux en procesadores allwinner, todos los recursos, la información la tienen ellos. Lo primero que tenemos que hacer es instalar las toolchain de compilación cruzada ![]() Las toolchain son un conjunto de archivos binarios, bibliotecas y herramientas que permiten construir (en nuestro caso, mediante una compilación cruzada) el u-boot y el kernel para una plataforma de destino en concreto. Para instalar las toolchain y las dependencias de compilación del nucleo escribe lo siguiente: $ sudo apt-get install -y build-essential bin86 git kernel-package libqt4-dev wget libncurses5 libncurses5-dev qt4-dev-tools libqt4-dev zlib1g-dev libssl-dev gcc-arm-linux-gnueabihf Con esto ya tenemos lo necesario para compilar el kernel de sunxi: Primero descargamos el código fuente: $ git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git Clonar en «linux-sunxi»... Esto ocupa como 1,7 Gb, tomaros un café Una vez se descarga el código fuente tendremos una carpeta llamada linux-sunxi $ cd linux-sunxi Ahora si quereis hay que configurar el kernel. cosa que no aconsejo y ahora explico el por que, para abrir el menu de opciones del kernel teclea: $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xconfig esto abre un menú gráfico muy chulico que nos permite añadir o quitar cosas del kernel, podéis toquetear y probar, pero lo mejor es usar una plantilla definida para el procesador de la Woxter PC97, es decir, una plantilla para el procesador A10 Escribir: $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun4i_defconfig Ahora el código sabe que tiene que compilar para una cpu A10 Y ahora a compilar el núcleo: $ make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules Con esto tenemos el kernel, en este caso en formato uImage este archivo se ubica en: linux-sunxi/arch/arm/boot/uImage 4.3Mb de nada Xdd ![]() Ahora toca compilar los modulos, estos son los drivers del nucleo,para compilarlos ejecuta la siguiente orden: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install Esto genera los modulos a cargar, estos se ubican en el directorio linux-sunxi/output Con el kernel y los modulos ya tenemos casi todo para montar una SD que ejecute Linux en la Woxter PC97 Siguiente capitulo:Rootfs
__________________
YO SOY LINUX, Y SOY TU DIOS
|
|
#4
|
||||
|
||||
|
Capturas del resultado
Aquí os dejo algunas capturas del resultado de tener Linux en una Woxter PC97
__________________
YO SOY LINUX, Y SOY TU DIOS
|
|
#5
|
||||
|
||||
|
Muy interesante
Hola Pietre, este hilo es super interesante, estoy ansioso por que termines la serie para aprender el proceso y poder instalar la ISO y probarla.
Tengo la tablet metida en un cajón desde hace mucho tiempo porque me hice con otra mucho más nueva. Saludos |
|
#6
|
||||
|
||||
|
Y yo lo mismo, esperando..
|
|
#7
|
||||
|
||||
|
En cuanto acabes lo pruebo. Le tengo muchas ganas
Enviado desde mi ZTE V987 mediante Tapatalk |
|
#8
|
||||
|
||||
|
Veo que al final quedo en nada...
Lastima. Prometia darle una segunda vida a mi tablet. Otra vez sera Enviado desde mi ZTE V987 mediante Tapatalk |
|
#9
|
||||
|
||||
|
Que pena
|
![]() |
Estás aquí
|
||||||
|
||||||