Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores   |   Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons
Instalación de Debian GNU/Linux en un iBook G4 (61623 lectures)
Per Alejandro Sobrino Beltrán, Jander (http://tuxitos.es)
Creado el 10/04/2004 22:58 modificado el 12/04/2004 12:49

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 :P


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 "1024x768" "800x600" "640x480"
	#	Virtual 1024 768
		EndSubSection
	EndSection

	Section "ServerLayout"
		Identifier "1024x768"
		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:
  1. http://penguinppc.org/~eb/files/boot-new-powermac-xfs.iso
  2. http://fink.sf.net
  3. http://penguinppc.org/projects/yaboot/doc/mac-fdisk-basics.shtml
  4. http://bulma.net/body.phtml?nIdNoticia=1609
  5. http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.bz2
  6. http://mallorcaweb.net/jander/bulma/ibook-config-2.6.5
  7. http://bulma.net/body.phtml?nIdNoticia=1481&nIdPage=4
  8. http://mallorcaweb.net/jander/bulma/ibook-screenshot.png

E-mail del autor: jander _ARROBA_ mallorcaweb.net
Podrás encontrar este artículo e información adicional en: http://bulma.net/body.phtml?nIdNoticia=2011