Ho comprato un iBook di Apple solo perchè trovo che l'hardware non abbia simili per quanto riguarda il rapporto
qualità/prezzo, quando ho fatto l'acquisto un portatile equivalente (un ibm serie X) costava 2400€ contro i 1000
dell'iBook…
Sapevo già, fin dall'inizio, che MacOs X non avrebbe occupato più di 15 gb sul disco fisso, il resto sarebbe stato
dedicato a GNU/Linux, in particolare a Debian.
processor : 0 cpu : 7447A, altivec supported clock : 1333MHz revision : 0.2 (pvr 8003 0102) bogomips : 663.55 machine : PowerBook6,7 motherboard : PowerBook6,7 MacRISC3 Power Macintosh detected as : 287 (iBook G4) pmac flags : 0000001b L2 cache : 512K unified memory : 512MB pmac-generation : NewWorld
0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP 0000:00:10.0 VGA compatible controller: ATI Technologies Inc M11 NV [FireGL Mobility T2e] (rev 80) 0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI 0001:10:12.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02) 0001:10:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O 0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43) 0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43) 0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI 0002:20:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100 0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81) 0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 8
total used free shared buffers cached Mem: 502 498 4 0 1 172 -/+ buffers/cache: 323 179 Swap: 953 78 874
| Periferica | Stato |
|---|---|
| Scheda Video | 2d ok, 3d molto limitato |
| Video Out | Non testato, dovrebbe funzionare |
| Scheda Audio | OK |
| DVD/CD-RW | OK |
| Hdd | OK, ~25 MB/sec |
| Airport Extreme | OK |
| Ethernet | OK |
| Modem | Non testato, ma non sembra essere riconosciuto |
| Bluetooth | OK |
| Firewire | OK |
| Touchpad | OK |
| Suspend | OK |
Siccome l'ibook viene venduto con MacOs X preinstallato e non è possibile avere un iBook “vergine”
bisogna quindi formattare e reinstallare MacOs.
Io personalmente ho deciso di lasciare per MacOs una partizione da 15 GB all'inizio del disco fisso, ecco la mia
tabella delle partizioni
fdisk -l /dev/hda /dev/hda # type name length base ( size ) system /dev/hda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/hda2 Apple_Bootstrap untitled 1954 @ 64 (977.0k) NewWorld bootblock /dev/hda3 Apple_HFS Apple_HFS_Untitled_1 31195120 @ 86015104 ( 14.9G) HFS /dev/hda4 Apple_UNIX_SVR2 untitled 97657 @ 2018 ( 47.7M) Linux native /dev/hda5 Apple_UNIX_SVR2 swap 1953126 @ 19533269 (953.7M) Linux swap /dev/hda6 Apple_UNIX_SVR2 untitled 64528709 @ 21486395 ( 30.8G) Linux native /dev/hda7 Apple_UNIX_SVR2 untitled 19433594 @ 99675 ( 9.3G) Linux native /dev/hda8 Apple_Free Extra 16 @ 117210224 ( 8.0k) Free space Block size=512, Number of Blocks=117210240 DeviceType=0x0, DeviceId=0x0
hda1 e hda2 sono partizioni che vengono create dal programma di partizionamento e servono all'OpenFirmware per bootare la macchina
hda3 è la partizione di MacOs
hda4 è dedicata a /boot
hda5 è la partizione di swap, ho scelto la dimensione di 1 GB per evitare problemi con il suspend-to-ram
hda6 è la partizione di /
hda7 è la partizione di /home
Una volta reinstallato MacOs si incomincia con l'installazione di Debian sul disco fisso, io personalmente ho
scelto l'installazione tramite NetInstall, ho usato l'immagine di Sarge.
Una volta avviata l'installazione si deve scegliere la lingua e la mappa per la tastiera.
La mappa corretta non è quella presente nella sezione dedicata ai macintosh, ma una normalissima mappa
per i computer i386, dato che apple ha deciso (finalmente) di usare un layout standard.
Sistemata la mappa per la tastiera procedete con l'installazione come al solito, il divertimento inizierà al riavvio, dato che il kernel fornito con Sarge (2.6.8.1)
purtroppo non supporta ne il suspend, ne il nuovo touchpad.
Il 2.6.14 è la prima release della serie 2.6 a supportare sia il suspend che il driver appletouch per il touchpad della nuova serie che si appoggia al bus usb invece che al vecchio bus adb.
Ecco una lista (relativa al kernel 2.6.17.4) delle opzioni da abilitare durante la configurazione:
Processor Type (6xx/7xx/74xx) AltiVec Support
Automatically append version information to the version string Support for paging of anonymous memory (swap) System V IPC POSIX Message Queues Sysctl support Support for hot-pluggable devices Kernel Userspace Events Kernel .config support Enable access to .config through /proc/config.gz
Machine type (Generic desktop/server/laptop) Apple PowerMac based machines Proc interface to RTAS CPU Frequency scaling CPU frequency translation statistics Default CPUFreq governor (Scegliete quello che volete, io uso 'userspace') Support for Apple PowerBooks On-chip CPU temperature sensor support
Preemption Model (Voluntary Kernel Preemption (Desktop)) Kernel support for ELF binaries Support for device tree in /proc Power Management support Legacy Power Management API Software Suspend (Vostra partizione di swap) Default resume partition Encrypt suspend image Enable seccomp to safely compute untrusted bytecode
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support Include IDE/ATA-2 DISK support Use multi-mode by default Include IDE/ATAPI CDROM support PCI IDE chipset support Sharing PCI IDE interrupts support Generic PCI IDE Chipset Support Use PCI DMA by default when available Builtin PowerMac IDE support Probe internal ATA/100 (Kauai) first PowerMac IDE DMA support
SCSI device support SCSI disk support SCSI generic support
OUI Database built-in OHCI-1394 support OHCI-1394 Video support SBP-2 support (Harddisks etc.) Ethernet over 1394 OHCI-DV I/O support Raw IEEE1394 I/O support
Apple Desktop Bus (ADB) support Support for PMU based PowerMacs APM emulation Backlight control for LCD screens Include MacIO (CHRP) ADB driver Support for ADB input devices (keyboard, mice, ...) Support for mouse button 2+3 emulation Support for thermal mgmnt on laptops with ADT 746x chipset
Ethernet (10 or 100Mbit)
Generic Media Independent Interface device support
Sun GEM support
Wireless LAN (non-hamradio)
Wireless LAN drivers (non-hamradio) & Wireless Extensions
Broadcom BCM43xx wireless support
Broadcom BCM43xx debugging (RECOMMENDED)
BCM43xx data transfer mode (DMA + PIO)
(1024) Horizontal screen resolution (768) Vertical screen resolution Event interface Keyboards AT Keyboards Miscellaneous devices User level driver support
/dev/nvram support Generic /dev/rtc emulation Extended RTC operation /dev/agpgart (AGP Support) Apple UniNorth & U3 AGP support Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) Ati Radeon
Support for frame buffer devices Open Firmware frame buffer device support ATI Radeon display support DDC/I2C for ATI Radeon support Logo Configuration Standard 224-color Linux logo
Sound card support
PowerMac DMA sound support
Advanced Linux Sound Architecture
Sequencer support
OSS Mixer API
OSS PCM (digital audio) API
OSS Sequencer API
ALSA PowerMac devices
PowerMac (AWACS, DACA, Burgundy, Tumbler, Keywest)
Toggle DRC automatically at headphone/line plug-in
USB verbose debug messages USB device filesystem Enforce USB bandwidth allocation Dynamic USB minor allocation USB suspend/resume EHCI HCD OHCI HCD support USB Printer support USB Mass Storage support USB Human Interface Device HID input layer support /dev/hiddev raw HID device support Apple USB Touchpad support
Ext3 journalling file system support Ext3 extended attributes Kernel automounter version 4 support DOS/FAT/NT Filesystems VFAT (Windows-95) fs support (437) Default codepage for FAT (iso8859-15) Default iocharset for FAT Pseudo filesystems /proc file system support /proc/kcore support Virtual memory file system support (former shm fs Miscellaneous filesystems Apple Extended HFS file system support
Nella sezione files troverete il config completo.
Purtroppo il modello di giugno 2005 monta una ATI Radeon 9550 che non è supportata appieno da Xorg 6.8.2
(anche se pare che verrà supportata completamente da Xorg 6.9/7.0 )
In ogni caso il driver Radeon funziona perfettamente per l'accelerazione 2D.
Il driver r300 è entrato nel branch di sviluppo di dri. Per avere un minimo di accelerazione 3d (~300fps) è necessario installare il pacchetto libgl1-mesa-dri, che permette di sgravare la cpu di gran parte del lavoro.
La tastiera dell'iBook non ha il tasto AltGr, questo è parecchio fastidioso in quanto per scrivere simboli
speciali bisogna schiacciare complicate combinazioni di tasti (ad esempio per la parentesi graffa aperta bisogna
schiacciare il tasto Fn seguito dal tasto Alt, rilasciare Fn, premere shift e il tasto “è”).
Per evitare tutto questo basta rimappare il tasto command (più conosciuto come tasto “Mela”) come Alt Gr usando
il modificatore
"XkbOptions" "lv3:lwin_switch"
all'interno della sezione relativa alla tastiera in xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "macintosh"
Option "XkbLayout" "it"
Option "XkbOptions" "lv3:lwin_switch"
Option "XkbModel" "pc105"
Option "LeftAlt" "Meta"
Option "RightAlt" "LWin"
EndSection
Il driver Appletouch per il touchpad fornisce un layer di compatibilità che viene sfruttato dai driver Synaptic di Xorg:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "LeftEdge" "60"
Option "RightEdge" "900"
Option "BottomEdge" "511"
Option "HorizScrollDelta" "0"
Option "MinSpeed" "0.4"
Option "MaxSpeed" "1"
Option "AccelFactor" "0.08"
Option "MaxTapTime" "0"
Option "TapButton1" "0"
#Two Finger Scroll
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
EndSection
L'opzione “AccelFactor” è settata in maniera che il touchpad risponda in maniera molto molto simile a quella di
MacOs x, le opzioni “MaxTipTime” e “TabButton1” servono per disabilitare il tapping, dato che il touchpad in
questione è veramente molto sensibile.
Dato che come da tradizione Apple il touchpad è dotato di un solo pulsante è necessario attivare l'emulazione
degli altri due pulsanti, io uso F10 per il tasto centrale (l'equivalente della rotellina) e F11 per il tasto destro.
Per abilitare l'emulazione è necessario agire sui parametri del kernel, per fare questo ho modificato il file
/etc/sysctl.conf in questa maniera:
dev/mac_hid/mouse_button_emulation=1 dev/mac_hid/mouse_button2_keycode=68 # F10 dev/mac_hid/mouse_button3_keycode=87 # F11
e dato il comando
sysctl -p
per rendere effettive le modifiche.
Per far funzionare correttamente lo sleep e i tasti funzione dell'iBook è necessario usare pbbuttonsd.
Ecco le lineee di configurazione che uso per i tasti funzione (tutto ciò che segue un ”;” è un commento):
SleepKey = 116 ; tasto di accensione/spegnimento LCD_IllumDownKey = 224 ; Fn+F1 abbassa la luminosità dello schermo LCD_IllumUpKey = 225 ; Fn+F2 alza la luminosità dello schermo MuteKey = 113 ; Fn+F3 attiva/disattiva il mute VolumeDownKey = 114 ; Fn+F4 abbassa il volume VolumeUpKey = 115 ; Fn+F5 alza il volume EjectCDKey = 161 ; Fn+F12 espelle il CD-ROM
Per maggiori informazioni sulle opzioni disponibili rimando alle manpages di pbbuttonsd (man 1 pbbuttonsd) e di
pbbuttonsd.conf (man 5 pbbuttonsd.conf).
Nella sezione Files trovate il mio pbbuttonsd.conf
La gestione delle ventole di raffreddamento è demandata al modulo therm_adt746x.
Il modulo, ha dei limiti piuttosto bassi, e quindi le ventole partono decisamente spesso riducendo così l'autonomia
del portatile, per risolvere questo problema basta alzare i limiti creando un alias in /etc/modprobe.d/therm_adt746x
contenente le righe:
alias therm_adt746x therm_adt746x options therm_adt746x fan_speed=60 limit_adjust=6
Questo abbasserà di parecchio la velocità di rotazione delle ventole e inalzerà di 6 gradi il limite di attivazione,
in maniera che le ventole si attivino all'incirca alla stessa temperatura impostata su MacOs X
Non c'è molto da dire sul frequency scaling se non che basta installare cpufreqd o powernowd per avere lo scaling.
Il processore montato su questo modello di iBook è in grado di funzionare a due frequenze:
la minima di 667 MHz e la massima di 1.33 GHz
Usando powernowd e il gestore 'userspace' non ho notato nessun tipo di rallentamente ne' diminuzioni nell'autonomia
della batteria rispetto a MacOs.
Laptop Mode è una modalità del kernel (presente a partire dalla release 2.6.6) che permette di estendere l'autonomia
della batteria tramite la gestione ottimizzata degli accessi al disco.
Per attivare Laptop Mode (oltre ad avere un kernel configurato adeguatamente) è necessario installare
laptop-mode-tools un insieme di script capaci di controllare Laptop Mode.
Una volta installato laptop-mode-tools è necessario modificare il file di configurazione per impostare l'unità
che dovrà gestire:
Il file di configurazione è /etc/laptop-mode/laptop-mode.conf.
Il file originale è configurato per essere attivato su qualsiasi tipo di unità disco, cosa che provocherà parecchi
errori per tanto la riga
HD="/dev/[hs]d[abcdefgh]"
dovrà essere sostituita con:
HD="/dev/hda"
È importantissimo non usare laptop-mode sul lettore cd, altrimenti ad ogni avvio di laptop mode sarete sommersi da
errori simili ai seguenti:
hdc: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc: drive_cmd: error=0x04 { AbortedCommand }
ide: failed opcode was: 0xec
Nella sezione files troverete il mio laptop-mode.conf
Per abilitare l'Ultra DMA sul disco fisso è necessario usare hdparm.
In /etc/default/hdparm ho inserito le seguenti linee:
harddisks="/dev/hda" hdparm_opts="-c1 -d1 -X66 -m16"
Il mio hdparm -i:
/dev/hda:
Model=FUJITSU MHV2060AT, FwRev=00810099, SerialNo=NS37T5625EFW
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=117210240
IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6
Il mio hdparm -tT /dev/hda:
/dev/hda: Timing cached reads: 996 MB in 2.00 seconds = 498.00 MB/sec Timing buffered disk reads: 78 MB in 3.07 seconds = 25.39 MB/sec
Al momento non è possibile utilizzare mol per avviare Tiger, installato di default su questo modello di iBook
bisognerà aspettare la versione 0.9.71.
Perfettamente funzionante grazie al driver bcm43xx che è incluso direttamente nel kernel dalla release 2.6.17
Una volta compilato il modulo dovrete estrarre il firmware da uno dei driver forniti dai produttori di schede wireless basate su chipset Broadcom, uno di essi è fornito con Mac Os X, lo potete trovare in:
$OSX_ROOT/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2.
Copiatelo in una directory e lanciate il comando
bcm43xx-fwcutter AppleAirPort2
e spostate i file .fw ottenuti in /lib/firmware.
Un'altra fonte per il firmware è il file wl_apsta.o che è il modulo binario presente nel firmware dei router wireless Asus, lo trovate nella sezione files.
Con un piccolo hack il bluetooth viene rilevato, ma purtroppo non posso fare test più accurati dal momento che non ho nessun dispositivo bt.
Per far rilevare il modulo bluetooth bisogna fare in modo che il modulo usbcore venga inizializzato secondo il vecchio schema, per fare ciò è sufficiente avere usbcore compilato come modulo e creare il file /etc/modprobe.d/usbcore, contentente la seconda riga:
options usbcore use_both_schemes=1 old_scheme_first=1
dopo di che bisognerà scaricare e ricaricare il modulo e in /proc/bus/usb/devices dovrà apparire una sezione simile a questa:
: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=05ac ProdID=8207 Rev=19.65 C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 2 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)
che identifica proprio il modulo bluetooth.
config-2.6.17.4.gz
xorg.conf
pbbuttonsd.conf
hdparm.conf
laptop-mode.conf
sysctl.conf
wl_apsta.o.gz
— mind – 07/09/2006