MacBook & Gentoo Linux
Ecco i dettagli per installare Gentoo su un MacBook Unibody (la prima serie), ossia:gentoo ercoppa # dmidecode -s system-product-name
MacBook5,100:00.0 Host bridge: nVidia Corporation Device 0a82 (rev b1)
00:00.1 RAM memory: nVidia Corporation Device 0a88 (rev b1)
00:03.0 ISA bridge: nVidia Corporation Device 0aae (rev b2)
00:03.1 RAM memory: nVidia Corporation Device 0aa4 (rev b1)
00:03.2 SMBus: nVidia Corporation Device 0aa2 (rev b1)
00:03.3 RAM memory: nVidia Corporation Device 0a89 (rev b1)
00:03.4 RAM memory: nVidia Corporation Device 0a98 (rev b1)
00:03.5 Co-processor: nVidia Corporation Device 0aa3 (rev b1)
00:04.0 USB Controller: nVidia Corporation Device 0aa5 (rev b1)
00:04.1 USB Controller: nVidia Corporation Device 0aa6 (rev b1)
00:06.0 USB Controller: nVidia Corporation Device 0aa7 (rev b1)
00:06.1 USB Controller: nVidia Corporation Device 0aa9 (rev b1)
00:08.0 Audio device: nVidia Corporation Device 0ac0 (rev b1)
00:09.0 PCI bridge: nVidia Corporation Device 0aab (rev b1)
00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)
00:0b.0 IDE interface: nVidia Corporation Device 0ab5 (rev b1)
00:10.0 PCI bridge: nVidia Corporation Device 0aa0 (rev b1)
00:15.0 PCI bridge: nVidia Corporation Device 0ac6 (rev b1)
02:00.0 VGA compatible controller: nVidia Corporation Device 0863 (rev b1)
03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)Bus 003 Device 002: ID 05ac:8242 Apple, Inc.
Bus 003 Device 003: ID 05ac:0237 Apple, Inc.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05ac:8507 Apple, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 05ac:8213 Apple, Inc.
Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/etc/make.conf
Ho optato per un sistema x86 (anche se nell'arch amd64 stanno arrivando interessanti novità, vedi nuova multilib ABI):
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j3"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
# GNOME, codec audio/video,
USE="nvidia lm_sensors truetype policykit networkmanager acpi -ldap \
xulrunner bluetooth mmx sse sse2 svg png wmp wma xvid aac -ipv6 \
-samba glitz -kerberos tracker divx X unicode dri 3dnow \
nsplugin win32codecs mp3 threads nls hal alsa gtk gnome wxwindows \
opengl usb cairo java6 lirc -gpm -qt -qt3 -qt4 v4l2 nautilus \
-kde java xinerama cleartype"
INPUT_DEVICES="keyboard mouse evdev synaptics"
VIDEO_CARDS="nv nvidia"
ALSA_CARDS="hda-intel"
LIRC_DEVICES="macmini"
PORTDIR_OVERLAY="/usr/local/portage"
source /usr/local/portage/layman/make.confDove -march=native (supportato da gcc-4.2) si rivela (al momento) in:-march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2
Kernel
Per non aver noie con il reboot, è necessario installare un kernel della serie >=2.6.31, nel mio caso ho optato per (ancora in ~x86):
sys-kernel/gentoo-sources-2.6.31-r5Ecco il relativo config da me usato:
- config-2.6.31-5
- config-2.6.31-10 (versione migliorata basata su gentoo-sources-2.6.31-r6)
- framebuffer (UVESA)
- sensori ventole e temperature (applesmc, coretemp, i2c-nforce2)
- suspend on ram (hibernate non mi interessa)
- FS ext3, ext4, NTFS, FAT
- bluetooth (btusb, rfkill, bluetooth, rfcomm, bnep, l2cap)
- * regolazione luminosità (backlight)
- accelerometro (applesmc, joydev)
- ethernet (EISA, VLB, PCI and on board controllers forcedeth)
- * wireless (lib80211, lib80211_crypt_* [N.B. occorre abilitare driver come HOSTAP per abilitarli implicitamente])
- IR (uinput)
- webcam (v4l1_compat, uvcvideo, videodev)
- * scheda grafica Nvidia (agpgart)
- trackpad (Apple USB BCM5974 Multitouch trackpad support)
- scheda audio (snd_hda_intel, snd_hda_codec, snd_hda_codec_realtek, snd_pcm_oss, snd_pcm, snd_seq, snd_timer, snd_hwdep, snd_mixer_oss,snd_seq_oss, seq_device, soundcore, snd)
Parametri kernel
Per far caricare il mio sistema correttamente ho adottato i seguenti parametri:
ro quiet rootfstype=ext4 video=uvesafb:1280x800-32,mtrr:3,ywrapIn particolare:
- rootfstype=ext4 per eliminare un warning durante il boot (erroneamente il kernel tenta di accedere ala partizione root ext4 come ext3)
- video=uvesafb:1280x800-32,mtrr:3,ywrap parametri per configurare UVESA
Driver Nvidia
Per ottenere il 3D è necessario installare i driver binari Nvidia (x11-drivers/nvidia-drivers). Consiglio versione >=190.42-r3 (attualmente in ~x86).
Regolazione luminosità
I driver binari Nvidia non forniscono la dovuta infrastruttura per poter regolare la luminosità, pertanto è necessario installare un modulo ad-hoc. Il modulo mbp_nvidia_bl (incluso nel kernel vanilla), per motivi a me non chiari, non permette di regolare la luminosità sotto X (ma ad esempio con un MacBook Pro non si riscontra lo stesso problema) e quindi è necessario appoggiorsi al modulo esterno nvidia_bl (realizzato dal MacTel Team ed in particolare da Mario Schwalbe).
Essendo quest'ultimo non incluso in portage, ho dovuto creare un ebuild amatoriale (in realtà ho praticamente copiato da altri ebuild) e reimpacchettare il sorgente (modificando il Makefile) del modulo per agevolarne l'installazione. L'ebuild non è assolutamente testato e ne sconsiglio l'adozione ma, se stato con l'acqua alla gola e non sapete fare meglio di me, potete scaricarlo da: Nelle prossime settimane cercherò di migliorare l'ebuild. Eventuali nuovi rilasci del modulo da parte del MacTel Team verranno sincronizzati con esso.
Personalmente inserisco in /etc/conf.d/local.start:
echo 30 > /sys/class/backlight/nvidia_backlight/brightnessPer abbassare all'avvio la luminosità. Inoltre se vi interessa regolare la luminosità attraverso i classici tasti anche sotto VT/tty (intendo non sotto X) è opportuno installare app-laptop/pommed (aggiungerlo al runlevel).
Wireless
E' necessario installare i driver proprietari net-wireless/broadcom-sta (attualmente in ~x86). Per connettermi alla mia rete domestica mi sto appoggiando a wpa_supplicant con la seguente configurazione:
gentoo linux # cat /etc/conf.d/net
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
# dns_domain_lo="gentoo"
config_eth0=( "null" )
# WPA eth1
modules=( "wpa_supplicant" )
wpa_supplicant_eth1="-Dwext"
config_eth1=( "dhcp" )gentoo linux # cat /etc/wpa_supplicant/wpa_supplicant.conf
# La riga sottostante non deve essere cambiata altrimenti non funziona
ctrl_interface=/var/run/wpa_supplicant
# Assicurarsi che solo root possa leggere la configurazione WPA
ctrl_interface_group=0
# Lasciare che wpa_supplicant si occupi della scansione e della selezione AP
ap_scan=1
network={
ssid="mia_rete"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="mia_password"
}Non volendo però rinunciare a NetworkManager o Wicd, mi è sufficiente eseguire i seguenti passi per poterli usare:
- eliminare eventuali link net.eth*
- rimuovere dai runlevel net.eth*
- in /etc/conf.d/rc inserire RC_PLUG_SERVICES="!net.eth0 !net.eth1"
- inserire nel runlevel NetworkManager o wicd
- avviare in GNOME nm-applet o wicd-client
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=falseN.B. come fa correttamente notare emerge per eseguire correttamente NetworkManager è necessario dare:
polkit-auth --grant org.freedesktop.network-manager-settings.system.modify --user "USERNAME"
Bluetooth
Sono riuscito ad inviare e ricevere files via bluetooth sfruttando net-wireless/bluez-gnome (per eseguire correttamente il pairing con il dispositivo) e net-wireless/blueman (scambio file).
Apple IR
Dal kernel ">=2.6.30" è stato rimosso il driver appleir ed è necessario sfruttare uinput che però presenta alcuni svantaggi (no auto-repeat, need to wait a couple of seconds between key presses to register two key presses).
Installiamo Lirc (aggiungendolo al runlevel) e editare /etc/conf.d/lircd con:
# Options to pass to the lircd process
# for devices with lirc-kernel-module
#LIRCD_OPTS="-d /dev/lirc0"
#LIRCD_OPTS="-d /dev/lirc"
LIRCD_OPTS="--driver=macmini --output=/var/run/lirc/lircd --uinput"
# for devices using the input-layer
#LIRCD_OPTS="-H devinput -d /dev/input/by-path/pci-0000:00:0a.0--event-ir"
# This should work, Bug #235107
#LIRCD_OPTS="-H devinput name=*DVB*"Per il /etc/lirc/lircd.conf potete usare quello standard (/usr/share/lirc/remotes/apple/lircd.conf.macmini) o questo (adattato alle mie necessità):begin remote
name AppleRemote
bits 8
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 24
pre_data 0x87EE81
gap 211982
toggle_bit_mask 0x0
ignore_mask 0x0000ff01
begin codes
KEY_VOLUMEUP 0x0B
KEY_VOLUMEDOWN 0x0D
KEY_LEFT 0x08
KEY_RIGHT 0x07
KEY_SPACE 0x04
KEY_F5 0x02
end codes
end remote
Audio
Editare /etc/asound.conf con:
pcm.out {
type route
slave.pcm "hw:0,0"
slave.channels 6
ttable {
0.0 1
1.1 1
2.2 1
3.3 1
4.4 1
0.5 0.5
1.5 0.5
}
}
Suspend to Ram
Installare sys-power/pm-utils.
Risparmio energetico
Installare ed aggiungere al runlevel: sys-power/acpid, sys-power/acpi, sys-power/acpitool, app-laptop/laptop-mode-tools, sys-power/cpufrequtils, sys-apps/lm_sensors.
Inoltre in /etc/pm/sleep.d/ e /etc/pm/power.d/ ho inserito il seguente script:
#!/usr/bin/env bash
# Go fast on AC power. Similar to default Ubuntu settings
if on_ac_power; then
# Set the drive to mostly stay awake. Some may want to change -B 254
# to -B 255 to avoid accumulating Load_Cycle_Counts
hdparm -B 254 -S 240 -M 254 /dev/sda
# Remount ext3 filesystems so the journal commit only happens every 60
# seconds. By default this is 5 but, I prefer to reduce the disk
# activity a bit.
mount -o remount,commit=60 /
mount -o remount,commit=60 /home
# Turn off the laptop mode disk optimization
echo 0 > /proc/sys/vm/laptop_mode
# Set kernel dirty page value back to default
echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
# Only wakeup every 60 seconds to see if we need to write dirty pages
# By default this is every 5 seconds but, I prefer 60 to reduce disk
# activity.
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
# Turn off sound card power savings
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
# Set the SATA to max performance
echo max_performance > /sys/class/scsi_host/host0/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host1/link_power_management_policy
#restart bluetooth #you can also decide to use RFKILL here.
hciconfig hci0 up
/etc/init.d/bluetooth start
#Enable eth0
ifconfig eth0 up
else # Save power
# Set the disks to aggressively save power and use the lowest acoustic
# level. Some might find these settings too aggressive. If so, change
hdparm -B 128 -S 4 -M 128 /dev/sda
# Change the ext3 commit times to 10 minutes. This reduces diskhcd
# activity
mount -o remount,commit=600 /
# Set laptop disk write mode
echo 5 > /proc/sys/vm/laptop_mode
# Reduce disk activity by waiting up to 10 minutes before doing writes
echo 90 > /proc/sys/vm/dirty_ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
# Set sound card power savings
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
# Set SATA to minimum power
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
echo min_power > /sys/class/scsi_host/host1/link_power_management_policy
ifconfig eth0 down
/etc/init.d/bluetooth stop
hciconfig hci0 down
fiCon questi accorgimento la batteria ha una durata di ~3 ore (contro le 4-5 ottenibili con Mac OS X).Saluti.
• 1 commento • Inserisci un commento • Pubblicato il 11 novembre 2009 • Ultima modifica 20 aprile 2011 • Feed commenti •
1.
nwccMNMmDrt
- 1 febbraio 2012 @ 10:21
6KMr9A <a href="http://owmtbgvawzsm.com/">owmtbgvawzsm</a>
