Traducción NO OFICIAL(se admiten ayuda y rectificaciones) español de la página Macbook
- Pros y contras de un Macbook para usuarios Linux
- Particionado & Instalación (arranque simple)
- Multiarranque (OS X & Debian)
- Instalar Debian
- If i386 Debian installed, change the kernel to amd64 (MacBook Core 2 Duo)
- Sustitución de lilo por GRUB
- Cross-mount file systems
La configuración del hardware
- Devices that work
- Devices to be confirmed
- Backlight + Volume + CD Eject button
- Synaptics Touchpad
- Mouse 2nd and 3rd button
- Parche para el núcleo y las herramientas de recursos del hardware
- Hardware sensor
- Old hardware issues
Hilo disponible(Lista distribución) here(en Inglés)
elilo does not work (Bug: #376002)
Debian Etch on a MacBook HOWTO (triple-boot) at:
Triple boot (inc. Debian Etch) at:
Boot process described is rEFIt to LILO to Linux (as discussed in above-linked thread.)
Pros y contras de un Macbook para usuarios Linux
- Bonito diseño
- El precio está bien
- Viene con el sistema operativo Mac Os X, es casi tan compatible como Windows para muchas aplicaciones comerciales, pero igual que Linux a nivel de línea de comandos, siendo probablemente mejor alternativa que Windows para usuarios de Linux.
- touchpad (ratón) sólo tiene un botón por defecto (no es necesariamente un problema, pero puede resultar molesto para algunos usuarios).
- En el teclado faltan algunas teclas (por ejemplo, Alt-Gr, Del) (pueden ser reemplazadas con otras teclas)
- (No ocurre en EE.UU. teclados) le falta un teclado común pocos símbolos impresos en las teclas (por ejemplo, @, (,))
- La instalación de Debian Linux no es sencillo y requiere mucho trabajo extra de configuración.
Particionado & Instalación (arranque simple)
CUIDADO: Si sigues este método, perderás Mac OS X y todos los demás datos en el MacBook (si no quieres que esto ocurra pasa al siguiente apartado Multiarranque (OS X & Debian)).
Metodología: usa el método de compatibilidad de la bios para arrancar Debian borrando la tabla de partición GPT del disco.
Asegúrate de haber recibido las últimas actualizaciones de Apple en OS X. Esto es necesario porque las últimas actualizaciones incluyen una capa de compatibilidad con la bios, la vamos a usar para arrancar Debian.
Arranca desde el CD, deberás presionar C mientras arranca. Antes de establecer las particiones en el instalador, presiona ALT+F2. Ahora vamos a limpiar el disco entero:
# dd if=/dev/zero of=/dev/sda
Esto limpiara el disco entero (recuerda: todos los datos están perdidos), y lo más importante, se borra la tabla de partición GPT. Vuelve al instalador presionando ALT+F1 y continúa la instalación normal. Acuérdate de instalar el cargador de arranque en el MBR (/dev/sda), y no en la partición de arranque (como cuando instalamos con rEFIt)!
Multiarranque (OS X & Debian)
Particionamiento (via OS X)
Antes de instalar Debian, necesitará reparticionar(Cambiar el tamaño de la partición) del disco; Suponiendo que quiera hacer la reserva de 20GB para su partición de OS X, ejecute el comando siguiente desde un terminal:
Mac OS X $ sudo diskutil resizevolume disk0s2 20G Started resizing on disk disk0s2 Macintosh HD Verifying (verificando) Resizing Volume (Cambiando el tamaño del volumen) Adjusting Partitions (Ajustando partición) Finished resizing on disk disk0s2 Macintosh HD (Finalizado el cambio de tamaño del reservado para el volumen del disco disk0s2 de Macintosh HD) WARNING: You must now reboot! (ATENCIÓN: Ahora debe reiniciar)
El soporte para modificar el tamaño del volumen se ha añadido a partir de la versión de Mac OS X 10.4.6. si tiene una versión anterior usted necesitará actualizarla.
Preparación previa para el arranque dual (via OS X): rEFIt
First install the latest rEFIt from rEFIt homepage. For the manual way (which is not needed) read the rEFIt install documentation. If you don't have your MacBook connected to the internet, you can download the rEFIt Mac disk image onto a USB memory stick and install rEFIt from there by double clicking on rEFIt-0.10.dmg (or whatever version you have) and then on rEFIt.mpkg.
NOTE: The combination of pre-0.9 rEFIt and GNU parted is known to cause problems: see http://refit.sourceforge.net/doc/c4s5_parted.html. If you install an old version of rEFIt and then install Debian + Lilo, you might not be able to install Grub afterwards. Reinstalling rEFIt 0.9 or greater will fix this problem.
It's now possible to proceed with installing Debian.
Note refit doesn't support making linux the default boot choice in tripple-boot environments, so you might want to look into other options. rEFIt does support making GNU/Linux the default choice when dual-booting. From OS X, edit the /efi/refit/refit.conf file and uncomment/add the line legacyfirst:
sed -e 's/#\(legacyfirst\)/\1/' -i~ /efi/refit/refit.conf
Get an installation CD: Burn yourself a Debian installation CD (i383 version!, 1st CD/DVD of full CD/DVD set). CD-images are available from http://www.us.debian.org/distrib/.
REMARK: In principle an amd64 version would be suitable for a Core 2 Duo MacBook. However, the amd64 version has no refit package available yet (bug 383802 which is waiting for bug 383801). Since refit is crucial to synchronize the MBR and GPT, it is more difficult to install the amd64 than the i386 version. There are three options to install amd64, but if you don't want that, i386 installation should work fine.
- It has been suggested to use rEFIt using Mac OS X for synchronizing MBR and GPT, which would require to reboot into Mac OS X rEFIt in the middle of the installation process and then reboot back into the Debian installation.
- You can install refit from refit.sf.net under OS X, do your partitioning from there too (a bit tricky, be careful), and use the gptsync feature from refit when you reboot (it's in the utilities offered by the bootloader at boot time - it'll save your life eventually).
Another option is to boot a livecd of some kind, do your partitioning with parted, reboot, use gptsync from the refit menu at boot, boot the installer -> you're done.
I was able to install AMD64 on MacBookPro June 2007 with these steps (7 oct 2007, Eugen Dedu) (I chose the expert mode, but this wouldn't change anything I think):
- install refit 0.10 in OS X
- shrink OS X with diskutil (see above the command sudo diskutil ...)
- reboot and, in refit, choose Disk Partitioning and synchronise
- reboot on debian CD
- install all the system, up to lilo
- instead of lilo/grub, choose without boot loader
- finish the installation, reboot computer
- during boot, in refit, do again: Disk Partitioning, and synchronise
- reboot on debian CD
- go to all stages up to partitioning
- as partitions are not yet known, enter partitioning, then go back; if it does not go back (d-i bug?), choose partitioning, then manual, then go back
- execute commands to install lilo, as shown below: mkdir /mnt/sda3 etc.
- reboot computer and it's ok
Boot from installation CD: Insert the Debian installation CD and hold down the c-key while booting. This should bring up the Installation CD welcome screen. Simply press return there and proceed with the installation.
TROUBLESHOOTING (double keypresses): If you have strange keyboard problems (double keypresses) or other problems while booting from the install CD, use the following command line on the boot prompt:
install noapic irqpoll acpi=force
TROUBLESHOOTING (dead keyboard): If you cannot type anything in the CD/DVD boot prompt (a problem that has occured on a MacBook Core 2 Duo), you can fix it by using USB-attached keyboard. If you do not have a USB keyboard, you can try to reboot from CD repeatedly and see whether finally the keyboard responds. This might work, because the error is not always reproducable. There are three different ways of booting from CD, of which the third one seems to be the best. (Laurenz Wiskott: Since I have started collecting statistics, the three methods worked (i) 3/8, (ii) 1/9, and (iii) 3/6 times). All three methods require the Linux CD to be in the drive.
- Keep the c-key pressed after starting the computer.
- If rEFIt is installed let the computer boot into the rEFIt menu and choose the Linux CD there.
If Mac OS X is installed, boot into Mac OS X, insert the Linux installation disc, within Mac OS X go to 'System Preferences' -> 'Startup Disk', click on the Linux CD icon (this tells the computer to start from CD without the need to press the C key at boot time), click on the 'Restart' button, confirm 'Restart', wait. To get back to Mac OS X you might have to restart the computer and keep the eject button pressed to eject the CD, otherwise you keep booting from CD (possibly with the same keyboard problem as before, the behavior is a bit erratic). This last version has been reported to solve the problem ?2007-08-27, Apple Discussions], but it does not seem to be reliable either.
This problem seems to be related to refit, since disabling it and booting while holding the C button pressed (boots directly from CD) fixes this (sometimes). (It seems that booting after the real power-off seems to have less problem than reboot with "shutdown -r now". Also it seems to help situation a bit better by not pressing keyboard except when needed.)
[!!] Choose language ...
[!] Select a keyboard layout ...
[!!] Configure the network: (Laurenz Wiskott: I think it is important to configure the network here, because the refit package does not seem to be on the installation CD but is needed later, see also comment below under [!] Configure the package manager. The easiest is to do it via DHCP.)
[!!] Partition disks: When creating new partitions for Linux, take care that the Linux boot/system partition is among the first four partitions, i.e. is a primary partition. There are reports that rEFIt does not notice partition five and higher ?Linux auf einem MacBook Pro]. Also consider creating a partition for exchanging data between Linux and Mac OS X, see Section Cross-mount file systems below.
Also make sure all partitions are formatted and have a known file system type. Otherwise you get in trouble further below, see TROUBLESHOOTING (GPT partition of type 'Unknown' found, will not touch this disk.). Partitions with free space are ok.
(Laurenz Wiskott: I guess the linux partition should have the bootable flag turned on, but I am not sure. Anybody knows for sure?)
[!!] Set up users and passwords ...
[!] Configure the package manager: (Laurenz Wiskott: I think it is important to configure a network mirror here, because the refit package, which is needed later, does not seem to be on the installation CD but has to be downloaded. Can anybody confirm this?)
[!] Configuring popularity-contest ...
[!] Software selection: Select the Laptop here (in addition to the defaults Desktop environment and Standard system).
[!!] Configuring uswsusp: This step may cause the following problem.
TROUBLESHOOTING (Configuring uswsusp: Continue without a valid swap partition?): During the standard installation of packages you might get the following error message:
[!!] Configure uswsusp The swap partition that was found in uswsusp's configuration file is not active. In most cases this means userspace software suspend will not work for you and you will need to choose (or let uswsusp choose) another partition. In some corner cases however, this can be what you want. Continue without a valid swap partition? <Go Back> <Yes> <No>
(Laurenz Wiskott: I had a swap partition created during the Linux partitioning. So I did not know what to do about this error message and simply replied with <No>. Has anybody a better advice?)
[!] Install the GRUB boot loader on a hard disk: Do not install the GRUB boot loader. So, leave this menu item and go to the main menu by selcting <Go back>.
Synchronize MBR and GPT: Switch to the second virtual console by pressing ctrl-alt-F2, press return to start the shell, and then enter
chroot /target aptitude install refit /target/sbin/gptsync /dev/sda
(The directory /target is the directory in which the Debian installer installs the new system and it later becomes the root directory /.)
then continue with installing your boot loader.
TROUBLESHOOTING (no refit available): If aptitude tells you that refit is not available, the reason might be that you have no internet connection and there is no refit package on the Debian installation CD. One solution is to connect the MacBook to the internet during installation.
It might also be that you have used the amd64 version, which does not have refit available, see comment above at Get an installation CD.
TROUBLESHOOTING (GPT partition of type 'Unknown' found, will not touch this disk.): If there is a partition of type 'Unknown', gptsync will not synchronize MBR. Go back to first console and there to the partitioning. If there is no important data on the partition with the unknown filesystem type, reformat it (but only this one and possibly the swap partition). After that synchronization should work. (However, LILO installation did not work (stalled at 50%, see below) and I had to start from scratch.)
TROUBLESHOOTING (gptsync reads linux partition as FAT32): If gptsync reads the partition type incorrectly from the GPT and applies it incorrectly to the MBR, installation of the boot loader will fail. Run sfdisk to set the correct partition type in the MBR: Example:
sfdisk -c /dev/sda 3 83
Then switch back to the first virtual console by pressing ctrl-alt-F1.
[!!] Install the LILO boot loader on a hard disk: In the main menu choose select "Install the LILO boot loader on a hard disk". Choose /dev/sda3 (or whatever your new Debian partition is) for the LILO installation target. Do not install LILO to the MBR! When the installer asks whether you want to make this partition active, choose "No."
TROUBLESHOOTING (LILO installation stalls forever at 50%): I have no solution for that one and simply started from scratch. The solution recommended in the next troubleshooting point (LILO installation fails) did not work for me, since the command lilo was not known to the system.
TROUBELSHOOTING (LILO installation fails): If you get an error while trying to install LILO :
- reboot, start the refit shell and type gptsync /dev/sda, and answer y
- boot from the debian CD and follow the steps until the partitioning step, type ctrl-option-F2, press return to start the shell and then enter
- mount /dev/sda3 to /mnt/sda3, mount /proc to /mnt/sda3/proc, chroot into /mnt/sda3 and run lilo:
mkdir /mnt/sda3 mount /dev/sda3 /mnt/sda3 mount /proc/ /mnt/sda3/proc chroot /mnt/sda3 lilo -b /dev/sda3
[!!] Finish the installation: Remove the ejected installation CD and select <Continue>. During reboot select Linux from the Mac rEFIt menu.
TROUBLESHOOTING (Missing operating system): Once Debian is installed it asks you to remove the installation CD and reboot without it. You might then get the error message "Missing operating system". I guess, this means that the MacBook still tries to boot from CD (even though there is none) because following method (iii) in "TROUBLESHOOTING (dead keyboard)" above you have told Mac OS X to boot from CD. To solve this, you can do either of the following two things.
- Reboot and keep the alt/option-key pressed during boot. Then select rEFIt to boot.
Insert the Mac OS X installation DVD and boot from it (keep the c-key pressed). Choose your language. Click on 'Utilities' -> 'Startup Disk...'. Select Mac OS X as the system to start. Click on 'Restart...' and confirm 'Restart...'. This should bring you into the rEFIt menu.
If i386 Debian installed, change the kernel to amd64 (MacBook Core 2 Duo)
As mentioned above, it is problematic to use the amd64 version of the Debian installation CD. However, it is possible to install the amd64 kernel afterwards.
Install the amd64 kernel: Simply run
aptitude install linux-image-amd64
This should install the amd64 kernel and also update the LILO boot loader to automatically boot into amd64.
Reboot: Reboot to start the amd64 kernel.
VALIDATION: To validate that the amd64 kernel is running, run
The output should be something like
TROUBLESHOOTING (1280x800 resolution is gone): Installing the amd64 kernel might disrupt the 1280x800 resolution. See the section Upgrade to resolution of 1280x800 for how to fix this. You will probably have to this manually.
TROUBLESHOOTING (automatic update back to i686): After you have installed the amd64 kernel the old kernel i686 is still present and if you perform an automatic update under aptitude, the i686 might be updated and the LILO changed back to boot into the i686 kernel. It might therefore be advisable to remove the i686 kernel, see below. If you want to keep the i686 kernel but still boot into amd64, you can edit file /etc/lilo.conf and change the default variable to the amd64 image. You find valid values in the label entries and have to guess, which one is the amd64 image, because the names are not very instructive (it could be LinuxOLD, for example). After having changed the value, run lilo in a terminal to make the change active. Then reboot. It might also be an option to add
to the configuration file (do not forget to run lilo afterwards). promt tells LILO to start a menu that allows you to select either of the two kernels. timeout=100 tells LILO to automatically boot into the default kernel after 10 seconds. See man lilo.conf for details. However, also this suffers from the nasty dead-keyboard problem mentioned above, see TROUBLESHOOTING (dead keyboard), so that in most of the cases you get the menu, but you don't get the chance to use it, because the keyboard does not work.
Remove the i686 kernel: To avoid the problem that an automatic update brings you back to the i686 kernel (see TROUBLESHOOTING (automatic update back to i686) above) you can remove the i686 kernel from within aptitude. Run aptitude, search forward (press '/') for linux-image, mark for purge (press '_' and not '-') all installed packages that start with linux-image and end on 686, perform the purge (press 'g' twice). Finally, run lilo in a shell (if required).
Sustitución de lilo por GRUB
(Laurenz Wiskott: I guess, this and the following section Switching to Grub should be integrated somehow by somebody who knows what (s)he is talking about.)
The GRUB included with Debian 4.0 Etch (GRUB 0.97-10 or greater) is compatible with MacBook if you configure proper MBR/GPT hybrid. Although it was possible to install GRUB during the initial d-i install with many manual fiddling processes of MBR/GPT synching, I recommend you to install LILO initially as above and install GRUB to /dev/sda3 and/or /dev/sda4 later for the ease of process and ease of updating kernel. "rEFIt " on OS X does not like anything other than MSDOS or HFS+ for file system description in GPT table when executing gptsync to create matching MBR record. So I marked Linux partitions as MSDOS before executing gptsync. I used both disked for GPT and fdisk for MBR. Once you marked the MBR with the proper file system type (eg. 83), GRUB is happy to boot Debian by looking into FS and finding files.) Here is an example of /boot/grub/menu.lst for dual booting 486 and amd64 systems:
timeout 10 default 0 fallback 1 # For booting GNU/Linux (For frozen keyboard) title GNU/Linux64-safe root (hd0,2) kernel /boot/vmlinuz-2.6.18-4-amd64 root=/dev/sda3 initrd /boot/initrd.img-2.6.18-4-amd64 # For booting GNU/Linux title GNU/Linux64 root (hd0,2) kernel /vmlinuz root=/dev/sda3 initrd /initrd.img # For booting GNU/Linux title GNU/Linux64.old root (hd0,2) kernel /vmlinuz.old root=/dev/sda3 initrd /initrd.img.old # For booting GNU/Linux title GNU/Linux32 root (hd0,3) kernel /vmlinuz root=/dev/sda4 initrd /initrd.img # Change the colors. title Change the colors color light-green/brown blink-red/blue
(Linux kernel is GPT-aware thus the swap partition maybe located in places such as /dev/sda7)
El cambio a Grub
To switch to grub you first need to change the partition type to linux. You can do this by using sfdisk to dump the partition information to a text file. Editing it to change the partition type, and then using sfdisk to save that to the partition table.
sfdisk -d /dev/sda > sda.out
edit sda.out and change the id to 83 (linux) as in the below
# partition table of /dev/sda unit: sectors /dev/sda1 : start= 1, size= 409639, Id=ee /dev/sda2 : start= 409640, size= 83886080, Id=af /dev/sda3 : start= 84295720, size= 68953126, Id=83, bootable /dev/sda4 : start=153248846, size= 3052609, Id=82
Now mount a usb drive if possible in case you made a mistake somewhere so that you can save recovery data.
Warning!!: this next line can wipe out your partition table if you made a mistake. It might be a good time to look at the sfdisk manual if you aren't sure what this does. It may be possible to undue unspeakable damage with the hdd-partition-sectors.save file so long as you can access it, which you might not be able to do if you saved it to the disk you are editing rather than the recommended usb disk.
sfdisk /dev/sda -O /media/usbdisk/hdd-partition-sectors.save < sda.out
In case sfdisk does not work for you (complains about not being able to make the kernel reread the partition table because a partition is mounted, or mismatching start/end partition boundaries) you can alternatively use fdisk to change the partition type. Use "p" to list partitions, "t" to change partition type, and "w" to write the table back to disk.
Then you can install grub "aptitude install grub"
Once grub is installed you need to edit /etc/kernel-img.conf so that when you install a kernel image it doesn't also replace grub with lilo.
As per (zless /usr/share/doc/grub/README.Debian.gz) set to the following.
postinst_hook = /sbin/update-grub postrm_hook = /sbin/update-grub do_bootloader = no
Cross-mount file systems
To make a double boot system really useful it is desirable to cross-mount file systems, i.e. to make Mac OS X-filesystems readable (and writable) under Linux and vice versa. Mac OS X uses a file system called HFS+ while Linux uses ext3.
Even though cross-mounting is possible in either direction, there seems to be some scepticism (and possibly bad experience?) concerning the reliability, so that the common advice seems to be to only use small partitions mounted under both operating systems and use them for data exchange. Mounting and using large partitions for regular usage under both operating systems seems to be not advisable. (Please let us know if you have experience with that.)
Montar sistemas de ficheros Mac OS X (HFS +) en Linux
If you want to mount a Mac OS X-filesystem under Linux in read-write mode (not read-only) then you have to turn off journaling first under Mac OS X. If you leave journaling on, you can only mount in read-only mode and will not be able to write or modify files in the Mac OS X-filesystem. This is a trade-off, of course, because journaling gives you security that your Mac system lacks if you turn it off. It might thus be advisable to have one partition for the Mac operating system with journaling (which is the default) mounted from Linux read-only (if at all) and one partition with user data without journaling mounted from Linux read-write. See ?HOWTO hfsplus] for more information about HFS+ under Linux.
Step 1 (if mounting read-write) - turn off journaling under Mac OS X: If you want to mount the Mac OS X-filesystem in read-write mode (not read-only) then you have to turn off journaling.
(i) Boot into Mac OS X.
(ii) Start a terminal.
(iii) As root (e.g. with sudo) use diskutil to turn off journaling (Disabling journaling via diskutil):
mac:user> sudo /usr/sbin/diskutil disableJournal /data
This assumes your partition is mounted to the directory /data. If you want to turn off journaling for your Mac operating system partition, use / instead.
(iv) Reboot into Linux.
Step 2 - mount the Mac OS X-filesystem under Linux: If /dev/sda2 contains the HFS+-filesystem of the Mac OS X you want to mount, then run under Linux the following as root ?Dave Taylor, 2005-05-14].
root# mkdir /media/macdata root# mount -t hfsplus /dev/sda2 /media/macdata
This mounts /dev/sda2 on the directory /media/macdata (only read-only if the HFS+ partition is using journaling, which is the default when Mac OS X creates a HFS+ partition). Of course, you can also create and mount on a different directory.
Verify: To check whether your mount was successfull, as root go into the directory /media/macdata and list the files, create a file, and remove it again. To check whether users have access, as root create a directory for that user in /media/macdata, change ownership to that user, change into that directory, su to that user and perform the same test actions as before (list, create and delete a file).
Step 3 (optional) - edit fstab to auto-mount at boot time: If you want to mount the partition automatically at boot time, you have to add an entry like the following in the file /etc/fstab.
/dev/sda2 /media/macdata hfsplus defaults 0 2
Verify: To check whether automount should work, unmount the partition (if it is still mounted from Step 2), and remount it with the -a option.
root# umount /media/macdata root# mount -aThen perform the same checks as in Step 2.
TROUBLESHOOTING (cannot write on HFS+ filesystem anymore): If you cannot write on the HFS+ filesystem anymore, boot into Mac OS X and perform a filesystem check, maybe that helps ?Linux on an Apple iBook G4].
Montar sistemas de ficheros Linux (formato ext3) en Mac OS X
To mount Linux filesystems (ext3) under Mac OS X the only open source option seems to be to use ext2fsx ?Mac OS X Ext2 Filesystem at SourceForge]. You have to use the newest version (1.4d4 as of 2007-09-02), which is not stable yet. Version 1.3 does not work for recent Mac OS X versions.
La configuración del hardware
Devices that work
The following features work
- Ethernet (as of kernel 2.6.16) (works out-of-the-box) (sky2)
- Video (requires installation of 915resolution)
- Sound (as of kernel 2.6.18) (works out-of-the-box) (snd_hda_intel)
- CD-R (works out-of-the-box)
- backlight (works out-of-the-box)
- bluetooth (works out-of-the-box)
(See below for more)
Devices to be confirmed
- suspend (works, unload module sky2 before suspending; tested with kernel 2.6.20)
s2ram -f -p -m works (for some values of "work") with original macbook (sys_product = "?MacBook1,1" sys_version = "1.0" bios_version = "MB11.88Z.0061.B03.0610121324") kernel 184.108.40.206 and mactel patches rev 126. Resumes with backlight off but can turn back on with pommed (usually...).
Backlight + Volume + CD Eject button
Backlight keys (Fn+F1 and Fn+F2) work using Julien Blache's pommed (there is a new project homepage at alioth); you can even turn off the backlight using the keyboard; pommed also enables the CD Eject button's functionality, Fn behaviour and remote control. Besides, you can also install gpomme: a GTK+ client suitable for all environments (you should start it when your session starts) and wmpomme (a ?WindowMaker dockapp)
By default on Debian testing, the F1, F2 ... FX keys are disabled and act like Fn+F1, Fn+F2 ... To enable the keys and make use of Fn+FX, modify /etc/pommed.conf by changing fnmode = 1 to fnmode = 2 and restart pommed with /etc/init.d/pommed restart.
To enable the sound keys (Fn+F3, Fn+F4 and Fn+F5), you have to modify /etc/pommed.conf : change init = -1 to init = 80 and (at least on Macbook 2) change volume = "PCM" to volume = "Front" and after that restart pommed with /etc/init.d/pommed restart.
Actualización a la resolución de 1280x800
After installation of Debian, there will be only very few screen resolutions available, e.g. only 1024x768, 800x600, and 640x480 (1024x768 is the biggest normal size that fits the screen). The resolution of the screen of a MacBook (Intel 915, video chipset 945GM) is 1280x800 and rescaling the 1024x768 display to 1280x800 results in a fuzzy and distorted picture.
To get support for the 1280x800 resolution you have to install the 915resolution package.
Install 915resolution: As root run
aptitude install 915resolution
915resolution should automatically set the correct video mode for 1280x800 and configure X properly.
Restart X: Press Ctrl-Alt-Backspace to restart X, but close any sensitive application first.
If it works and you get high resolution, you should see it right away from the more focussed image. You can also check it under Main menu -> Desktop -> Preferences -> Screen resolution.
TROUBLESHOOTING (automatic setup did not work): If the automatic setup of 915resolution did not work for some reason (happened once after upgrading to amd64), you can set it up manually. Edit file /etc/defaults/915resolution and set the following variables.
MODE=5c XRESO=1280 YRESO=800 BIT=32To check whether it works, run
/etc/init.d/915resolution startas root and then restart X by pressing Ctrl-Alt-Backspace (but first close all sensitive applications). If you get the high resolution, reboot to test whether it also works automatically during boot.
Configure highres video playback
For highres video playback something like the following is needed in the Device section:
Option "LinearAlloc" "6144" Option "CacheLines" "1080"
See also an xorg.conf file which enables use of an external monitor.
Note when using an external display: unless the display resolution is in the small builtin supported list (it won't be if it's widescreen or highres) then you'll need to use 915resolution to set a mode for the external display too.
Note when using multiple displays: the order for ?MonitorLayout is "pipe a, pipe b" but this corresponds to "screen 1, screen 0", not "screen 0, screen 1" as you might expect (and isn't documented in the man page...)
You need a mini-DVI/VGA adaptor.
Note that kernel 220.127.116.11 somehow breaks the external display with stable i810 X.org.
Configurar pantalla dual (por usuarios lenny/sid)
Dual screen configuration for etch does not work for xorg 7.2 and later. Just use the usual single-screen xorg.conf, and configure output later.
You can control X with xrandr.
LVDS is the liquid display, VGA is the external output. (see output of xrandr command)
To enable dual screen
xrandr --output VGA --mode 1024x768 xrandr --output VGA --right-of LVDS
or in one big command including handling of disabling unneeded output:
xrandr --output TMDS-1 --off --output LVDS --mode 1280x800 --crtc 1 --output VGA --mode 800x600 --right-of LVDS --crtc 0
To disable dual screen, simply specify VGA to off
xrandr --output VGA --off
ALSA driver snd_hda_intel works for playback as of 2.6.18-rc1.
MacBook with Debian 4.0 Etch has no problem with sound. Although, you may need to run alsaconf as root.
If you hear any distortions even when all of the mixer settings are at least 20% below their maximum, it might help to load snd-hda-intel with the 'position_fix=1' option. In the file /etc/modprobe.d/alsa-base, change the line
install snd-hda-intel /sbin/modprobe --ignore-install snd-hda-intel $CMDLINE_OPTS && /lib/alsa/modprobe-post-install snd-hda-intel
install snd-hda-intel position_fix=1 /sbin/modprobe --ignore-install snd-hda-intel $CMDLINE_OPTS && /lib/alsa/modprobe-post-install snd-hda-intel
The microphone requires mactel patches and the following to activate (with original macbook, kernel 18.104.22.168 and mactel patches rev 126):
amixer sset 'Input Source' Line; amixer sset 'Input Source' Mic; amixer sset Mux 20.00dB
The microphone did not worked on debian testing with kernel 2.6.21. However I made it work by compiling alsa from subversion (as of 12/08/07) on kernel 2.6.21 without mactel patches.
Mixer channels are as follows (with original macbook, kernel 22.214.171.124, and mactel patches rev 126):
Master: Builtin tweeter level. No effect on heaphones. PCM: Master volume for speakers and headphones. This is the channel controlled by pommed. Front: Builtin woofer level. Headphone level. Surro..: ? Line In as Output: ? IEC958: ? Capture: ? Input Source: ? See above for builtin mic. Mux: ? See above for builtin mic.
Optical drive analog CD audio output doesn't appear to work (with original macbook, kernel 126.96.36.199, mactel patches rev 126, xmcd 2.6-19.1).
There are two possibilities: madwifi drivers or the ndiswrapper way. Both have some common procedures, which you need to perform at the end (see the "common setup" subsection).
Add 'non-free' to your main Debian repository then update your packages list with
Install the madwifi kernel module source and the ability to compile it
aptitude install madwifi-source madwifi-tools module-assistant
m-a prepare m-a a-i madwifi depmod -a modprobe ath_pci
See http://madwifi-project.org/wiki/UserDocs/Distro/Debian/MadWifi for more details.
Note: the current stable madwifi debian package (0.9.2+r1842.20061207-2etch1) isn't compatible with the latest stable kernel versions (188.8.131.52) -- use madwifi-source from Debian testing.
Caveat: The airport card in the newest MacBook (PCI-ID 168c:0024) is working with a svn version from madwifi (with WPA support). This was added in branch madwifi-hal-0.9.30.13 which was then merged back into the trunk, as noted in http://madwifi-project.org/ticket/1001#comment:194
The quick and ugly way until 0.9.30.13 or later is available as .deb package:
svn checkout http://svn.madwifi-project.org/trunk madwifi-hal-0.9.30.13 cd madwifi-hal-0.9.30.13/ make make install
apt-get install wget wget http://snapshots.madwifi-project.org/madwifi-hal-0.9.30.13-current.tar.gz tar zxfv madwifi-hal-0.9.30.13-current.tar.gz cd madwifi-hal-0.9.30.13/ make make install
The 0.9.30.13 version seems buggy on macbook core 2 duo 2 Ghz (the driver stops working after a while). Unfortunately, even the subversion version is buggy (as of 12/08/2007) :
$ dmesg | grep wifi | uniq -c | tail -n 1 576 wifi0: rx FIFO overrun; resetting
The following procedure worked on etch/i386 with card 168c:0024
Get the D-link DWA645 card drivers for Windows XP from somewhere (for example from http://www.dlink.com/products/support.asp?pid=489&sec=0 as suggested in http://madwifi-project.org/ticket/1001#comment:13)
This is a zip file: dwa645_drivers_102.zip Unzip it. You will need the files ar5416.sys and net5416.inf from the Driver subdirectory.
The D-link driver not permit to scan wireless networks arround. Is possible get this feature using the driver of ThinkPad 802.11abgn wireless LAN driver, avaliable in http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 . You need to get the file 7iwc28ww.exe, and extract with cabextract. Are the same files, but in a newer version.
Run the following:
aptitude install module-assistant m-a a-i ndiswrapper ndiswrapper -i net4516.inf
The last command has to be run in the "Driver" directory, it copies the driver into /etc/ndiswrapper and does some additional setup.
Proceed to the "Common setup" subsection. Just make sure you add the following
pre-up modprobe ndiswrapper post-down rmmod ndiswrapper
right after the "iface ath0 inet dhcp" line.
Install wireless support
aptitude install wireless-tools
See http://www.linuxcommand.org/man_pages/iwconfig8.html for more details on iwconfig
To start wireless up on boot, add the following to /etc/network/interfaces (unless you intend to use network Manager, in which case you don't need this)
# Starts the wireless card on boot auto ath0 iface ath0 inet dhcp
After the standard installation of Debian Linux, what you type on the keyboard might not be what you see on the screen, and some characters, such as curly brackets, might not be available at all. This is due to an incorrect keyboard mapping. In particular you might want to add/change/configure the following:
Swapped keys: Even if you have chosen the correct general keyboard layout, e.g. German for a German keyboard, there may still be keys swapped, e.g. you press the '<' key and get a '^' and vice versa. This can be corrected with a global option.
Alt-Gr: Alt-Gr stands for 'alternate graphic' and is a modifier key, much like Shift or Ctrl, used to type special characters, typically the 'third symbol' on the lower right of a key. The Mac keyboard does not have such a key, so we want to configure the right Apple key as an Alt-Gr key.
Function keys: You may also want to configure the function keys.
The keyboard mappings are configured separately for the X11 (X Window) system and for the consoles.
X11 (X Window)
The recommended place to configure the keyboard mapping for X11 is the configuration file /etc/X11/xorg.conf, which has the advantage of effecting all users. Each user can also configure his/her keyboard individually in the (Gnome) Desktop Preferences.
To set options for the keyboard you can use the XkbOptions field in the keyboard section of file /etc/X11/xorg.conf. To activate the right Apple key as an Alt-Gr key add "lv3:rwin_switch". To correct the swapped keys add "apple:badmap". To do both combine them with a separating comma, as shown below.
Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "it" Option "XkbOptions" "lv3:rwin_switch,apple:badmap" EndSection
To activate the changes restart X11 by pressing Ctrl-Alt-Backspace, but close all sensitive applications first.
It is probably best to change the keyboard mappings discussed here centrally in /etc/X11/xorg.conf. However, it is also possible to change them in the Desktop Preferences. For Gnome click 'Desktop' -> 'Preferences' -> 'Keyboard'.
For the basic keyboard definition go to 'Layouts'. As 'keyboard model' choose '?MacBook/MacBook Pro (Intl)' (although 'Generic 105-key (Intl) PC' seems to work fine as well). As 'selected layout' add and make default 'Germany' -> 'Macintosh' or 'Macintosh, eliminate dead keys' (although 'Germany Eliminate dead keys' seems to work fine as well).
For the configurations under discussion here go to 'Layout Options'. To configure the right Apple key as an Alt-Gr key select 'Third level choosers' -> 'Press Right Win-key to choose 3rd level.'. To correct the swapped keys select 'Miscellaneous compatibility options' -> 'Swap keycodes of two keys when Mac keyboards are misdetected by kernel.'.
When I did this I actually got obscure error messages. So this seems to be buggy and I would not recommend it also for this reason.
To configure the right Apple key as an Alt-Gr key for the consoles (the black and white screen you get with Ctrl-Alt-F1 etc.) add the following line to /etc/console-tools/remap.
s/keycode 126 =/keycode 126 = AltGr/;
Correcting swapped keys should also be possible, but I have not figured out how to do that yet.
If you want to change the bahaviour of the Fn-keys look at /etc/pommed.conf after you've installed pommed. (Or look at the parameters of the hid kernel module.)
Has anyone made the fn key work? --> Yes, even on the newer MacBook(osamu). Apply the mactel-linux patch to the kernel and recompile it! The use of pommed program as written above makes it work better. (I recompiled the current Debian version of 2.6.18 source with the mactel-linux patch [is that the Etch version of 2.6.18?]. This patch solves issues for fn-arrows and fn-Fn keys for the newer ?MacBooks while addressing few other issues.)
Alternatively you can work around this with xmodmap and xkbset. xkbset is useful for emulating mouse buttons with the keyboard.
xmodmap -e "keycode 115 = Alt_L" # left-apple xmodmap -e "keycode 116 = Zenkaku_Hankaku" # right-apple xmodmap -e "keycode 108 = Pointer_Button3" # KP-ENTER xmodmap -e "keycode 204 = Pointer_Button2" # eject xkbset m
#379789 has been filed to track down a problem with keymap
To work around issues of missing/unresponsive keys on the MacBook Japanese models, see MacBookJp for helpful scripts (Japanese page but scripts are in English. The real fix needs to happen in the kernel source drivers/usb/input.).
With 7.3 version of x.org and linux 2.6.22, it should work out of the box: the tapping of touchpad with two fingers should generate a middle-button click and tapping it with three fingers will generate a right-button click. Please see below more information if you wish to re-configure it.
For older versions, you need to have a kernel with at least:
Afterwards, edit /etc/X11/xorg.conf and in the Module section, add the following line:
If you want to use the Synaptics touchpad you may also need to add these lines to /etc/modprobe.d/
install usbhid /sbin/modprobe appletouch; /sbin/modprobe --ignore-install usbhid $CMDLINE_OPTS
Then add appletouch to /etc/initramfs-tools/modules and then run update-initramfs
This is just a tip for configuring the synaptics touchpad. You have to install the synaptics driver for Xorg for enabling the touchpad.
One possible setup:
Section "InputDevice" Identifier "Configured Mouse" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/input/mice" Option "Protocol" "auto-dev" Option "LeftEdge" "0" Option "RightEdge" "850" Option "TopEdge" "0" Option "BottomEdge" "645" Option "MinSpeed" "0.4" Option "MaxSpeed" "1" Option "AccelFactor" "0.02" Option "FingerLow" "55" Option "FingerHigh" "60" Option "MaxTapMove" "20" Option "MaxTapTime" "100" Option "HorizScrollDelta" "0" Option "VertScrollDelta" "30" Option "SHMConfig" "on" EndSection
Another possible setup:
On my configuration, I set one finger tap on the pad = right mouse click and two finger tap = middle mouse click, I have disabled the two finger scrolling and let the vertical right edge scrolling. Here is the mouse section of my xorg.conf :
Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "SHMConfig" "true" Option "New AccelFactor" "0.03" Option "LeftEdge" "100" Option "RightEdge" "1120" Option "TopEdge" "50" Option "BottomEdge" "310" Option "FingerHigh" "30" Option "MinSpeed" "0.94" Option "MaxSpeed" "1" Option "AccelFactor" "0.0015" Option "FingerLow" "20" Option "HorizScrollDelta" "0" Option "MaxTapTime" "150" Option "TapButton1" "3" Option "TapButton3" "0" Option "VertEdgeScroll" "1" Option "HorizEdgeScroll" "1" Option "VertScrollDelta" "5" Option "VertTwoFingerScroll" "0" Option "HorizTwoFingerScroll" "0" EndSection
Yet another possible setup here...
- Left click with only the button, no tapping (as in OS X). Reduces accidental cursor jumping + clicking which can drive one nuts.
- Tapping upper left corner = Middle click
- Tapping upper right corner = Right click
- Sliding across right edge of the touchpad = Scroll up and down
Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "AlwaysCore" #Option "Device" "/dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard_._Trackpad-mouse" Option "Device" "/dev/input/mice" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" Option "SHMConfig" "true" Option "TouchpaddOff" "0" # How fast the two-finger scrolling scrolls. The lower, the faster. Option "VertScrollDelta" "25" Option "HorizScrollDelta" "25" # Location of the touchpad edges, somewhat sane values # that I found by testing. Xmin=0, Xmax=1216, Ymin=0,Ymax=387 Option "LeftEdge" "100" Option "RightEdge" "1116" Option "TopEdge" "50" Option "BottomEdge" "337" # Touch and "untouch" thresholds Option "FingerLow" "25" Option "FingerHigh" "50" # We DO NOT want palm triggering middle/right mouse # button events, so a tap has to be quite fast Option "MaxTapTime" "100" Option "MaxTapMove" "100" Option "MaxDoubleTapTime" "200" # Enable vertical (right) edge scrolling with one finger Option "VertEdgeScroll" "1" # Enable horizontal (bottom) edge scrolling with one finger Option "HorizEdgeScroll" "0" # Disable two finger scrolling, as we have the edge scrolling enabled already Option "VertTwoFingerScroll" "0" Option "HorizTwoFingerScroll" "0" # Left top corner of the touchpad shall be the middle mouse button # Bottom buttons tend to get triggered accidentally. Option "LTCornerButton" "2" # Right top corner of the touchpad shall be the right mouse button Option "RTCornerButton" "3" # Disable bottom corners Option "LBCornerButton" "0" Option "RBCornerButton" "0" # Fast taps Option "FastTaps" "0" # Disable tapping of the touchpad (excluding the corners, of course) Option "TapButton1" "0" Option "TapButton2" "0" Option "TapButton3" "0" # Movement speed settings Option "MinSpeed" "0.2" Option "MaxSpeed" "0.6" Option "AccelFactor" "0.35" # Palm detection. Does not seem to work on Macbook Option "PalmDetect" "1" Option "PalmMinWidth" "10" #1-15 Option "PalmMinZ" "200" #1-255 # Various other variables Option "UpDownScrolling" "0" Option "LeftRightScrolling" "0" EndSection
To find out about the synaptics options, type man synaptics in a terminal.
Mouse 2nd and 3rd button
You can use synaptics X11 driver, see above.
You can also use the keyboard.
With GNOME: (thanks to fedora wiki)
To emulate right-click with the keyboard, you must bind a key on the keyboard to the mouse button you want and enable an accessibility feature called mouse keys:
- Choose System, Preferences, Accessibility, Keyboard
- Check "Enable keyboard accessibility features"
- Choose "Mouse Keys", check "Enable Mouse Keys"
I like the Left side "Command" key on my keyboard as the third mouse button, here's how I did it:
- Start gnome-terminal
- Run xev, it will display the X11 events it picks up
- Locate the keycode of the key you want to use:
Press the key you want locate and locate the ?KeyPress event in gnome-terminal
Write down the keycode of the keyevent
Run xmodmap -e "keycode 115 = Pointer_Button3" to update your keyboard map (for this login session only)
- Add to gnome-session-properties to enable every session.
Without GNOME: You can achieve the same thing by executing manually xmodmap -e "keycode 115 = Pointer_Button3" each time you log in (or put in your .xsession file).
Escalando la frecuencia de la CPU
CPU frequency scaling is governed by SPEEDSTEP_CENTRINO kernel module.
echo speedstep_centrino >> /etc/modules
If that does not work, you can also use the acpi_cpufreq module:
echo acpi_cpufreq >> /etc/modules
CPU frequency scaling in kernel
To avoid unnecessary overhead you can let kernel scale the CPU frequency automatically. Just load module cpufreq_ondemand or cpufreq_conservative. The ondemand-module is perhaps better choice if you want the system to be as responsive as possible.
Next add this to /etc/rc.local or to another startup script:
# Switch on "ondemand" CPUfreq governor # This is more reliable and faster than using userspace governor and # a userspace program to control CPU frequency. # You have to do this for each CPU. echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor # The "ondemand" governor in kernels prior to 2.6.22 something tend to # have a bit high sampling rate, so we will modify it according to # http://www.linuxpowertop.org/known.php # This is not _required_, but reduces the amount of wake-up calls the # processor makes each second cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_max > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate cat /sys/devices/system/cpu/cpu1/cpufreq/ondemand/sampling_rate_max > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/sampling_rate
CPU frequency scaling in userspace
In case you want more complex CPU frequency scaling schemes, you can just load the module cpufreq_userspace, set it as default (see above) install powernowd or cpufreqd package for CPU frequency scaling. There are several other daemons available, but those two work quite well.
You can use gkfreq to monitor the CPU frequency in gkrellm (currently it only supports one processor but can be easily modified to support 2 cores - I have send a small patch to the maintainer) : http://www.peakunix.net/gkfreq/
CPU throttling means forcing the processor(s) to idle for a certain amount of their time. When processor is not heavily loaded this saves battery but also slows the processor down. With 1st generation Macbook switching both cores to 50% throttling so that they are idle 50% of the time can give maybe 30-40 minutes of extra battery life. The Macbook is perfectly usable even both processors are running at 1Ghz (scaled down) and throttled to 50%. So in most cases, it's a good idea to use CPU throttling when using battery.
There are various ways to enable CPU throttling. It is probably easiest to use laptop-mode, and make sure that throttling is enabled in /etc/laptop-mode/laptop-mode.conf:
# Should laptop mode tools control the CPU throttling? This is only useful # on processors that don't have frequency scaling. # (Only works when you have /proc/acpi/processor/CPU*/throttling.) CONTROL_CPU_THROTTLING=1 # Legal values are "maximum" for the maximum (slowest) throttling level, # "minimum" for minimum (fastest) throttling level, "medium" for a value # somewhere in the middle (this is usually 50% for P4s), or any value listed # in /proc/acpi/processor/CPU*/throttling. Be careful when using "maximum": # this may be _very_ slow (in fact, with P4s it slows down the processor # by a factor 8). BATT_CPU_THROTTLING=medium LM_AC_CPU_THROTTLING=minimum NOLM_AC_CPU_THROTTLING=minimum
If you are serious about saving power, take a look at Powertop program. It is a very good interactive program that gives suggestions on how to minimize CPU wakeups. I was able to drop wakeups from around 1500 to roughly 400 with the aid of this program.
With up-to-date lenny/sid, it's possible to drop to around 100 wakeups (with wifi and compiz).
Receptor de infrarojos
Use the usual HID device; kernel patch available as of 2006-07-17.
Sample userland utility implementation http://www.netfort.gr.jp/~dancer/diary/junk2006/20060712-usb-macbook-ir.c
If the appleir driver is also compiled as a module, change the line described in the keyboard section of this page to the following, so appletouch and appleir get loaded before usbhid:
install usbhid /sbin/modprobe appletouch; /sbin/modprobe appleir; /sbin/modprobe --ignore-install usbhid $CMDLINE_OPTS
Also add appleir to /etc/initramfs-tools/modules and re-run update-initramfs.
On debian testing with kernel 2.6.21 I couldn't make hiddev work. However, I have succeeded to make the remote work like this :
1)I have downloaded this patch http://www.madingley.org/macmini/kernel/ir.patch and copied each piece of it into my kernel sources (most of it goes into appleir.c)
2)After that I have added "CONFIG_USB_APPLEIR=m" at the section "USB HID Boot Protocol drivers" in the .config file from the kernel source.
3)I have recompiled and installed the modules.
4)I have loaded the appleir module with "modprobe appleir" and added "appleir" to /etc/modules to have it loaded at boot.
5)I have installed lirc and lirc-x with apt-get
6)I have created /etc/lirc/lircd.conf with some infos found on the web :
# this config file was automatically generated # using lirc-0.8.0(userspace) on Fri Oct 20 01:12:42 2006 # # contributed by Michael Olson # # brand: APPLE_REMOTE # model no. of remote control: # devices being controlled by this remote: 1 # begin remote name APPLE_REMOTE bits 8 eps 30 aeps 100 one 0 0 zero 0 0 gap 135863 pre_data_bits 24 pre_data 0x800100 toggle_bit 0 begin codes KEY_MENU 0x8B KEY_PP 0xA4 KEY_N 0xA3 KEY_P 0xA5 KEY_VU 0x73 KEY_VD 0x72 end codes end remote
7)I have changed the following lines in /etc/lirc/hardware.conf :
# Run "lircd --driver=help" for a list of supported drivers. DRIVER="dev/input" # If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will # be # automatically used instead DEVICE="/dev/input/event1" MODULES="" # Default configuration files for your hardware if any LIRCD_CONF="/etc/lirc/lircd.conf"
The tricky part is that /dev/input/event1 is not correct, so we have to generate the correct input event at each reboot. I have installed "lsinput" and modified the startup script /etc/init.d/lirc, by adding the following lines just before ". /etc/lirc/hardware.conf" :
mac_input=$(lsinput 2>&1 | grep -B 5 "Mac mini" | head -n 1) sed -i "s;DEVICE=\".*\";DEVICE=\"$mac_input\";" /etc/lirc/hardware.conf
Now everything should be fine.
8)To test if it works, write into ~/.lircrc :
begin flags = startup_mode mode = irexec end begin irexec begin prog = irexec remote = APPLE_REMOTE button = KEY_N config = xmms repeat = 0 end end irexec
and start irexec with "irexec -d".
9) Now if you press the "next" key on the remote it should open xmms (if you have it installed).
On old Macbooks iSight might work with the linux-uvc driver with patches. It is installable with
# aptitude install module-assistant linux-uvc-source linux-uvc-tools
Once the source and tools are installed, then:
# m-a prepare # m-a a-i linux-uvc # mount -t hfsplus /dev/sda2 /mnt/mac/ # macbook-isight-firmware-loader /mnt/mac/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport # modprobe uvcvideo
Test it with Ekiga.
# aptitude install ekiga libpt-plugins-v4l2 $ ekiga
If you are using a semi-recent Macbook, the linux-uvc drivers from the Debian repositories won't probably work - at least not with Debian Etch. Drivers from Testing or Unstable does also not work (backported linux-uvc-0.1.0.svn54 from SID). Luckily there are at least two patched versions of the linux-uvc drivers especially for the iSight. Finding them is not trivial unless you know where to look (svn rev.100 bundle: http://i-nz.net/projects/linux-kernel/). Probably the best way to find them is to go to Mactel-linux-users mailinglist archive and search for "iSight". By following the threads you'll find the various patched linux-uvc drivers. Don't bother downloading any patches, as they are meant to be applied against specific old (svn) revisions of linux-uvc drivers and probably many chunks will be rejected. Go for the s.c. "bundles" which contain whole patched linux-uvc code.
The patched drivers are relatively easy to build and install: just do a "make && make install" and you're set. In case build fails, just do a
aptitude install apt-file apt-file update apt-file search name_of_the_missing_header_file
After this install the something-dev package that apt-file gave you, and try again, until the build and install ends without errors. Then do
modprobe -r uvcvideo modprobe uvcvideo
Now you can test the driver with Ekiga, as shown above. Alternatively you can use mplayer to test the driver. First edit $HOME/.mplayer/config and add this line to it:
# Write your default config options here! # $HOME/.mplayer/config # Built-in iSight # This works at least for a 9/2006 Core Duo Macbook tv=driver=v4l2:input=1:width=320:height=240:device=/dev/video0:outfmt=uyvy:fps=24
Then launch mplayer for console:
If you see your face, iSight is probably working :). Attention! I only see a green video, nevertheless it works with ekiga!
NOTE: When you get your iSight working, copy the iSight firmware somewhere safe. Mac OS X updates might contain new iSight firmware which could break the Linux iSight support. In this case you can revert back to the old, working firmware.
http://zaheer.merali.org/articles/2006/07/21/isight-linux-thank-you-ronald (with screencast!)
http://i-nz.net/projects/linux-kernel/ (Bundle SVN (rev.100 + isight.patch) + Howto)
Parche para el núcleo y las herramientas de recursos del hardware
$ svn co https://mactel-linux.svn.sourceforge.net/svnroot/mactel-linux mactel-linux
Using pre-built patched i386 etch kernel
See http://marcin.owsiany.pl/mactel.en.html for information. Note that only architecture i386 kernels are provided, no amd64 ones. These are unofficial packages, prepared by a debian developer.
CONFIG_FB_IMAC support is for booting from ELILO (EFI). You are most probably using lilo/rEFIt to boot, using IMAC driver will make your screen appear scrambled. Use CONFIG_FB_I810 driver instead.
Helpful guide on compiling a mactel kernel: http://gentoo-wiki.com/HARDWARE_Apple_MacBook
- - cpu temperature found through CPU MSR feature
tool available from: http://mactel-linux.svn.sourceforge.net/viewvc/mactel-linux/trunk/tools/temperature/
You need to load the msr module before using the coretemp tool : modprobe msr, or put msr in /etc/modules to make the module load on every boot.
Download Makefile and coretemp.c.
$ make $ sudo ./coretemp CPU 0: 69 C CPU 1: 69 C
- - hddtemp package provides support for hdd temperature monitoring
$ sudo hddtemp /dev/sda /dev/sda: ST98823AS: 38°C
- - I2C sensor is detected but not sure if it's functional
Note: no sensors are detected below, just EEPROMs.
MacBook contains the 82801G (ICH7 Family) and ICH7 is supported by lm_sensors since sensors 2.9.0 by the i2c-i801 kernel driver which has been in the kernel since 2.6.11.
# sensors-detect revision 1.413 (2006/01/19 20:28:00) ... Probing for PCI bus adapters... Use driver `i2c-i801' for device 00:1f.3: Intel ICH7 Probe succesfully concluded. We will now try to load each adapter module in turn. Module `i2c-i801' already loaded. If you have undetectable or unsupported adapters, you can have them scanned by manually loading the modules before running this script. To continue, we need module `i2c-dev' to be loaded. If it is built-in into your kernel, you can safely skip this. i2c-dev is not loaded. Do you want to load it now? (YES/no): yes Module loaded succesfully. We are now going to do the adapter probings. Some adapters may hang halfway through; we can't really help that. Also, some chips will be double detected; we choose the one with the highest confidence value in that case. If you found that the adapter hung after probing a certain address, you can specify that address to remain unprobed. That often includes address 0x69 (clock chip). Next adapter: SMBus I801 adapter at efa0 Do you want to scan it? (YES/no/selectively): Client found at address 0x08 Client found at address 0x38 Probing for `Philips Semiconductors SAA1064'... Failed! Client found at address 0x3a Probing for `Philips Semiconductors SAA1064'... Failed! Client found at address 0x44 Probing for `Maxim MAX6633/MAX6634/MAX6635'... Failed! Client found at address 0x50 Probing for `SPD EEPROM'... Success! (confidence 8, driver `eeprom') Probing for `DDC monitor'... Failed! Probing for `Maxim MAX6900'... Failed! Client found at address 0x52 Probing for `SPD EEPROM'... Success! (confidence 8, driver `eeprom') Client found at address 0x69 .... Driver `eeprom' (should be inserted): Detects correctly: * Bus `SMBus I801 adapter at efa0' Busdriver `i2c-i801', I2C address 0x50 Chip `SPD EEPROM' (confidence: 8) * Bus `SMBus I801 adapter at efa0' Busdriver `i2c-i801', I2C address 0x52 Chip `SPD EEPROM' (confidence: 8) I will now generate the commands needed to load the I2C modules. To make the sensors modules behave correctly, add these lines to /etc/modules: #----cut here---- # I2C adapter drivers i2c-i801 # I2C chip drivers eeprom #----cut here---- # uname -a Linux coreduo 2.6.18-rc1dancer #2 SMP Sun Jul 9 09:57:01 JST 2006 i686 GNU/Linux
Old hardware issues
usual EHCI, UHCI stuff
Your kernel must have support for the Yukon Gigabit Ethernet driver known as sky2; this is available in Debian 4.0 Etch (or kernel 2.6.16 and above).
915resolution now works automatically; the below (old) instructions show how to do it manually, but this is no longer necessary:
aptitude install 915resolution 915resolution -c 945 54 1280 800
then edit /etc/default/915resolution
# # 915resolution default # # find free modes by /usr/sbin/915resolution -l # and set it to MODE # e.g. use MODE=54 MODE=54 # # and set resolutions for the mode. # e.g. use XRESO=1024 and YRESO=768 XRESO=1280 YRESO=800 # # We can also set the pixel mode. # e.g. use BIT=32 # Please note that this is optional, # you can also leave this value blank. BIT=32
Adjust the Monitor section of /etc/X11/xorg.conf
Section "Monitor" Identifier "Color LCD" Option "DPMS" HorizSync 28-64 VertRefresh 43-60 Modeline "1280x800@60" 83.91 1280 1312 1624 1656 800 816 824 841 EndSection
and make sure the Screen sections uses "1280x800" as default resolution in the Modes lines and finally
- Server irc.oftc.net, channel #mactel-linux
http://www.netfort.gr.jp/~dancer/diary/junk2006/debianmeetingresume200607-presentation-english.pdf for English-version presentation
see http://tokyodebian.alioth.debian.org/2006-07.html for Japanese instructions