?>/script>'; } ?> Proceso de migración a arquitectura UEFI Widgets Magazine

Autor Tema: Proceso de migración a arquitectura UEFI  (Leído 39731 veces)

0 Usuarios y 1 Visitante están viendo este tema.

alist3r

  • Visitante
Proceso de migración a arquitectura UEFI
« en: 10-09-2013, 03:24 (Martes) »
paso 1: comprobar que el kernel tiene los símbolos necesarios:

Código: [Seleccionar]
CONFIG_RELOCATABLE=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #1 en: 10-09-2013, 04:35 (Martes) »
UEFI Runtime Variables Support (efivarfs filesystem - /sys/firmware/efi/efivars). This option is important as this is required to manipulate UEFI Runtime Variables using tools like /usr/bin/gummiboot. Efivarfs is recommended over efivars sysfs interface (described below). The below config option has been added in kernel 3.10 and above.

CONFIG_EFIVAR_FS=y

UEFI Runtime Variables Support (efivars sysfs interface - /sys/firmware/efi/vars). This option is important as this is required to manipulate UEFI Runtime Variables using tools like efibootmgr.

CONFIG_EFI_VARS=m
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y

GUID Partition Table GPT config option - mandatory for UEFI support

CONFIG_EFI_PARTITION=y

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #2 en: 10-09-2013, 04:41 (Martes) »
Herramientas necesarias en el Userspace

efivar
Library and Tool to manipulate UEFI Variables
https://github.com/vathpela/efivar - efivar or efivar-git

Ubuntu's Firmware Test Suite (fwts)
https://wiki.ubuntu.com/FirmwareTestSuite/
(along with fwts-efi-runtime-dkms)

uefivars
Dumps list of EFI variables with some additional PCI related info (uses efibootmgr code internally)
https://github.com/fpmurphy/Various/tree/master/uefivars-2.0 supports only efivarfs

efibootmgr
Tool to manipulate UEFI Firmware Boot Manager Settings. Upstream efibootmgr code supports only sysfs-efivars (efibootmgr or efibootmgr-git). A fork of efibootmgr by Fedora's Peter Jones, uses the efivar library and supports both efivarfs and sysfs-efivars. It also contains many bug fixes and is recommended over the upstream efibootmgr code
https://github.com/vathpela/efibootmgr/tree/libefivars or efibootmgr-pjones-git.

EFITOOLS 1.4
utilidad que incluye el primer sistema de gestión de la base de datos de claves UEFI para el secureboot
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git

GPT FDISK
llamado gdisk en algunas distros. fdisk compatible con GPT.
http://sourceforge.net/projects/gptfdisk/
« Última modificación: 10-09-2013, 16:27 (Martes) por alister »

teik

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #3 en: 10-09-2013, 08:47 (Martes) »
Jojojoj..... parece que se esten adelantando las navidades  >:(  >:(
que grandes soys de verdad, estoy deseando de probar la primera beta con arquitectura UEFI, de verdad soys los mejores  >:(

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Proceso de migración a arquitectura UEFI
« Respuesta #4 en: 10-09-2013, 08:52 (Martes) »
Jojojoj..... parece que se esten adelantando las navidades  >:(  >:(
que grandes soys de verdad, estoy deseando de probar la primera beta con arquitectura UEFI, de verdad soys los mejores  >:(

nadie esta haciendo nada, solo ha puesto documentacion.

teik

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #5 en: 10-09-2013, 10:37 (Martes) »
se trata de dar las gracias publicamente. Alist3r ha estado ayudando e intentando arrancar en uefi todo este tiempo... hasta que yo entre en la universidad y deje de probar.. ya que los examenes de recuperacion no me dejaban tiempo.

Ya he visto que este tema has comentado que se queda algo grande para tus conocimientos, y lo entiendo... solo que me ilusiona que al menos se busque información y se intente hacer algo.... de sobra se que es un tema nuevo y que por ahora esta la cosa difícil, pero bueno yo sigo probando... y ya que comentaste lo del team porteus estuve viendo un post en su foro... con un .sh que hacia booteable su distrito... mañana intentare probarla...y os cuento...

Se que tal vez este problema solo lo tenga yo y entiendo que no este en un orden preferente ya que hay que arreglar otros problemas mas importantes en el kernel.. no hace falta que me lo digais. Pero el simple hecho de saber que hay gente que se preocupa o que incluso esteis mirando, me alegra.

saludos

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #6 en: 10-09-2013, 12:41 (Martes) »
teik, eres un chivato :)
jajajaja

bueno, solo estoy intentando llevar el trabajo hecho de otras distros hacia aquí. no será tan dificil después de todo.

la ventaja aquí es que el espacio de usuario no es obligatorio, la máquina puede arrancar sin él.
no hay tanto por hacer.

USER; todo lo que te pediria es que compruebes que los símbolos indicados estan ya activados en el kernel.

OJO porque algunos de ellos son nuevos de 3.10
« Última modificación: 10-09-2013, 14:45 (Martes) por alister »

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #7 en: 10-09-2013, 14:42 (Martes) »
actualmente hay dos sistemas de comuniacion entre el userland y el sistema UEFI.

uno es sysfs-efivars y el otro es efivarsfs

ambos son subsistemas dentro del ya conocido sysfs, que exportan el contenido de la configuración UEFI al kernel en forma de archivos dentro de /sys/firmware/efi/vars

el que está funcionando mejor y se convierte en el estandar es el más reciente efivarsfs. la mayoria de las herramientas UEFI  estan usando ya este sistema, juntamente con su biblioteca asociada, la uefilib.

el bastardo de turno es efibootmgr, que sirve para gestionar las entradas de arranque de la UEFI, pero que no se ha adaptado oficialmente a efivarsfs.
solo por culpa de él, tendriamos que tener los dos sistemas tratando de convivir en el kernel, descargando y cargando módulos previamente, con el consiguiente riesgo de pulverizar la placa base en caso de mala utilización.

el personal de redhat ha forkeado efibootmgr y ha hecho una adaptación al nuevo sistema fivarsfs, junto con correcciones de errores. se recomienda su uso para poder así romper totalmente con sysfs-efivars (no configurarlo en el kernel)

https://github.com/vathpela/efibootmgr

por tanto, los símbolos de kernel necesarios serian:
CONFIG_RELOCATABLE=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_EFIVAR_FS=y
CONFIG_EFI_PARTITION=y

y si queremos dejar el viejo sistema sysfs-efivars a mano por algun motivo (no veo claro por qué), podemos dejarlo como modulo y mantenerlo desactivado por defecto:

CONFIG_EFI_VARS=m
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
« Última modificación: 10-09-2013, 14:43 (Martes) por alister »

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #8 en: 10-09-2013, 14:56 (Martes) »
importante. lectura mínima obligada para administradores y arquitectos de sistemas UEFI
http://docstore.mik.ua/manuals/hp-ux/en/5991-1247B/ch04s13.html

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #9 en: 10-09-2013, 16:31 (Martes) »
(para instalaciones en disco)

los sistemas operativos en modo EFI siempre necesitan una particon de sistema efi. es el equivalente a la particion oculta de sistema de windows 7/8, pero mejorada en funciones y compatible con multiples SO's.

por tanto, hay que crear esa particion de sistema UEFI , o acceder a la que seguramente ya viene creada por windows.

como se accede?
ademas de poder utilizar gptfdisk, parece que parted tambien gestiona correctamente las tablas de particion GPT.

en parted (en su version grafica gparted), para construir una particion de sistema efi solo hay que crear una particion fat16/fat32 y marcarla como "boot".

el fdisk de detecta particiones gpt tambien.
en caso de usar fdisk se debe cambiar el "partition type" manualmente a 0xEF

en todos los casos el formato de la particion de sistema uefi debe ser fat32 o fat16, y su tamaño no debe ser muy grande; basta con que permita alojar los archivos de arranque, los firmwares y drivers efi, los ficheros de confiuracion del gestor del bootmanager y/o del bootloader, etc.

de nuevo, podemos pensar en el sistema windows y en su bootmgr, con su particion aparte, para entenderlo.
« Última modificación: 10-09-2013, 16:37 (Martes) por alister »

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #10 en: 10-09-2013, 16:39 (Martes) »
el estandar ISO bootable UEFI no aparece por ningun lado.
Se debe incluir la carpeta /EFI y los archivos .efi en la iso, y ya esta?
lo dudo, puesto que el sistema de archivos de los cd no es fat, y fat es el unico sistema de ficheros integrado en UEFI. el resto necesitan cargar drivers, etc.
estoy analizando una iso de ubuntu x64 (las de 32 no llevan uefi) para comprender mejor el sistema de arranque uefi en un cd, sin que exista aún una particion de sistema UEFI en el disco duro que pueda darle respaldo al arranque.
« Última modificación: 10-09-2013, 16:40 (Martes) por alister »

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #11 en: 10-09-2013, 19:27 (Martes) »
person of interest:
Mattias Schlenker
ms@mattiasschlenker.de
mantenedor de LessLinux, ha participado junto con los creadores de xorriso y otras herramientas de masterizacion de isos, en los cambios y desarrollos necesarios para conseguir una ISO híbrida que arranca en los cuatro escenarios posibles:

BIOS: imagen volcada a pendrive/disco duro directamente con "dd"
UEFI: imagen volcada a pendrive/disco duro directamente con "dd"
BIOS: Eltorito, emulación de disco tradicional
UEFI: Eltorito; emulación de disco tradicional con tabla de partición GPT superpuesta sobre el MBR

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #12 en: 10-09-2013, 19:37 (Martes) »
compatibilizando las ISO con uefi

dado un comando tradicional de generación de la iso:

Citar
mkisofs -U -A "MyLinux_1 x86_64" -V "MyLinux_1 x86_64 Disc 1" \
    -volset "MyLinux_1 x86_64" -J -joliet-long -r -v -T -x ./lost+found \
    -o /home/pjones/MyLinux/1/x86_64/iso/MyLinux-1-x86_64-disc1-dualboot.iso \
    -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
    -boot-info-table
.

y marcada en rojo la parte de parametrización correspondiente a la construcciń del arranque en la iso, hay que hacer los siguientes añadidos:

-eltorito-alt-boot -e images/efiboot.img -no-emul-boot

donde images/efiboot.img es la imagen, bloque por bloque (es decir, copiada con "dd") de una unidad arrancable bajo UEFI (es decir, una particion de tipo 0xEF con los ficheros .efi que queramos arrancar, sean bootloaders, bootmanagers, sus configuraciones, etc)

con lo que el comando queda asi:
Código: [Seleccionar]
mkisofs -U -A "MyLinux_1 x86_64" -V "MyLinux_1 x86_64 Disc 1" \
    -volset "MyLinux_1 x86_64" -J -joliet-long -r -v -T -x ./lost+found \
    -o /home/pjones/MyLinux/1/x86_64/iso/MyLinux_1-x86_64-disc1-dualboot.iso \
    -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
    -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot .


alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #13 en: 10-09-2013, 21:01 (Martes) »
para mas adelante, de cara a habilitar el secure boot:
https://github.com/mjg59/shim

shim es un programa efi que intenta encadenar con un bootloader. en caso de que falle, sobreentiende que secureboot está habilitado y por eso no se ha podido cargar el ejecutable. en tal caso, shim recupera el control del sistema de vuelta, toma una copia del ejecutable efi que queremos encadenar, lo firma con el certificado (que previamente le tenemos que suministrar a shim en forma de fichero), y luego trata de encadenar contra la nueva copia firmada, resultando asi en un proceso de arranque que funciona independientemente de si está habilitado el secureboot o no.

parece pensado para encadenarse con grub2 principalmente.

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2378
  • Prácticas precisas precisan práctica
Re: Proceso de migración a arquitectura UEFI
« Respuesta #14 en: 11-09-2013, 00:25 (Miércoles) »
Joer... la que hay que liar... modificaciones en el kernel, agregar soporte para particiones GPT, los parámetros para crear la iso...

Y yo que pensaba que bastaría con cambiar el grub2 por el grub-efi... pensaba bah, ya lo aré una tarde que esté aburrido... pero visto lo visto, creo que vamos atener que apuntarnos a la autoscuela para sacarnos el carnet de uefi  ;D

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Proceso de migración a arquitectura UEFI
« Respuesta #15 en: 11-09-2013, 00:31 (Miércoles) »
Ya dije mas arriba que exige conocimientos , no es cosa para aficionados.


Es algo complejo.

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #16 en: 11-09-2013, 00:34 (Miércoles) »
bueno, hay varias formas de hacerlo, las mas sencilla consiste en meter el gummyboot y hacerle encadenar directamente contra el kernel linux, que ya puede comportarse como un ejecutable EFI, lo cual facilita mucho las cosas.

el problema es que wifislax utiliza cd's e isos para distribuir la distro, y ahi se complica todo un poco.
hay que hibridizar la tabla de particiones virtual de el sistema de arranque ElTorito, e hybridizar el contenido tambien (bueno, casi duplicar el kernel y el initrd) para que arranque en ambas plataformas.

pero arrancar un liveusb de wifislax en modo uefi es muy sencillo
« Última modificación: 11-09-2013, 00:53 (Miércoles) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 15985
Re: Proceso de migración a arquitectura UEFI
« Respuesta #17 en: 12-09-2013, 05:37 (Jueves) »
Now that The Linux Foundation is a member of the UEFI.org

La idea , es que la bios UEFI , pueda arrancar DIRECTAMENTE la imagen kernel ...   ;D ;D ;D ;D


Sin intermediar ningun bootloader .....


http://www.linuxfoundation.org/news-media/blogs/browse/2013/09/booting-self-signed-linux-kernel
« Última modificación: 12-09-2013, 05:38 (Jueves) por USUARIONUEVO »

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #18 en: 12-09-2013, 15:58 (Jueves) »
Now that The Linux Foundation is a member of the UEFI.org

La idea , es que la bios UEFI , pueda arrancar DIRECTAMENTE la imagen kernel ...   ;D ;D ;D ;D


Sin intermediar ningun bootloader .....


http://www.linuxfoundation.org/news-media/blogs/browse/2013/09/booting-self-signed-linux-kernel

exacto. eso resuelve bastante problema. pero mejor tener el gummiboot porque arrancar el kernel directo es... pfff.
para que te hagas una idea, pasar parámetros al arranque se vuelve un dolor de muelas
meior pones gummiboot o algo asi, y este ENCADENA (chainload), pasando parametros como el initrd

alist3r

  • Visitante
Re: Proceso de migración a arquitectura UEFI
« Respuesta #19 en: 12-09-2013, 15:59 (Jueves) »
usuario, si te tengo que hacer una miniparticion gpt dentro de la iso, embebida en un catalogo de eltorito, cuántos megas necesitarias para tener el kernel y el initrd, aproximadamente? el resto de los modulos no hcen falta, solo el kernel y el initird mas nos cuantos ficheros como el efi de gummitboot y sus ficheros de config.