Instalación de Debian GNU/Linux en un iBook G4


Hay ya bastante información en internet sobre como instalar Linux en el iBook G4, pero aún así hay que hacer un pequeño “collage” para que todo funcione. A principios de semana me compré mi iBook G4 y a continuación intentaré explicar paso a paso lo que tuve que hacer para instalar Debian GNU/Linux.

Introducción
Antes de todo, necesitaremos una ISO de Debian para PPC. No vale cualquiera, puesto que las ISOs disponibles para woody no detectan la controladora ATA del iBook. Para ello he utilizado una ISO del instalador beta de Debian, con soporte para XFS:
http://penguinppc.org/~eb/files/boot-new-powermac-xfs.iso(1)
Además será imprescindible que tengáis una partición reservada para Linux. Yo fuí previsor, y cuando instalaba el Mac OS X, reservé una partición para Debian ;-).

Arrancando
A continuación hay que grabar la ISO, lo hice en el Mac OS X con el cdrecord, vía fink(2).
Una vez grabada la ISO, hay que hacer que el iBook arranque desde el CD. Para ello, justo después del típico sonido del arranque, apretáis la tecla c. Vuestro iBook arrancará automáticamente desde el CD y cargará el instalador de Debian.

mac-fdisk
El “particionador” del instalador para PPC da un poco de miedo a primera vista, pero tras trastear un poco no es tan complicado como parece :-). Lo primero de todo, será comprobar que tenéis esa partición guardada para Linux. Con p podéis ver la lista de las particiones.
Yo tenía mi partición reservada para Linux del tipo Apple_HFS, asi que la eliminé (con la tecla d) quedándome la lista de particiones de la siguiente manera:

Command (? for help): p
/dev/hdc
# type name length base ( size ) system
/dev/hdc1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/hdc2 Apple_Free 262144 @ 64 (128.0M) Free space
/dev/hdc3 Apple_HFS Apple_HFS_Untitled_2 33082152 @ 262208 ( 15.8G) HFS
/dev/hdc4 Apple_Free 25260760 @ 33344360 (12.1G) Free space

Block size=512, Number of Blocks=58605120
DeviceType=0x0, DeviceId=0x0

No hay que tener miedo en trastear con el mac-fdisk ya que solo guarda los cambios cuando nosotros se lo digamos (tecla w).
Lo siguiente que necesitamos es una partición de “bootstrap”. Por lo visto es un follón el crear esta partición, pero el mac-fdisk puede ayudarnos en esto: presionamos la tecla b y le decimos al mac-fdisk cúal es nuestra partición libre para Linux (del tipo Apple_Free). Para ello debemos fijarnos en la salida al listar la tabla de particiones, si es /dev/hdc3 le diremos al mac-fdisk que escriba la partición de “bootstrap” en 3p.
Comprobaremos que todo es correcto hasta ahora, y listaremos la tabla de particiones (tecla p). Si todo ha ido bien, procederemos a crear la partición de swap, para ello presionaremos la tecla c y le diremos dónde empieza la partición de swap (siguiendo el ejemplo sería en 4p), le indicáis el tamaño (fijaos que podeis indicárselo directamente en MegaBytes con M) y por último el nombre de la partición: “swap” (es obligatorio ponerle este nombre). Del mismo modo, crearemos una nueva partición para el directorio raíz, y la llamaremos (obligatoriamente) “root”.
Para decirle al mac-fdisk que queréis que vuestra partición raiz ocupe todo el espacio libre dispobible, siguiendo el ejemplo, debéis hacer:

Empieza: 5p
Tamaño: 5p
Nombre: root

Comprobad por última vez que todo es correcto y listad la tabla de particiones. Si está todo correcto, escribid la tabla usando la tecla w. Para que os hagáis una idea, actualmente el mio tiene esta pinta:

Command (? for help): p
/dev/hdc
# type name length base ( size ) system
/dev/hdc1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/hdc2 Apple_Free 262144 @ 64 (128.0M) Free space
/dev/hdc3 Apple_HFS Apple_HFS_Untitled_2 33082152 @ 262208 ( 15.8G) HFS
/dev/hdc4 Apple_Bootstrap bootstrap 1600 @ 33344360 (800.0k) NewWorld bootblock
/dev/hdc5 Apple_UNIX_SVR2 swap 524288 @ 33345960 (256.0M) Linux swap
/dev/hdc6 Apple_UNIX_SVR2 root 24734872 @ 33870248 ( 11.8G) Linux native

Block size=512, Number of Blocks=58605120
DeviceType=0x0, DeviceId=0x0

Si necesitáis más información sobre el uso de mac-fdisk, podéis encontrarla aquí(3).

Instalación de Debian
Lo que es la instalación en sí, os la dejo a vosotros 🙂 Hay mucha documentación en internet (en BULMA mismo) sobre como instalar Debian paso a paso, y en PPC es exactamente igual que en cualquier otra arquitectura.

Configuración de yaboot
yaboot es el “bootloader”, o cargador, que se encarga del arranque en los Mac. Vendría a ser el equivalente del LILO o GRUB en PPC. Su fichero de configuración es el /etc/yaboot.conf y después de la instalación debería tener mas o menos la siguiente pinta:

## yaboot.conf generated by yabootconfig 1.0.7
##
## run: “man yaboot.conf” for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/hdc4
device=/pci@f4000000/ata-6@d/disk@0:
partition=6
root=/dev/hdc6
timeout=50
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

image=/boot/vmlinux
label=Linux
read-only

macosx=/dev/hdc3

Cuando realicemos cambios en el fichero de configuración del yaboot, deberemos ejecutar ybin para que se apliquen los cambios hechos.
No se si os habíais fijado antes, pero el disco duro es /dev/hdc. Al actualizar el kernel, ya nos quedará en /dev/hda como es más normal 🙂 (por tanto, deberemos cambiar el yaboot.conf).

Actualizando, que es gerundio
Lo primero que hice cuando tuve el sistema más o menos “usable”, fue pasarme a SID. Para ello, modifiqué mi /etc/apt/sources.list e hice el típico apt-get update && apt-get dist-upgrade -u. Para más información sobre Debian, tenéis el artículo(4) de Ricardo Galli.

Kernel 2.6.5
Basándome en el .config de Celso, compilé el kernel 2.6.5(5). Una vez bajado, lo descomprimís (tar xvfj linux-2.6.5.tar.bz2). Necesitaréis instalar (mediante apt-get install) el libncurses5-dev y el kernel-package para poder compilar el kernel. Además, en Debian, será necesario el module-init-tools para poder cargar los módulos del kernel correctamente.
Podéis meter directamente mi .config(6) (casi igualito al de Celso) y ejecutar un make menuconfig para comprobar las opciones seleccionadas.

Una vez realizado todo esto, solo queda compilar el kernel. Podéis hacerlo de la forma tradicional (usando make…) o a la “Debian way” (usando make-kpkg). Para saber como hacer esto, también podéis encontrar MUCHA información en internet 😛

Consideraciones del nuevo kernel
Como ya comenté en su momento, después de la instalación de Debian, el disco duro es el dispositivo /dev/hdc, pero al compilar el nuevo kernel, pasará a ser /dev/hda. Si intentamos cambiar los valores del /etc/yaboot.conf de /dev/hdc a /dev/hda y ejecutamos ybin, como era de esperar, nos dará errores. Por tanto, deberemos cambiarlo (junto con el /etc/fstab) una vez hayamos reiniciado con el nuevo kernel 2.6.5.
Y entonces, ¿cómo demonios arranco con el nuevo kernel? Fácil 😉 Tan solo deberemos pasarle root=/dev/hdaX (donde X es el número de vuestra partición donde reside el directorio raíz) al kernel a la hora de arrancar (en el yaboot). Ojo, que la distribución del teclado, es la americana, así que para escribir el ‘=’ tendremos que presionar la tecla ‘¡‘ y para escribir la tecla / tendremos que presionar la tecla ‘‘ (todo ello con un teclado con la distribución en español).
Una vez hayamos arrancado con el nuevo kernel, pasaremos a editar los ficheros /etc/fstab y /etc/yaboot.conf y cambiar /dev/hdc por /dev/hda. No hay que olvidarse de ejecutar ybin una vez realizados los cambios en la configuración del yaboot. Podemos reiniciar el sistema para ver que todo ha ido correctamente…
Mi yaboot.conf actual:

## yaboot.conf generated by yabootconfig 1.0.7
##
## run: “man yaboot.conf” for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/hda4
device=/pci@f4000000/ata-6@d/disk@0:
partition=6
root=/dev/hda6
timeout=50
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

fgcolor=yellow
bgcolor=blue

image=/boot/vmlinux-2.6.5
label=Linux
read-only

image=/boot/vmlinux-2.4.23-newpmac
label=Linux-original
read-only

macosx=/dev/hda3

Y mi fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/hda6 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
sysfs /sys sysfs defaults 0 0

XFree86 y DRI
Para tener las X con aceleración 3D, instalé (vía apt-get y desde los mirrors oficiales de SID) los siguientes paquetes:

ii xbase-clients 4.3.0-7
ii xfonts-100dpi 4.3.0-7
ii xfonts-75dpi 4.3.0-7
ii xfonts-base 4.3.0-7
ii xfonts-konsole 3.2.1-1
ii xfonts-scalable 4.3.0-7
ii xfree86-common 4.3.0-7
ii xlibmesa-dri 4.3.0-7
ii xlibmesa-gl 4.3.0-7
ii xlibmesa-glu 4.3.0-7
ii xlibs 4.3.0-7
ii xlibs-data 4.3.0-7
ii xlibs-pic 4.3.0-7
ii xlibs-static-dev 4.3.0-7
ii xlibs-static-pic 4.3.0-7
ii xserver-common 4.3.0-7
ii xserver-xfree86 4.3.0-7
ii xutils 4.3.0-7

A continuación, basta que dejéis vuestro /etc/XF86Config-4 como el siguiente (otra vez, gracias a Celso):

Section “ServerFlags”
Option “BlankTime” “3”
Option “StandbyTime” “7”
Option “SuspendTime” “10”
Option “OffTime” “15”
EndSection

Section “Files”
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID”
FontPath “/usr/lib/X11/fonts/local”
FontPath “unix/:7100” # local font server
# if the local font server has problems, we can fall back on these
FontPath “/usr/lib/X11/fonts/ttf”
FontPath “/usr/lib/X11/fonts/TTF”
FontPath “/usr/lib/X11/fonts/misc”
FontPath “/usr/lib/X11/fonts/cyrillic”
FontPath “/usr/lib/X11/fonts/100dpi/:unscaled”
FontPath “/usr/lib/X11/fonts/75dpi/:unscaled”
FontPath “/usr/lib/X11/fonts/Type1”
FontPath “/usr/lib/X11/fonts/Speedo”
FontPath “/usr/lib/X11/fonts/100dpi”
FontPath “/usr/lib/X11/fonts/75dpi”
FontPath “/usr/lib/X11/fonts/TrueType”
# FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
EndSection

Section “Module”
Load “GLcore”
Load “bitmap”
Load “dbe”
Load “ddc”
Load “dri”
Load “extmod”
Load “freetype”
Load “speedo”
# Load “truetype”
Load “xtt”
Load “glx”
Load “int10”
Load “record”
Load “speedo”
Load “type1”
Load “vbe”
EndSection

Section “InputDevice”
Identifier “Laptop Keyboard”
Driver “keyboard”
Option “CoreKeyboard”
Option “XkbRules” “xfree86”
Option “XkbLayout” “es”
EndSection

Section “InputDevice”
Identifier “Configured Mouse”
Driver “mouse”
Option “CorePointer”
Option “Device” “/dev/input/mice”
Option “Protocol” “ImPS/2”
Option “Emulate3Buttons” “true”
# Option “ZAxisMapping” “4 5”
EndSection

Section “Device”
Identifier “Radeon 9200”
Driver “radeon”
Option “AGPMode” “4”
Option “UseFBDev” “true”
VendorName “ATI”
Option “EnablePageFlip” “On”
BoardName “Radeon 9200”
ChipID 0x5960
EndSection

Section “Monitor”
Identifier “TFT”
HorizSync 28-49
VertRefresh 43-72
Option “DPMS”
EndSection

Section “Screen”
Identifier “Pantalla”
Device “Radeon 9200”
Monitor “TFT”
DefaultDepth 16
SubSection “Display”
Depth 16
Modes “1024×768” “800×600” “640×480”
# Virtual 1024 768
EndSubSection
EndSection

Section “ServerLayout”
Identifier “1024×768”
Screen “Pantalla”
InputDevice “Laptop Keyboard”
InputDevice “Configured Mouse”
EndSection

Section “DRI”
Mode 0666
EndSection

En teoría ya podéis ejecutar startx y ver si todo ha ido bien. Además, podéis ejecutar el glxgears y glxinfo para comprobar que tenéis aceleración 3D.

Sonido
Para ello, instalé el paquete alsa-base: apt-get install alsa-base. En el diálogo de configuración del paquete, seleccioné PowerMac, seguidamente le dí a done, y le dije que me guardase los cambios cada vez que reinicie el sistema.
Ojo, tenéis que subir el volumen (por defecto viene a 0) con el alsamixer. Aún así, seguía sin escuchar nada, así que me instalé el aumix (apt-get install aumix) y le subí el volumen, y tachán! sonaba :-). Por cierto, deberéis añadir a vuestro usuario al grupo audio para poder escuchar algo: adduser jander audio

Botones del ratón
Sí, el iBook solo tiene un botón de ratón, por tanto, o enchufáis un ratón USB, o bien emulais el comportamiento de uno. Basta con editar el fichero /etc/sysctl.conf y dejarlo de la siguiente forma:

dev/mac_hid/mouse_button3_keycode = 96
dev/mac_hid/mouse_button2_keycode = 87
dev/mac_hid/mouse_button_emulation = 1

La emulación de los botones, está explicado en un artículo de Ricardo sobre los iBook G3(7).

Teclas especiales
El control de las teclas especiales se hace a través de un demonio, el pbbuttonsd. Una vez más, instalado via apt-get. El /etc/pbbuttonsd.conf es otra vez obra de Celso (tan solo le he modificado el brillo inicial por defecto):

# configfile for pbbuttonsd >= version 0.5
# for options see man pbbuttonsd.conf

#For more security!
userallowed = paranoid

# [MODULE POWERSAVE]
onAC_sleep = no
onAC_dim = no
onAC_blank = no
onAC_Tsleep = 3000
onAC_Tdim = 600
onAC_Thdoff = 0
onBattery_sleep = yes
onBattery_dim = yes
onBattery_blank = no
onBattery_Tsleep = 3000
onBattery_Tdim = 600
onBattery_Thdoff = 12
SleepKey = 116
SleepKeyDelay = 0
BWL_First = 21
BWL_Second = 1
BWL_Last = 3
Script_BatCritical = “/sbin/shutdown -h now”
#Script_ProfChanged = “”
Script_HDSetup = “/sbin/hdparm -p -S %d /dev/hda”
CPULoad_sleeplock = yes
CPULoad_min = 20
CPULoad_period = 20
NETLoad_sleeplock = yes
NETLoad_min = 4096
NETLoad_period = 20
NETLoad_device = eth0

# [MODULE DISPLAY]
Brightness = 10
BrightnessupKey = 225
BrightnessdownKey = 224
dev_framebuffer = “/dev/fb0”
UseFBBlank = yes

# [MODULE OSSMIXER]
dev_mixer = “/dev/mixer”
mixerchannels = “volume, speaker”
volume = 50
speakers_muted = no
volumeupkey = 115
volumedownkey = 114
mutekey = 113
mixerinitdelay = no

# [MODULE CDROM]
dev_cdrom = “/dev/cdrom”
ejectcdkey = 161
ejectcdkeydelay = 2000

# [MODULE PMAC]
dev_pmu = “/dev/pmu”
dev_adb = “/dev/adb”
tpmodeupkey = 225 + alt
tpmodedownkey = 224 + alt
tpmode = drag
kbdmode = fkeyslast
replace_pmud = yes

Existe el paquete powerprefs que es una aplicación gráfica para configurar el pbbuttonsd:

También está disponible el gtkpbbuttons que muestra unos gráficos al estilo del Mac OS X para cuando presionáis una de las teclas especiales:

Control de energía
El pmud no acaba de llevarse muy bien con la CPU del iBook G4:

sal:~# /etc/init.d/pmud start
Starting pmud: PMU version 12: iBook/G3 Pismo/G4 Titanium
sal:~# /etc/init.d/pmud status
pmud dead but pid file exists

Así que eliminé el pmud ya que no parecía que hiciese nada…
Aparte del pmud, probé (y con éxito) el cpudyn de Ricardo: apt-get install cpudyn. Ahí va mi /etc/default/cpudyn:

# Cpudyn configure options

################################################
# COMMON OPTIONS
################################################

#
# Internal between idle ratio tests in 1/10 sec increments
#

INTERVAL=1

################################################
# CPUFREQ OPTIONS
################################################

#
# CPU idle work ratio to speed up
#

CPU_UP=0.5

#
# CPU idle work ratio to speed down
#

CPU_DOWN=0.9

#
# when using cputhrottling, what state to switch when speeding down
#

THROTTLING_LOW=7

################################################
# DISK OPTIONS
# (disabled by default)
################################################

#
# Timeout to put the disk in standby mode if there was no
# io during that period (in seconds)
#

TIMEOUT=240

#
# Specified disks to spindown (comma separated devices)
#

# DISKS=/dev/hda,/dev/hdb

DISKS=/dev/hda

################################################
# EXTRA OPTIONS
################################################

# Available options are
# -acpi disables cpufreq and force the use of acpi
# -asus enables asus_acpi in some laptops
# -nice count also nice CPU usage as load as well
# -minf value Set the minimum CPU frequency in a value between 0.0 and 1.0

# EXTRA_OPTIONS=””

Temperaturas y ventilador
Para tener un mejor control de la temperatura del portátil, así como que al superar cierta temperatura se active el ventilador de CPU, deberemos cargar un módulo:

modprobe therm_adt746x

A partir de aquí, el ventilador arrancará cuando la CPU alcance una cierta temperatura límite. Todos los valores de temperaturas y demás, los podéis encontrar en /sys/devices/temperatures/.
Para cargar siempre en el arranque el módulo, basta hacer un echo therm-adt746x >> /etc/modules. Además me he permitido hacer un mini-script para que me muestre la información mas relevante en ese momento.
En bash:

echo “############# CPU #############”
echo -n “Temperatura de la CPU: ”
cat /sys/devices/temperatures/cpu_temperature
echo -n “Velocidad del ventilador: ”
cat /sys/devices/temperatures/cpu_fan_speed
echo -n “Temperatura límite: ”
cat /sys/devices/temperatures/cpu_limit

echo “############# GPU #############”
echo -n “Temperatura de la GPU: ”
cat /sys/devices/temperatures/gpu_temperature
echo -n “Temperatura límite: ”
cat /sys/devices/temperatures/gpu_limit

Usando kdialog:

kdialog –title “Temperaturas del iBook G4” –msgbox \
“Temperatura CPU: `cat /sys/devices/temperatures/cpu_temperature` \n \
Velocidad ventilador CPU: `cat /sys/devices/temperatures/cpu_fan_speed` \n \
Temperatura límite CPU: `cat /sys/devices/temperatures/cpu_limit` \n \
Temperatura de la GPU: `cat /sys/devices/temperatures/gpu_temperature` \n \
Temperatura límite GPU: `cat /sys/devices/temperatures/gpu_limit`”

Y aquí podéis ver como queda:

Conclusiones y comentarios
Con esto, vuestro iBook G4 debería tener Debian instalado y funcionando lo mejor que sé… Por supuesto, se aceptan sugerencias 🙂
Además, dar las gracias a Celso González por trabajarse los ficheros de configuración y a Ricardo Galli por el anterior artículo sobre los iBook G3.
Y éste(8) es el resultado, en dónde se ve como el cpudyn funciona bajándome la frecuencia de la CPU desde 800MHz a 600MHz :).Lista de enlaces de este artículo:

  • http://penguinppc.org/~eb/files/boot-new-powermac-xfs.iso
  • http://fink.sf.net
  • http://penguinppc.org/projects/yaboot/doc/mac-fdisk-basics.shtml
  • http://bulma.net/body.phtml?nIdNoticia=1609
  • http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.bz2
  • http://mallorcaweb.net/jander/bulma/ibook-config-2.6.5
  • http://bulma.net/body.phtml?nIdNoticia=1481&nIdPage=4
  • http://mallorcaweb.net/jander/bulma/ibook-screenshot.png
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2011 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.