Indice del forum www.zeroshell.net
Distribuzione Linux ZeroShell
 
 FAQFAQ   CercaCerca  GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo  Log inLog in   Messaggi privatiMessaggi privati 

ZS su ALIX con supporto GPIO

 
Nuovo argomento   Rispondi    Indice del forum -> Dispositivi Embedded
Precedente :: Successivo  
Autore Messaggio
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Mer Ott 24, 2012 9:38 am    Oggetto: ZS su ALIX con supporto GPIO Rispondi citando

Buon giorno a tutti.

Vorrei implementare il GPIO sulla scheda ALIX per poter svolgere alcune funzionalità "a richiesta".

Mi spiego meglio.
Vorrei implementare due funzionalità configurabili dall'esterno:
1- Attivare in fase di boot, tramite una codifica a bit su degli ingressi GPIO, un profilo o un altro.
2- Poter attivare il Client OpenVPN chiudendo un ingresso del GPIO ed avendo una retroazione su di un sua uscita. In questo caso cercherei di utilizzare due o piu ingressi per usare, ad esempio una configurazione invece di un altra e di conseguenza un accesso al Server VPN via Ethernet o UMTS.

Nel punto 2 potrei utilizzare due profili ma questo mi obbligherebbe a riavviare il dispositivo.

Idee su come procedere?

Grazie
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Mer Ott 24, 2012 9:43 am    Oggetto: Rispondi citando

Per precisare le scheda che stò usando sono una ALIX2D2 e ALIX2D3
Top
Profilo Invia messaggio privato
truthahn



Registrato: 12/06/12 11:46
Messaggi: 2225

MessaggioInviato: Mer Ott 24, 2012 8:42 pm    Oggetto: Rispondi citando

Molto molto interessante, io li ho utilizzati con OpenWrt su fonera, wrt54gl e vstation per pilotare dei relè, sono da due anni ìin funzione in un centro sociale ( www.nabuk.org/f/index.php?topic=2361.0 ). Openwrt ha gia l'eseguibile pronto al caso (gpio o gpioctl appunto) e, utilizzando i led come gpio si possono fare meraviglie ( su una vstation , trovi sempre la descrizione sul forum nabuk, arrivi a gestire una decina di uscite). Oppure ho utilizzato il bus i2c creando una schedina delle meraviglie...


1. termometro ds1621
2. rtc ds1307
3. quarzo 32786HZ
4. pcf8574 per pilotare i relè
5. pcf8574 per interfacciare la keyboard
6. pin per connettere 8 relè
7. espansione bus
8. pin per connettere la keyboard
9. resistenze di pull-up per il bus i2c
10. resistenze di pull-up per la keyboard
11. 12 V
12. 5 V
13. seriale
14. 3,3 V
15. Batteria per il RTC
16. μA78L00 -regolatore di voltaggio (12 V -> 5V)

con la quale puoi anche collegare una tastierina numerica.
Della mia esperienza, non so se applicabile anche alle alix, trovi tutto nel suddetto forum. Tienici informati. Wink
Buona sperimentazione.
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Gio Ott 25, 2012 9:43 am    Oggetto: Rispondi citando

Strada chiusa!

Ho interpellato il costruttore della scheda ALIX riguardo alla disponibilità del GPIO.
La loro risposta è stata che il GPIO è già disponibile ma è "limitato" a 3 output (i led sulla scheda) ed un input (il pulsante di "reset"). Questi segnali sono disponibili anche esternamente ma sono solo questi.

Il costruttore mi ha consigliato di utilizzare il bus I2C presente sulla scheda.
Stò andando in questa direzione.

Idee?

Grazie
Top
Profilo Invia messaggio privato
truthahn



Registrato: 12/06/12 11:46
Messaggi: 2225

MessaggioInviato: Gio Ott 25, 2012 10:06 am    Oggetto: Rispondi citando

se vuoi utilizzare gpio fai come me sul linksys... saldi sui led... hai il problema che poi li accendi e spegni tu ma quando lo sai non è un problema... oppure approfondisci i2c, con il quale usando un solo canale gestisci diversi device. Il problema con i2c è la sensibilità e la distanza tra gpio e device.
Top
Profilo Invia messaggio privato
NdK



Registrato: 27/01/10 12:36
Messaggi: 509

MessaggioInviato: Gio Ott 25, 2012 12:49 pm    Oggetto: Rispondi citando

C'è qualcosa di "precotto" per usare I2C da shell? Mi ruga un tantino realizzare un eseguibile "su misura" da ricompilare ogni volta...

PS: qualcuno sa come si chiama il connettore I2C montato sulla 2D13 (ed eventualmente dove si può trovare il "complementare" per fare un cablaggio bellino)?
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Gio Ott 25, 2012 12:59 pm    Oggetto: Rispondi citando

Il connettore del I2C è J13. Guardando nella foto del sito ALIX (http://www.pcengines.ch/alix2d13.htm) in alto prima del connettore bianco a destra e sono i pin 2 e 3.
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Gio Ott 25, 2012 2:19 pm    Oggetto: Rispondi citando

Scusa Ndk, a che cosa ti riferivi a "complementare"?
Se intendi una scheda IO che abbia l'I2C io ho trovato questa:
I2C-DigIO
che ho ordinato.
8 Ingressi ed 8 uscite a rele.

Per il programmino hai qualche esempio?
Sai se è già presente in ZS il supporto per I2C?

Ciao
Top
Profilo Invia messaggio privato
truthahn



Registrato: 12/06/12 11:46
Messaggi: 2225

MessaggioInviato: Gio Ott 25, 2012 3:17 pm    Oggetto: Rispondi citando

ciao, per la scheda se guardi quella fatta da me con meno di 10 € la costruisci. per i programmi per gestire i2c (i2cset, i2cget, i2cdump, i2cdetect... i nomi già chiariscono la funzione) si trovano i sorgenti da compilare qui: http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-3.1.0.tar.bz2
già precotto per la alix non saprei, forse su kamikaze 8.09.
Penso sarebbe interessante anche per zerotruth... si arriva e si accende al volo, o si danno regole con un tastierino numerico inserito nel coperchio...
Top
Profilo Invia messaggio privato
truthahn



Registrato: 12/06/12 11:46
Messaggi: 2225

MessaggioInviato: Gio Ott 25, 2012 3:40 pm    Oggetto: i2ctools Rispondi citando

Compilati... sembra che funzionino.
per installarli.

Codice:
cd /DB
wget http://zerotruth.net/download/i2c.tar.gz
cd /
tar zxvf /DB/i2c.tar.gz


Installa il tutto in /Database/i2c

ora bisogna attaccarci qualcosa per vedere se funzionano. Wink
Top
Profilo Invia messaggio privato
truthahn



Registrato: 12/06/12 11:46
Messaggi: 2225

MessaggioInviato: Gio Ott 25, 2012 4:59 pm    Oggetto: Rispondi citando

i moduli del kernel ci sono :
Codice:
modprobe -l | grep i2c
kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/i2c/algos/i2c-algo-pca.ko
kernel/drivers/i2c/busses/i2c-scmi.ko
kernel/drivers/i2c/busses/i2c-ali1535.ko
kernel/drivers/i2c/busses/i2c-ali1563.ko
kernel/drivers/i2c/busses/i2c-ali15x3.ko
kernel/drivers/i2c/busses/i2c-amd756.ko
kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
kernel/drivers/i2c/busses/i2c-amd8111.ko
kernel/drivers/i2c/busses/i2c-i801.ko
kernel/drivers/i2c/busses/i2c-isch.ko
kernel/drivers/i2c/busses/i2c-nforce2.ko
kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
kernel/drivers/i2c/busses/i2c-piix4.ko
kernel/drivers/i2c/busses/i2c-sis5595.ko
kernel/drivers/i2c/busses/i2c-sis630.ko
kernel/drivers/i2c/busses/i2c-sis96x.ko
kernel/drivers/i2c/busses/i2c-via.ko
kernel/drivers/i2c/busses/i2c-viapro.ko
kernel/drivers/i2c/busses/i2c-designware-pci.ko
kernel/drivers/i2c/busses/i2c-eg20t.ko
kernel/drivers/i2c/busses/i2c-gpio.ko
kernel/drivers/i2c/busses/i2c-intel-mid.ko
kernel/drivers/i2c/busses/i2c-ocores.ko
kernel/drivers/i2c/busses/i2c-pca-platform.ko
kernel/drivers/i2c/busses/i2c-simtec.ko
kernel/drivers/i2c/busses/i2c-xiic.ko
kernel/drivers/i2c/busses/i2c-diolan-u2c.ko
kernel/drivers/i2c/busses/i2c-parport.ko
kernel/drivers/i2c/busses/i2c-parport-light.ko
kernel/drivers/i2c/busses/i2c-taos-evm.ko
kernel/drivers/i2c/busses/i2c-tiny-usb.ko
kernel/drivers/i2c/busses/i2c-stub.ko
kernel/drivers/i2c/busses/scx200_acb.ko
kernel/drivers/i2c/busses/scx200_i2c.ko
kernel/drivers/i2c/muxes/gpio-i2cmux.ko
kernel/drivers/i2c/muxes/pca9541.ko
kernel/drivers/i2c/muxes/pca954x.ko
kernel/drivers/i2c/i2c-smbus.ko
kernel/drivers/i2c/i2c-dev.ko
kernel/drivers/i2c/i2c-mux.ko
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Lun Ott 29, 2012 10:17 am    Oggetto: Rispondi citando

Grazie "truthahn" delle dritte.

Concordo con te che la scheda che ho acquistato (oggi dovrebbe arrivarmi) è un po costosa. Avevo pensato di realizzarla direttamente ma ho optato per un prodotto "commerciale" per snellire un po il lavoro avendo già tante altre cose da fare e poi mi può tornare utile per altri lavori.

Ti chiedo un info
Come hai indicato tu i moduli I2C sono presenti nel kernel ma mi sorge un dubbio. Perchè se uso il comando "modprobe -l | grep i2c" mi fa vedere dei driver che non dovrebbero essere compilati nel Kernel? (
vedi)
Inoltre ho notato che, guardando nello schema elettrico della scheda ALIX (Vedi a pagina 2 in basso) è presente un sensore di temperatura in I2C. Eseguendo la scansione del bus I2C non viene rilevato alcun dispositivo. Manca il supporto per questo device?

Ciao e grazie
Top
Profilo Invia messaggio privato
NdK



Registrato: 27/01/10 12:36
Messaggi: 509

MessaggioInviato: Lun Ott 29, 2012 2:59 pm    Oggetto: Rispondi citando

VerVol ha scritto:
Scusa Ndk, a che cosa ti riferivi a "complementare"?

Al connettore femmina da attaccargli.
VerVol ha scritto:
Se intendi una scheda IO che abbia l'I2C io ho trovato questa:
I2C-DigIO
che ho ordinato.
8 Ingressi ed 8 uscite a rele.

Decisamente costosa... Io ho approfittato di un'offerta fine-serie di wispmax e ne ho presa una più limitata (4in, 4 out) ma a meno di 20€ Smile

VerVol ha scritto:
Per il programmino hai qualche esempio?
Sai se è già presente in ZS il supporto per I2C?

Avevo trovato degli esempi per usare I2C da un programma in C googlando "i2c linux" ... Appena avrò tempo (campa cavallo!) proverò coi comandi indicati da truthahn (grazie!).
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Mer Nov 07, 2012 12:40 pm    Oggetto: Rispondi citando

Laughing Laughing
E' arrivata la scheda!
Laughing Laughing

Ho collegato il tutto ma Sad Non funziona nulla!

o almeno, non sono riuscito a vederla.

Se provo il comando i2cdetect non mi trova nulla.
provando a care il comando:

Citazione:
i2cdetect -a 3 (la scheda ha indirizzo 3)

mi viene segnalato un errore:
Citazione:
Error: Could not open file `/dev/i2c-3' or `/dev/i2c/3': No such file or directory

effettivamente i file / directory non esistono.

Idee?
Non è che manca qualche operazione di inizializzazione in linux?
Top
Profilo Invia messaggio privato
zagroMod



Registrato: 20/11/12 12:02
Messaggi: 1

MessaggioInviato: Mar Nov 20, 2012 12:32 pm    Oggetto: Rispondi citando

Premetto che non ho una risposta ma che ho qualche dato in piu da buttare nel calderone...

Ho fatto qualche prova su di una scheda ALIX2D2, tentando di vedere il sensore di temperatura I2C embedded e collegando al bus I2C un I2C-DigIO (basato su chip pca9555)...

Per quanto riguarda zeroshell (con gli i2c-tools gentilmente compilati da truthahn) devo confermare il problema segnalato da VerVol:

i2cdetect non trova alcun bus i2c:

Codice:

root@dnat1 root> i2cdetect -l
root@dnat1 root>


Provando ad effettuare uno scan completo con sensors-detect il risultato e' ancora piu' deludente:

Codice:

root@dnat1 root> sensors-detect
No i2c device files found. Use prog/mkdev/mkdev.sh to create them.


Notare che mkdev.sh non e' neppure presente sul sistema, quindi la risposta da ben poche speranze di poter trovare una soluzione...

Comunque, nel timore che il mio problema fosse hardware, ho effettuato le stesse prove caricando sulla ALIX2D2 una distro Ubunto... e qui i risultati si vedono eccome...

Effettuando uno scan di tutti i bus con sensors-detect il bus i2c ed il sensore di temperatura vengono trovati perfettamente:

Codice:

alix-rescue ~ # sensors-detect                                                                                                                                                                                                   
# sensors-detect revision 5818 (2010-01-18 17:22:07 +0100)                                                                                                                                                                       
                                                                                                                                                                                                                                 
This program will help you determine which kernel modules you need                                                                                                                                                               
to load to use lm_sensors most effectively. It is generally safe                                                                                                                                                                 
and recommended to accept the default answers to all questions,                                                                                                                                                                   
unless you know what you're doing.                                                                                                                                                                                               
                                                                                                                                                                                                                                 
Some south bridges, CPUs or memory controllers contain embedded sensors.                                                                                                                                                         
Do you want to scan for them? This is totally safe. (YES/no):                                                                                                                                                                     
Silicon Integrated Systems SIS5595...                       No                                                                                                                                                                   
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
Intel Core family thermal sensor...                         No
Intel Atom thermal sensor...                                No
Intel AMB FB-DIMM thermal sensor...                         No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no):
Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (YES/no):
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no):
Using driver `scx200_acb' for device 0000:00:0f.0: CS5536 [Geode companion] ISA
Module scx200_acb loaded successfully.

Next adapter: CS5536 ACB0 (i2c-0)
Do you want to scan it? (YES/no/selectively):
Client found at address 0x4c
Probing for `National Semiconductor LM75'...                No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `Analog Devices ADT7466'...                     No
Probing for `Andigilog aSC7511'...                          No
Probing for `Dallas Semiconductor DS1621/DS1631'...         No
Probing for `Analog Devices ADM1021'...                     No
Probing for `Analog Devices ADM1021A/ADM1023'...            No
Probing for `Maxim MAX1617'...                              No
Probing for `Maxim MAX1617A'...                             No
Probing for `Maxim MAX1668'...                              No
Probing for `Maxim MAX1805'...                              No
Probing for `Maxim MAX1989'...                              No
Probing for `Maxim MAX6655/MAX6656'...                      No
Probing for `TI THMC10'...                                  No
Probing for `National Semiconductor LM84'...                No
Probing for `Genesys Logic GL523SM'...                      No
Probing for `Onsemi MC1066'...                              No
Probing for `Maxim MAX1618'...                              No
Probing for `Maxim MAX1619'...                              No
Probing for `National Semiconductor LM82/LM83'...           No
Probing for `National Semiconductor LM90'...                No
Probing for `National Semiconductor LM89/LM99'...           No
Probing for `National Semiconductor LM86'...                Success!
    (confidence 8, driver `lm90')
Probing for `Analog Devices ADM1032'...                     No
Probing for `Maxim MAX6654/MAX6690'...                      No
Probing for `Maxim MAX6657/MAX6658/MAX6659'...              No
Probing for `Maxim MAX6648/MAX6649/MAX6692'...              No
Probing for `Maxim MAX6680/MAX6681'...                      No
Probing for `Winbond W83L771W/G'...                         No
Probing for `Winbond W83L771AWG/ASG'...                     No
Probing for `Texas Instruments TMP401'...                   No
Probing for `Texas Instruments TMP411'...                   No
Probing for `Texas Instruments TMP421'...                   No
Probing for `Texas Instruments TMP422'...                   No
Probing for `Texas Instruments TMP423'...                   No
Probing for `Texas Instruments AMC6821'...                  No
Probing for `National Semiconductor LM63'...                No
Probing for `Fintek F75363SG'...                            No
Probing for `National Semiconductor LM73'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Probing for `Analog Devices ADT7461'...                     No
Probing for `Analog Devices ADT7481'...                     No
Probing for `Fintek F75383S/M'...                           No

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

Driver `lm90':
  * Bus `CS5536 ACB0'
    Busdriver `scx200_acb', I2C address 0x4c
    Chip `National Semiconductor LM86' (confidence: 8)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
lm90
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!

Do you want to add these lines automatically to /etc/modules? (yes/NO)

Unloading scx200_acb... OK


Ho quindi caricato manualmente il modulo trovato:

Codice:

alix-rescue ~ # modprobe scx200_acb


A questo punto ho correttamente rilevato gli apparati i2c con i2cdetect:

Codice:

alix-rescue ~ # i2cdetect -l
i2c-0   smbus           CS5536 ACB0                             SMBus adapter
alix-rescue ~ # i2cdetect -a 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x00-0x7f.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- 25 -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


All'indirizzo 0x25 c'e' la mia scheda DigIO ed all'indirizzo 0x4c il sensore embedded...

Il fatto che il sensore sia segnalato come busy e non leggibile e' perche' e' gia' stato preso in carico dal sistema lm-sensore, difatti posso interrogarlo con gli strumenti relativi:

Codice:

alix-rescue ~ # sensors
lm86-i2c-0-4c
Adapter: CS5536 ACB0
temp1:       +32.0°C  (low  =  +0.0°C, high = +70.0°C) 
                      (crit = +85.0°C, hyst = +75.0°C) 
temp2:       +37.5°C  (low  =  +0.0°C, high = +70.0°C) 
                      (crit = +85.0°C, hyst = +75.0°C) 


Con i2cget, invece, posso correttamente interrogare il mio DigIO:

Codice:

alix-rescue ~ # i2cget 0x00 0x25 0 w
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will read from device file /dev/i2c-0, chip address 0x24, data address
0x00, using read word data.
Continue? [Y/n] y
0x00ff


Inutile dirvi che, scoperto quale sia il modulo relativo al bus i2c (il scx200_acb.ko) ho provato ha ricaricare zeroshell ed a caricarlo manualmente via modprobe ma i risultati sono purtroppo gli stessi sopra indicati...

zeroshell ha esattamente le caratteristiche che mi servono e sinceramente non vorrei dover adattare un'altra distro per sostituirlo ma avrei l'assoluta necessita' di far funzionare il bus i2c... qualcuno ha altre idee?
Top
Profilo Invia messaggio privato
VerVol



Registrato: 24/10/12 07:43
Messaggi: 8

MessaggioInviato: Mer Nov 21, 2012 2:33 pm    Oggetto: Rispondi citando

Grazie zagroMod, ho rifatto anch'io la prova su <alix-rescue> ed effettivamente funziona anche con il mio device I2C.

Attendo anch'io idee.

Grazie
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Dispositivi Embedded Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it