Slackware 12.0 su Acer Aspire 1692WLMi

Foto del portatile Acer Aspire 1690

Lo scopo di questa semplice guida è quello di offrire un aiuto a tutti coloro i quali hanno problemi nell'installazione di Slackware 12.0 sul portatile Acer Aspire 1692WLMi.

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones   Linux On Laptops

Specifiche tecniche

Le specifiche tecniche del portatile sono le seguenti:

  • Processore: Intel® Pentium® M 740 1.73 Ghz con 2MB Cache L2 e 533Mhz FSB. Supporta Enhanced Intel® SpeedStep® Technology
  • Chipset: Intel® 915PM Express chipset
  • Memoria RAM: 1024MB DDR400
  • Hard disk: 100GB 5400RPM
  • Scheda video: ATI Mobility Radeon X700 con 128MB di RAM dedicata
  • Schermo: 15.4' WXGA con risoluzione massima di 1280x800
  • Scheda audio: Intel ICH6 AC97
  • Masterizzatore DVD: MATSHITA UJ-840D (Double Layer)
  • Rete
    • Wireless: Intel PRO/Wireless 2200BG
    • Wired: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet
    • Modem: AC97 SoftV92 Data Fax Modem with SmartCP
  • Lettore PCMCIA: Texas Instruments PCIxx21/x515 Cardbus Controller
  • Lettore memorie flash: Texas Instruments PCIxx21 Integrated FlashMedia Controller. Legge SD, Memory Stick, Memory Stick PRO, MultiMediaCard.
  • Misc: bluetooth, irda, firewire

La configurazione attuale del mio sistema è:

  • Sistema operativo: GNU/Linux
  • Distribuzione: Slackware Linux 12.0
  • Kernel: 2.6.21.5
  • XServer: X.Org 1.3.0.0
  • Window manager: Xfce 4.4.2, parte integrante del progetto Xfware
  • Drivers ATI: 8.42.3
  • Drivers Wifi: 1.2.1
  • Drivers stack IEEE80211: 1.2.17

L'elenco delle periferiche PCI è il seguente (output del comando lspci):

00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 04)
00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 04)
00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04)
00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 04)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)
06:01.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
06:01.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
06:01.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
06:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
06:08.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03)
							

L'elenco delle periferiche USB è il seguente (output del comando lsusb):

Bus 5 Device 1: ID 0000:0000  
Bus 4 Device 1: ID 0000:0000  
Bus 3 Device 1: ID 0000:0000  
Bus 2 Device 2: ID 0a5c:200a Broadcom Corp. 
Bus 2 Device 1: ID 0000:0000  
Bus 1 Device 1: ID 0000:0000
							

1. Installazione

Ho ripartizionato il disco in modo da avere una partizione per Windows XP Professional, una partizione dati e quattro partizioni per Linux: la swap di circa 1GB, la partizione home di circa 4GB, altre due partizioni di 15GB e 10GB, usate rispettivamente per Slackware e per il test di altre distribuzioni Linux (Debian, Ubuntu, Arch Linux). Questo è l'output del comando fdisk /dev/hda:

Disk /dev/hda: 100.0 GB, 100030242816 bytes
255 heads, 63 sectors/track, 12161 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        2432    19535008+   7  HPFS/NTFS
/dev/hda2            2433        8511    48829567+   7  HPFS/NTFS
/dev/hda3            8512       12161    29318625    f  W95 Ext'd (LBA)
/dev/hda5            8512        8639     1028128+  82  Linux swap
/dev/hda6            8640        9125     3903763+  83  Linux
/dev/hda7            9126       10949    14651248+  83  Linux
/dev/hda8           10950       12161     9735358+  83  Linux
			

Ho seguito la procedura consueta per l'installazione di Slackware, fornendo come parametro di boot hugesmp.s.

2. COMPILAZIONE DEL KERNEL

Per garantire un corretto funzionamento delle periferiche del portatile in questione, occorre prima di ogni altra cosa ricompilare il kernel.
Per la ricompilazione del kernel 2.6.21.5, possiamo far riferimento al file di configurazione riportato in fondo a questa guida.
Questa operazione ha il duplice scopo di ottimizzare il kernel per il portatile Acer, oltre che abilitare alcune features (ad esempio il CPU Frequency Scaling, la gestione dell'ACPI).
Ricordo brevemente che la compilazione del kernel consta dei seguenti passi:

  • configurazione del kernel (mediante il comando make menuconfig);
  • creazione dell'immagine del kernel (mediante il comando make bzImage);
  • compilazione dei moduli del kernel (mediante il comando make modules);
  • installazione dei moduli del kernel (mediante il comando make modules_install);
  • copia del file di immagine in /boot;
  • aggiornamento del boot loader.

2.1. I/O Schedulers

Prima di tutto, va scelto lo scheduler di default.
Tre sono le possibilità messe a disposizione dal kernel:

  • Anticipatory I/O scheduler;
  • Deadline I/O scheduler;
  • CFQ I/O scheduler.

Quest'ultimo scheduler sembra il più adatto al portatile Acer. Il CFQ (Complete Fair Queueing) implementa sia "request merging" che "elevator", e cerca di dare a tutti gli utenti di un particolare device lo stesso numero di richieste di I/O in un determinato intervallo di tempo. Questo dovrebbe offrire maggior efficienza in sistemi multiutente. Per chiarimenti, vi rimando al link http://www.wlug.org.nz/LinuxIoScheduler per maggiori informazioni.

2.2. ACPI

Prima della ricompilazione del kernel, l'ACPI su questo portatile non era funzionante al 100%. Non era possibile, infatti, controllare lo stato della batteria.
Ho abilitato le seguenti voci nela sezione "Power management options (ACPI, APM) | ACPI (Advanced Configuration and Power Interface) Support":

  • ACPI Support (CONFIG_ACPI = y);
  • Sleep States (CONFIG_ACPI_SLEEP = y);
  • AC Adapter (CONFIG_ACPI_AC = y);
  • Battery (CONFIG_ACPI_BATTERY = y);
  • Button (CONFIG_ACPI_BUTTON = y);
  • Video (CONFIG_ACPI_VIDEO = m);
  • Fan (CONFIG_ACPI_FAN = y);
  • Processor (CONFIG_ACPI_PROCESSOR = y);
  • Thermal Zone (CONFIG_ACPI_THERMAL = y);

2.3. CPU

Il kernel 2.6.21.5 installato di default nel sistema non ha abilitato il supporto per il CPU Frequency Scaling.
Vanno abilitate le seguenti voci nella sezione Power management options (ACPI, APM) | CPU Frequency scaling:

  • CPU Frequency scaling (CONFIG_CPU_FREQ = y e CONFIG_CPU_FREQ_TABLE = y);
  • CPU frequency translation statistics (CONFIG_CPU_FREQ_STAT = y);
  • CPU frequency translation statistics details (CONFIG_CPU_FREQ_STAT_DETAILS = y);
  • Default CPUFreq governor (userspace) (CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE = y);
  • 'powersave' governor (CONFIG_CPU_FREQ_GOV_POWERSAVE = y);
  • 'userspace' governor for userspace frequency scaling (CONFIG_CPU_FREQ_GOV_USERSPACE = y);
  • 'ondemand' cpufreq policy governor (CONFIG_CPU_FREQ_GOV_ONDEMAND = y);
  • 'conservative' cpufreq governor (CONFIG_CPU_FREQ_GOV_CONSERVATIVE = y);
  • ACPI Processor P-States driver (CONFIG_X86_ACPI_CPUFREQ = y);
  • Intel Enhanced SpeedStep (CONFIG_X86_SPEEDSTEP_CENTRINO = y e CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE = y).

Per la regolazione della frequenza in base al carico di lavoro, ho usato il tool Powernowd, contenuto all'interno della distribuzione Xfware.

2.4. Wifi

Il portatile in questione monta la nota periferica wireless Intel PRO/Wireless 2200BG, per la quale sono disponibili i driver all'indirizzo http://ipw2200.sourceforge.net/
Tali driver richiedono che sul sistema sia presente un kernel 2.6.8 o superiore, le wireless extensions e il sottosistema IEEE 802.11.
Per quanto riguarda lo stack IEEE 802.11, occorre abilitare le seguenti voci nella sezione Networking:

  • Generic IEEE 802.11 Networking Stack (CONFIG_IEEE80211 = m);
  • IEEE 802.11i CCMP support (CONFIG_IEEE80211_CRYPT_WEP = m e CONFIG_IEEE80211_CRYPT_CCMP = m);
  • IEEE 802.11i TKIP encryption (CONFIG_IEEE80211_CRYPT_TKIP = m);
  • Software MAC add-on to the IEEE 802.11 Networking Stack (CONFIG_IEEE80211_SOFTMAC = m e CONFIG_WIRELESS_EXT = y);

La procedura di compilazione dei driver non presenta alcuna difficoltà.
Al termine della fase di compilazione, è disponibile un nuovo modulo del kernel, chiamato ipw2200.
Per poter identificare in modo più facile l'interfaccia di rete wireless (ad esempio con wlan0), consiglio di effettuare le seguenti due operazioni:

  • aggiungere al file /etc/modprobe.conf la riga install ipw2200 /sbin/modprobe --ignore-install ipw2200 led=1; /sbin/ifrename;
  • creare il file /etc/iftab, inserendo al suo interno la riga wlan* driver ipw2200.

I parametri di configurazione della rete wireless sono presenti nel file /etc/rc.d/rc.wireless.conf. Nel caso in cui si voglia utilizzare il protocollo WPA, invece, far riferimento ai file /etc/wpa_supplicant.conf e /etc/rc.d/rc.inet1.conf.

N.B.: per abilitare il segnale wifi occorre, in fase di boot, premere il tasto wireless. A partire dal kernel 2.6.14 è stato incluso nel kernel il supporto per tale scheda wireless. Personalmente, consiglio di non abilitare tale supporto nel kernel, ma di aggiornare i driver nel momento in cui sono rilasciate nuove versioni sul sito sopra indicato.

2.5. ETHERNET

Il supporto alla scheda ethernet è del portatile Acer è garantito dal modulo tg3.
Nella configurazione del kernel, bisogna ricordarsi di abilitare la voce Broadcom Tigon3 support (CONFIG_TIGON3 = m) nella sezione Device Drivers | Network device support | Ethernet (1000 Mbit).

2.6. SCHEDA VIDEO

Per sfruttare appieno le potenzialità della scheda video PCI express installata su questo portatile, occorre scaricare i driver ATI direttamente dal sito del produttore (driver ATI linux).
La procedura di installazione dei driver ATI si articola nei seguenti passi:

  • rendere eseguibile il file ati-driver-installer-8-02-x86.x86_64.run
  • eseguire il file ati-driver-installer-8-02-x86.x86_64.run
  • configurazione del server grafico: aticonfig --initial --input=/etc/X11/xorg.conf
  • aggiunta della seguente riga al file /etc/fstab:
    tmpfs /dev/shm tmpfs defaults 0 0

Al termine della procedura, occorre riavviare il computer.

2.7. SCHEDA AUDIO

Per garantire il funzionamento della scheda audio, occorre abilitare innanzitutto la voce Sound card support (CONFIG_SOUND = m) nella sezione Device Drivers | Sound.
Spostandosi nella sottosezione Advanced Linux Sound Architecture, occorre abilitare le seguenti voci:

  • Advanced Linux Sound Architecture (CONFIG_SND = m);
  • Sequencer support (CONFIG_SND_SEQUENCER = m);
  • Sequencer dummy client (CONFIG_SND_SEQ_DUMMY = m);
  • OSS Mixer API (CONFIG_SND_MIXER_OSS = m);
  • OSS PCM (digital audio) API (CONFIG_SND_PCM_OSS = m);
  • OSS PCM (digital audio) API - Include plugin system (CONFIG_SND_PCM_OSS_PLUGINS = y);
  • OSS Sequencer API (CONFIG_SND_SEQUENCER_OSS = y);
  • RTC Timer support (CONFIG_SND_RTCTIMER = m);
  • Use RTC as default sequencer timer (CONFIG_SND_RTCTIMER_DEFAULT = y);
  • Support old ALSA API (CONFIG_SND_SUPPORT_OLD_API = y);
  • Verbose procfs contents (CONFIG_SND_VERBOSE_PROCFS = y);

L'ultimo passo consiste nell'attivare il driver della scheda audio. Va abilitata la voce Intel/SiS/nVidia/AMD/ALi AC97 Controller (CONFIG_SND_INTEL8X0 = m) nella sezione Device Drivers | Sound | Advanced Linux Sound Architecture | PCI devices.
Al termine della compilazione del kernel, bisogna ricordarsi di regolare i volumi con il comando alsamixer e di salvare le impostazioni mediante il comando alsactl store.

2.8. USB

Il support all'USB è garantito dai moduli uhci_hcd e ehci_hcd.
A livello di kernel, occorre abilitare le seguenti voci nella sezione Device Drivers | USB support:

  • Support for Host-side USB (CONFIG_USB = m);
  • USB device filesystem (CONFIG_USB_DEVICEFS = y);
  • EHCI HCD (USB 2.0) support (CONFIG_USB_EHCI_HCD = m);
  • Full speed ISO transactions (EXPERIMENTAL) (CONFIG_USB_EHCI_SPLIT_ISO = y);
  • Root Hub Transaction Translators (EXPERIMENTAL) (CONFIG_USB_EHCI_ROOT_HUB_TT = y);
  • UHCI HCD (most Intel and VIA) support (CONFIG_USB_UHCI_HCD = m);
  • USB Modem (CDC ACM) support (CONFIG_USB_ACM = m);
  • USB Printer support (CONFIG_USB_PRINTER = m);
  • USB Mass Storage support (CONFIG_USB_STORAGE = m);
  • USB Human Interface Device (full HID) support (CONFIG_USB_HID = m);
  • /dev/hiddev raw HID device support (CONFIG_USB_HIDDEV = y);

2.9. FIREWIRE

Il support al firewire è garantito dai moduli ieee1394 e ohci1394.
A livello di kernel, occorre abilitare le seguenti voci nella sezione Device Drivers | IEEE 1394 (FireWire) support:

  • IEEE 1394 (FireWire) support (CONFIG_IEEE1394 = m);
  • Texas Instruments PCILynx support (CONFIG_IEEE1394_PCILYNX = m);
  • OHCI 1394 support (CONFIG_IEEE1394_OHCI1394 = m);
  • OHCI-1394 Video support (CONFIG_IEEE1394_VIDEO1394 = m);
  • SBP-2 support (Harddisks etc.) (CONFIG_IEEE1394_SBP2 = m);
  • Enable replacemente for physical DMA in SBP2 (CONFIG_IEEE1394_SBP2_PHYS_DMA = y);
  • Ethener over 1394 (CONFIG_IEEE1394_ETH1394 = m);
  • Raw IEEE1394 I/O support (CONFIG_IEEE1394_RAWIO = m);

Sfortunatamente non dispongo di nessun dispositivo firewire, quindi non ho potuto fare prove reali di funzionamento della porta.

2.10. BLUETOOTH

Per poter usufruire del dispositivo Bluetooth del portatile Acer, occorre abilitare innanzitutto la voce Bluetooth subsystem support (CONFIG_BT = m) nella sezione Networking.
Spostandosi nella corrispondente sottosezione, occorre abilitare le seguenti voci:

  • L2CAP protocol support (CONFIG_BT_L2CAP = m);
  • SCO links support (CONFIG_BT_SCO = m);
  • RFCOMM protocol support (CONFIG_BT_RFCOMM = m);
  • RFCOMM TTY support (CONFIG_BT_BNEP = m);
  • BNEP protocol support (CONFIG_BT_BNEP_FILTER = m);
  • Multicast filter support (CONFIG_BT_BNEP_PROTO_FILTER = y);
  • Protocol filter support (CONFIG_BT_HIDP = y);
  • HIDP protocol support (CONFIG_SND = m);
  • RFCOMM protocol support (CONFIG_SND = m);

Spostandosi nella sottosezione Bluetooth device drivers, occorre abilitare i drivers dei vari dispositivi bluetooth:

  • HCI USB driver (CONFIG_BT_HCIUSB = m);
  • SCO (voice) support (CONFIG_BT_HCIUSB_SCO = y);
  • HCI UART driver (CONFIG_BT_HCIUART = m);
  • UART (H4) protocol support (CONFIG_BT_HCIUART_H4 = y);
  • BCSP protocol support (CONFIG_BT_HCIUART_BCSP = y);
  • HCI BCM203x USB driver (CONFIG_BT_HCIBCM203X = m);
  • HCI VHCI (Virtual HCI device) driver (CONFIG_BT_HCIVHCI = m);

Per lo scambio di dati da/verso il portatile, consiglio di usare GNOME Bluetooth, fornita a corredo della distribuzione Xfware.

2.11. PCMCIA

Per poter usufruire del supporto PCMCIA del portatile Acer, occorre abilitare nella sezione Bus options (PCI, PCMCIA, EISA, MCA, ISA) | PCCARD (PCMCIA/CardBus) support le seguenti voci:

  • PCCard (PCMCIA/CardBus) support (CONFIG_PCCARD = m);
  • 16-bit PCMCIA support (CONFIG_PCMCIA = m);
  • Load CIS updates from userspace(EXPERIMENTAL) (CONFIG_PCMCIA_LOAD_CIS = y);
  • PCMCIA control ioctl (obsolete) (CONFIG_PCMCIA_IOCTL = y);
  • CardBus yenta-compatible bridge support (CONFIG_YENTA = m);

Con la sola abilitazione di queste voci nel kernel, il PCMCIA non funziona; questo è dovuto a una configurazione sbagliata del file /etc/pcmcia/config.opts.
Per risolvere il problema, far riferimento al file riportato nella sezione 4 di questa guida.

2.12. CARD READER 4 in 1

Under construction!!!

3. XFWARE

Visto che ora si dispone di un ambiente Slackware abbastanza funzionale, perchè non provare ad installare Xfware?
Innanzitutto cosa è Xfware? Riporto un stralcio della descrizione fornita sul sito ufficiale del progetto:

XFWARE è una distribuzione dell'ambiente desktop Xfce ottimizzata per Slackware Linux e distribuita nel suo formato standard tgz per i pacchetti...

La procedura di installazione è semplicissima e ben descritta nelle pagine ufficiali del progetto: http://xfware.tuxfamily.org.
Non esitate ad esprimere commenti su Xfware...ve ne sarei molto grato, visto anche che sono uno dei partecipanti al progetto (l'ideatore è il mio amico Paolo Loberto, alias MrLoba).

4. FILE DI CONFIGURAZIONE

5. RINGRAZIAMENTI

Un ringraziamento va a Mehdi Yousfi-Monod e alla sua guida per l'installazione di Gentoo su Acer Aspire 1694WLMi. Le sue linee guida, infatti, mi hanno permesso di poter sfruttare al massimo questo portatile e di poter scrivere questa guida.
Un "grazie" particolare a Paolo Loberto (alias MrLoba) per i numerosi consigli sulla ricompilazione del kernel.