Come abilitare card reader Texas Instrument su openSUSE 10.2

Dom, 29/07/2007 - 09:51

Come abilitare card reader Texas Instrument su openSUSE 10.2

Inviato da anubis 24 commenti
Questo articolo è scritto per hardware Texas instrument ed SO openSUSE 10.2, niente toglie che con le opportune modifiche possa essere riutilizzata con altro hardware e versioni diverse di SUSE.
ATTENZIONE! Questa guida è stata testata con schede SD ed MMC, se qualcuno è in grado di testarla con altro hardware,SO o schede, darebbe un enorme contributo alla comunità riportando i suoi risultati.

Per prima cosa apriamo una shell e digitiamo:

$ lspci | grep 'Texas Instruments'

otterrete qualcosa di simile a questo:

08:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
08:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller
08:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
08:06.3 Generic system peripheral [Class 0805]: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller

Quello che a noi interessa è il codice numerico del card reader, in questo caso 08:06.2.Continuiamo la nostra sessione nella shell digitando:

$ su
# setpci -s nn:nn.n 4c.b=0x02

dove ad nn:nn.n sostituirete il codice ricavato prima. Bene ora è arrivato il momento della verità: inserite una scheda SD e verificate se funziona. Se così non dovesse essere probabilmente avete sbagliato ad inserire il "codice" oppure il vostro card reader potrebbe avere qualche problema. Al contrario se funziona procediamo come segue:

digitate in shell, sempre da utente root (per semplice comodità):

# cd /etc/init.d/
# kwrite cardreader

Ovviamente potrete sostituire kwrite con il vestro editor di testo preferito, alla fine dovrete semplicemente inserire queste righe nel file cardreader che creerete in /etc/init.d.

Questo è il testo da inserire all'interno del file cardreader.
#!/bin/bash

setpci -s nn:nn.n 4c.b=0x02

exit 0

:

Salvate il file e da shell continuate digitando:

# chmod 755 cardreader
# chkconfig -a cardreader

questi ultimi due comandi devono essere eseguiti all'interno della cartella /etc/init.d. se per un motivo qualsiasi siete usciti da tale cartella sarà sufficiente digitare PRIMA di questi ultimi comandi

# cd /etc/init.d/

.

A questo punto abbiamo finito. Al prossimo riavvio il card reader sarà gia attivo. Laughing





Commenti

Ritratto di moviemaniac
#1

Inviato da moviemaniac il Sab, 04/08/2007 - 18:48.

Re: correzione NON correzzione

Scusate se mi faccio gli affari vostri eh, ma con che kernel vi funziona questo stratagemma? E soprattutto, come fate ad accorgervi se la scheda è stata riconosciuta? Si apre autoplay?

A me non funziona nè la versione
setpci -s nn:nn.n 4c.b=0x02
nè quella
setpci -s nn:nn 4c.b=02

per la verità ho provato pure
setpci -s nn:nn.n 4c.b=02
setpci -s nn:nn 4c.b=0x02
giusto per capire, ma niente da fare.

Io sto utilizzando la OpenSUSE 10.2 sul mio Ferrari 4005 Wlmi, e il kernel è 2.6.18.8-0.5-default i686.

Ora, non è che devo aggiornare il kernel? E se si, mi spiegate bene come fare? Ho trovato qualcosa ma da un repository non ufficiale, e non vorrei rovinare tutto Big Grin

Grazie

aka FaithFulSoft
once MaxDev's staff developer



Ritratto di anubis
#2

Inviato da anubis il Sab, 04/08/2007 - 20:28.

Re: correzione NON correzzione

ho il tuo stesso kernel, ti accorgi se funziona perchè metti una scheda e vedi se la legge... Wink

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di moviemaniac
#3

Inviato da moviemaniac il Dom, 05/08/2007 - 19:52.

Re: correzione NON correzzione

Eh, voglio dire: si apre la finestrella con le operazioni comuni?

A me in ogni caso non vuol saperne di funzionare.
Dove dovrebbe montarla? Dovrei essere in grado di vederla ne "il mio sistema"?
La monta nella cartella /mnt? la monta in /windows?

Ciao

aka FaithFulSoft
once MaxDev's staff developer



Ritratto di anubis
#4

Inviato da anubis il Dom, 05/08/2007 - 19:55.

Re: correzione NON correzzione

a me mlo monta in /media/Memory Card

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di moviemaniac
#5

Inviato da moviemaniac il Lun, 06/08/2007 - 12:38.

Re: correzione NON correzzione

A me purtroppo non monta un bel nulla :'(

Ma bisogna avere i driver sdhci installati?

Grazie ancora.
Ciao

aka FaithFulSoft
once MaxDev's staff developer



Ritratto di leo72
#6

Inviato da leo72 il Lun, 06/08/2007 - 16:09.

Re: correzione NON correzzione

Mi accorgo che funziona perché:
1) il led sul lettore emette un breve lampeggio;
2) mi si apre la finestra che mi chiede se voglio aprire il nuovo supporto (comè fa, per capirsi, quando inserisci una pennina USB)
3) una volta montata, hai l'icona della SD in Risorse di computer.

Io cmq non ho caricato nessun driver, ho solo dato i comandi riportati qui sopra, in sequenza.
Ricordati, però, che questa trafila funziona SOLO se hai un chip dell Texas Instruments, altrimenti non va.

Ah, ho il kernel di Suse, cioè il 2.18.

Leo.
------------------
Scegli software open-source: il mio sistema Suse Linux esegue OpenOffice, Mozilla Firefox e Thunderbird, The Gimp...



Ritratto di moviemaniac
#7

Inviato da moviemaniac il Lun, 06/08/2007 - 23:56.

Re: correzione NON correzzione

Guarda, il chip è Texas Instuments, altrimenti non starei qui a rompervi le scatgole :'(

Se digito

lspci | grep "Texas Instruments"

leggo questo:

06:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller<br />06:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller<br />06:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Il mio notebook è un Ferrari 4005 wlmi, non ha un led per il lettore di schede. In ogni caso non mi si apre la finestrella che dici tu (quella che io chiamavo autoplay), e in risorse del computer non mi spunta niente.

Allora o il mio lettore ha qualche problema, anche se sotto windows funziona alla perfezione, o c'è qualcosa che è a noi sconosciuta e che ne impedisce il funzionamento. Intendo ad esempio qualche pacchetto che voi avete installato e io no (senza saperlo).

Ciao

aka FaithFulSoft
once MaxDev's staff developer



Ritratto di anubis
#8

Inviato da anubis il Mar, 07/08/2007 - 09:50.

Re: correzione NON correzzione

a quanto sembra manca il rigo più importante.. che avevo scritto in grassetto ma non si vede come tale nella guida.. :-o :-o ad ogni modo:

08:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) è questo che manca

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di moviemaniac
#9

Inviato da moviemaniac il Mar, 07/08/2007 - 11:05.

Soluzione: cardreader installato su Ferrari 4005 Wlmi

Posto la soluzione che ho trovato per chi ha il mio stesso notebook (Ferrari 4005 wlmi) e dovesse trovarsi nelle mie stesse condizioni.

Ho scaricato il file 'tifm-0.6b-0.src.rpm' qui:
http://www.pc-forum24.de/downloads.php?do=file&id=229

ho ricostruito poi il pacchetto rpm specifico per il mio sistema ed il mio kernel (2.6.18.8-0.5-default i686 su openSUSE 10.2 (i586)) da shell con il seguente comando:

# rpmbuild --rebuild tifm-0.6b-0.src.rpm

(per i niubbissimi ricordo che il simbolo # significa che il comando va impartito come root, con i privilegi di root insomma)

Alla fine della fiera (insomma una volta che rpmbuild ha terminato di fare le sue cose), ella cartella
/usr/src/packages/RPMS/i586

mi sono ritrovato 5 rmp differenti, ognuno per un kernel diverso (bigsmp, debug, default, xen, xenpae). Io ho installato tramite yast il seguente:

tifm-kmp-default-0.6b_2.6.18.8_0.5-0.i586.rpm

semplicemente facendoci doppio click sopra (ho impostato in kde il doppio click per l'apertura dei files) e poi cliccando su "installa pacchetto con YaST" nella barra di konqueror.

Si è aperta la finestrella che richiede la password di root, quindi si è avviato il gestore dei pacchetti di YaST che ha provveduto alla installazione del pacchetto.

A questo punto nella konsolle, sempre come root ho caricato i moduli seguenti:

# modprobe tifm_7xx1
# modprobe mmc_block
# modprobe tifm_sd

Una volta terminata l'operazione ho inserito la mia scheda SD nel lettore, e patapàm, mi si è aperta la finestrella di KDE che mi chiede cosa voglio fare (l'equivalente di autoplay in windows per intenderci).

###
INIZIO AGGIORNAMENTO

Dopo aver fatto quanto sopra, se si riavvia il pc ci si accorge che i moduli non sono caricati, e bisogna procedere da linea di comando. Per qualcuno questo potrebbe essere piacevole poichè l'avere un lettore funzionante non influirebbe comunque sul boot del pc. A me da fastidio perchè dovrei ogni volta ricordarmi i nomi dei moduli, e poi che figura ci farei davanti agli amici che parlano male del pinguino difendendo XP se dovessi mettermi lì a smanettare per fargli vedere le foto delle vacanze? Dunque mi sono dato da fare per capire come caricarli all'avvio. E' abbastanza semplice tutto sommato:

YaST => Sistema => Editor per file /etc/SysConfig

quindi System -> Kernel -> MODULES_LOADED_ON_BOOT

inserite poi nel campo sulla destra la seguente riga:

modprobe tifm_7xx1 mmc_block tifm_sd

e salvate cliccando su fine e poi accettando le modifiche.
Notate che i moduli sono separati da spazi, per cui se avete già il modulo fuse da caricare all'avvio (se avete installato i driver ntfs-3g), vi basta aggiungere di seguito questi tre badando di lasciare uno spazio tra un modulo e l'altro.

FINE AGGIORNAMENTO
###

ATTENZIONE:
1) prima di cominciare è necessario essere sicuri di aver installato i pacchetti kernel-source e kernel-syms per il proprio kernel (con il gestore di pacchetti di YaST ad esempio)

2) perchè questi driver funzionino, è necessario che sia presente il modulo sdhci per il vostro kernel (nella mia SuSE sembrava fosse già installato, non ho fatto nulla per mettercelo)

3) se avete già installato i driver tifm in precedenza è necessario, prima di procedere con l'installazione dei nuovi, rimuoverli con il seguente comando:

# rm /lib/modules/`uname -r`/misc/tifm*

mi raccomando, molta attenzione a digitare il comando esattamente come lo vedete. Io al primo tentativo non l'ho fatto, e ho cancellato l'intera cartella /lib/modules/ con ovvie conseguenze sul sistema

4) per i kernel 2.6.2x, esiste una versione più aggiornata dei drivers (0.8) che potete scaricare da qui

http://developer.berlios.de/project/showfiles.php?group_id=5510

4) se doveste per sbaglio combinare il mio stesso casino (eliminare la cartella /lib/modules/), se avete installato i sorgenti del vostro kernel ve la potete cavare sempre grazie alla konsolle con i seguenti comandi (sempre come root)

# cd /usr/src/linux-2.6.18.8-0.5
# make oldconfig
# make modules
# make modules_install

l'operazione può richiedere parecchio tempo in funzione del tipo di macchina che avete. Io ci ho messo più o meno un'ora con un thurion 2ghz, 1gb di ram e un hd da 5400 rpm (su portatile). Notate che io ho il kernel 2.6.18.8-0.5, voi potreste averne un altro, dunque il primo comando sarebbe differente.

Spero di essere stato utile a qualcuno.
Ciao

###
UPDATE

Scusate ma mi sono dimenticato di citare un paio di fonti che mi sono state utili nella risoluzione del mio problema:

http://www.pc-forum24.de/13856-post2.html
http://www.linux-club.de/ftopic68370.html

anche se io di tedesco non ci capisco una mazzafionda. Ho usato all'uopo gli strumenti per le lingue di google, traducendo la pagina dal tedesco all'inglese.

aka FaithFulSoft
once MaxDev's staff developer



Ritratto di anubis
#10

Inviato da anubis il Mar, 07/08/2007 - 11:10.

Re: Soluzione: cardreader installato su Ferrari 4005 Wlmi

grandioso! ^__^

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el