Archív

Archív pro

Problém s USB HUBem – rozbočovačem

I přesto, že použit USB HUB s externím napájením, některá zařízení nejsou rozpoznána, nebo nefungují korektně. Řešením může být použití příkazu rmmod ehci-hcd , který z jádra odstraní modul ehci-hcd, pro lepší správu jej vložte do inicializačního skriptu /opt/init.usb

Categories: Asus WL-500gP Tags:

Interní USB a RS232 port

Na desce routeru Asus WL-500g Premium je čip VIA VT6212L se čtyřportovým USB řadičem, ale pouze dva jsou vyvedeny na zadní stranu routeru. Pomocí dokumentace a jistou mírou zručnosti naleznete konektory USBP3+, USBP3- a USBP4+, USBP4- a napájení. Viz příloha.  Tímto způsobem lze do nitra routeru napevno zabudovat například pevný disk nebo zvukovou kartu při zachování volných vnějších USB portů.

Na desce se také nachází piny pro konektor RS232, ten je použitelný pouze pro řízení z konzole, viz příloha.


Categories: Asus WL-500gP Tags:

Přetaktování routeru

18.05.2009 komentáře 2

Router obsahuje procesor, který je možné přetaktovat a to velice jednoduše. Přetaktování se v praxi příliš neprojevilo a tak je zmíněno pouze pro testovací účely.

Po zadání příkazu cat /proc/cpuinfo zjistíme aktuální takt procesoru:

system type Broadcom BCM4704 chip rev 9 pkg 0
procesor 0
cpu model BCM3302 V0.6
BogoMIPS 263.78

Příkazem: nvram set clkfreq=300 && nvram commit && reboot router přetaktujete.

Zpět na původní takt příkazem: nvram set clkfreq=264 && nvram commit && reboot

Categories: Asus WL-500gP Tags:

Vývoj aplikací

17.05.2009 Bez komentářů

Balíčkem ipkg-opt -t /opt install optware-devel je možné nainstalovat podporu vývoje aplikací a balíčkem ipkg -t /opt install buildroot se nainstaluje gcc/g++[1]. Přepínač -t je nutný v případě, že používáte výchozí ipkg a ne ipkg-opt. Vzhledem k tomu, že router není nijak výkonné zařízení, instalace nějaký ten čas zabere. [16]

Pro překlad první ho kódu použijte příkaz gcc hello.c, který může obsahovat například:

#include
int main()
{
printf(„Hello World\n“);
return 0;
}


[1] GNU Compiler Collection (zkráceně GCC) je sada kompilátorů vytvořených v rámci projektu GNU. Původně překladač programovacího jazyka C později byly na stejném společném základě vytvořeny překladače jazyků C++, Fortran, Ada a dalších [1]

Categories: Asus WL-500gP Tags:

Ovládání routeru pomocí připojené USB klávesnice

17.05.2009 Bez komentářů

Pro jednoduché ovládání routeru pomocí připojené klávesnice[1] může být použita jakákoliv USB klávesnice, záleží pouze na počtu požadovaných příkazů. Je možné takto ovládat veškeré funkce routeru, jako zapínání wi-fi síťové karty, ovládání hudebního serveru, restartovat router a spousta dalších.

  • nakopírujete obsah archivu cmdpad-0.0.3 do složky /opt :
  • nastavte programu práva spuštění chmod +x /opt/bin/cmdpad
  • do souboru /opt/init.usb vložíme příkazy pro spuštění a restartujte router

    # Activace USB klavesnice
    cp /opt/etc/cmdpad.conf /etc
    insmod /opt/usr/lib/cmdpad/input.o
    insmod /opt/usr/lib/cmdpad/hid.o
    insmod /opt/usr/lib/cmdpad/evdev.o
    /opt/bin/cmdpad --quiet

  • přiřaďte funkce jednotlivým klávesám: zastavte skrytě běžící cmdpad killall odpad a spusťe jen s výstupem do konzole /opt/bin/cmdpad

při stisku tlačítek vidíte jejich kódy, které následně vyplňte do konfiguračního souboru /opt/etc/cmdpad.conf a přiřaďte cestu ke svým skriptům. Tlačítka mají tři režimy P, R a H = stisk, uvolnění a držení.
[1]Byla použita USB numerická klávesnice A4Tech TK-5

Categories: Asus WL-500gP Tags:

Webcamera

17.05.2009 komentáře 3

Router je již od výrobce připraven pro připojení USB kamery. Podporovány jsou pouze již nevyráběné kamery s ovladači PWC 9.0.2 a OV51x 1.65-1.12. Většina současných kamer včetně těch levných spolupracuje s ovladačem SPCA5xx.
1. vypněte podporu USB webových kamer v administraci: USB Application – Web Camera – Enable Web Camera? – Disabled

2. telnet my.router (192.168.1.1)

3. ipkg install palantir

4. cd /opt/usr/lib

5. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spca5xx.o

6. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spcadecoder.o

7. přidejte následující doinit.usb nano /opt/init.usb

insmod videodev
insmod /opt/usr/lib/spcadecoder.o
insmod /opt/usr/lib/spca5xx.o
sleep 5
/opt/bin/palantir -C /opt/etc/palantir.conf >/dev/null&

8. případně upravte konfigurační soubor kamery /opt/etc/palantir.conf a restartujte router: reboot

9. po restartu je steam videa dostupný na adrese my.router:8000

10. nahrajte do root složky www serveru /opt/share/www/lighttpd balíček[2] s nástroji pro zobrazení kamery ve www stránkách.

Možné problémy: pokud se dočkáte v systémovém logu chybového hlášení „…DEALLOC error on init_Isoc“ je problém s propustností sběrnice USB. Nejčastějším řešením je připojení kamery přímo do USB portu routeru, nikoliv přes USB rozbočovač. A to i přesto, že má externí napájení[3].

 


 

[1]Konkrétně byla použita webová kamera Logitech QuickCam Express podporována ovladačem SPCA561A. Aktualizovaný seznam podporovaných kamer je dostupný na internetové adrese http://mxhaard.free.fr/spca5xx.html

[2]HTML verze pohledu na kameru, Java applet a Win32 aplikace ke stažení na počítač http://koppel.cz/cdmawifi/postupy/USBwebcam/www.zip

[3]Odzkoušeno s rozbočovačem MAXXTRO/ GEMBIRD USB2.0 Hub UHB-C247

Categories: Linux návody, software Tags:

Připojení USB modemu

17.05.2009 Bez komentářů

Jedním z důvodů, proč uživatelé instalují modifikovaný firmware od Koppel.cz, je podpora USB modemů a následné sdílení takového připojení. Původně byly podporovány pouze CDMA modemy, v dnešní době je podporována většina modemů dostupných v České republice. Ve spojení s 12V napájením, lze modem a tedy internet provozovat mobilně či tzv. „na kolech“, takové řešení využívá většina dálkových autobusových dopravců.

Většinu modemů stačí připojit do USB portu a nastavit v příslušné sekci webového rozhraní přihlašovací údaje. Některé modemy vyžadují pokročilejší nastavení, pro které poskytuje fórum uživatelů firmware podporu.

Categories: Asus WL-500gP Tags:

Server pro přehrávání hudby

16.05.2009 komentáře 2

Vzhledem k tomu, že k routeru se dá připojit pomocí USB téměř cokoliv nic nebrání připojení USB zvukové karty. Hudba může být přehrávána z připojeného flashdisku, streamována z internetu, přímo generována routerem, případně nahrávána.[1]

  • zapněte podporu waveserveru ve webové administraci: System Setup – Services – Enable WaveServer: yes (funguje pouze v oleg firmware, v koppel byl odebrán kvůli úspoře místa na vnitřní flash)
  • proveďte následující příkazy pro instalací ovládání hudebního serveru a stažení potřebných knihoven: ipkg update && ipkg install mpd && ipkg install libiconv && ipkg install mpc
  • vytvořte konfigurační soubor pro mpd: nano /opt/etc/mpd.conf cesty jsou samozřejmě volitelné
  • port "6600"
    music_directory "/opt/MP3"
    playlist_directory "/opt/Mpd/Playlists"
    db_file "/opt/Mpd/mpddb"
    log_file "/opt/Mpd/mpd.log"
    error_file "/opt/Mpd/errors.log"
    state_file "/opt/Mpd/state"
    # pro pripad ze by nefungovalo volume
    mixer_type "software"

  • vytvořte potřebné adresáře podle konfiguračního souboru: mkdir /opt/MP3 && mkdir /opt/Mpd && mkdir /opt/Mpd/Playlists
  • spusťte Music Player Daemon-a /opt/bin/mpd /opt/etc/mpd.conf

Pokud chcete spouštět MPD po startu přidáme tento příkaz do souboru /opt/init.usb

K ovládání hudebního serveru můžete použít příkazovou řádku. Seznam příkazů je dostupný příkazem mpc help, nebo je ovládejte mnohem pohodlnější rozšířením Music Player Minion[2], případně lze doinstalovat webového PHP klienta do routeru.

cd /opt/tmp/
wget http://mercury.chem.pitt.edu/~shank/phpMp-0.11.0.tar.gz
tar -xvf /opt/tmp/phpMp-0.11.0.tar.gz -C /opt/share/www/lighttpd/

[1]Podporována je většina USB zvukových adaptérů. Konkrétně byl použit adaptér i-tec usb 5.1 audio.

[2]Doplněk Music Player Minion pro prohlížeč Mozilla Firefox https://addons.mozilla.org/

syslog.log pro audioadaptér i-tec usb 5.1 audio

pokud při startu MPD dostanete mpd: can't load library 'libssp.so.0' přihrajte si tuto knihovnu do adresáře /opt/lib libssp.so.0

cd /opt/lib
wget http://cooper.regionaliste.cz/wp-content/uploads/2009/05/libssp.so.0

Spoustu klientů můžete nalézt na stránce mpd.wikia.com/wiki/Clients, doporučuji začít s klasickým phpMP – phpMp-0.11.0.tar

Využití CRONu

Pokud se chcete nechat budit rádiem, není nic jednoduššího než využit CRON. Do něj vložte dva řádky, jeden pro spuštění přehrávání hudby v 6:35 a druhý pro zastavení v 7:00 a to jen v pracovní dny:

35 06 * * 1,2,3,4,5 admin /opt/etc/vstavat
00 07 * * 1,2,3,4,5 admin mpc stop

pro buzení jsem použil samostatný skript vstavat, kvůli jednodušší editaci, ten může vypadat takto:

#!/bin/sh
#vstávací skript co zapne rádia
#nastaví volume na 100%
mpc volume 100
#vyčistí playlist
mpc clear
#natáhne playlist Rádia (nebo cokoliv jiného)
mpc load radios
#začne hrát
mpc play

příkaz mpc load radios natáhne playlist radios.m3u uložený ve složce Playlists.

Pokud se dočkáte hlášky:

/opt/bin/mpd: can’t load library ‚libsqlite3.so.0‘

je třeba dohrát nainstalovat ještě sqlite: ipkg install sqlite případně dohrát do /opt/lib soubor libsqlite3.so.0

Categories: Asus WL-500gP Tags:

Webcamera

16.05.2009 Bez komentářů

Router je již od výrobce připraven pro připojení USB kamery. Podporovány jsou pouze již nevyráběné kamery s ovladači PWC 9.0.2 a OV51x 1.65-1.12. Většina současných kamer včetně těch levných spolupracuje s ovladačem SPCA5xx.[1]

1. vypněte podporu USB webových kamer v administraci: USB Application – Web Camera – Enable Web Camera? – Disabled

2. telnet my.router (192.168.1.1)

3. ipkg install palantir

4. cd /opt/usr/lib

5. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spca5xx.o

6. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spcadecoder.o

7. přidejte následující do init.usb nano /opt/init.usb

insmod videodev
insmod /opt/usr/lib/spcadecoder.o
insmod /opt/usr/lib/spca5xx.o
sleep 5
/opt/bin/palantir -C /opt/etc/palantir.conf >/dev/null&

8. případně upravte konfigurační soubor kamery /opt/etc/palantir.conf a restartujte router: reboot

9. po restartu je steam videa dostupný na adrese my.router:8000

10. nahrajte do root složky www serveru /opt/share/www/lighttpd balíček[2] s nástroji pro zobrazení kamery ve www stránách.

Možné problémy: pokud se dočkáte v systémovém logu chybového hlášení „…DEALLOC error on init_Isoc“ je problém s propustností sběrnice USB. Nejčastějším řešením je připojení kamery přímo do USB portu routeru, nikoliv přes USB rozbočovač. A to i přesto, že má externí napájení[3].


[1]Konkrétně byla použita webová kamera Logitech QuickCam Express podporována ovladačem SPCA561A. Aktualizovaný seznam podporovaných kamer je dostupný na internetové adrese http://mxhaard.free.fr/spca5xx.html

[2]HTML verze pohledu na kameru, Java applet a Win32 aplikace ke stažení na počítač http://koppel.cz/cdmawifi/postupy/USBwebcam/www.zip

[3]Odzkoušeno s rozbočovačem MAXXTRO/ GEMBIRD USB2.0 Hub UHB-C247

Categories: Asus WL-500gP Tags:

Zprovoznění měření teploty

Další z možností, jak využít router s OS Linux je například ke sledování teploty. Výborně použitelná jsou digitálních čidla DS18B20 připojená přes rozhraní RS232 a pomocí redukce USB/RS232 připojená k routeru. Čidla DS18B20 jsou jednoznačně adresovatelná a lze jich tak použít velké množství.

K sestavení měřícího řetězce budete potřebovat:

  • redukce USB/RS232 (vzhledem k tomu, že na routeru běží jádro / kernel 2.4.20 je důležité dát pozor při výběru této redukce, obecně jsou doporučovány redukce s čipem Prolific PL2303)
  • čidla DS18B20 (digitální teploměr Dallas 9-12bit +/-0,5°C -55/+125°C TO92 (rozlišení 0,5; 0,25; 0,125; 0,0625°C)) – lze použít i identické DS1820/DS18S20/DS1920
  • 2x zenerova dioda 5V1 (BZX83V005.1 – DO35 0.5W ZPD 5.1V)
  • 2x schottky BAT46 (schottky dioda 100V/150mA/6pF DO-35)
  • 1x odpor 1k5 (Rezistor s kovovou vrstvou 0,6W 1% 50ppm, velikost 0207)
  • 1x Canon konektor 9 pinů samice
  • 1x pouzdro velikosti krabičky od zápalek

Pořizovací cena součástek je při koupi 2 čidel cca 200Kč. Počet čidel je libovolný, další čidla se zapojují paralelně k prvnímu. Každé čidlo má vlastní sériové číslo a je ovladačem přímo adresováno. Schéma zapojení je v příloze.

zapojení

zapojení

Nezapomeňte spojit konektory čidla GND a V. Ukázka konkrétního zapojení je v galerii teploměr.

Připojte kabel USB/RS232 do routeru a zavedeme ovladače např. v telnetu: insmod usbserial a insmod pl2303

Překontrolujete log routeru /usr/tmp/syslog.log  , zda se v něm objevili následující řádky:

kernel: usb.c: registered new driver serial
kernel: usbserial.c: USB Serial support registered for Generic
kernel: usbserial.c: USB Serial Driver core v1.4
kernel: usbserial.c: USB Serial support registered for PL-2303
kernel: usbserial.c: PL-2303 converter detected
kernel: usbserial.c: PL-2303 attached to ttyUSB0 (or usb/tts/0 for devfs)
kernel: pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.11

tímto se ubezpečíte, že adaptér byl bezpečně rozeznán a bude spolupracovat. V opačném případě adaptér obsahuje nerozpoznaný čip a je nepoužitelný.

Pokud chcete inicializovat adaptér ihned po startu, zapište do opt/init.usb následující:

insmod usbserial
insmod pl2303

Nainstalujte software, který umí komunikovat s čidly: ipkg install digitemp

Po instalaci se rovnou dotážeme čidel: /opt/bin/digitemp_DS9097 -i -s /dev/usb/tts/0 -o "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F" -c /opt/etc/digitemp.conf

Pokud jsou čidla správně detekována, vygeneruje se konfigurační soubor s parametry měření a sériovými čísly čidel. Následné měření již může být podstatně rychlejší: /opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf

Program vrátí následující výsledek:
Aug 14 23:28:03 Sensor 0 C: 25.88 F: 78.57
Aug 14 23:28:04 Sensor 1 C: 18.44 F: 65.19
Aug 14 23:28:05 Sensor 2 C: 24.69 F: 76.44

Zabezpečte automatické měření pomocí CRONu, proto do souboru /opt/etc/crontab vložte řádek s úlohou, která každou minutu provede měření, výsledek uloží do souboru a ten přesune do jiného souboru. Přesouvá se z důvodu zpoždění zápisu hodnot do souboru a některé hodnoty mohou být nekompletní.

*/1 * * * * admin /opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf > /opt/var/log/temperature.log && mv /opt/var/log/temperature.log /opt/var/log/digitemp.txt

Vytvořte potřebné adresáře:

mkdir /opt/etc/tempsensor && mkdir /opt/share/www/lighttpd/temperature && mkdir /opt/var/log/digitemp_rrd && chmod 777 /opt/var/log/digitemp_rrd

Následně upravte konfigurační soubor /opt/etc/tempsensor/config.php dle průvodce, ukázkový soubor naleznete v příloze

Do souboru /opt/etc/crontab přidejte řádky pro načítání dat do databáze a vykreslení grafu každých 5 minut:

*/5 * * * * admin php /opt/etc/tempsensor/logdata.php
*/5 * * * * admin php /opt/etc/tempsensor/graphdata.php

Pro otestování a odladění můžeme spustit načtení dat ručně: php /opt/etc/tempsensor/logdata.php

Překontrolujte vytvoření souborů v adresáři /opt/share/www/lighttpd/temperature/. Tímto je ověřena funkčnost měření a zápisu do databáze. Grafy, nebo jiné výstupy jsou již na dalším vlastním vývoji.

Je nutné mít nainstalované obslužné nástroje rrdtool (API pro generování grafů),bc (balíček pro přesné výpočty) a bash (shell): ipkg install rrdtool && ipkg install bc && ipkg install bash

Soubory digitemp – ukázka načtení parametrů senzorů a lite.php, který používám jako osekaný graphdata.php aby se ulevilo procesoru a kreslil jen krátkodobé grafy, měsíční a roční se kreslí jen jednou denně.

Pokud nefunguje připojení RS232-USB převodníku, zkuste přidat příkaz rmmod ehci-hcd

Optimalizace CRONu:
Vzhledem k tomu, že měření, zápis a vykreslení nám zbytečně zaplňuje syslog -který můžeme průběžně sledovat příkazem tail -f /tmp/syslog.log, je dobré optimalizovat nastavení CRONu a to tak, že stávající pravidla přesuneme do samostatného skriptu a jeho celé spouštění zabezpečíme jedním řádkem v cronu a následně i v logu.
*/5 * * * * admin /opt/etc/tempsensor/teplota
skript /opt/etc/tempsensor/teplota s parametry 0755 (spustitelný chmod +x 0755 /opt/etc/tempsensor/teplota) pak obsahuje přenesené řádky:
#!/bin/sh
#merici skript na mereni teploty
#mereni
/opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf > /opt/var/log/temperature.log && mv /opt/var/log/temperature.log /opt/var/log/digitemp.txt
#zapsani do DB
php /opt/etc/tempsensor/logdata.php
#vykresleni jednoducheho grafu
php /opt/etc/tempsensor/lite.php
#kopie souboru s obrazkem
cp /opt/share/www/lighttpd/temperature/all_day.png /opt/share/www/lighttpd/temperature/all_day_graph.png

Kopii obrázku provádím kvůli zajištění jeho neustálé dostupnosti.

Jsou sice součástí instalace a v adresáři /opt/etc/tempsensor, ale pro jistotu uvádím graphdata.php a logdata.php. A po úpravách jejich současné verze jako zálohu komplet adresáře /opt/etc/tempsensor/.