roisoft
New member
Cómo compilar kernel xnu Mac OS X
Quizás a algunos os interesa aprender tb a compilar el kernel, bueno pues para eso pondremos como ejemplo el xnu kernel 10.6
para compilar necesitaremos previamente compilar una serie de herramientas que no se instalan via xcode, para ello las descargaremos de la pagina opensource de apple y las compilaremos:
1. abrimos un terminal y nos logueamos como root, seguidamente tecleamos :
curl -s -O http://www.opensource.apple.com/tarballs/cxxfilt/cxxfilt-9.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/dtrace/dtrace-78.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/kext_tools/kext_tools-177.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/bootstrap_cmds/bootstrap_cmds-72.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/xnu/xnu-1456.1.26.tar.gz
2. descomprimimos los archivos que hemos descargado
tar zxf cxxfilt-9.tar.gz
tar zxf dtrace-78.tar.gz
tar zxf kext_tools-177.tar.gz
tar zxf bootstrap_cmds-72.tar.gz
tar zxf xnu-1456.1.26.tar.gz
3. empezamos a compilar las herramientas
3.1. compilamos cxxfilt
cd cxxfilt-9
mkdir -p obj sym dst
make install RC_ARCHS="i386 x86_64" RC_CFLAGS="-arch i386 -arch x86_64 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
//esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.2 compilamos dtrace
cd dtrace-78
mkdir -p obj sym dst
xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.3 Compilamos kext_tools
cd kext_tools-177
mkdir -p obj sym dst
xcodebuild install -target kextsymboltool -target setsegname ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.4 Compilamos bootstrap_cmds
cd bootstrap_cmds-72
mkdir -p obj sym dst
make install RC_ARCHS="i386" RC_CFLAGS="-arch i386 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.5 Compilamos Xnu
cd xnu-1456.1.26
//si queremos los distintos mach_kernel por separado (i386 y x86_64)
make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE"
//si queremos el mach_kernel con todas las arquitecturas incorporadas
make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE" install
con esto conseguireis compilar xnu (mach_kernel) , ahora si quereis aplicarle los distintos patches que la comunidad osx86 ha ido usando pues requerirá ciertos conocimientos y vuestra habilidad para incorporarlos..
para los que no quieran descargar desde apple todas las utilidades de las que he hablado en el post os las he subido
Quizás a algunos os interesa aprender tb a compilar el kernel, bueno pues para eso pondremos como ejemplo el xnu kernel 10.6
para compilar necesitaremos previamente compilar una serie de herramientas que no se instalan via xcode, para ello las descargaremos de la pagina opensource de apple y las compilaremos:
1. abrimos un terminal y nos logueamos como root, seguidamente tecleamos :
curl -s -O http://www.opensource.apple.com/tarballs/cxxfilt/cxxfilt-9.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/dtrace/dtrace-78.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/kext_tools/kext_tools-177.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/bootstrap_cmds/bootstrap_cmds-72.tar.gz
curl -s -O http://www.opensource.apple.com/tarballs/xnu/xnu-1456.1.26.tar.gz
2. descomprimimos los archivos que hemos descargado
tar zxf cxxfilt-9.tar.gz
tar zxf dtrace-78.tar.gz
tar zxf kext_tools-177.tar.gz
tar zxf bootstrap_cmds-72.tar.gz
tar zxf xnu-1456.1.26.tar.gz
3. empezamos a compilar las herramientas
3.1. compilamos cxxfilt
cd cxxfilt-9
mkdir -p obj sym dst
make install RC_ARCHS="i386 x86_64" RC_CFLAGS="-arch i386 -arch x86_64 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
//esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.2 compilamos dtrace
cd dtrace-78
mkdir -p obj sym dst
xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.3 Compilamos kext_tools
cd kext_tools-177
mkdir -p obj sym dst
xcodebuild install -target kextsymboltool -target setsegname ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.4 Compilamos bootstrap_cmds
cd bootstrap_cmds-72
mkdir -p obj sym dst
make install RC_ARCHS="i386" RC_CFLAGS="-arch i386 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
// esperamos a que termine
ditto $PWD/dst/usr/local /usr/local
cd ..
3.5 Compilamos Xnu
cd xnu-1456.1.26
//si queremos los distintos mach_kernel por separado (i386 y x86_64)
make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE"
//si queremos el mach_kernel con todas las arquitecturas incorporadas
make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE" install
con esto conseguireis compilar xnu (mach_kernel) , ahora si quereis aplicarle los distintos patches que la comunidad osx86 ha ido usando pues requerirá ciertos conocimientos y vuestra habilidad para incorporarlos..
para los que no quieran descargar desde apple todas las utilidades de las que he hablado en el post os las he subido
Entrar
or
Registrarse
para completar la lectura