Zobrazují se příspěvky se štítkemAsus 500gP. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemAsus 500gP. Zobrazit všechny příspěvky

sobota 8. listopadu 2014

Zprovoznění SPI, I2C a 1-wire na OpenWRT

Jak zprovoznit SPI na zařízení s OpenWRT, když nemá volný SPI port? Stačí jen najít několik volných GPIO pinů, nainstalovat pár balíčků a už to funguje.



úterý 24. dubna 2012

Vypínání/zapínání WiFi tlačítkem.

Ve složce /etc/hotplug.d/button, tu je nutné vytvořit pomocí příkazu mkdir -p /etc/hotplug.d/button , stačí vytvořit soubor ToggleWiFi s následujícím obsahem:

#!/bin/sh

if [ "$BUTTON" = "ses" ] ; then
 if [ "$ACTION" = "pressed" ] ; then
  #LED="$(cat /proc/diag/led/power)"
  WiFi="$(uci get wireless.@wifi-device[0].disabled)"
  if [ "$WiFi" = "0" ]; then
    #echo "0" > /proc/diag/led/power
    uci set wireless.@wifi-device[0].disabled=1
    wifi
  else
    #echo "1" > /proc/diag/led/power
    uci set wireless.@wifi-device[0].disabled=0
    wifi
  fi
 fi
fi
Potom už jen stačí mu přiřadit práva pomocí chmod. Každým zmáčknutím tlačítka Easy Setup na 500gP se buď vypne nebo zapne WiFi rozhraní.
Nakonec je nutné přidat do sekce boot startovacího souboru /etc/init.d/network


uci set wireless.@wifi-device[0].disabled=1
wifi 

Tímto se po nabootování a nakonfigurování WiFi rozhraní zase vypne a uživatel si ho potom případně zapne. 

čtvrtek 19. dubna 2012

Jak vytvářet symlinky pro zařízení

Potřeboval jsem k 500gP připojit druhou tiskárnu, bohužel tiskárny mohou uživatelé libovolně zapínat. První zapnutá tiskárna se přihlásí jako /dev/lp0, což způsobuje problémy se sdílením. Pomocí symlinku jsem tedy vytvořil pro každou tiskárnu jedinečný název.
Pomocí příkazuudevadm info -a -p $(udevadm info -q path -n /dev/lp1)jsem si nechal zobrazit všechny parametry, zvolil jsem položku ATTRS{product}=="Samsung ML-1520 Series"
do souboru /etc/udev/rules.d/10-local.rules jsem zapsal toto:ATTRS{product}=="Samsung ML-1520 Series", SYMLINK+="ML-1520"
ATTRS{product}=="CLP-320 Series", SYMLINK+="CLP-320"
Dále bylo nutné pravidla znovu načíst.udevadm control --reload-rules
Pro udev, bylo nutné ještě startovat démona, například takto (/etc/init.d/udevd):#!/bin/sh /etc/rc.common
START=03
start () {
   udevd --daemon
}
stop() {
   killall -9 udevd
}
A nakonec přiřadit práva a povolit spouštění.

Otevřené i čekající porty je možné zjistit pomocí netstat -an.


Zdroje:
http://www.root.cz/clanky/jak-umravnit-zlobivy-udev/
http://www.dl8kdl.net/articles/projects/computers/netgear-wgt634u-openwrt
a diskuze:
http://forum.root.cz/index.php?topic=4209.0

pátek 6. ledna 2012

Oscam na OpenWRT

Je nutné doinstalovat balíčky pro vlákna (libpthread)
opkg install libpthread
Chyba se projevuje takto:
oscam: can't load library 'librt.so.0'

oscam je nutné spouštět s parametrem -c /etc/oscam

libusb
usbutils

// konfigurace čtečky v oscam.server
[reader]
label = Phoenix1
protocol = mouse
device = /dev/ttyUSB0 # pod windows /dev/ttyS0 (COM1)
device_out_endpoint = 0x81
detect = none
mhz = 357
cardmhz = 357
group = 1
emmcache = 1,3,2
deprecated = 1

http://www.ab-forum.info/viewtopic.php?p=299502#p299502
Pro správnou funkci Oscamu s FTDI převodníkem pro čtečku je nutné zkompilovat OpenWRT s podporou výpočtů s pohyblivou čárkou (FPU), chyba se projevuje v dmesgu hláškou:
FPU emulator disabled, make sure your toolchainwas compiled with software floating point support (soft-float)

pondělí 24. října 2011

SQLite3 na 500gP




Co takhle si hodnoty naměřené domácím teploměrem ukládat do databáze? A co třeba potom malovat grafy?
Nejprve je nutné nainstalovat balíček sqlite3-cli.

A nyní už je možné skriptovat:
#!/bin/bash
sqlite3 /opt/www/Databaze/teploty.db "prikaz;"

Takto vytvoříme tabulku venku, se sloupci ID, čas a teplota.
  
CREATE TABLE 'venku' ('ID' INTEGER PRIMARY KEY AUTOINCREMENT, 'Datum' TIMEDATE NOT NULL, 'Teplota' INT);

pondělí 12. září 2011

OpenWRT Flash

cd /tmp/
wget http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm47xx/openwrt-brcm47xx-squashfs.trx
sysupgrade /tmp/openwrt-brcm47xx-squashfs.trx

středa 27. července 2011

USB Serial + Storage

OpenWRT 10.03.1-rc5
nainstalovat balíčky
opkg install kmod-usb2 kmod-usb-storage kmod-usb-uhci kmod-usb-ohci kmod-nls-iso8859-1 kmod-nls-cp437 kmod-fs-vfat kmod-fs-ext2 kmod-fs-ext3 kmod-fs-ext4 nano kmod-usb-serial-ftdi luci-app-hd-idle luci-app-wol bash


Pro čtení i zápis na NTFS je nutný balíček ntfs-3g

Pomocí luci-app-hd-idle je možné nastavit čas po jehož uplynutí se HDD uspí.


Díky luci-app-wol můžeme rozesílat magic pakety k zapínání počítačů.



středa 8. června 2011

Pokus o kompilaci WRTáku a balíčků

stáhnout
http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686.tar.bz2
http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt.config
make menuconfig
načteme konfiguraci, přidáme volby SDK, Toolchair a ukončíme
make -j 3
spustíme a počkáme
stoličku si také přeložíme

Postup instalace do Ubuntu i jiné distribuce je na:
http://wiki.openwrt.org/doc/howto/buildroot.exigence
Balíčky pro Ubuntu x64
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core quilt
Vlastní Build je popsán na:
http://wiki.openwrt.org/doc/howto/build

pátek 20. května 2011

Linux praktické příkazy

Zobrazení všech rozhraní
iwconfig
zobrazení nastavení všech rozhraní (obdoba ipconfigu)
ifconfig
detekce WiFi karty
wifi detect >  /etc/config/wireless
jak zapnout WiFi ve firmware 500gP OpenWRT
v souboru /etc/config/wireless
option 'disabled' '0'
změnit na option 'disabled' '1'
může se také hodit seznam WiFi kanálů
http://wiki.airdump.cz/Seznam_WiFi_kan%C3%A1l%C5%AF_pro_WLAN

Karta z notebooku MSI RT-2560 funguje s ovladačem kmod-rt2500-pci.


Přesměrování výstupu do souboru (i chybové hlášky)
/usr/local/bin/oscam > /tmp/log.txt 2>&1 

úterý 28. prosince 2010

Teploměr na blogspotu

Upravit soubor konfigurace teploměru (/etc/digitemp.conf)

TTY /dev/ttyUSB0
READ_TIME 1000
LOG_TYPE 0
LOG_FORMAT "%.2C" #"%b %d %H:%M:%S Sensor%s,%.2C;"


Nyní do CRONu přidáme řádek
* * * * * /opt/usr/bin/teplomer.sh

V souboru /opt/usr/bin/teplomer.sh bude


#!/bin/ash
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
digitemp_DS9097 -q -c /etc/digitemp.conf -t 1 > /tmp/teplota.txt &


úterý 30. listopadu 2010

Teploměr

načtení teploty z čidla (čidel)

digitemp_DS9097 -q -c /etc/digitemp.conf -t 0
v /etc/digitemp.conf je konfigurace:

TTY /dev/ttyUSB0
READ_TIME 1000
LOG_TYPE 0
LOG_FORMAT "%b %d %H:%M:%S Sensor%s,%.2C;"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 2
ROM 0 0x10 0xDA 0x4F 0x4C 0x01 0x08 0x00 0x59
ROM 1 0x10 0xAE 0xA2 0x4B 0x01 0x08 0x00 0xAD

pátek 22. října 2010

Jak odesílat maily ve formátu HTML

Pomocí již zmiňovaného SMTP klienta (ssmtp) je možné odesílat i zprávy ve formátu HTML, podstatný je žlutě označený řádek:

To: komu@gmail.com
From: od_koho@gmail.com
Subject: Pozdrav
Content-Type: text/html; charset="ISO-8859-1";


<html><head>
<meta http-equiv="PRAGMA" content=no-cache"> 
<meta http-equiv="Content-Language" content="cs">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">

Hrátky s příkazovým řádkem

Načtení všech přihlášení či pokusů o přihlášení do routeru
pokud máme logy v souboru /opt/log/log
cat /opt/log/log | grep -i "auth"
pokud máme logy circular bufferu
logread | grep -i "auth"

grep -i retezec # vrátí pouze řádky, které obsahují retezec
A jak odesílat e-maily z ASUSE? Stačí nainstalovat SSMTP
opkg update
opkg install ssmtp
A dopsat do konfiuráku všechny údaje
nano /etc/ssmtp/ssmtp.conf
root=mejl@gmail.com
mailhub=smtp.gmail.com:587
hostname=mejl@gmail.com
UseTLS=YES
UseSTARTTLS=YES
AuthUser=uzivatel

úterý 12. října 2010

Jak stahovat z Ulož.to pomocí asuse?

Nejprve je nutné nainstalovat tyto balíčky: bash 3.2-2 a wget 1.12-2
například takto:
opkg update
opkg install bash
opkg install wget
potom si stačí stáhnout tento skript ZDE
cd /opt/Download
wget http://svetylk0.masquerade.cz/wdownload.sh
chmod 777 wdownload.sh
no a nyní stačí zakomentovat řádek display captcha.png &, tedy #display captcha.png &
obrázek s captchou je nutné nejprve stáhnout pomocí ftp a potom zadat do příkazové řádky
Až bude čas, tak se pokusím o nějaké naroubování toho na webové rozhraní routeru.

Skript je potom možné spustit takto
/opt/Download/wdownload.sh <adresa na uloz.to>


#!/bin/bash

# Download files from uloz.to using wget
# Author: svetylk0 (svetylk0 at seznam dot cz)
# Version: 1.0.3

VER="1.0.3"
DESTDIR="downloads"

function captcha() {

echo "Downloading captcha image ..."
wget -q "$URL" -O captcha.htm
CAPTCHA_ID=`grep class=\"captcha_nb captcha.htm | head -n 1 | grep -Eo [0-9]+`
CAPTCHA_IMG=`grep -Eo "http.+$CAPTCHA_ID\.png" captcha.htm | head -n 1`

echo $CAPTCHA_ID > CAPTCHAID

wget -q "$CAPTCHA_IMG" -O captcha.png

#display it
#display captcha.png &

echo "Enter captcha text:"
read TEXT
echo $TEXT > TEXT

}

function notify() {
#notify page and also because of form_url update
echo "Notifying page for download ..."
wget -q "$URL" -O captcha.htm
}

if ! [ -e $DESTDIR ]; then

if ! mkdir $DESTDIR; then
echo "Failed to create destination directory: $DESTDIR"
exit
fi

fi

#parse parameters

LNUM="unlimited"
LIMIT=""

while [ -n "$1" ]; do

case $1 in

-l )
shift
LIMIT="--limit-rate="$1"k"
LNUM="$1 kB/s"
shift;;

*uloz* )
URL="$1"
shift;;

* )
shift;;

esac


done

FILE=`echo "$URL" | tr '/' '\n' | tail -n 1`
DESTDIR="downloads"

TIMEOUT=30

echo
echo "Wget uloz.to downloader version $VER"
echo
echo "URL: $URL"
echo "File: $FILE"
echo "Destination directory: $DESTDIR"
echo
echo "Download limit: $LNUM"

if [ -e TEXT ]; then

echo "Use last captcha? [Y/n]"
read IN

if [ "$IN" = n ]; then
captcha;
else

notify;

CAPTCHA_ID=`cat CAPTCHAID`
TEXT=`cat TEXT`

fi

else

captcha;

fi

DOWNLOAD="Ståhnout FREE"
FORM_URL=`grep name=\"dwn\" captcha.htm | grep -Eo "http.+\" " | sed s/"\" metho                                                                                                                                                             d=\"post\""/""/`
OUTPUT="$DESTDIR/$FILE"


#start download

while [ true ]; do

#downloaded size checking
if [ -e "$OUTPUT" ]; then

SIZE=`du -h "$OUTPUT" | grep -oE "^[0-9]+"`

else

SIZE=0

fi


if ! wget -c "$LIMIT" --timeout 30 --tries 0 --retry-connrefused --post-data "ca                                                                                                                                                             ptcha_nb=$CAPTCHA_ID&captcha_user=$TEXT&download=$DOWNLOAD" "$FORM_URL" -O "$OUT                                                                                                                                                             PUT"; then

echo "Error occured, retrying after $TIMEOUT""s"
sleep $TIMEOUT
continue

fi

echo "Verifying downloaded file ..."

#check if is HTML file
if [ -e "$OUTPUT" ]; then

if file "$OUTPUT" | grep -q HTML; then
echo "Something went wrong, trying again ... after $TIMEOUT""s"
rm "$OUTPUT"
sleep $TIMEOUT

notify;

continue

fi

#test size
NEWSIZE=`du -h "$OUTPUT" | grep -oE "^[0-9]+"`
if [ "$NEWSIZE" = "$SIZE" ]; then

echo "Size is same as before download. Which means that nothing has been downloa                                                                                                                                                             ded"
echo "(wrong CAPTCHA or no free slots?)."
echo
echo " Retrying after $TIMEOUT""s"
echo
echo "Note: If you see above wget saying that file is complete, you have to"
echo "terminate this process by pressing CTRL+c"

sleep $TIMEOUT

notify;

continue

fi


fi

break
done

echo "OK"