# [HOWTO] Supporto i2c con il Kernel 2.6

## -YoShi-

Dato che con la versione 2.6 del kernel il supporto i2c è stato inserito nel kernel, installare il supporto i2c non è mai stato così facile.

Non avrete bisogno infatti di emergere nessun programma, se non quello che vi mostri ciò che i nostri sensori hanno da dirci.

Guida rapida:

- Scaricate la versione 2.6 del kernel 

Se non lo avete già fatto potete usare: "gentoo-dev-sources", "development-sources" oppure "mm-sources"

- Adesso basta entrare nel menu di configurazio del kernel e, semplicemente aggiungere come moduli alcuni componenti.

```

- Selezionate I2C Support <M> e I2C device interface <M> come modulo

Device Drivers -> Character Devices -> I2C)

[M]I2C support

  ->[M]I2C device interface

```

- Selezionate da I2C Hardware Bus support in base al vostro hardware (basta guardare direttamente sulla motherboard, oppure sul manuale della stessa).

N.B. Di fianco al nome in grassetto avrete tra parentesi il nome del modulo. Annotatelo su un pezzo di carta. Es. ISA Bus support (isa_bus).

```

I2C support ->

I2C Hardware Bus support ->

[M] ISA Bus support <- Nel mio caso (sempre compilato come modulo)

```

- Selezionate anche da I2C Hardware Sensors Chip support il, o i sensori che vi interessano (e aggiungeteli come modulo)

```

I2C support ->

I2C Hardware Sensors support ->

[M] Winbond W83781D, W83782D, W83783S, W83627HF, Asus AS99127F             <- Nel mio caso

```

- come utente root date un:

```

mkdir /sys

```

In modo da creare /sys (sempre che già non esista).

- Compilate il vostro nuovo kernel, installatelo in /boot e infine riavviate.

```

#make && make modules_install

#mount /boot                            <- sempre che /boot non sia già montato

#make install

#shutdown -r now

```

- Adesso entrate nel sistema come root e date:

```

#modprobe i2c_core

#modprobe i2c_dev

---

Nel mio caso

---

#modprobe i2c_isa

#modprobe i2c_sensor

#modprobe w83781d

```

Se tutto è andato a buon fine, si dovrebbe avere qualcosa come questo:

```

bash-2.05b# ls /sys/bus/i2c/devices/

0-0290

bash-2.05b# ls /sys/bus/i2c/devices/0-0290/

alarms        fan_min1   in_input7  in_max8  name         temp_input3

beep_enable   fan_min2   in_input8  in_min0  power        temp_max1

beep_mask     fan_min3   in_max0    in_min1  pwm1         temp_max2

detach_state  in_input0  in_max1    in_min2  pwm2         temp_max3

fan_div1      in_input1  in_max2    in_min3  pwm_enable2  temp_min1

fan_div2      in_input2  in_max3    in_min4  sensor1      temp_min2

fan_div3      in_input3  in_max4    in_min5  sensor2      temp_min3

fan_input1    in_input4  in_max5    in_min6  sensor3      vid

fan_input2    in_input5  in_max6    in_min7  temp_input1  vrm

fan_input3    in_input6  in_max7    in_min8  temp_input2

bash-2.05b#

```

Se non si ha un output simile a questo, probabilmente i moduli non sono stati caricati in modo corretto, o sono stati caricati i moduli sbagliati.

Per correggere l'errore basta provare ad attivare [M] tutti i sensori presenti in I2C Hardware Sensors Chip. Ricordate di segnarvi i nomi dei moduli. 

Caricatene uno a uno in modo da vedere quali moduli danno un output simile a quello riportato sopra.

N.B. "i2c_core" e "i2c_dev" vanno sempre lasciati caricati

N.B. Se anche provando tutti i moduli in I2C Hardware Sensors Chip non dovesse succedere nulla, assicuratevi di avere caricato il tipo di bus corretto per la vostra scheda madre.

```

I2C Hardware Bus support

```

Moduli usati dal sistema con una scheda madreGigabyte - Intel i845 (la mia)

```

bash-2.05b# lsmod | grep i2c

i2c_sensor              3200  1 w83781d

i2c_isa                 2176  0

i2c_dev                11392  0

i2c_core               25860  4 w83781d,i2c_sensor,i2c_isa,i2c_dev

bash-2.05b#

```

E quelli usati nell'HOWTO originale, da una VIA KT400

```

Code:

fuero@bmfh fuero $ lsmod | grep i2c

i2c_viapro              5900  0

i2c_isa                 1664  0

i2c_sensor              2368  1 w83781d

i2c_core               21256  4 w83781d,i2c_viapro,i2c_isa,i2c_sensor

```

Una volta che sarete riusciti a stabilire i corretti moduli da usare portreste facoltativamente

ricompilare il kernel solo con i moduli necessari

Per finire potete inserirli in:

```

/etc/modules.autoload.d/kernel-2.6

```

In modo che si carichino ad ogni boot. Ed emergere gkrellm2.

Topic originale:

https://forums.gentoo.org/viewtopic.php?t=101573

Tradotto e aggiornato da Roberto -YoShi-

EDIT: Ho aggiunto HOWTO, mi ero dimenticato e me ne sono accorto solo ora   :Rolling Eyes: Last edited by -YoShi- on Tue Dec 16, 2003 9:57 pm; edited 1 time in total

----------

## xlyz

un altra guida???

di a tua mamma/moglie/compagna di mettere meno pepe nelle pietanze!!   :Very Happy: 

cmq grazie. passo subito a mettere in pratica ...

----------

## -YoShi-

 *xlyz wrote:*   

> un altra guida???
> 
> di a tua mamma/moglie/compagna di mettere meno pepe nelle pietanze!!  
> 
> cmq grazie. passo subito a mettere in pratica ...

 

No è tutta colpa di quest'aria maledetta che mi fa venire il mal di testa...così non riuscendo a giocare a NeverwinterNight...

----------

## xlyz

non riesco a farlo fungere

qualcuno sa cosa devo fare per uno shuttle ss51? il chipset e' un sis 651/962

EDIT

trovati.

```
lsmod | grep i2c

i2c_sensor              2560  1 it87

i2c_isa                 1792  0 

i2c_dev                 8448  0 

i2c_core               20740  4 it87,i2c_sensor,i2c_isa,i2c_dev

```

----------

## -YoShi-

E' il Bus che è sbagliato, prova uno dei Sis che propone il kernel tipo questo

SiS 96x (I2C_SIS96X)

i2c_sis96x

Al max dai un occhio qua.

http://www2.lm-sensors.nu/~lm78/newdrivers.html

----------

## xlyz

con i vari sisxxx non funge

con i2c-isa si 

solo che alcuni valori sono sballati (da riparametrizzare) e soprattutto mi ha fatto partire la ventola a mille

mi sa che per adesso ritolgo tutto

----------

## -YoShi-

Ti hanno fatto partire la ventola a 1000??? 

Perchè? in teoria dovrebbero soltanto limitarsi a leggere i dati dall'hardware non modificarli...

con la mia 845 non ha dato problemi di sorta, stessi valori sia in Gkrellm che nel BIOS...

----------

## xlyz

 *-YoShi- wrote:*   

> Ti hanno fatto partire la ventola a 1000??? 

 

yesss

per l'esattezza a 3500

ed e' ancora li' che gira

mi sa che mi tocca reboottare (ma guarda un po'   :Confused:  )

----------

## -YoShi-

Bhè nn vedo il problema... la mia viaggia a 3250... a meno che tu non abbia una ventola a basso rpm la velocità in genere è quella 3200/3500...

----------

## xlyz

la mia di solito e' al minimo (2000 o 2500, non ricordo) e spara solo se compilo o mi faccio una partita a et

----------

## -YoShi-

Probabilmente ci sarà qualcosa dal BIOS che in base al carico sulla CPU fa accelerare le ventole o decelerare quando il processore lavora poco...

La mia resta sempre fissa, se voglio diminuire/aumentare la velocità devo farlo con dei programmini (o meglio dovevo visto che per linux non li ho ancora trovati), non la posso variare neanche da BIOS

----------

## xlyz

 *-YoShi- wrote:*   

> Probabilmente ci sarà qualcosa dal BIOS che in base al carico sulla CPU fa accelerare le ventole o decelerare quando il processore lavora poco...

 

yep

se la cpu supera una certa temperatura (configurabile) aumenta la velocità

solo che quei cari sensori devono aver toccato uno dei due valori

----------

## -YoShi-

Probabilmente è il modulo del sensore che è sbagliato, nel link che ti ho segnalato per il tuo chipset dovresti usare questo modulo

i2c-sis645

Solo che io con la development-sources 2.6-test-11 nel config non ce l'ho, non so con le altre versioni, altrimenti dovresti patcharlo.

http://www2.lm-sensors.nu/~lm78/newdrivers.html

----------

## xlyz

 *Quote:*   

> Modules will not compile on 2.5/2.6 kernels. 

 

 :Confused:   :Sad: 

----------

## flocchini

Ho seguito alla lettera la tua guida ma i miei sensori finiscono sotto /dev   :Shocked: 

```
i2c_i801                8268  0

i2c_piix4               7744  0

eeprom                  7296  0

i2c_sensor              3104  1 eeprom

i2c_isa                 2112  0

i2c_dev                11232  0

i2c_core               25924  6 i2c_i801,i2c_piix4,eeprom,i2c_sensor,i2c_isa,i2c_dev

 
```

```
ls /dev/i2c

0  1

 
```

mentre /sys e' vuota.

La mobo e' una intel D815EEA, sono sicuro praticamente al 100% dei moduli che carico

Che succede secondo voi?

----------

## -YoShi-

In /dev ce li ho anche io (credo sia normale)

 *flocchini wrote:*   

> 
> 
> mentre /sys e' vuota.
> 
> 

 

Che significa vuota? vuota di tutto quello che dovrebbe esserci o vuota solo la cartella

/sys/bus/i2c/devices/ ?

----------

## flocchini

/sys e' d e s e r t a   

Cosa dovrei averci?   :Shocked: 

----------

## -YoShi-

Come DESERTA?

Comunque credo più o meno una roba così:

```

bash-2.05b# ls /sys/*

/sys/block:

fd0    nbd10   nbd113  nbd127  nbd26  nbd4   nbd53  nbd67  nbd80  nbd94  ram3

hda    nbd100  nbd114  nbd13   nbd27  nbd40  nbd54  nbd68  nbd81  nbd95  ram4

hdb    nbd101  nbd115  nbd14   nbd28  nbd41  nbd55  nbd69  nbd82  nbd96  ram5

hdc    nbd102  nbd116  nbd15   nbd29  nbd42  nbd56  nbd7   nbd83  nbd97  ram6

hdd    nbd103  nbd117  nbd16   nbd3   nbd43  nbd57  nbd70  nbd84  nbd98  ram7

loop0  nbd104  nbd118  nbd17   nbd30  nbd44  nbd58  nbd71  nbd85  nbd99  ram8

loop1  nbd105  nbd119  nbd18   nbd31  nbd45  nbd59  nbd72  nbd86  ram0   ram9

loop2  nbd106  nbd12   nbd19   nbd32  nbd46  nbd6   nbd73  nbd87  ram1

loop3  nbd107  nbd120  nbd2    nbd33  nbd47  nbd60  nbd74  nbd88  ram10

loop4  nbd108  nbd121  nbd20   nbd34  nbd48  nbd61  nbd75  nbd89  ram11

loop5  nbd109  nbd122  nbd21   nbd35  nbd49  nbd62  nbd76  nbd9   ram12

loop6  nbd11   nbd123  nbd22   nbd36  nbd5   nbd63  nbd77  nbd90  ram13

loop7  nbd110  nbd124  nbd23   nbd37  nbd50  nbd64  nbd78  nbd91  ram14

nbd0   nbd111  nbd125  nbd24   nbd38  nbd51  nbd65  nbd79  nbd92  ram15

nbd1   nbd112  nbd126  nbd25   nbd39  nbd52  nbd66  nbd8   nbd93  ram2

/sys/bus:

eisa  i2c  ide  pci  platform  pnp  scsi  usb

/sys/cdev:

dev.console  dev.ptmx  dev.tty  dev.vc0  major  tty

/sys/class:

i2c-adapter  i2c-dev  input  net  scsi_device  scsi_host  tty  usb  usb_host

/sys/devices:

legacy  pci0000:00  pnp0  pnp1  system

/sys/firmware:

acpi

/sys/power:

disk  state

bash-2.05b#

```

Sei sicuro di aver compilato il kernel nel modo giusto? hai seguito la guida al passaggio al 2.6

su gentoo.it?

----------

## flocchini

Ho seguito la guida passo passo, e il kernel funge perfettamente... tuttavia /sys e' deserta e lo e' sempre stata da quando ho cambiato kernel (ho fatto un make oldconfig e ho sistemato cosi' la configurazione)... /sys resta vuota.

A sto punto mi viene il dubbio di aver toppato qsa nella config del kernel.. O_o

----------

## mrgamer

io ho compilato nel kernel i sensori i2c per la mia mobo (Epox nforce2)<

ma.. usando "modprobe xxx" non mi trova nulla, forse xke io non li ho compilati come moduli   :Confused: 

io ODIO i moduli.. c'è un modo per farlo andare anche senza compilare i sensori i2c come moduli?

----------

## d3vah

 *mrgamer wrote:*   

> io ho compilato nel kernel i sensori i2c per la mia mobo (Epox nforce2)<
> 
> ma.. usando "modprobe xxx" non mi trova nulla, forse xke io non li ho compilati come moduli  
> 
> io ODIO i moduli.. c'è un modo per farlo andare anche senza compilare i sensori i2c come moduli?

 

Io li ho messi come statici e funge tutto bene e ho un asus nforce 1

----------

## Naspe

Ciao,

Ho seguito la guida, modprobato i vari moduli... ma la dir /sys/bus/i2c/devices è vuota...

Gkrellm vede solo il sensore della temperatura...

Ma lm_sensors nn va piu messo?

Io ricordo che lm_sensors mi faceva caricare anche un modulo i2c-sis645 che xò ora nn ho piu... puo essere questo il problema?

----------

## Naspe

Ups... ho trovato quel modulo...  :Smile: 

ora ho 2 dir in quella cartella: 

```

plutone devices # ls

1-004c  1-0050

```

```

plutone 1-004c # ls

alarms        name   temp_input1  temp_max1  temp_min1

detach_state  power  temp_input2  temp_max2  temp_min2

```

```

plutone 1-0050 # ls

detach_state  eeprom  name  power

```

Bene. Che è sta roba piu o meno? Qualche anima pia me lo spiega un po plz  :Smile:  ?

Poi... Gkrellm vede sempre solo le temperature... xò ora ne vede 3 di cui 2 uguali...

2 sono quelle della cartella 1-004c, sono temp1 e temp2... una credo sia il processore e l'altra la mainboard... possibile? (ricordo che il mio picci è un notebook...)

lL'altra temp che becca è thermal_zone/THRM che credo sia sempre il processore...

L'unica cosa è che non ho i voltaggi.... come posso fare?

----------

## -YoShi-

 *Naspe wrote:*   

> Ciao,
> 
> Ho seguito la guida, modprobato i vari moduli... ma la dir /sys/bus/i2c/devices è vuota...
> 
> Gkrellm vede solo il sensore della temperatura...
> ...

 

Ciao, Lm-sensors non va più messo, in quanto è stato integrato nel kernel come ALSA.

Il tuo problema è lo stesso che aveva "xlyz", infatti i sensori dei chipset SIS sono poco supportati.

Dai un occhio qua comunque

Lm-Sensors

Ciao

----------

## iDreamer

dal manuale della mia scheda madre che è VIA APOLLO PRO FAMILY CHIPSET si legge che come chipset monta:VT82C694X(VIA APOLLO 133A) E VT82C686A

caricando i moduli secondo me più oppurtuni: 

```
Module                  Size  Used by

i2c_dev                10688  0 

via686a                20004  0 

i2c_viapro              6860  0 

i2c_isa                 1856  0 

i2c_sensor              2880  1 via686a

i2c_core               25444  5 i2c_dev,via686a,i2c_viapro,i2c_isa,i2c_sensor

snd_pcm_oss            54052  0 

snd_mixer_oss          19552  2 snd_pcm_oss

usblp                  13152  0 

hid                    25184  0 

sr_mod                 17536  0 

uhci_hcd               32776  0 

sg                     38892  0 

usb_storage            28128  0 

ide_scsi               15268  0 

apm                    17864  1 

vfat                   15648  0 

fat                    46304  1 vfat

```

la cartella e /sys/bus/i2c/device è vuota anche se esiste invece nella cartella /dev/i2c ci sono due file 0 e 1...

dove posso aver sbagliato? i moduli caricati vanno bene?suggerimenti?

ciao e grazie

iDreamer

----------

## mrgamer

il problema è che per ora solo il 27% dei sensori sono stati convertiti al 2.6 :°

a me come sensori mi trova solo thrm_TEMP che viene letto direttamente dall'ACPI.. anche se lo stesso ACPI dovrebbe fornire tutte le info quali ventole, temperature & co...

per ora legge solo la temp della CPU... cmq ho ovviato tramite xmbmon... 

il problema è che non è assolutamente supportato da programmi come gkrellm :°°°

----------

## theRealMorpheu5

ASUS A7V8X-X, kernel 2.6.5-gentoo. Non ho ancora emerso Gkrellm - lo faccio mò - ma la /sys/bus/i2c/devices è vuota. Ho provato col w83781d, col via 686a e col asb100 ma niente da fare. Idee?

----------

## mambro

Io ho un pc di quelli preassemblati della compaq, ho cercato ovunque ma nn trovo il nome della mia scheda madre... c'è un modo per saperlo tramite qualche programma?

----------

## koma

prova a guardare all'avvio del pc (con l'ausilio del magico pulsantino pausa (interr) in alto a destra dopo stamp e bloc scorr ) la versione del bios

e cercare quel nome su google

chissà potresti avere fortuna

----------

## mambro

 *koma wrote:*   

> prova a guardare all'avvio del pc (con l'ausilio del magico pulsantino pausa (interr) in alto a destra dopo stamp e bloc scorr ) la versione del bios
> 
> e cercare quel nome su google
> 
> chissà potresti avere fortuna

 

All'avvio del pc c'è solo un'enorme scritta compaq, poi parte lilo. premendo canc viene fuori qualcosa tipo "centro di controllo compaq" che ha le opzioni base di un bios (tipo la sequenza di boot). Ho provato anche a vedere sulla scheda madre ma c'è solo una specie di codice seriale di 10 cifre circa che ho cercato su google senza risultati.. So però con certezza che il chipset è un  via VT82C686

----------

## fedeliallalinea

Riapro questo topic perche' non riesco a fare funzionare con lm-sensor le temperature. Ho seguito la guida ma ma quando do sensors mi appare solo questo

```
eeprom-i2c-1-51

Adapter: SMBus Via Pro adapter at 5000

Memory type:            DDR SDRAM DIMM

Memory size (MB):       256

eeprom-i2c-1-50

Adapter: SMBus Via Pro adapter at 5000

Memory type:            DDR SDRAM DIMM

Memory size (MB):       512

Temic-i2c-0-60

Adapter: bt848 #0 [sw]
```

Non mi fa vedere le temperature varie, devo dire che lo stesso pc con kernel 2.4 funzionava benissimo. Qualcuno ha qualche idea?

----------

## theRealMorpheu5

Riesumo il topic per chiedere se qualcuno mi fa un elenco dei vari programmini carini per vedere i sensori. Conosco ed apprezzo gkrellm2 però se ci fosse qualcosa di più... eye-catching per kde (magari non suxkaramba che... sux parecchie risorse  :Smile:  )

----------

## fedeliallalinea

```
*  app-misc/ksensors

      Latest version available: 0.7.2

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 721 kB

      Homepage:    http://ksensors.sourceforge.net/

      Description: KSensors - a nice lm_sensors frontend for KDE

*  x11-misc/xsensors

      Latest version available: 0.20

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 104 kB

      Homepage:    http://www.linuxhardware.org/xsensors

      Description: A hardware health information viewer, interface to lm-sensors

*  x11-plugins/wmalms

      Latest version available: 1.0.0a-r1

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 51 kB

      Homepage:    http://www.geocities.com/wmalms

      Description: wmalms X-windows hardware sensors applet

*  x11-plugins/wmsensormon

      Latest version available: 1.2_beta

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 25 kB

      Homepage:    http://wmsensormon.sourceforge.net

      Description: WindowMaker DockApp: Monitors sensors using lm_sensors

*  x11-plugins/wmmsens

      Latest version available: 0.29.6

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 30 kB

      Homepage:    http://www.digressed.net/wmmsens/

      Description: Window Maker dock app for monitoring your motherboard's hardware sensors

```

E poi ci sono i vari plug-in per karamba e gdesklet

----------

## Tintenstich

A me proprio non vuole funzionare......

dopo aver dato il comando #sensors 

 risponde con un bel "No sensors found!"

qui i miei moduli:

Module                  Size  Used by

i2c_isa                 1920  0

via686a                17800  0

i2c_viapro              6156  0

i2c_sensor              2688  1 via686a

i2c_dev                 8064  0

i2c_core               18180  5 i2c_isa,via686a,i2c_viapro,i2c_sensor,i2c_dev

Qualche suggerimento? Approposito , mobo : ECS k7vza.....

#######

Ho risolto , grazie lo stesso!

----------

