Router Overclock, WL-500GP v1

Overclock to juz sport – O/C PC, smartfonów, nawigacji, routerów,  pralek. Aktualne rozwiązanie podkręcenia routera WL-500GP v1 (i tylko w tej wersji) z 260Mhz@300Mhz daje zauważalny wzrost wydajnośc w transferze plików jak i w czasie wykonywania skryptów php (forum, www, etc – 1min@0:40-30sek). Nie potrzeba do tego żanych radiatorów (choć mówią, że przedłużają żywotność).

CPU BCM3302 pozwala na domyślną prace w 300Mhz,a więc powinniśmy do tego dążyć, prostym poleceniem wklepanym do shella.

nvram set clkfreq=300,150
nvram commit
reboot

Sprzęt pracuje na tym zegarze od ponad roku i nie wykazuje żadnych oznak przegrzewania, zwieszania – jest taki jak na wolniejszym zegarze + trochę więcej ciepła z obudowy. A gdyby ktoś na tym nie mógł poprzestać, można poprawić trochę czas dostępu do pamięci RAM z polecenia.

nvram set sdram_config=0x0022
nvram set sdram_ncdl=0
nvram commit
reboot

co daje już raczej niewielki, marginalny wzrost (niekoniecznie) dostępu do pamięci (zmiana RAM CAS) wzorowane na http://oleg.wl500g.info/sdram.html

MRTG, wykresy, statystyki

MRTG + DDWRT via SNMP/i nie tylko. Mało jest konkretnych rozwiązan odnośnie konfiguracji wykresów MRTG dla typowego routera/openwrt lub samego SNMP. Dlatego wrzucam kilka własnych rozwiązań opartych o skrypty nabazgrane w bashu. Część skryptów korzysta z SNMP który musi być włączony,a druga część – z skryptów generujących dwie linijki (aktualne zużycie/max). Cała paczka mrtg jest dostępna z polecenia opt-ipkg install mrtg (Czasem bedzie potrzebny pakiet mini-snmpd z powodu braku ./snmpget – należy z pakietem uważać, moze naruszyc konfiguracje juz działającego procesu. Wtedy wchodzimy w Serices/Services, dajemy APPLY,SAVE – powinno pomóc przywrócic działanie), a cały proces budowania w czasie wrzucamy do crona, np.:

root /opt/bin/mrtg /opt/etc/mrtg/config.cfg && /opt/bin/indexmaker /opt/etc/mrtg/config.cfg --output /opt/share/www/mrtg/index.html

Full MRG

UPTIME

Target[server-uptime]: `/opt/etc/mrtg/uptime.pl`
Colours[server-uptime]: LIGHT BLUE#7AAFFF,BLUE#1000FF,DARK GREEN#006000,VIOLET#FF00FF
Options[server-uptime]: gauge,noinfo, nopercent, growright, unknaszero
MaxBytes[server-uptime]: 200
Title[server-uptime]: server uptime
YLegend[server-uptime]: Hours
ShortLegend[server-uptime]: Hours
Legend1[server-uptime]: Uptime
Legend2[server-uptime]:
LegendI[server-uptime]:
LegendO[server-uptime]: uptime :
PageTop[server-uptime]:
#!/opt/bin/bash
DAY=`snmpget -v 1 -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0 | awk '{print $5}'`

shopt -s extglob
if [[ "$DAY" = +([0-9]) ]]; then
 		HOUR=`snmpget -v 1 -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0 | awk '{print $7}' | cut -f1 -d ":"`
    else
		DAY=0;
 		HOUR=`snmpget -v 1 -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0 | awk '{print $5}' | cut -f1 -d ":"`
fi

TOTALHOURS=$(($DAY * 24 + $HOUR))
echo $TOTALHOURS
echo $TOTALHOURS

PING GOOGLE

Options[google_ping]: nobanner,gauge,noinfo,nopercent,growright 
Target[google_ping]: `/opt/etc/mrtg/google.ping.pl` 
MaxBytes[google_ping]: 200 
YLegend[google_ping]: RTT (ms) 
Unscaled[google_ping]: ymwd 
LegendI[google_ping]: Ping 
LegendO[google_ping]: Suppress[google_ping]: y
#!/opt/bin/bash
PING="/opt/bin/ping"
ADDR="google.pl"
DATA=`$PING -c 4 $ADDR`
LOSS=`echo $DATA | /opt/bin/grep 'loss' | awk '{print $18}' | cut -f1 -d"%"`
LATENCY=`echo $DATA | /opt/bin/grep 'round-trip' | awk -F/ '{print $5}' | cut -f1 -d"."`
if [ "$LOSS" = "100" ] ; then
  echo 0
else
  echo "$LATENCY"
fi
echo 0

SWAP

Target[swap]: `/opt/etc/mrtg/swaper`
MaxBytes[swap]: 50000
Title[swap]:Memory State of Server
ShortLegend[swap]:  
kmg[swap]:kB,MB
YLegend[swap]: Swap Usage
Legend1[swap]: Total Swap
Legend2[swap]: Used Swap
LegendI[swap]: Total Swap
LegendO[swap]: Used Swap
Options[swap]: growright,gauge,nopercent
PageTop[swap]:
#!/bin/sh
MAX=`cat /proc/meminfo | /opt/bin/grep "SwapTotal" | /bin/sed 's/ //g' | /opt/bin/cut -d ':' -f2 | /opt/bin/cut -d 'k' -f1`
USED=`free|/opt/bin/grep Swap:|/opt/bin/awk '{print $3}'`
let MAXKB="$MAX"
echo "$MAXKB"
let USEKB="$USED"
echo "$USEKB"

Ilość procesów / Processes

# ILOSC PROCESOW
Target[procesy]: `/opt/etc/mrtg/iloscprocesow`
Options[procesy]: growright, gauge, nopercent, integer
MaxBytes[procesy]: 30000
#kilo[procesy]: 1
Title[procesy]: Procesy
PageTop[procesy]: <center> <H1>Procesy</H1>
ShortLegend[procesy]: &nbsp;
YLegend[procesy]: Procesy
Legend1[procesy]: Ilosc wszystkich procesow w systemie
Legend2[procesy]: Ilosc działających procesów
LegendI[procesy]: procesy:
LegendO[procesy]: aktywne procesy:
#!/opt/bin/bash
ILOSC=`ps | wc -l`
echo $ILOSC
echo $ILOSC

TCP/IP connections

Target[tcpopen]: `wc -l /proc/net/ip_conntrack | awk '{print $1"\n"$1}'`
Options[tcpopen]: nopercent,growright,gauge,noinfo
Title[tcpopen]: Open TCP connections
PageTop[tcpopen]: <H1>Aktywne polaczenia TCP</H1>
MaxBytes[tcpopen]: 10000
YLegend[tcpopen]: # conns
ShortLegend[tcpopen]: Polaczen
LegendI[tcpopen]: Polaczen:
LegendO[tcpopen]:
Legend1[tcpopen]: Open TCP connections

HDD/Pendrive usage

#pendrive
Target[pendrive]: `df | grep "/opt" | awk '{print $1"\n"$2}'`
MaxBytes[pendrive]: 520000
Title[pendrive]:Wykorzystanie Pendrive
ShortLegend[pendrive]: &nbsp;
kmg[pendrive]:kB,MB
kilo[procesy]: 1000
YLegend[pendrive]: Usage
Legend1[pendrive]: Total
Legend2[pendrive]: Used
LegendI[pendrive]: Total
LegendO[pendrive]: Used
Options[pendrive]: growright,gauge,nopercent
PageTop[pendrive]:<H1>Pendrive</H1>

RAM

# RAM
Target[ram]: `free | grep Mem | awk '{print $2"\n"$3}'`
MaxBytes[ram]: 50000
Title[ram]:RAM
ShortLegend[ram]: &nbsp;
kmg[ram]:kB,MB
YLegend[ram]: RAM Usage
Legend1[ram]: Total RAM
Legend2[ram]: Used RAM
LegendI[ram]: Total RAM
LegendO[ram]: Used RAM
Options[ram]: growright,gauge,nopercent
PageTop[ram]:<H1>RAM</H1>

Rozwiązania nie są idealne, sporo skryptów korzysta z awk, grep, cut – co dla typowego routera na mipsi’e z 300Mhz i 32Mb daje popalić i zjada sporo zasobów.

Dawka chiptune, C64

Dobre, proste, konkretne, z użyciem magicznej maszyny – comodore (1.02 MHz, likeit) ,a po prawej – butelka z łykiem inspiracji…

C64, likeit ;]

DD-WRT & Lighttpd+PHP+SQLite

Stworzenie prostego i lekkiego serwera www  na routerze  nie jest trudne, wszystko dzięki userowi DHC_DarkShadow, jeden klik i mamy profesjonalny router z całym niepotrzebnym sutffem . Wystarczy posiadać soft w swoim routerze oparty o OpenWRT, DDWRT, Tomato lub inny z dostępem do shella + pendrive/hdd/cokolwiek.

  1. Instalacja Optware, turbo-lazy (te dwie linijki zaoszczędzają kilka godzin pracy; świat jest piękny)
    wget -O /tmp/prep_optware http://wd.mirmana.com/prep_optware sh
    /tmp/prep_optware
  2. Serwer lighttpd bedzie domyślnie skonfigurowany i gotowy (php, praca na porcie  8080, sprawdzić lighttpd.cfg), pobieramy pliki, do php.ini dopisujemyPobierz : pdo.so-_pdo_sqlite.so-sqlite.so-mips
  3. extension=pdo.so
    extension=sqlite.so
    extension=pdo_sqlite.so
  4. Odpalamy zasobożerny proces i cieszymy się ledwo oddychającym serwerem www, example : http://musznik.ath.cx
    lighttpd -f /opt/etc/lighttpd/lighttpd.conf

i tyle, have fun ;]

Filesonic, Hotfile upload via FTP

Siedząc, naszła mnie chęć powrzucania trochę staffu i próby zgarnięcia grosza za wrzuty do FlieSonica którego porzuciłem za niskie zarobki, pół roku później okaząło się że zostało troche grosza… 14$ sukces, wracając do problemu.

Upload na  Filesonic/Hotfile/Wupload via FTP/lftp/linux – wszystkie pliki z katalogu

wymagane : LFTP

lftp -u LOGIN,HASLO -e "mirror -R /katalog/z/plikami/ /" ftp.eu.filesonic.com

i wsio, lftp bedzie starał się (póki żyje) upchac rekursywnie wszystkie pliki z katalogu.

Najlepiej opatrzyć to w screen’a (stawianie: screen -S NAZWA, porzucanie: CTRL>A>D,
powrót: screen -R NAZWA) i zostawić na noc.

a.. wracając, często zdarza się błąd (domyślna konfiguracja lftp) :
mirror: Fatal error: Certificate verification: Not trusted: issuer is not a CA 1 error detected
rozwiązanie :  do pliku lftp.conf dodać set ssl:verify-certificate no

blog.init()

Day one. Powstaje muszak.eu – personalny blog muszaka.

Day one, later.  Muszak dodał pierwszy wpis, i to było dobre.

.. w każdym razie, blog nie ma żadnej (nie będzie mieć?) konkretnego celu, tematu, kierunku – więc nie sugerujcie się wszelkimi, niepowiązanymi ze sobą wpisami z różnych dziedzin ;)