Tuning Kernel 2.6.24 - audio, card-reader e pnpbios

Image Hosted by ImageShack.us

Approfittando di una gita fuori porta (ieri ero a Genova centro) ho avuto un po' di tempo per provare l'ultimo kernel disponibile (2.6.24.2) e per sistemare alcune cose che avevo lasciato in sospeso.

Rispetto al kernel di Hardy 8.04, e al mio precedente 2.6.24, sono riuscito a far funzionare nuovamente il lettore di card integrato nel Lenovo 3000 n200:

08:06.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)

08:06.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 0a)

08:06.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 05)

Tempo fa ho avuto un problema analogo con un lettore di schede molto simile a questo, cercando di risolverlo scaricando i driver relativi da questo repositorio ( lasciamo perdere quella guida perche' sbagliata..e adesso scopriremo perche'):

 

svn co https://sdricohcs.svn.sourceforge.net/svnroot/sdricohcs sdricohcs
cd ~/sdricohcs/sdricoh_cs 
make 
sudo make install 
sudo modprobe sdricoh_cs

Questi driver in realta' non servono perche' gia' inclusi e selezionati come modulo nel kernel vanilla sotto il nome di mmc_sdhci (microSD).

Nella sezione dedicata, della configurazione del kernel, tutti i moduli per i vari card-reader (vedi Texas instrument, ricoh etc..) sono selezionati..tranne uno, marcato come experimental:

 

Image Hosted by ImageShack.us

Leggiamo la nota:

This selects the disabler for the Ricoh MMC Controller. This proprietary controller is unnecessary because the SDHCI driver supports MMC cards on the SD controller, but if it is not disabled, it will steal the MMC cards away - rendering them useless. It is safe to select this driver even if you don't have a Ricoh based card reader. To compile this driver as a module, choose M here: the module will be called ricoh_mmc.

NB: e' assolutamente obbligatorio avere il modulo mmc_block ATTIVO E FUNZIONANTE.altrimenti il dispositivo non verra' montato.

Per essere sicuri che entrambi i moduli si attivino all'avvio, aggiungiamoli a /etc/modules:

echo ricoh_mmc | sudo tee -a /etc/modules
echo mmc_block | sudo tee -a /etc/modules

Controlliamo anche la mappatura del device dal dmesg:

 

ricoh-mmc: Ricoh MMC Controller disabling driver [ 98.653518] ricoh-mmc: Copyright(c) Philip Langdale [ 105.461752] mmc0: new SD card at address b368 [ 105.461927] mmcblk0: mmc0:b368 UD 993792KiB (ro) [ 105.461978] mmcblk0: p1

Potrebbe essere dunque necessario aggiungere staticamente questo nodo in /etc/fstab:

kdesudo kate /etc/fstab

Aggiungiamo:

/dev/mmcblk0p1 /media/mmc auto defaults,sync,iocharset=utf8,user,noauto 0 0

Creiamo la directory:

sudo mkdir /media/mmc

 

- Audio -

Torna a funzionare anche "l'altalenante" scheda audio intel riportata qui sotto:

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)

0: Realtek ALC861-VD

Probabilmente (basta dare uno sguardo al changelog) e' stata aggiunta qualche patch rispetto a prima, perche' la versione degli ALSA e' sempre la 1.0.15.

Grazie a questa "correzione" non e' stato necessario installare gli 1.0.16 o 1.0.16rc, anzi..se facciamo un confronto tra i due alsamixer (o kmix) rispettivamente del 2.6.24 con alsa 1.0.16rc e 2.6.24.4 e alsa 1.0.15, notiamo come siano stati abilitati diversi canali in piu' rispetto alla versione 1.0.16:

Alsa 1.0.15 integrati nel kernel 2.6.24.4:

img1img2

Alsa 1.0.16rc2 compilati da me nel kernel 2.6.24 (piu' opzione model=Lenovo):

img3img4

Ho aggiunto un altro mixer, per il solito auricolare Bluetooth, tramite i driver snd-bt-sco versione CVS, che sul 2.6.24 purtroppo non funzionano. Ecco come fare:

bt

Repository CVS:

cvs -d:pserver:anonymous@bluetooth-alsa.cvs.sourceforge.net:/cvsroot/bluetooth-alsa login 
cvs -d:pserver:anonymous@bluetooth-alsa.cvs.sourceforge.net:/cvsroot/bluetooth-alsa co btsco
cd ~/btsco 
./bootstrap 
./configure 
make 
sudo make install

Modulo:

cd ~/btsco/kernel 
make 
sudo make install 
sudo depmod -ae 
sudo modprobe snd-bt-sco

 

- Pnpbios -

Image Hosted by ImageShack.us

La gestione delle risorse integrate nella Mainboard, viene solitamente affidato alla funzione PNPBIOS..anche se molte features sono bloccate di default.

 L'opzione PNPBIOS aiuta ad evitare quindi conflitti tra mainboard e bus delle varie periferiche (i sistemi ISA non sono ancora supportati) ma e' inutile su sistemi non-ISA e supportati dall'acpi (ACPI-PNP)

Se nel dmesg leggiamo cose di questo tipo:

[30.758985] EISA: Probing bus 0 at eisa.0

[30.758993] Cannot allocate resource for EISA slot 1

[30.758996] Cannot allocate resource for EISA slot 2

[30.758998] Cannot allocate resource for EISA slot 3

[30.759000] Cannot allocate resource for EISA slot 4

[30.759002] Cannot allocate resource for EISA slot 5

[30.759019] EISA: Detected 0 cards.

[26.968489] pnp: PnP ACPI init

[26.968497] ACPI: bus type pnp registered

[26.990242] pnp: PnP ACPI: found 10 devices

[26.990244] ACPI: ACPI bus type pnp unregistered

[26.990248] PnPBIOS: Disabled by ACPI PNP

[26.990441] PCI: Using ACPI for IRQ routing

..sicuramente rientriamo in questa categoria. Disabilitiamo il PNPBIOS e anche le varie opzioni riguardanti i dispositivi ISA-EISA per evitare che il processo di boot si soffermi troppo ad effettuare questi controlli

 

Eh se avessi modo di dirmi

Eh se avessi modo di dirmi come patchare pure gli IWL saresti il massimo ;-) Quei driver funzionano molto meglio per il kernel...in compenso però non supportano bene alcuni tipi di crypt tra cui uno che mi serve (bug già segnalato agli sviluppatori del driver).

Comunque, mi sembra che questo kernel sia fatto molto bene problemi "locali" a parte...ho notato che in media, per dire, l'amd64 mi consuma 2 Wh meno dell'i386 2.6.22 che usavo prima...sempre apprezzabile su un portatile. Intanto aspettiamo che arrivi il nuovo driver...

ciao LucaV.. Intendi la

ciao LucaV..
Intendi la patch per il led (o il kill-switch)?..l'ho provata qualche tempo fa ma non funziona..
ne avevamo parlato qua mi pare

http://divilinux.netsons.org/index.php/archives/654

La prossima volta che vieni

La prossima volta che vieni a Genova fammi sapere :D

il mese prossimo

il mese prossimo sicuramente. Sto ultimando la vendita di un appartamento.... zona Borgoratti..
:)

Ciao divilinu, posto

Ciao divilinu, posto tardissimo spero che in qualche modo mi leggerai.
Sto tentando di far funzionare il lettore di schede ricoh, ti posto tutto ciò che è nel mio lspci che inizia con ricoh, tanto per essere sicuri:
01:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
01:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
01:01.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
01:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)
Stò usando kubuntu con kernel 2.26.24.
Ho aggiunto i moduli a /etc/modules come da te spiegato e ho modficato fstab.
Tuttavia non succede nulla inserendo o togliendo un Memory Stick.
Ho notato che in /dev non esiste il device, quello che fstab dovrebbe montare aggiungendo la riga da te scritta.
Ho anche scaricato i sorgenti del kernel dai repository e dato make xconfig (dopo aver copiato la configurazione del kernel attuale nei sorgenti) per verificare che ci siano i moduli, la schermata data da xconfig è identica a quella da te postata.
Hai qualche idea per far funzionare questo lettore?

@Hyu Ciao, se tutto quello

@Hyu
Ciao, se tutto quello che hai provato non funziona, come ho scritto qui:

http://divilinux.netsons.org/index.php/archives/804

il modulo va compilato staticamente. Ho notato come, dopo il kernel 2.6.25, sia necessario fare cosi', altrimenti la SD card non viene nemmeno rilevata

Perdona l'ignoranza, non

Perdona l'ignoranza, non sono ancora pratico di compilazioni del kernel.
Compilare staticamente il modulo vuol dire, in poche parole, mettere il segno di spunta alla voce invece del pallino nero?
Grazie tante!

@Hyu Dipende da cosa usi..se

@Hyu
Dipende da cosa usi..se parli di "v" e "pallino nero" posso pensare che tu stia utilizzando l'interfaccia in qt (xconfig) quindi la risposta' si: il pallino significa compilato come modulo, mentre la "v" staticamente

Il problema è che se ti sei dimenticato un modulo nella compilazione del kernel, ti basta ricompilare solo quel modulo..se devi cambiare da modulo a statico, va necessariamente ricompilato e reinstallato tutto il kernel..almeno, per quel che ne so io.

http://img401.imageshack.us/img401/6642/200807091050081680x1050po8.png

Non è facile stare dietro a questo card-reader comunque..ne prendo atto

Dopo molto penare e un

Dopo molto penare e un kernel panic sono riuscito a ricompilare il kernel dai sorgenti dei repository e a installarci il modulo dei driver nvidia per far partire x.
A parte che non ho la sospensione, lo standby, l'audio, la webcam (ma non mi importa tanto ho i kernel ufficiali) il lettore di schede ancora non funziona.
Non esiste il device /dev/mmcblk0p1 e all'inserimento del memorystick il pc rimane impassibile.
Eppure sono sicuro di aver compilato staticamente (cioè ho messo un segno di V in xconfig sui moduli come nel tuo snapshot) i moduli necessari.
Grazie della disponibiltà, se hai altre idee ci sono, se le hai finite non importa ;)

@Hyu Ma invece i driver

@Hyu
Ma invece i driver sdricoh_cs li hai installati?
Per l'audio non è un problema..a meno che negli alsa del kernel di Ubuntu non ci siano state delle patch per la tua scheda, puoi sempre segnarti quella versione ed installarla dai sorgenti
Stessa cosa per la webcam...se mi dici che modello è ti posso dire che driver scaricare ed installare. Un po' piu' complicata è la sospensione, che comunque puoi attivare anche senza passare dai due moduli dell'acpi del kernel

Installati i driver

Installati i driver sdricoh_cs ma niente. La situazione rimane identica. Misteri dell'informatica.

@Hyu Secondo me, a livello

@Hyu
Secondo me, a livello di kernel, hai fatto tutto quello che c'era da fare ... se riprovi tail -f /var/log/messages ed inserisci la scheda, molto probabilmente verrà almeno rilevata
Poi, forse, tra debian e ubuntu ci sono delle differenze a livello di Udev, quindi in userspace e non in kernelspace, magari per regole diverse o chissà cosa
Prova, se esiste su debian, ad aggiornare il database di hal

update-pciids

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
1 + 5 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.