pátek 14. listopadu 2014

UCI OpenWRT

Pro čtení a zápis parametrů konfiguračních souborů OpenWRT je možné použít UCI, viz několik příkladů:

čtvrtek 13. listopadu 2014

Pěkná jména pro rozšíření Majordomo Turris


Nelíbí se Vám v zobrazení Majordomo pouze MAC adresy? Tento skript vyčte z nastavení DHCP jména příslušející každé MAC a doplní je do souboru. Dokonce ani nevadí, že je do souboru připíše vícekrát, při aktualizace se duplicity odstraní.



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.



pátek 7. listopadu 2014

Sledování výpadků připojení

#!/bin/sh

# Programátor řekl: nechť je toto voláno periodicky, nejlépe každou minutu
# při každém zavolání dejde k opingnutí strejdy googla,
# pokud se nedopingne, tak pěkně zalogovat čas první detekce výpadku
# a pěkně pokračujeme dále. Následně při úspěšném pokusu opingnutí strejdy googla
# se nám načte čas výpadku (ze souboru v /tmp) a spolu s časem náběhu se odešle na server

# vyzobneme počet úspěšných pingů (5 pingů, měly by se podařit alesoň dva)

tmpSoubor='/tmp/vypadek.txt'
testServer="google.com"
#testServer="google.comn"

ping $testServer -c 15 -q > /tmp/vysledek.txt 2>&1
Ping=`cat /tmp/vysledek.txt | sed -n -e 's/.*packets transmitted, \([0-9]*\).*/\1/p'`
rm /tmp/vysledek.txt
#echo "\"$Ping\""
minPing=2
if [[ -z "$Ping" ]]; then
    echo "Patrně nenalezen DNS záznam pro $testServer!"
else
    if [ $Ping -lt $minPing ]; then
            # sem to spadne při detekci výpadku
            if [ ! -f $tmpSoubor ]; then
                #sem to vleze jen při první rozpoznání výpadku
                    echo "Detekován výpadek připojení!"
                    date +"%Y-%m-%d%%20%H:%M:%S" > $tmpSoubor
            else
                    echo "Připojení nám nefunguje(již zalogováno)!"
            fi
    else
            echo "Připojení funguje!"
            #když nám funguje připojení a máme záznam o výpadku, tak ho naprášíme
            if [ -f $tmpSoubor ]; then
                    CasVypadku=`cat $tmpSoubor`
                    rm $tmpSoubor
                    dalsiCast='&VypadekKonec='
                    treticast=`date +"%Y-%m-%d%%20%H:%M:%S"`
                    Server="http://www.domena.cz/logovani/VlozeniPingDoDB.php?VypadekZacatek="
                    URL=$Server$CasVypadku$dalsiCast$treticast
                    echo $URL
                    wget -O /dev/null -q "$URL"
            fi
    fi
fi


čtvrtek 9. října 2014

DVB-T rekordér pro Turris

Nahrávač se skládá z několika sh a php skriptů. Nahrávač předpokládám zprovozněné streamování například pomocí MumuDVB, jak bylo popsáno v předchozím příspěvku. Každý program (TV kanál) má vyhrazen vlastní TCP port. Uživatelé tedy mohou zároveň sledovat všechny kanály jednoho multiplexu a ještě každý kanál nahrávat. Díky třem DVB-T kartám máme streamované všechny tři multiplexy. Pro zpracování uživatelem zadaných dat je soubor new_record.php. Ošetří, alespoň doufám, vstupní hodnoty a zavolá další soubor.

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
setlocale(LC_ALL, 'czech');
if (   isset($_REQUEST["DOBA_NAHRAVANI_MIN"])
    && isset($_REQUEST["ZACATEK_NAHRAVANI"])
    && isset($_REQUEST["NAZEV_SOUBORU"])
    && isset($_REQUEST["CISLO_KANALU"]))
{
    $DOBA_NAHRAVANI_MIN = intval($_REQUEST["DOBA_NAHRAVANI_MIN"]);
    $ZACATEK_NAHRAVANI = date("H:i d.m.y", strtotime(urldecode($_REQUEST["ZACATEK_NAHRAVANI"]))); // 11:35 01.10.14
    $URL = htmlspecialchars(urldecode($_REQUEST["NAZEV_SOUBORU"]));
    /*$URL = rtrim($URL, "_.");
    $URL = str_replace(" ", "_", $URL);*/
    echo "<p>\$URL=\"$URL\"</p>\n";
    $NAZEV_SOUBORU = preg_replace("/[^a-zA-Z0-9áäčďéěëíµňôóöŕřšťúůüýžÁÄČĎÉĚËÍĄŇÓÖÔŘŔŠŤÚŮÜÝŽ _-]/", "", $URL);
    $CISLO_KANALU = intval($_REQUEST["CISLO_KANALU"]);
   

sobota 23. srpna 2014

Build vlastního balíčku OpenWRT

Balíčky hnízdí v package/ a dále následuje další dělení ale to je z pohledu buildu nepodstatné.
Například v package/utils/hello/src/ si vytvoříme klasický hello world balíček.

Do souboru hello.cpp vložíme toto:

#include <iostream>
using namespace std;

int main()
{
  cout << "Funguje to, mame prvni balicek pro OpenWRT!" << endl;
  return 0;
}

neděle 6. července 2014

DVB-T karty pro Turris

MSI DIGIVOX Micro HD (RTL2832U + FCI2580)
Bus 001 Device 010: ID 1d19:1102 Dexatek Technology Ltd. DK mini DVB-T Dongle

[41340.837991] usb 1-1.1: new high-speed USB device number 5 using fsl-ehci
[41340.971314] usb 1-1.1: dvb_usb_v2: found a 'Dexatek DK mini DVB-T Dongle' in warm state
[41341.034039] usb 1-1.1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[41341.043649] DVB: registering new adapter (Dexatek DK mini DVB-T Dongle)
[41341.054517] usb 1-1.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[41341.070122] i2c i2c-2: fc2580: FCI FC2580 successfully identified
[41341.087003] Registered IR keymap rc-empty
[41341.091739] input: Dexatek DK mini DVB-T Dongle as /devices/soc.0/ffe22000.usb/fsl-ehci.0/usb1/1-1/1-1.1/rc/rc0/input0
[41341.102574] rc0: Dexatek DK mini DVB-T Dongle as /devices/soc.0/ffe22000.usb/fsl-ehci.0/usb1/1-1/1-1.1/rc/rc0
[41341.112547] usb 1-1.1: dvb_usb_v2: schedule remote query interval to 400 msecs
[41341.131248] usb 1-1.1: dvb_usb_v2: 'Dexatek DK mini DVB-T Dongle' successfully initialized and connected
 


Potřebné moduly:
insmod dvb-core.ko
insmod dvb-pll.ko
insmod rtl2830.ko
insmod rtl2832.ko
insmod qt1010.ko
insmod mt2060.ko
insmod mxl5005s.ko
insmod fc0012.ko
insmod fc0013.ko
insmod e4000.ko
insmod fc2580.ko
insmod tua9001.ko
insmod r820t.ko
insmod rc-core.ko
insmod dvb-usb.ko
insmod dvb_usb_v2.ko
insmod rtl2830.ko
insmod rtl2832.ko
insmod dvb-usb-rtl28xxu.ko


Nepotřebuje fw ve /lib/firmware.


středa 18. června 2014

Build Oscamu pro OpenWRT

Stačí stáhnout SDK pro používanou platformu (OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2).
Dále ještě potřebujeme zdrojáky Oscamu, které získáme takto:

svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-svn
nebo určitou verzi Oscamu
svn checkout http://www.streamboard.tv/svn/oscam/tags/1.10 oscam-1.10

přejdeme do složky zdrojáků Oscamu
cd oscam-svn
a spustíme kompilaci:
make CROSS=mips-openwrt-linux- CROSS_DIR=../OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/ STAGING_DIR=../OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/

a výsledek máme ve /oscam-svn/Distribution.

Edit: pro aktuální verzi Turríska stačí následující:
make CROSS=powerpc-openwrt-linux- CROSS_DIR=../openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/ STAGING_DIR=../openwrt/staging_dir/

Odkaz na překompilovanou verzi ze svn přikládám. Stačí jen přejmenovat na oscam, nakopírovat do /bin a konfiguráky si umístit do /etc/oscam a do /etc/init.d/ přidat soubor oscam s násleujícím obsahem:

#!/bin/sh /etc/rc.common
# JFíla

START=90
start()
{
        oscam -c /etc/oscam &
}

přidat práva: chmod +x /etc/init.d/oscam
chmod +x /bin/oscam
a povolit spouštění oscamu po startu: /etc/init.d/oscam enable
a nastartovat: /etc/init.d/oscam start

oscam-1.20-unstable_svn11198-powerpc-openwrt-linux-uclibcspe
http://uloz.to/xLr2D8JA/oscam-1-20-unstable-svn11198-powerpc-openwrt-linux-uclibcspe

https://forum.openwrt.org/viewtopic.php?pid=160086#p160086
http://www.streamboard.tv/oscam/wiki/GettingOscam
https://forum.openwrt.org/viewtopic.php?id=42695

čtvrtek 29. května 2014

Webserver pro Turris

Jako mnoho dalších nadšených uživatelů jsem se nedávno stal šťastným majitelem routeru Turris. Starý router jsem používal jako NAS i jako WEB server, obdobně jsem to udělal i s Turrisem. Výhodou Turrisu je ohromný výpočetní výkon i  velká paměť, není tedy nutné se příliš omezovat a je možné instalovat i aplikace používané na serverech, jako třeba Apache.
Takže k návodu:

sobota 8. února 2014

GPS přijímač pro fotoaparát Nikon

Většina zrcadlovek má konektor pro externí spoušť v případě Nikonu jsou zde piny +5V, GND, ostření (první poloha spouště), expozice (domáčknutí spouště) a vstup pro GPS data. Dle zdrojů se jedná o standardní NMEA protokol na 4800 Bd, stačilo tedy změnit výstupní rychlost GPS modulu RYN25AI založeném na modulu u-blox MAX-7. Speciální konektor byl vytěžen z drátové spouště zakoupené na e-bay, za méně než sto korun, pro mechanické uchycení do sáněk byla ještě zakoupena krytka BS-1. Plášt konektoru bylo nutné po straně opatrně naříznout a přepájet piny napájení a sériového portu.

Nastavení přenosové rychlosti se provádí odesláním následující sekvence, více podrobností je uvedeno v katalogovém listu GPS přijímače. Je vhodné použít například Hercules SETUP od HW serveru nebo Terminal by Br@y++. U prve zmíněného je nutné na kartě Serial zaškrtnou volbu HEX a příkaz odeslat. Druhý vyžaduje zadání bajtů v hexadecimálním formátu uvozené znakem $.

B5 62 06 41 09 00 01 01 30 81 00 00 00 00 FC FF 20

Zapojení pinů konektoru je popsáno na [1].


Kabel je mechanicky upevněn proti vytržení pomocí namáčknutého prstence z velké kancelářské sponky. V rozích jsou vyvrtány díry pro světlovody, levá - zelená indikuje přítomnost napájení GPS modulu a červená blikáním aktuálnost určení polohy.

 Přijímač je vložen do univerzální přístrojové krabičky, v pozadí je patrná přišroubovaná krytka pro sáňky na spodek krabičky. Vrut drží pohromadě oba díly krabičky a zároveň zamezuje otočení krabičky vůči sáňkám fotoaparátu.  


Materiál krabičky je vzhledově dosti podobný materiálu těla fotoaparátu.

[1] http://pinoutsguide.com/DigitalCameras/nikon_d90_pinout.shtml
[2] http://www.reyax.com/Module/GPS/RYN25AI/RYN25AI.pdf
[3] http://www.petermillerphoto.com/nikongps/nikongps2.html

sobota 14. září 2013

Nová hračka jménem WR703 & WR702

Při toulkách po internetu jsem našel zajímavou rodinu WiFi routerů TP-WR703n, WR702n a MR3020.
Nejprve jsem si koupil 702ku za 18 USD. Ještě stačilo dokoupit vhodnou RAMku za 5 USD (dobrá cena za 8 ks RAM), nyní má již zařízení 64 MB RAM. Jen tak mimochodem: věděli jste, že RAM Asusu 500gP je možné rozšířit až na 128 MB?


sobota 20. července 2013

Levná redukce pro oblíbený programátor PRESTO

Pro součástky s třívoltovou logikou si doporučuji postavil následující redukci.
Stačilo použít kousek univerzální redukce SOIC14 na DIP14.


pátek 12. července 2013

Jednoduché zabezpečení připojení pomocí domácího routeru

Pokud se například potřebujete z nezabezpečených sítí připojovat k důležitým aplikacím doporučuji si vytvořit proxy spojení skrze SSH (SSH je sám o sobě šifrovaný). Do nastavení PuTTY stačí přidat tunel pro spojení (Connection -> SSH -> Tunnels). Dále zaškrtnout Dinamic a zadat číslo portu (888).


Díky tomuto nastavení si vytvoříte improvizovanou VPNku, největší výhodou je jednoduchost tohoto řešení bez nutnosti instalace programů (stačí jen na počítači spustit PuTTY a internetový prohlížeč). V prohlížeči je ještě nutné si nastavit položku SOCKS Host na localhost a port například na 888. Do Chrome či Firefoxu je možné nainstalovat doplněk SwitchySharp Proxy, kterým je možné snadno přepínány předdefinované proxy servery.


Z pohledu nezabezpečené, nebo sledované sítě, si váš počítač vytvoří zabezpečené spojení na adresu Vašeho routeru, data tekoucí skrze tento tunel není možné tak snadno sledovat. Výhodou je například možnost ze zahraničí sledovat například ČT4 Sport, kdy si server myslí, že sedíte doma a nikoli v zahraničí. U tohoto řešení nemám představu jak je to s legislativou, zda je důležité, že jste obyvatel České Republiky a řádně platíte koncesionářský poplatek nebo zda je nejdůležitější fakt, že nejste na území ČR.

středa 20. března 2013

Jak nechat zmizet ikonku domácí skupiny z plochy Windows8?



Stačí stáhnou soubor z níže uvedené adresy, ten odstraní(resp. přidá) příslušný klíč z registru.
Soubor vypadá takto:


Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; http://www.sevenforums.com
; Tutorial: http://www.sevenforums.com/tutorials/34580-homegroup-desktop-icon-add-remove.html



[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu]
"{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu]
"{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}"=dword:00000001



http://www.sevenforums.com/tutorials/34580-homegroup-desktop-icon-add-remove.html