Boot (chameleon+Dfe) modificado para iniciar desde la partición EFI

roisoft

New member
Boot (chameleon+Dfe) modificado para iniciar desde la partición EFI

Updatado a la V3 del pack

Esta versión permite la utilización de un archivo com.apple.Boot.plist que puede ubicarse tanto en el raíz de /Volumes/EFI como si queremos emplazarlo dentor de la ruta /Volumes/EFI/Library/Preferences/Systemconfiguration/ (tendremos que crear la ruta usando mkdir -p /Volumes/EFI/Library/Preferences/Systemconfiguration)


Los que tienen pensado hacer dual Boot con Windows (XP/Vista) en otro disco duro, solo tienen que presionar "Escape" en el prompt e introducir los 2 dígitos que correspondan a su disco duro: 81, 82 etc..

* Créditos para Munky, Turbo, Dense, dfe, zef y todo el equipo del chameleon.
* Simplemente me he limitado a intentar explicar su método en nuestro idioma.

Cuando formateamos y particionamos nuestro disco duro y elegimos el esquema de particiones GUID el sistema nos crea una pequeña partición de 200mb llamada EFI

Bien, pues con este método lo que se pretende es aprovechar ésta partición para instalar en ella las extensiones adaptadas a nuestro hardware y que utilizamos en el método boot-dfe-132 para instalar el retail dvd sin modificaciones. Esto hará que los updates de apple sean menos peligrosos y mucho más sencillos.

Esta guía asume que habeis instalado a partir del método dfe-132 el retail dvd de leopard.

Primero de todo descargamos el fichero ZIP adjunto. Contiene los ficheros modificados para poder usar la partción EFI. Lo descomprimimos en el escritorio.


Ahora nos dispondremos a reformatear la partición EFI

abrimos el terminal y tecleamos

sudo -s (contraseña)
diskutil eraseVolume "HFS+" "EFI" /dev/diskXs1 (reformateamos la partcion en hfs+ (X=nº de disco), ignora el mensaje "Could not mount disk0s1 with name after erase")

cd /Users/"tu usuario"/Desktop/efi_boot_v2 (se asume que has descomprimido el fichero en el escritorio)

./fdisk -f boot0 -u -y /dev/rdiskX (rdisX=la X tendrá que ser sustituida por el disco destino p.e. disk0)

dd if=boot1h of=/dev/rdiskXs1 (X= nº de disco y la partición es la 1 (particion EFI siempre es 1))

mkdir /Volumes/EFI

mount_hfs /dev/diskXs1 /Volumes/EFI (creamos, asignamos y montamos nuestra Particion EFI en /Volumes/EFI (X=nº de disco))

cp boot-turbo-munky.bin /Volumes/EFI/boot (ponemos uno de los archivos modificados en el raíz de la partición EFI)

cp update.sh /Volumes/EFI/ (copiamos el script para crear el extensions.mkext de la carpeta /Volumes/EFI/Extensions)
Ahora haremos la partición booteable (Esta parte es necesaria para alguna placas, como por ejemplo las Intel Bad Axe. En mi Gigabyte P35-DS4 no es necesario.)

./fdisk -e /dev/rdiskX (X=nº de disco...nota: ignorad el mensaje "could not open MBR file /usr/standalone/i386/boot0: No such file or directory error")
f 1
w
q
Ahora prepararemos la partición EFI para añadirle las extensiones modificadas, para ello pondremos nuestro CD DFE en la unidad de DVD (o montaremos nuestra ISO DFE), haremos doble click sobre INITRD.IMG y copiaremos en el escritorio la carpeta "Extra" que se encuentra dentro. Seguidamente y desde el terminal

mkdir /Volumes/EFI/Extensions
mkdir -p /Volumes/EFI/System/Booter (creamos estos directorios en la partición EFI)
mkdir -p /Volumes/EFI/Library/Preferences/SystemConfiguration (copiamos aquí si queremos el com.apple.boot.plist con efistrings o los flags que necesitemos)
cp -R /Users/"tu usuario"/Desktop/Extra/Extensions/*.kext /Volumes/EFI/Extensions (copiamos todas las extensiones que utilizamos en el DFE-132 a la carpeta de Extensiones en la partición EFI)

Si fuese necesario la utilización de un kernel parcheado lo copiaríamos en el raíz como por ejemplo el voodoo kernel

cp /"ruta donde esta el kernel voodoo"/voodoo /Volumes/EFI/

cd /Volumes/EFI
chmod +x update.sh (corregimos permisos y lo hacemos ejecutable via terminal)
sudo ./update.sh (esto construirá el kextcahe en /System/Booter. Crearaá tb un log al que si le echamos un vistazo, veremos errores en las dependencias, esto es normal)
umount -f /Volumes/EFI
rm -rf /Volumes/EFI
Si todo ha ido bien, ya estamos listos para reiniciar usando como arranque la partición EFI.
La gente que pueda usar el Kernel vanilla sólo tendrá que darle a enter en el prompt del darwin, o si quieren no tener que pasar por el prompt, añadir al boot.plist

<key>Quiet Boot</key>
<string>Yes</string>
los que necesiten otro kernel, se lo añaden al raíz de la partición EFI, y en el prompt tendrán que teclear "bt(0,0)/voodoo y la uuid de la particion de leopard" (si utilizan el voodoo kernel), el proceso puede automatizarse, editando el com.apple.boot.plist y añadiendo las entradas correspondientes.

La UUID de la partición se averigua, abriendo disk utility, posicionandonos sobre la partición en cuestión y haciendo click sobre información veremos un cuadro como el de la imagen, solo teneis que añadir la serie de nºs que están marcados en el cuadro


como ejemplo os dejo un boot.plist que usa el kernel voodoo, efistrings y entra directamente sin pasar por el prompt (quiet boot)


Para modificar la partición EFI (añadir/quitar extensiones)
sudo -s
mkdir /Volumes/EFI
mount_hfs /dev/diskXs1 /Volumes/EFI (X=EFI disk)
killall Finder
(ahora verás la particion montada en el escritorio)

(si quieres desmontar)
umount -f /Volumes/EFI
rm -rf /Volumes/EFI
*El audio todavía da problemas a la hora de precargarlo, existe un método pero todavía no es definitivo y por eso esperaré para añadir la información completa.

Sean cuidadosos, no asumo responsabilidades por el mal uso de esta guía.

***Moderadores podeis eliminar el primer post y usar este? quizás así la información queda más clara y resulta menos complicado el seguir la guía que con updates a través de post consegutivos***

También te puede interesar mis actualizaciones sobre este tema:
Actualizado a la V3. Efi strings & boot.plist desde partición EFI
 

juker12

Activo
roisoft no sabes lo que me alegran post como este o del colega uzmi.
Leopard nativo 10.5.5 (kernel 9.5)

Por fin sangre nueva renovada en el foro. Y lo mejor de todo que se enteran como va la cosa

¿Has visto algo interesante en internet? Pues compartelo en ESPAÑOL

Asias colega, te nomino con tu permiso a un premio soporte
 

roisoft

New member
Muchas gracias, muy amable por tu parte :)

La verdad es que este método me parece magnífico, te facilita enormemente los updates desde apple y lo que es más importante desde mi punto de vista es que si no tienes un procesador Core, y necesitas usar un kernel parcheado, ya no tienes que preocuparte de si el update me sobreescribe el kernel y demás historias, tú lo tienes a buen recaudo en el raíz de la partición EFI junto con su system.kext y tus extensiones adecuadas en system/booter/extensions, y cuando salga tu kernel nuevo pues lo añades, así de simple...
 

roisoft

New member
Hola de nuevo!

Una pequeña actualización pero importante creo..

Ya se puede cargar el audio ALC885/889a desde la partición EFI, para ello descargaos el Zip adjunto y descomprimidlo en el escritorio, os creará una carpeta "AUDIO" con 2 extensiones, AppleHDAcontroller y AppleHDAPlatformDriver, éstas extensiones han sido extraidas del Snow Leopard y con ellas se ha conseguido precargar el AppleHDA.

El procedimiento para precargar el audio es el siguiente, abrimos el terminal y tecleamos
sudo -s
(contraseña)

mkdir /Volumes/EFI
mount_hfs /dev/diskXs1 /Volumes/EFI (X=nº del disco)
killall Finder (ahora tenemos montada y visible en el escritorio la partición EFI)

cp -R /Users/"tu usuario"/Desktop/AUDIO/*.kext /Volumes/EFI/System/Booter/Extensions (copiamos las extensiones del audio en EFI /S/B/Extensions)

mkdir -p /Volumes/EFI/Extensions (creamos una carpeta extensions en el raiz de la particion EFI)
cp -R /Volumes/EFI/System/Booter/Extensions/*.kext /Volumes/EFI/Extensions (copiamos la extensiones de /s/b/extensions en la carpeta que hemos creado anteriormente)
chmod -R 644 /Volumes/EFI/Extensions
chown -R root:wheel /Volumes/EFI/Extensions (permisos para esta carpeta con sus extensiones)
kextcache -a i386 -m /Volumes/EFI/System/Booter/Extensions.mkext /Volumes/EFI/Extensions (creamos un archivo .mkext de la extensiones añadidas anteriormente)
chmod 644 /Volumes/EFI/System/Booter/Extensions.mkext
chown root:wheel /Volumes/EFI/System/Booter/Extensions.mkext (corregimos los permisos al nuevo extensions.mkext)
Una vez realizado esto ya podemos reiniciar y disfrutar de nuestro Leopard "inmaculado"...

Por el momento solo dispongo del audio alc885/889a en cuanto consiga más los iré añadiendo sucesivamente... Ahora solo queda que os animeis a probar éste método, realmente merece la pena...
 

roisoft

New member
Updatado a la versión 4 del pack que da soporte a controladoras JMICRON ATA...

Con este bootloader podemos lanzar tb el instalador retail DVD de leopard si queremos resintalar por cualquier motivo, para ello solo tenemos que presionar ESC en el prompt y teclear 90, 9f o cual sea la id de tu lectora...

Si por algún motivo al querer montar la partición EFI obtenemos el mensaje "mount_hfs: Invalid argument" abrimos un terminal y tecleamos

fsck_hfs /dev/disxXs1
X= nº de disco
 

muelas

New member
applehda

hola para el alc 882 no hay, es que tengo problemas de apagado por cupa de eso, un saludo
 

roisoft

New member
Añado soporte para audio ALC882 (2 distintos) y Sigmatel 9200, ambos en fase beta. Colocadlos en la partición /Volumes/EFI/Extensions y correr el update.sh. Reiniciad con -f


nota: los archivos adjuntados necesitan ser usados conjuntamente con el vanilla AppleHDA.kext, que debe estar colocado donde siempre /S/L/Extensions .
 

muelas

New member
applehda

esos archivos los tengo que poner en extension, pero cuales pongo de los 2. me iran bien die cual pongo saludos
 

roisoft

New member
esos archivos los tengo que poner en extension, pero cuales pongo de los 2. me iran bien die cual pongo saludos

Supongo que has seguido el método de instalación del que se habla en esta guía, no¿?

Estos archivos son para poner en el /Volumes/EFI/Extensions usar el script para crear el .mkext de tus extensiones en dicha partición y debes de tener el AppleHDA.kext original (vanilla) en la carpeta /System/Library/Extensions.

Lo mejor es que pruebes ambos y comentes....tampoco puedo asegurarte que funcionen, lo que si puedo decirte es que en mi caso (ALC889a) funciona y a otros usuarios tb les ha funcionado.
 

joss68

Activo
No entiendo cual es el alcance de este método, con respecto al boot 132..(con chameleon DFE), el cual tengo, en que lei en otro lado que con este método nuestro sistema seria "casi indestructible" por citar el comentario

gracias
 

roisoft

New member
indestructible es desde luego exagerado, yo no digo que sea mejor ni peor simplemente es un método que me resulta atractivo por la sencilla razón de que tengo extensiones, kernels boot.plist (con cadenas efi) y demás historias en una partición que permanece oculta y que el sistema no utiliza para nada ...
 

chicalleje

New member
indestructible es desde luego exagerado, yo no digo que sea mejor ni peor simplemente es un método que me resulta atractivo por la sencilla razón de que tengo extensiones, kernels boot.plist (con cadenas efi) y demás historias en una partición que permanece oculta y que el sistema no utiliza para nada ...

Genial, yo tenia el Boot_132 en una miniparticion del rigido, pero siempre me molesto tenerla montada y viendola todo el tiempo en el escritorio (o tener que desmontarla manualmente). Es el mejor metodo que hasta el momento vi para tener una instalacion lo mas vanilla posible, gracias.

Ahora una pregunta, yo en las extensiones tengo varios Kexts para que me funcione el audio (AppleHDA; HDAEnabler(del generic_iso de boot 132); IOAudioFamily; AudioIPCDriver y OSvKernDSPlib.kext) tengo una ADI1988b y todos los kext los saque de iDeneb v1,3. Tengo algun metodo mejor para poder usar el AppleHDA original o me quedo como estoy? Tengo in out y microfono asi que no me quejo para nada.

Muchas gracias.
 
Arriba