Temat: Problem z instalacja pakietu kmod-w1-master-gpio

Witam
Próbuję zainstalować potrzebne pakiety do pomiaru temperatury po 1wire i przy próbie instalacji pakietu kmod-w1-master-gpio wyskakuje mi taki blad.
Wobec tego próbowałem zainstalować go z tych co mi się utworzyły przy kompilacji ale dalej to samo.
Co robię źle. Poniżej zamieszczam zrzut z próby


root@OpenWrt:/www/packages# opkg install /www/packages/kmod-w1-master-gpio_2.6.3
2.27-1_adm5120_mipsel.ipk
Installing kmod-w1-master-gpio (2.6.32.27-1) to root...
Collected errors:
* opkg_install_pkg: Package kmod-w1-master-gpio md5sum mismatch. Either the opkg or the package index are corrupt. Try 'opkg update'.
* opkg_install_cmd: Cannot install package kmod-w1-master-gpio.

2

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Trzeba było opkg update nie robić. Masz dwa pakiety o takim samym numerze i innych sumach kontrolnych.

rm /tmp/opkg-lists/*

i ponów instalację.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez viper_lasser 2011-03-03 21:38:19)

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Dzięki Cezary - rzeczywiście tak było - w repozytorium były starsze wersje pakietów

Mam kolejny problem - chciałbym zobaczyć wskazania temperatury
W routerze edimax br6104kp do + diody D4 podłączyłem środkowy piny z ds1820, zasilanie pod 3,3V - pin 2 z JP2 a masę - z pinu 8, oczywiście z 3,3V dałem rezystor 5,1Ohm bo tylko taki miałem - wiem że powinien być ok 3,3Ohm

Po wpisaniu komendy
# cat /sys/bus/w1/drivers/w1_slave_driver/*/w1_slave

niestety nie widzę żadnego czujnika. Co jest nie tak
Oczywiście lecę wg tutoriala http://eko.one.pl/?p=openwrt-gpio2#magistaralawire

Ściągawkę z numerami wolnych pinów znazłem na projekcie squidge
GPIO Pins http://squidge.sourceforge.net/gpio/

On the board, LED pins used for link status are marked D3-12. There are two more marked D15, D16,
which are the USB port status. Below is the list of kernel-defined pins, and their corresponding board
markings:
Pin kernel name pin ID Board marking
ADM5120_GPIO_PIN0 0 D13 (Power)
ADM5120_GPIO_PIN1 1 D15 (USB)
ADM5120_GPIO_PIN2 2
ADM5120_GPIO_PIN3 3 D16 (USB)
ADM5120_GPIO_PIN4 4
ADM5120_GPIO_PIN5 5
ADM5120_GPIO_PIN6 6
ADM5120_GPIO_PIN7 7
ADM5120_GPIO_P0L0 8 D3
ADM5120_GPIO_P0L1 9 D4
ADM5120_GPIO_P0L2 10
ADM5120_GPIO_P1L0 11 D5
ADM5120_GPIO_P1L1 12 D6
ADM5120_GPIO_P1L2 13
ADM5120_GPIO_P2L0 14 D7
ADM5120_GPIO_P2L1 15 D8
ADM5120_GPIO_P2L2 16
ADM5120_GPIO_P3L0 17 D9
ADM5120_GPIO_P3L1 18 D10
ADM5120_GPIO_P3L2 19
ADM5120_GPIO_P4L0 20 D11
ADM5120_GPIO_P4L1 21 D12
ADM5120_GPIO_P4L2 22

Swój czujnik podłączyłem pod + (sygnał danych) od Diody D4, z rozpiski wynika ze numer pinu jest 9
więc po wpisaniu
root@OpenWrt:/sys/bus/w1# insmod w1-gpio-custom bus0=0,9,0
insmod: can't insert 'w1-gpio-custom': File exists

dostaję komunikat że gpio jest już zajęte więc zpróbowałem uwolnić ten pin
poprzez analogię do tutoriala ze strony http://squidge.sourceforge.net/gpio/
ale coś nie widzę tego pinu.... sad

root@OpenWrt:/sys/class/gpio# echo 9 > /sys/class/gpio/export
root@OpenWrt:/sys/class/gpio# ls
export     gpiochip0  gpiochip8  unexport
root@OpenWrt:/sys/class/gpio#

4

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Przez diody. Nie możesz go użyć - wywal najpierw obsługę diody #9 z kompilacji  z systemu, albo znajdź inne wolne niezajęte gpio.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Może się ośmieszę ale jak wywalić obsługę diody z systemu ?

6

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

W źródłach danej platformy pin9 jest wykorzystany do diody. Musisz zakomentować wszystko, skompilować i masz wolne gpio.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

W folderze trunk/target/linux/adm5120 jest pare folderow i plikow ale nie moglem znalesc pinu 9
Moze jakas mala podpowiec w postaci polecenia ala grep ?

Jeśli znajdę pin9 i go wyłącze z obsługi systemu to czy po wgraniu nowej wersji firmware'u czujnik będzie widoczny po wpisaniu tego polecenia
# cat /sys/bus/w1/drivers/w1_slave_driver/*/w1_slave

Z tego powodu ze ten moj pin9 jest uzyty do sterowania dioda D4 - pin9 wystepowal mi ten blad
root@OpenWrt:/sys/bus/w1# insmod w1-gpio-custom bus0=0,9,0
insmod: can't insert 'w1-gpio-custom': File exists

?

8

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Definicji ADM5120_GPIO_P0L1   szukaj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez viper_lasser 2011-03-03 22:20:46)

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Nie moge tego znalesc wpisujac
grep "ADM5120_GPIO_P0L1" ./*

Jak to mogę znaleźć ?

Edit: juz mam, trzeba rekurencyjnie
grep -r "ADM5120_GPIO_P0L1" ./

10

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

W jaki sposób mogę zakomnetować ten pin tak żeby nie brał aktywnie udziału
Jak np znalazłem jego definicje tutaj
./target/linux/adm5120/files/arch/mips/include/asm/mach-adm5120/gpio.h:#define ADM5120_GPIO_P0L1    9

to da rade jakoś podać fikcyjny pin tak żebym nie musiał komentować wszędzie wywołania ADM5120_GPIO_P0L1 ?

11

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Możesz i tak...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez viper_lasser 2011-03-03 22:46:37)

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

W tym pliku gpio.h sa dokladnie takie same definicje jak na stronie projektu squidge

Jaki nalezy podac fikcyjny adres pinu zeby nie spowodowac zwieszenia sie routera ?
Jezeli zmienie np adres 9 na 255 to moge odrazu wykonac make w folderze /trunk czy jeszcze cos innego musze wpisac przed kompilacja ?

13

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

make target/linux/clean. Szczerze nie wiem czy sie nie wyłoży na tym 255 jak będzie próbował to zainicjować. Sprawdź jak na adm5120 się to zachowa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

zaraz bede testowal
a Ty jak Cezary zwalniales uzyte diody ?
Wyszukiwales w plikach *.c i *.h odpowiednie definicje danego pinu i je komentowales - np komendy co korzystaly z tych pinow
Jak je wyszukiwales - poprzz grep -r "nazwa_pinu /sciezka
?

15

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Dla ar71xx jest prościej bo to tylko w jednym miejscu jest dla danej platformy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Zmiana ADM5120_GPIO_P0L1 z 9 na 255 nie poskutkowała niestety - system przy bootowaniu sie wywalal
./target/linux/adm5120/files/arch/mips/include/asm/mach-adm5120/gpio.h:#define ADM5120_GPIO_P0L1    9

wobec tego zmieniłem tą 9 na 21 - czyli na ostatnią diodę i system się uruchomił

Mam poinstalowane wszystkie pakiety do pomiaru temperatury po 1wire
# opkg install kmod-w1 kmod-w1-master kmod-w1-gpio-custom

Dla czujnika pod gpio9 wpisałem to
root@OpenWrt:/sys/bus/w1/drivers/w1_slave_driver# insmod w1-gpio-custom bus0=0,9
,0
Custom GPIO-based W1 driver version 0.1.1
root@OpenWrt:/sys/bus/w1/drivers/w1_slave_driver#

i wyskoczył mi komunikat komunikat o poprawnym załadowaniu sterownika
ale po wpisaniu komendy do odczytu temperatury

# cat /sys/bus/w1/drivers/w1_slave_driver/*/w1_slave
nic nie ma

root@OpenWrt:/sys/bus/w1/drivers/w1_slave_driver# # cat /sys/bus/w1/drivers/w1_s
lave_driver/*/w1_slave
root@OpenWrt:/sys/bus/w1/drivers/w1_slave_driver#


Co mogę jeszcze sprawdzić ?

17

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Podłącz czujnik odpowiednio. nie parasite, jeżeli masz tam tylko 3.3v

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

W jaki sposób podłączyć czujnik bezpośrednio - tzn nie w trybie parasite czyli pasożytniczym.
Pomiędzy VCC i DATA ma wpięty rezystor 5,1Ohm, odpiąć go ?
Przy diodzie D4 były 2 nóźki, gdzie przy D4 był +
Nie mam pewności że jest dobrze ten sygnał danych podpięty
Wcześniej już widziałem że ktoś drążył temat.
http://eko.one.pl/forum/viewtopic.php?id=393

Czy przy podłączonym czujniku odrazu bez żadnych komend widoczny jest ten czujnik w folderze /sys/bus/w1/devices/
?
Czy jednak trzeba go uruchamiać poprzez jednorazowe dodanie instrukcji włączającej moduł w1 ?
/etc/modules.d
55-w1-gpio-custom, gdzie trzeba wpisać
w1-gpio-custom bus0=0,9,0
?

19

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

http://eko.one.pl/?p=openwrt-gpio2#magistaralawire schemat zobacz.

gnd do gnd, vcc do 3.3v, dq do linii gpio + rezystor podciągający do 3.3v

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

gnd mam do gnd z jp2 pin 8, 3,3V mam z jp2 pin2 a dq mam z czujnika do pinu 9 od d4

tylko chyba sie zrobilem w trabe bo na tym schemacie z wczesniejszego linku wynika ze dq jest na srodku a w normie katalogowej od ds18b20 wynika ze patrzac na czujnik od strony pol okregu
1 - gnd
2 - dq
2 - vcc
zorientowalem sie ze mialem odwrotnie vcc i dq
Po zamianie czyli poprawnym podlaczeniu za 1 bootem kernel zaczal sie wykladac ale za 2 razem juz ruszyl normlanie
z tym ze jak dotknalem czujnik to byl taki goracy ze az palec spazylem

Rezystor 5,1ohm mam pomiedzy vcc i pinem 9 (gpio) ale chyba sie zjaral bo teraz zamiast 5,1 podaje 0,22

Czujnik ds18b20 mogl sie uwalic ?

21

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Nie wiem, nie zdarzyło mi się podłączyć go inaczej...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22 (edytowany przez viper_lasser 2011-03-04 20:19:18)

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Po co jest rezystor pomiedzy vcc a dq, po to zeby rezystor sie grzal a nie czujnik ?
Moze tego rezystora tam nie byc  i wszystkie 3 sygnaly tj gnd, vcc i dq moga leciec bezposrednio z routera na czujnik ?
Nie myslalem ze ds1820 moze sie az tak nagrzac...

23

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

ds1820 się nie grzeje smile. Sprawdź czy to dobrze podlączyleś...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Aby odblokować gpio trzeba zakomentować odpowiednią linijkę w pliku:

 build_dir/linux-adm5120_router_le/linux-2.6.32.27/arch/mips/adm5120/edimax/br-6104kp.c

Tutaj mamy wszystkie gpio zajęte przez led'y, które można wykorzystać do w1:

static struct gpio_led br6104kp_gpio_leds[] __initdata = {
        GPIO_LED_STD(ADM5120_GPIO_PIN0, "power",        NULL),
        GPIO_LED_INV(ADM5120_GPIO_PIN3, "usb1",         NULL),
        GPIO_LED_INV(ADM5120_GPIO_PIN1, "usb2",         NULL),
        GPIO_LED_INV(ADM5120_GPIO_P0L1, "wan_speed",    NULL),
        GPIO_LED_INV(ADM5120_GPIO_P0L0, "wan_lnkact",   NULL),
        GPIO_LED_INV(ADM5120_GPIO_P1L1, "lan1_speed",   NULL),
        GPIO_LED_INV(ADM5120_GPIO_P1L0, "lan1_lnkact",  NULL),
        GPIO_LED_INV(ADM5120_GPIO_P2L1, "lan2_speed",   NULL),
        GPIO_LED_INV(ADM5120_GPIO_P2L0, "lan2_lnkact",  NULL),
        GPIO_LED_INV(ADM5120_GPIO_P3L1, "lan3_speed",   NULL),
        GPIO_LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact",  NULL),
        //GPIO_LED_INV(ADM5120_GPIO_P4L1, "lan4_speed",   NULL),
        GPIO_LED_INV(ADM5120_GPIO_P4L0, "lan4_lnkact",  NULL),
};

Aby znaleźć numerek GPIO który podajemy przy komendzie insmod w1-gpio-custom możemy użyć takiej komendy(najlepiej być w katalogu ze źródłami od linux'a):

find * -print | xargs grep ADM5120_GPIO_P4L1 | grep define

Ja zrobiłem to właśnie na tym pinie, dodatkowo wylutowałem rezystor ograniczający prąd diody i zwarłem dzięki temu na jednej nóżce miałem gpio a na drugiej Vcc 3,3V, gnd wziąłem ze złącza do transmisji szeregowej. Wartość rezystora podciągającego miałem 4,7k zmniejszyłem go do 1k bo miałem często błędy w transmisji ale to nic nie dało.

25

Odp: Problem z instalacja pakietu kmod-w1-master-gpio

Do viper_lasser'a

Z tego co mi w majlu napisałeś to wszystko robisz ok, no może poza nie elegancką zmianą definicji pinów( zrób tak jak ci napisałem, chociaż twój sposób też powinien działać)

Tu masz ładnie oznaczone który pin jest który i gdzie masz Vcc i GND tylko on używa dwóch pinów do I2C:

http://linux-adm5120.sourceforge.net/openwrt/i2c/

Sprawdź co masz w katalogu /sys/bus/w1/devices po załadowaniu wszystkich potrzebnych modułów, powinieneś mieć taki katalog przynajmniej: "w1 bus master" to oznacza że w1 master się zainstalował jeśli go nie masz to znaczy że nie masz zainstalowanego modułu w1-gpio lub wgrywasz go nie w tej kolejności co trzeba( należy go wgrać po w1-gpio-custom).