Facebook Share

Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Experimental] Distrito Linux usando la efishell
#1
Primero que nada agradecer a “Randy Gil” por todo su apoyo en esto, y también una dedicatoria a todos los que apoyan el software libre…. muchos saludos.

Debo mencionarles que este es un método experimental y la verdad no se si es del todo seguro, deben tomar en cuenta que siempre esta la posibilidad de que algo salga mal, así que queda bajo su responsabilidad si experimentan o no.

Bueno empezamos.

Cuando el sistema inicia normalmente lo primero que hace es cargar un archivo de arranque “bootx64.efi”, este se encuentra en la primera partición de la memoria interna… bueno el truco esta en hacer lo mismo pero con una memoria usb, pero el problema esta en que esa partición siempre va a estar como primaria por lo tanto si colocamos el “bootx64.efi” en una memoria usb no lo cargara.
Es posible forzar el arranque usb, pero como dije es un método experimental no apto para cardíacos, se debe hacer un wipe a la partición primaria “ESP” de la memoria interna y es entonces cuando se puede usar la memoria usb como si fuese esa partición “ESP” interna.

Lo archivos necesarios son:
No puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar.→ Con esto debería arrancar el sistema normalmente
No puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar. → Con esto se arranca con el cargador de arranque grub para sistemas efi.
No puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar. → Con esto se revierte el proceso.



Notas importantes:
- Recordar que solo los distritos de arquitectura x64 soportan el arranque efi.
- Durante el arranque (después de hacer wipe a ESP) siempre sera necesBoot-original.ziparia una memoria usb con sus archivos de arranque efi (Al menos en teoría).
- El proceso se puede revertir usando fastboot para restaurar la partición “ESP” o usandoNo puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar.para restaurar todas las particiones..

Paso 1

Tener fastboot y los respectivos driver de intel (si usan windows claro)

Entra como usuario root en la terminal linux y editas el archivo “/etc/udev/rules.d/51-android.rules” y agrega la siguiente linea:
Código:
SUBSYSTEM=="usb", ATTRS{idVendor}=="",ATTRS{idProduct}=="", MODE="0666"

Ejemplo:
Código:
[yona@localhost ~]$ su
Contraseña:
[root@localhost yona]# nano /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="8087",ATTRS{idProduct}=="0a16", MODE="0666"

Se reinicia el servicio udev:
Código:
service udev restart

Y se arranca la tablet en fastboot (power+vol abajo).

Paso 2

Conecte la tablet a la pc y en la terminal ingrese “fastboot devices” a ver si detecta la tablet, si no entonces desconecte y vuelva a conectar e intente de nuevo, si aun no la detecta entonces tenemos problemas XD.

Ahora ingrese “fastboot oem wipe ESP” que es el comando que borra la partición primaria “ESP” de arranque, esto nos deja el camino libre para usar la memoria usb como arranque efi.

Paso 3

Pasar todos los archivos que se encuentran en “Boot-grubx64” a una memoria usb… bueno ahora reiniciamos la table con la memoria usb conectada y veamos que pasa.
Nos va a salir un menú del cargador de arranque grub pero solo eso, aun no se ha pasado ningún distrito ni se le ha configurado para que arranque.

Paso 4

Ahora que ya tenemos la grub booteada y funcional es hora de elegir un distrito, puede ser cualquiera siempre y cuando soporte arranque efi (Distritox64), deben pasar los archivos de la imagen iso (sin pasar la carpeta que dice EFI) a la memoria usb (/EFI/BOOT/grub.cfg).

Paso 5

Para que el distrito arranque primero debemos modificar el archivo de configuración de la grub que tenemos en la memoria usb.
Abrimos “grub.cfg” y nos sale esto:

Código:
set default="1"

function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2

set timeout=10
### END /etc/grub.d/00_header ###


menuentry 'Start Distrito' --class gnu-linux --class gnu --class os {

echo Loading linux...
linuxefi /linux ramdisk_size=512000 ramdisk_blocksize=4096 ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processsor.max+cstate=1 nomodeset x11failsafe
echo Loading initrd...
initrdefi /initrd.gz
}


Las lineas que nos interesan aquí son donde dice “linuxefi” y “initrdefi” esto se cambia dependiendo de el distrito que estemos por usar, aquí nos podemos guiar por el archivo “grub.cfg” que trae por defecto cada distrito en su imagen iso.

Aquí unos ejemplos.

Fedora:

Código:
menuentry 'Start Fedora Live' --class fedora --class gnu-linux --class gnu --class os {

echo Loading linux...
linuxefi /isolinux/vmlinuz0 root=live:LABEL=Fedora-Live-WS-x86_64-23-10 ro rd.live.image quiet rhgb
echo Loading initrd...
initrdefi /isolinux/initrd0.img
}

OpenSUSE:

Código:
menuentry "openSUSE" --class opensuse --class os {

echo Loading linux...
linuxefi /boot/x86_64/loader/linux ramdisk_size=512000 ramdisk_blocksize=4096
echo Loading initrd...
initrdefi /boot/x86_64/loader/initrd
}


Androidx86:

Código:
menuentry 'Android-x86 VER Live' --class android-x86 {
search --file --no-floppy --set=root /system.sfs
linuxefi /kernel CMDLINE quiet DATA=
initrdefi /initrd.img
}



Bueno, ya con esto debería ser posible (Al menos en teoría) arrancar cualquier distrito linux con arquitectura x64, pero no todos funcionan por desgracia, yo por ejemplo probé con federa 23 y no funciono (Algún problema con el modo live tal vez), pero pueden probar otros a ver como les va.
Lo curioso de este método es que no hace falta un HUB para arrancar un distrito, pero lamentablemente esta el problema con el soporte táctil limitado, aunque mire por allí que OpenSUSE es muy amable con las tables y tal vez funcione el táctil, por desgracia no tuve la oportunidad de probar.

Revertir el proceso

Para revertir basta con entrar a fastboot y flashear el archivo “ESP.img” esto se hace con el comando “fastboot flash ESP ESP.img” y con esto la participan ESP queda restaurada.

Nota: En caso de no poder acceder a fastboot, remplace los archivos de la memoria usb por los de “Boot-original” o si no también puede usar el modo DNX para entrar en fastboot.

Bueno amigos esto es todo, mirar hacia adelante y hacia el software libre siempre…. SALUDOS!.
#2
Excelente informacion te felicito por tu investigacion para dar con esto ya con esto podemos usar cualquier distro linux con kernel que soporte el procesador intel atom z3735f de la tablet y si es una distro actualizada mejor ya que debe tener los drivers de los dispositivos wifi, camara, audio, etc.

aqui hay una distro ubuntu lista para funcionar en dispositivos tablet y mini ordenadores con cpu z3735f como el de nuestra tablet esta optimizada podeis verla aqui: No puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar.
#3
De esta forma podriamos instalar remix os beta? La version por x64 soporta inicio efi. No se si tendra algo en comun con esto no soy muy experto en la materia
#4
Gran experimento, se necesita paciencia para este tipo de cosas, tengo algunas dudas
1) Este procedimiento se podría utilizar para restaurar la BIOS?
2) En que partición estaría ubicada la BIOS?
#5
(09-05-2016, 02:15 PM)Miguel Caputo Piñero escribió: No puedes ver los enlaces, Registrate primero: clic AQUÍ para continuar.Gran experimento, se necesita paciencia para este tipo de cosas, tengo algunas dudas
1) Este procedimiento se podría utilizar para restaurar la BIOS?
2) En que partición estaría ubicada la BIOS?

1- Algo así pero se necesita cargar el archivo binario (bios) en la partición ESP, (Nota: No debes usar cualquier archivo bios, de lo contrario dejaras la table de pisa papeles )
2- La bios se guarda aparte en una memoria serial, esta se comunica con la partición ESP para transferir el archivo binario.


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)