Poszło, ładnie się skompilowało - co prawda wyświetlacz jeszcze nie działa, ale licze, że jutro skończę ten temat.
Dzięki za pomoc!
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez mcz
Poszło, ładnie się skompilowało - co prawda wyświetlacz jeszcze nie działa, ale licze, że jutro skończę ten temat.
Dzięki za pomoc!
Nie...podpowiesz jak go zrobić? Nie ma go w żadnych pakietach.
Wróciłem z pracy, wrzuciłem sterowniki do paczki, ale podczas kompilacji wywala mi bład z brakiem bibliotek.
Na początek brakowało trzech i wszystkie trzy wpisałem w taki sposób w pliku Makefile od lcdproc:
define Package/lcdproc
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+libusb +libncurses +libftdi +libpng +libpthread +libserdisp
TITLE:=LCD Display daemon and client
URL:=http://sourceforge.net/projects/lcdproc/Lecz z tego wszystkiego zostało tylko jedno
Package lcdproc is missing dependencies for the following libraries:
libserdisp.so.1wcześniej przed dodaniem zmian do make file, pojawiał się błąd dotyczący libserdisp.so ale z 0 na końcu...
Wiesz jak to obejść?
Cześć,
Znalazłem jeszcze jedno rozwiązanie, tylko w tym wypadku muszę skompilować plik .so.
Zwykłe lcdproc nie obsługuje polecenia lcd_line i trzeba przygotować oddzielną paczkę, by zaczęło to działać z innym podłączeniem.
Tutaj jest informacja na ten temat:
https://github.com/wilberforce/lcdproc
Korzystałem wcześniej z lcdproc z usb i działał perfekcyjnie, więc może tutaj uda się go zastosować zamiast lcd4linux.
Więc może wiesz jak użyć tych dwóch plików w .c i zrobić tego sterownik?
Wszystko mam tak polutowane:
https://botland.com.pl/img/art/inne/LCD_I2C_3_small.jpg
Jedynie się zastanawiam nad tym pinem GPO - GND...
No i kłamałem z tym ostatnim postem...
Udało mi się skompilować, wszystko wygląda bardzo fajnie, ale pojawia się błąd podczas uruchamiania...
root@OpenWrt:~# lcd4linux -F
HD44780: error initializing device 0x1bOgólnie urządzenie I2C jest wykrywane pod adresem 27, ale nie wiem czemu jest ten adres zmieniany na szesnastkowy...
Co do samej konfiguracji lcd4linux.conf, to tak to wygląda:
Display HD44780-I2C {
Driver 'HD44780'
Model 'generic'
Bus 'i2c'
Port '/dev/i2c-0'
Device '27'
Bits '4'
Size '16x2'
asc255bug 1
Icons 1
Wire {
RW 'DB5'
RS 'DB4'
ENABLE 'DB6'
GPO 'GND'
}
}Masz może jeszcze jakiś pomysł? ![]()
Ok, znalazłem - dla potomnych dodam, że trzeba szukać w miejscu Advanced configuration options (for developers) ![]()
Kompiluje i zobaczę, czy działa.
Kurde, nie mogę tego znaleźć, podpowiesz w którym miejscu tego szukać?
I to jest dziwne, że tam nie ma tego sterownika...
Mam nadzieje, że to już ostatni post z tym problemem ![]()
W skrócie, kompiluje LCD4LINUX ze strerownikiem HD44780 po I2C na Openwrt AA (wiem, że to staroć, ale akurat takiej wersji potrzebuje).
I teraz tak, jak ustawić, żeby wybrać ten sterownik?
Jak biorę make menuconfig i staram się wybrać sterownik, to na liście go nie ma, a sprawdzając makefile w folderze LCD4LINUX jest tylko coś takiego:
IRLCD \
$(if $(CONFIG_BROKEN),HD44780) \
$(if $(CONFIG_BROKEN),HD44780-I2C) \Tak, tak...wiem jaka jest aktualna wersja, ale akurat do projektu potrzebuje taki system.
KIedyś robiłem już jeden projekt i podłączałem wyświetlacz do Wrt54gl - ostatecznie udało mi się to zrobić przez lcdproc i usb.
Tutaj mam TpLinka Mr3020 i chciałbym tutaj w końcu zastosować magistrale I2C i nauczyć się kompilować paczki oraz system.
LCDproc nie działa z I2C, więc próbuje z LCD4Linux - pełna wersja dostępna w źródłach jest beznadziejna i wywala błędy podczas uruchomienia.
Chyba, że jest jakaś opcja by skompilować to na nowszej wersji?
Cześć,
Po godzinie kompilacji wywalił mi błąd:
In file included from /home/mcz/openwrt/1209/build_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/gcc-linaro-4.6-2012.02/gcc/cp/except.c:912:0:
cfns.gperf: At top level:
cfns.gperf:101:1: error: 'gnu_inline' attribute present on 'libc_name_p'
cfns.gperf:26:14: error: but not hereW internecie znalazłem takie posty:
https://github.com/DragonFlyBSD/DPorts/issues/136
https://dev.openwrt.org/changeset/46355
Pobrałem patche i przekopiowałem je do folderu:
/home/mcz/openwrt/1209/toolchain/gcc/patches/4.6-linaro
Lecz dalej wywala ten sam błąd. Czy w jakiś sposób trzeba zainstalować te patche lub jest inny sposób na rozwiazanie tego problemu?
Miało być backfire - w końcu tak nazywała się wersja 10.03 ![]()
Ze względu na to, że to ostatnia wersja, która działa na tym routerze, przynajmniej tak znalazłem na stronie :
https://wiki.openwrt.org/toh/linksys/wrt54g
Brak ramu powodował, że nie można było wgrać softu do routera - czy jednak jest opcja, by wgrać nowy CC na linksysa ?
Jednak mam już problemy na samym początku. Co zrobiłem:
1. Postawiłem Ubuntu 16.04 na Wirtualnej Maszynie
2. Za pomocą sudo zainstalowałem potrzebne pakiety:
apt-get install build-essential binutils bzip2 gawk gettext git libncurses5-dev patch unzip zlib1g-dev subversion flex
3. Utworzyłem zwykłe konto i pobrałem git clone git://git.openwrt.ort/10.03/openwrt.git
przeniosłem zawartość blackbird
4. I teraz po wpisaniu make package/symlinks dostaje coś takiego:
user@matcze-VirtualBox:~/blackbird$ make package/symlinks
ERROR: please fix target/linux/rdc/Makefile
ERROR: please fix target/linux/atheros/Makefile
ERROR: please fix target/linux/adm5120/Makefile
ERROR: please fix target/linux/avr32/Makefile
ERROR: please fix target/linux/kirkwood/Makefile
ERROR: please fix target/linux/uml/Makefile
ERROR: please fix target/linux/lantiq/Makefile
ERROR: please fix target/linux/ar71xx/Makefile
ERROR: please fix target/linux/ppc44x/Makefile
ERROR: please fix target/linux/ppc40x/Makefile
ERROR: please fix target/linux/brcm47xx/Makefile
ERROR: please fix target/linux/ixp4xx/Makefile
ERROR: please fix target/linux/au1000/Makefile
ERROR: please fix target/linux/ar7/Makefile
ERROR: please fix target/linux/xburst/Makefile
ERROR: please fix target/linux/orion/Makefile
ERROR: please fix target/linux/brcm-2.4/Makefile
ERROR: please fix target/linux/x86/Makefile
ERROR: please fix target/linux/brcm63xx/Makefile
ERROR: please fix target/linux/rb532/Makefile
Collecting target info: done
/home/user/blackbird/include/prereq-build.mk:17: recipe for target 'prereq-non-root' failed
Prerequisite check failed. Use FORCE=1 to override.
/home/user/blackbird/include/toplevel.mk:109: recipe for target 'tmp/.prereq-build' failed
make[1]: *** [tmp/.prereq-build] Error 1
/home/user/blackbird/include/toplevel.mk:131: recipe for target 'package/symlinks' failed
make: *** [package/symlinks] Error 2Po wpisaniu ./scripts/feeds install -a mam ten sam błąd.
Ok, poczytam - z racji tego, że CC już nie mogę wgrać na swojego Linksysa WRT54GL dalej będę operował na BB - liczę na to, że się uda ![]()
Trochę odkopuje, ale w końcu mam urlop i mam czas, żeby dokończyć to co zacząłem kilka miesięcy temu. Jak skompilować ten sterownik z lcd4linux? Jedyne co znalazłem to ten link :
https://lcd4linux.bulix.org/wiki/Howto
Wrzuciłem folder na router, lecz nie mogę wykonać polecenia:
./configure -with-driver=HD44780 wywala błędy ze względu na brak pakietu GTK.
Przynajmniej tak wyczytałem w internecie, a zarazem nie mogę go zainstalować, ze względu na brak miejsca na linksysie.
Co robić, jakaś podpowiedź - siedzę już cały weekend i cały czas mam wrażenie, że jestem już blisko :<
Witam
Piszę, bo udało mi się wyciągnąć I2C w swoim starym Linksysie WRT54GL, obecnie mam zainstalowanego OpenWrt w wersji 10.03.1.
Ale do tematu, LCD podpiąłem router go wykrywa pod adresem 3f, ustawiłem taki adres w lcd4linux.cfg
Display HD44780-I2C {
Driver 'HD44780'
Model 'generic'
Bus 'i2c'
Port '/dev/i2c-0'
Device '3f'
Bits '4'
Size '16x2'
asc255bug 0
Icons 1
Wire {
RW 'DB5'
RS 'DB4'
ENABLE 'DB6'
GPO 'GND'
}Lecz po wpisaniu polecenia : lcd4linux -Fvvv wywala błąd:
lcd4linux.c: initializing driver HD44780
drv_init(HD44780) failed: no such driver
Error initializing driver HD44780: Exit!Wyświetlacz który posiadam to 
Chyba się poddam z szukaniem tych GPIO na PCB, chyba, że masz jakąś sugestię ?
Na chwile obecną napisałem sobie trzy skrypty. Pierwszy do utworzenie GPIO po resecie, bo bardzo często podczas spradzania wyprowadzeń na komponentach SMD router mi się resetuje.
gpio.sh
#!/bin/sh
cd /sys/class/gpio
echo 1 > export; echo out > gpio1/direction
echo 18 > export; echo out > gpio18/direction
echo 20 > export; echo out > gpio20/direction
echo 23 > export; echo out > gpio23/direction
echo 5 > export; echo out > gpio5/direction
echo 11 > export; echo out > gpio11/direction
echo 19 > export; echo out > gpio19/direction
echo 21 > export; echo out > gpio21/direction
echo 3 > export; echo out > gpio3/direction
echo 6 > export; echo out > gpio6/direction
echo 17 > export; echo out > gpio17/direction
echo 2 > export; echo out > gpio2/direction
echo 22 > export; echo out > gpio22/direction
echo 4 > export; echo out > gpio4/direction
echo 7 > export; echo out > gpio7/directionKolejny do zmiany stanu na stan wysoki jeden.sh i podobny zero.sh
#!/bin/sh
cd /sys/class/gpio/
echo 1 > gpio1/value
echo 1 > gpio18/value
echo 1 > gpio20/value
echo 1 > gpio23/value
echo 1 > gpio5/value
echo 1 > gpio11/value
echo 1 > gpio19/value
echo 1 > gpio21/value
echo 1 > gpio3/value
echo 1 > gpio6/value
echo 1 > gpio17/value
echo 1 > gpio2/value
echo 1 > gpio22/value
echo 1 > gpio4/value
echo 1 > gpio7/valueZa pomocą diody przylutowanej do GND sprawdziłem chyba wszystkie komponenty SMD i wyjścia w celu odnalezienia tych pinów. Lecz w ogóle nie mogę ich znaleźć. Próbowałem także przylutować odwrotnie diodę tj. do 3.3 - lecz efekt jest ten sam.
W miejscach które oznaczyłem kółkami spodziewałem się GPIO i cały czas wierzę, że są w tym miejscu. Może robię coś źle ?

Ok, czyli w przyszłości jeżeli w końcu znajdę te GPIO, to będę musiał napisać skrypt, który uruchomi się wraz z systemem i stworzy odpowiedni folder w GPIO?
Jeszcze jedno pytanie, w jaki sposób mogę przypuszczać, że dane wyjście na płytce jest tym od GPIO ? Mam w sumie dwa wolne miejsce, jedne jest od diody, a drugie od przycisku, więc przypuszczam, że w tym miejscu może być GPIO.
Przylutowałem diode wg. schematu który znalazłem na https://wiki.openwrt.org/doc/hardware/port.gpio
Dałem wszystkie gpio na echo out > /sys/class/gpio/gpio*/direction później echo 0 > /sys/class/gpio/gpio*/value, lecz to nie działa, więc wszystkie dałem na 1 - echo 1 > /sys/class/gpio/gpio*/value ; lecz nic się nie zmienia, żadnej zmiany stanu.
Kolejne pytanie odnośnie szukania GPIO
Czemu po wyłączeniu zasilania kasuje się zawartość /sys/class/gpio i usuwa wszystkie gpio ? Czy jest to normalne ?
#!/bin/sh
GPIOBASE=`cat /sys/class/gpio/gpiochip*/base | head -n1`
GPIOmin=`expr $1 + $GPIOBASE`
GPIOmax=`expr $2 + $GPIOBASE`
nums=`seq $GPIOmin $GPIOmax`
cd /sys/class/gpio
for i in $nums; do
echo $i > export; echo out >gpio$i/direction
done
while true; do
for i in $nums; do
echo 0 > gpio$i/value
done
sleep 1
for i in $nums; do
echo 1 > gpio$i/value
done
sleep 1
doneZapisałem go jako gpio.sh
EDIT:
Zmieniłem argument $GPIOBASE na 0 , bo taka baza wyszła mi po wpisaniu samego polecenia i udało mi się, znalazłem gpio.
root@OpenWrt:~# ls /sys/class/gpio/
export gpio17 gpio2 gpio22 gpio4 gpio7
gpio1 gpio18 gpio20 gpio23 gpio5 gpiochip0
gpio11 gpio19 gpio21 gpio3 gpio6 unexportWitam wszystkich
Posiadam D-link DIR-300 z wgranym Openwrt 15.05. Nie znalazłem w internecie rozpiski pinów GPIO, więc postanowiłem poszukać. Skorzystałem z tego poradnika : https://wiki.openwrt.org/doc/hardware/port.gpio a dokładnie ze sktypu blink.
Utworzyłem plik gpio za pomocą vi, wkleiłem skrypt i odpaliłem zgodnie z instrukcją. Wcześniej musiałem zmienić uprawnienia, bo wywalał błąd Permission denied. Ale po uruchomieniu wywala błąd expr: syntax error
Pozdrawiam
Mój błąd, sprawdziłem informacje z dmesg i logread; okazało się, że przez przypadek podłaczyłem się do Linksysa, zamiast do DIR-300.
Obecnie po wpisaniu ls /sys/config/gpio mam:
root@OpenWrt:~# ls /sys/class/gpio/
export gpiochip0 unexport
root@OpenWrt:~#
Mogę walczyć dalej, zobaczymy co z tego wyjdzie. Na razie dzięki za pomoc, mam nadzieje, że później pójdzie bezproblemowo.
root@OpenWrt:~# ls /sys/class
ls: /sys/class: No such file or directory
root@OpenWrt:~# ls /sys/class/gpio
ls: /sys/class/gpio: No such file or directory
Za pomocą ls sprawdzałem także w Linksysie i sytuacja była taka sama.
Ten sam. W google znalazłem opis wolnych GPIO i w tym przypadku chciałem skorzystać z 7.
Lecz taki jest efekt :
root@OpenWrt:~# echo "7" > /sys/class/gpio/export
-ash: cannot create /sys/class/gpio/export: nonexistent directory
Może coś nie tak jest z systemem ? Obecnie mam zainstalowany : openwrt-15.05-ramips-rt305x-dir-300-b1-squashfs-factory.bin
eko.one.pl → Posty przez mcz
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc