středa 13. června 2012

Kolik ROM a RAM program zabere?

V RIDE stačí spustit arm-none-eabi-size.exe -t <soubor.elf>


   text    data     bss     dec     hex filename
   4620      96     392    5108    13f4 Bluetooth.elf
   4620      96     392    5108    13f4 (TOTALS)

sloupeček text ukazuje využití paměti s read-only přístupem, data ukazuje využití paměti pro zápis a čtení. Využití ROM (FLASH) bude tedy text + data (4716:1024= 4,6 kB) a paměti RAM bude data + bss (488 B).

http://support.code-red-tech.com/CodeRedWiki/FlashRamSize

pátek 8. června 2012

Ethernet, HDMI, SATA, USB co více si přát?

Na internetu jsem našel zajímavého konkurenta  Raspberry Pi, jedná se o multimediální přehrávač k TV MELE A2000. Hlavní výhodou je jeho snadná hacknutelnost a spuštění například Ubuntu. Odkazuji na fotky a stránku s popisem IO pinů:


 Cenou je cca o čtvrtinu dražší než Pi, ale je také nutné do výsledné ceny započítat napájecí adaptér, dálkový ovladač a 4 GB Flash! Na desce je také integrován WiFi  b/g/n modul. Jediným nedostatkem je asi nemožnost připojení kamery jako u PI ale nic nebrání tomu připojit libovolnou webkameru do USB portu. Také předpokládám, že u tohoto zařízení není tak kostrbaté řešení připojení Ethernetu pomocí USB sběrnice. Škoda, že jsem zatím nenašel nic o podpoře OpenWRTáku pro toto zařízení, bylo by tak možné realizovat levný a rychlý NAS, WEB server, WRT je možné nahradit například Debianem.

ARM Cortex A8 1GHz
RAM: DDR III 512MB
Storage: Built-in 4GB flash memory (firmware included)

http://rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000/
dealextreme.com

ú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

středa 15. února 2012

Regulární výraz

Pro začátek jen jeden:

 " -.*$"
Najde text začínající řetězcem " -" potom následuje libovolný text a končí koncem řádku.

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í 2. ledna 2012

Hrátky i image IPBoxu 910HD

"Rozbalení" img souboru:

./dgsimg-dump usb_update.img
reading: usb_update.img
writing: "config_welcome" [0x00000000:0x00020000]
writing: "kernel" [0x00020000:0x00220000]
writing: "root" [0x00220000:0x015c0000]
writing: "db" [0x015c0000:0x01fc0000]
Dump image DONE.

Přístup k paměti IPBoxu při nabootování z jiného média. Namountujeme část paměti /dev/mtdblock4 do složky /pokus.
mount -t jffs2 /dev/mtdblock4 /pokus

http://www.denktenk.com/forum/cube-revo-twin-tuner-software/how-to-open-an-dgs-based-img-file
http://ab-forum.info/viewtopic.php?f=85&t=9153

čtvrtek 1. prosince 2011

ATmega8(L)

16 MHz (16MIPS)
8 KB FLASH, 1KB RAM, 512 B EEPROM
ISP, 2x 8-bit Timer, 16-bit Timer, RTC, PWM, 8-bit ADC, USART, SPI, Watchdog, komparátor
vnitřní RC oscilátor 1, 2, 4, 8 MHz

neděle 6. listopadu 2011

První hrátky s IPBoxem 99 HD

Přístup k VFD displeji: echo " Pokus " > /dev/dbox/vfd (date '+    %H:%M' > /dev/dbox/vfd)
Příkazy pro zapínání a vypínání piktogramů na VFD:
ipbox /> /usr/sbin/vfdctl
vfdctl v0.5 - usage:
        vfdctl [[-c] text] [+sym] [-sym] ...
        -c      centered output
        to set symbols use e.g. +power or -power
        available symbols are power, play, pause, rec, stereo,
        480p, 480i, 720p,1080i, 1080p, 576i, 576p, mp3
        type "vfdctl deep" to set box in deep standby
        type "vfdctl setttime" to set system time
        type "vfdctl timer" to set wakeup system time
        type "vfdctl clearicon" to clear all icon
        type "vfdctl cleardisplay" to clear display
        type "vfdctl standby" to set standby
        type "vfdctl demo" to start demo
Info o zařízení http://ip_adresa/web/about ve formátu XML
o hlasitosti http://ip_adresa/web/vol?set=state
změna hlasitosti http://ip_adresa/web/vol?set=set23
seznam audiostop http://ip_adresa/web/getaudiotracks a výběr stopy http://ip_adresa/web/selectaudiotrack?id=2
seznam nahrávek http://ip_adresa/web/timerlist
seznam kanálů http://ip_adresa/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20%22userbouquet.dbe04.tv%22%20ORDER%20BY%20bouquet
EPG  http://ip_adresa/web/epgservice?sRef=1:0:1:1F43:BC6:3:EB0000:0:0:0: pro ČT1
přepnutí na ČT1 (DVB-T) http://ip_adresa/web/zap?sRef=1:0:1:101:111:20CB:EEEE0000:0:0:0:
zapnutí streamování ČT1 (DVB-T) http://ip_adresa/web/stream.m3u?ref=1:0:1:101:111:20CB:EEEE0000:0:0:0:
režim ve kterém se Enigma nachází http://ip_adresa/web/powerstate
Vypnutí/zapnutí/restart atd.: http://ip_adresa/web/powerstate?newstate={powerstate_number}
Načtení informací o příjmu http://ip_adresa/web/signal?
Info o aktuálním kanálu http://ip_adresa/web/getcurrent
Ostatní na http://e2devel.com/apidoc/webif/

0 = Toogle Standby
1 = Deepstandby
2 = Reboot
3 = Restart Enigma2
4 = Wakeup form Standby
5 = Standby
seznam nahrávek http://ip_adresa/web/movielist
Více na http://dream.reichholf.net/wiki/Enigma2:WebInterface

Přehrávání nahrávek z HDD
http://ip_adresa/web/ts.m3u?file=%2Fhdd%2Fmovie%2F20121016%200510%20-%20Discovery%20HD%20CZ%20-%20Science%20of%20the%20Movies.ts

seznam nahrávek v rss formátu
http://ip_adresa/web/movielist.rss

Konfigurace, nastavení časovače i seznamy programů jsou v /etc/enigma2/
  • timers.xml - seznam pořadů které se mají nahrát
<?xml version="1.0" ?>
<timers>
<timer begin="1320697200" end="1320702600" serviceref="1:0:1:201:209:20CB:EEEE0000:0:0:0:" repeated="1" name="Dr. House VII (10)" description="(House VII) Cukr nebo bi T+m l+ꦏ+ instruktora z n+�avn+ꨯ chlapeck+ꨯ t+�ra s urin+�+mi probl+ꭹ. Zd+�e, +e instruktor mohl b+t nkter+m ze sv+ch chovanc+ otr+�n+. Jen+e ve chv+li, kdy se v nemocnici" afterevent="deepstandby" eit="106" location="/hdd/movie/" tags="" disabled="0" justplay="0">
</timer></timers>
·        profile, blacklist, whitelist
·        settings – soubor s nastavením
config.av.policy_43=nonlinear
config.av.videomode.HDMI=1080i
config.av.videoport=HDMI
config.misc.rcused=1
config.misc.firstrun=false
config.misc.initialchannelselection=false
config.misc.startCounter=5
config.misc.languageselected=false
config.misc.defaultchosen=false
config.misc.videowizardenabled=false
config.misc.isNextRecordTimerAfterEventActionAuto=true
config.timezone.val=(GMT+01:00) Belgrade, Bratislava, Budapest, Prague
config.Nims.0.diseqcA=235
config.Nims.0.diseqcMode=single
config.Nims.0.configMode=simple
·        bouquets.radio – soubor se seznamem oblíbených rádií
·        bouquets.tv – soubor se seznamem oblíbených tv programů
#NAME User - bouquets (TV)
#SERVICE 1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.dbe01.tv" ORDER BY bouquet
#SERVICE 1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.dbe02.tv" ORDER BY bouquet
·        userbouquet.dbe00.tv
#NAME HDTV
#SERVICE 1:0:1:36f6:c8e:3:eb0000:0:0:0:
#SERVICE 1:0:19:13cf:c8a:3:eb0000:0:0:0:
#SERVICE 1:0:1:3332:c89:3:eb0000:0:0:0:
#SERVICE 1:0:19:1770:c81:3:eb0000:0:0:0:

složka WebInterface /usr/local/lib/enigma2/python/Plugins/Extensions/WebInterface
složka konfigurace emulátorů /usr/local/tuxbox/config

Co ještě prozkoumat:
#define VFDBRIGHTNESS 0xc0425a03 // možnost řízení jasu VFD?

Odstranění problému s TimeShiftem (soubor /usr/lib/enigma2/python/Screens/InfoBarGenerics.py):
http://www.ab-forum.info/download/file.php?id=40924

IRDETO karta, do souboru /var/keys/oscam.dvbapi přidat:

P: 0D96 1
P: 0D96

Ikonky pro DVB-T programy:

cd /usr/share/enigma2/picon/
ln -s 1_0_1_36F6_C8E_3_EB0000_0_0_0.png 1_0_1_1F43_BC6_3_EB0000_0_0_0.png # CT1 (DVB-S)
ln -s 1_0_1_1F43_BC6_3_EB0000_0_0_0.png 1_0_1_101_111_20CB_EEEE0000_0_0_0.png # CT1
ln -s 1_0_1_1F44_BC6_3_EB0000_0_0_0.png 1_0_1_102_111_20CB_EEEE0000_0_0_0.png # CT2
ln -s 1_0_1_3352_C93_3_EB0000_0_0_0.png 1_0_1_201_209_20CB_EEEE0000_0_0_0.png # Nova
ln -s 1_0_1_1F42_BC6_3_EB0000_0_0_0.png 1_0_1_301_209_20CB_EEEE0000_0_0_0.png # Prima
ln -s 1_0_1_3353_C93_3_EB0000_0_0_0.png 1_0_1_202_209_20CB_EEEE0000_0_0_0.png # Nova Cinema
ln -s 1_0_1_3338_C89_3_EB0000_0_0_0.png 1_0_1_302_209_20CB_EEEE0000_0_0_0.png # Prima COOL
ln -s 1_0_1_13AB_C85_3_EB0000_0_0_0.png 1_0_1_801_209_20CB_EEEE0000_0_0_0.png # Barrandov TV
ln -s 1_0_1_1F46_BC6_3_EB0000_0_0_0.png 1_0_1_103_111_20CB_EEEE0000_0_0_0.png # CT 24
ln -s 1_0_1_1F47_BC6_3_EB0000_0_0_0.png 1_0_1_104_111_20CB_EEEE0000_0_0_0.png # CT4


Co třeba tuning Webinterfejsu (/usr/local/lib/enigma2/python/Plugins/Extensions/WebInterface/web-data/gfx):
Nutno přepsat původní obázek ajaxload.gif (http://www.ab-forum.info/download/file.php?id=39608
Odstranění přepínání videomódů pomocí červeného tlačítka (/usr/share/enigma2/keymap.xml).
<map context="InfobarChannelSelection">
        ...
        <key id="KEY_GREEN" mapto="aspectratio" flags="m" />       
        <key id="KEY_RED" mapto="red" flags="m" />

Jak je to se startem aplikací po startu zařízení?
Odkazy na skripty jsou v /etc/rc.d/rc3.d, rc3 - normální režim bez grafického prostředí [1]
vlastní skripty jsou v adresáři /etc/int.d
#!/bin/sh
/usr/local/bin/oscam

Po čisté instalaci (nainstalované balíčky)

busybox - 1.17.1-r1 -
dropbear - r0 -
enigma2 - r2 -
enigma2-plugin-systemplugins-allinonepanel - 0.8 -
enigma2-plugin-systemplugins-hotplug - r0 -
enigma2-plugin-systemplugins-networkbrowser - r0 -
enigma2-plugin-systemplugins-networkwizard - r0 -
enigma2-plugin-systemplugins-positionersetup - r0 -
enigma2-plugin-systemplugins-satfinder - r0 -
enigma2-plugin-systemplugins-skinselector - r0 -
enigma2-plugin-systemplugins-softwareupdate - r0 -
enigma2-plugin-systemplugins-videomode - r0 -
enigma2-plugin-systemplugins-videotune - r0 -
ethtool - r0 -
ipbox-dvb-modules - r3 -
ipbox-keymaps - r2 -
kernel-module - r0 -
python - r3 -
tuxbox-image-info - r3 -
tuxbox-tuxtxt-32bpp - r0 -
twisted - r0 -
update-etc - r2 -

Defaultní zdroje, po instalaci klientserver pluginu (Download)
src/gz locales http://update.abipbox.com/enigmaupd/abng/e2/locales
src/gz plugins http://update.abipbox.com/enigmaupd/abng/e2/plugins
src/gz settings http://update.abipbox.com/enigmaupd/abng/e2/settings

src/gz settings_e1 http://www.abipbox.com/enigmaupd/abng/e1/settings
src/gz plugins_e1 http://www.abipbox.com/enigmaupd/abng/e1/plugins
src/gz skins_e1 http://www.abipbox.com/enigmaupd/abng/e1/skins
src/gz locales_e1 http://www.abipbox.com/enigmaupd/abng/e1/locales
src/gz addons http://www.enigma.satupdate.net/abng/new
src/gz abforum http://www.ab-forum.info/feed/e2hd 


Přimountování samby do Enigmy2

insmod /lib/modules/cifs.ko
mount -t cifs -o username=root,password=heslo  //192.168.1.3/opt /media/SERVER



Zatím konec.

[1] http://www.linuxexpres.cz/praxe/jak-startuje-system
[2] http://dream.reichholf.net/e2web

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);

středa 12. října 2011

Maskování bitů

#define ZapBit(registr,pin) ((registr)|=1<<(pin))
#define VypBit(registr,pin) ((registr)&=~(1<<(pin)))
#define InvertBit(registr,pin) (registr^=1<<pin)
#define GetBit(registr,pin) ((registr)&(1<<(pin)))


debug &= 0xC;
debug = ~debug;
debug &= 0xC;
pokus ^= ~pokus;
//pokus |= debug;