Ver la Versión Completa : Tablet-X ubuntu para tablets allwinner
Pietre.linux
08/03/16, 13:56:12
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.
Pietre.linux
10/03/16, 12:37:59
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
Pietre.linux
10/03/16, 14:23:07
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 :cry:
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
Pietre.linux
10/03/16, 15:00:25
Aquí os dejo algunas capturas del resultado de tener Linux en una Woxter PC97
perichel
12/03/16, 14:27:20
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
trasgu_2
13/03/16, 20:58:33
Y yo lo mismo, esperando..
Tardyman
13/03/16, 21:13:32
En cuanto acabes lo pruebo. Le tengo muchas ganas
Enviado desde mi ZTE V987 mediante Tapatalk
Tardyman
30/03/16, 17:43:35
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
rafacoto
19/04/16, 23:54:31
Que pena
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.