abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 3
    21.4. 19:11 | Komunita

    Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.

    Ladislav Hagara | Komentářů: 19
    21.4. 04:44 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Novým vedoucím je Andreas Tille.

    Ladislav Hagara | Komentářů: 7
    21.4. 00:11 | Nová verze

    Po osmi měsících vývoje byla vydána nová verze 0.12.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 268 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    20.4. 23:55 | Pozvánky

    Poslední měsíc byl plný zajímavých akcí, o kterých Vám bastlíři z projektu MacGyver mohou povědět, protože se na ně sami vydali. Kde všude byli, ptáte se? Objevili se na Installfestu, Arduino Day, Hackaday Europe a tajném srazu bastlířů z Twitteru. A z každé akce pro vás mají zajímavé poznatky.

    … více »
    bkralik | Komentářů: 1
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (17%)
    Celkem 670 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Enterprise řešení RFID v podání firmy Intelleflex

    25.8.2013 23:08 | Přečteno: 3907× | linux | Výběrový blog | poslední úprava: 29.8.2013 07:41

    Jak lze totálně zabít RFID řešení v enterprise sféře postavené na linuxu aneb Intelleflex nebrat.

    RFID v podání firmy Intelleflex

    Někteří si jistě položí otázku, co je to RFID. Nuže, jedná se o "Radio Frequency Identification", tedy indentifikaci objektu pomocí radiových frekvencí. Jinými slovy, v našem konkrétním případě využíváme RFID na identifikaci tahačů (automobilů). Každý řidič nafasuje RFID tag a ten má za sklem u auta. Když k nám přijede, tak je již na dálku identifikován pomocí RFID čtečky(vysílače), která je propojena s IS (informačním systémem). Systém tedy o něm ví a hned dá vědět našemu zaměstnanci, kam má jet a co má naložit na jaký tahač.
    U nás je tedy kladen důraz na schopnost číst tagy minimálně na 5m
    Použití RFID je samozřejmě různorodé, viz třeba wikipedia : RFID.


    Obsah


    Pořídli jsme si Intelleflex FMR-5000.

    Je čas si trochu vylít srdce.
    Je to již mnoho let, kdy jsme šli do tohoto produktu. Do výběru jsem neviděl a těžko říci, jaké byly v té době možnosti. Bohužel, narazili jsme asi víc, než by se dalo čekat.


    Aktivní tagy.

    Firma v té době disponovala aktivními a pasivními tagy. Na takovou vzdálenost byla potřeba aktivních tagů, tzn. krabiček s baterií, která měla vydržet minimálně rok. Cena tagu byla 200,-/ks (počet našich tahačů / potřebných tagů nebudu zveřejňovat). Problém byl, že výrobce asi nepočítal s tím, že tag může být nějakou dobu před čtečkou, což je případ tahače, který přijel ke stanovišti a čekal na nakládku/vykládku. V takovém případě běžela stále komunikace mezi tagem a čtečkou a baterie v tagu rychle odcházela. Odchod tagu na věčnost byl neohlášený, prostě najednou řidiči tag přestal fungovat. Dost často tagy zlobily i s nabitou baterií a čtečka je nečetla.

    Jelikož firma nic nezaručuje, tak toto nebylo možno ani reklamovat. Poté šéf přišel s myšlenkou výměny baterie v tagu, aby se nemusel kupovat nový tag. Při prvních pokusech jsme zjistili nejen to, že rozebrat tag je nadlidský úkol, ale i to, že tag má v sobě self-destruction mechanismus. Po odpojení od napájení ho již nelze oživit. Toto je přímo fce výrobce, která nám jaksi nebyla sdělena.


    Firmware.

    Firmware byl silně zabugován. Čtečky zlobily. Webové rozhraní bylo silně pomalé, umožňovalo atorizaci, ale neumožňovalo restart čtečky (ten šel udělat změnou IP, po který se čtečka automaticky restartovala a poté bylo potřeba změnit IP zpět a znovu přečkat restart). Další možnost pro restart bylo pomocí telnetu (nutné údaje nám sdělili až později). Občas se upgrade firmware dodavateli nepovedl a čtečka musela být zaslána výrobci, tedy do Kalifornie na nápravu. Čtečky taktéž disponují seriovým portem a jistým menu rozhraním po naběhnutí čtečky (přes onen seriový port), které jaksi funguje a nefunguje. Brána na čtečkách šla nastavit jen pomocí dhcp, staticky v rozhraní byla, ale nefungovala.


    Hardware čtečky.

    Po první výměně firmware začaly čtečky v létě tuhnout. Firmware byl asi náročnější a teplejší léto přestaly čtečky zvládat, takže se k nim instalovali 120 větráky na 230V. I přesto však občas došlo k výtuhu čtečky. Někdy se na ní nedalo ani dostat přes telnet a byl nutný fyzický zásah a odpojení od napájení. V jiných případech třeba soft restart nepomohl a bylo taktéž nutné nechat čtečku chvíli bez proudu. Tato věc se už nikdy zcela neodstranila. Čtečky byly umístěny různě, pod stříškou, v antoníčku, v lodním kontejneru, všude se chovaly stejně.


    Přechod na novější RFID a novější tagy.

    Technologie jde kupředu a FMR-5000 nahradila FMR-6000 a bylo i potřeba přejít na novější tagy, které měly obsahovat spořící režimy, měly se vyrovnat s delším kontaktem se čtečkou, měly pomocí API informovat o tom, že jim dochází baterie apod. Kompatibilita se starýma čtečkama byla zajištěna pomocí novějšího firmware.

    Přechod na novější verzi firmware byl buď a nebo. Vše zařizoval dodavatel, my takové věci neřešili. Když se nepovedl upgrade firmware, tak opět posílal čtečku do Kalifornie výrobci. Bylo to 50% na 50%. Výrobce radil dodavateli, aby se pokoušel flashovat tak dlouho, dokud se mu to nepodaří. Není prostě nad parádní support. Takže dodavateli se občas po týdnu flashování něco podařilo přeflashovat.


    Nový firmware.

    Nový firmware byl (a stále je) opravdu výplod moderních technologií.
    Webové rozhraní fungovalo a funguje jen ve firefoxu, v ničem jiném (opravdu vůbec v ničem, jen ve firefoxu).
    V ostatních prohlížečích nejsou vidět v rozhraní žádné hodnoty (verze fw, uptime, ip apod.).
    Aby toho nebylo málo, tak výrobce odstranil veškerou autorizaci, takže najednou mohl kdoli měnit nastavení čteček. Čtečky začaly silně zlobit.
    Taktéž byl odstraněn telnet, ale všiml jsem si, že začalo fungovat ssh, ale na ten nám nikdo nechtěl dát přístup (dodavatel neznal a Intelleflex nedal).
    Od této doby se tedy muselo vždy chodit ke čtečce a fyzicky jí restartovat (třeba 3x denně téměř každou z 9 RFID).
    Webové rozhraní obsahuje pokročilou administraci a flashovací rozhraní. Záložky, které tyto volby zpřístupňují jen při prvním načtení web rozhraní probliknou a hned se schovají (zřejmě nějaké super cool zabezpečení), takže je třeba zadat přímou adresu těchto záložek a může se flashovat.


    Dodavatel : ta US verze je naprosto totožná jako EU.

    Stále jsem tomu nevěnoval pozornost a nechával vše na dodavateli, který většinou komunikoval s mým kolegou, jenž to měl tak nějak víc na starosti. Novější firmware byl dostupný jen v US verzi. Dodavatel konstatoval, že je stejný jako EU verze a nasadil ho. RFID čtečky začaly fungovat a vše vypadalo dobře.


    Intelleflex : to jsme vás dostali, co?.

    Čtrnáct dní po zakoupení upgradů apod. (nemalé částky) nám bylo oznámeno, že Intelleflex končí se supportem těchto čteček. Dodavatel v tom byl nevinně (dozvěděl se to kousek před námi).


    Jak si pro nás došlo CTU.

    Řekněmě, že CTU nesouhlasilo s prohlášením našeho dodavatele : "US verze je naprosto totožná jako EU" :), viz : 865-868MHz (EU) a 902-928MHz (USA). Kdo uhodne, co běží na 900MHz, resp. 876-880MHz a 921-925MHz? :). Na druhou stranu, pokuta se neplatila, dali nám jen lhůtu na vyřešení problému (ta byla dohodou asi jeden měsíc) s tím, že kdybychom nestíhali, tak si můžeme zaslat žádost o prodloužení s odůvodněním a bude nám vyhověno (aspoň se tak činí ve většině případů).


    Už je dostupná EU verze, jdeme do ní.

    Odvážné to tvrzení, které skončilo jak jinak, než opětovným kolečkem výměny všech RFID čteček a postupným zasláním do US na výměnu FW.


    Co znamená ta červená dioda?.

    Na čtečkách vždy svítila červená dioda, ale já si pamatoval, že ze začátku tomu tak nebylo. Ptal jsem se dodavatele a ten nic, že to nic neznamená. V takovým stavu nám chodily čtečky i z Kalifornie.


    Stav, který mně již nenechal klidným.

    Po všech těchto peripetiích a finančních výlohách byl současný stav tento

    Vše jsem pozoroval z dálky a díval se, jak se objevují a mizí řešení a objevují nové problémy.
    Největším impulzem k tomu, abych přestal dělat na svých věcech a zapojil se do řešení problémů s RFID byla kolegova dovolená.
    Hned první den, kdy jsem musel běžet restartovat čtečky jsem konstatoval, že na to nemám chuť ani čas.
    Rozhodl jsem se risknout poškození jedné plonkové čtečky a šel si s ní hrát. Takže jdeme na to.


    Získání roota do RFID čtečky.

    Připojíme čtečku přes seriový port k pc, port nastavíme takto :

    cat /etc/minirc.rfid
    # Automaticky vytvořený soubor - pro změnu nastavení použijte "minicom -s".
    pu port             /dev/ttyS0
    pu baudrate         57600
    pu bits             8
    pu parity           N
    pu stopbits         1
    pu rtscts           No
    

    Po zapnutí čtečky je vidět následující výpis :

    minicom rfid
    Vítejte v programu minicom 2.6.1
    
    VOLBY: I18n 
    Datum překladu programu: Mar 25 2012, 09:58:15.
    Port /dev/ttyS0
    
    Stiskněte CTRL-A Z pro nápovědu o klávesách se zvláštním významem
    
    �+Ethernet eth0: MAC address 00:50:c2:81:30:31
    IP: 192.168.1.101/255.255.255.0, Gateway: 192.168.1.1
    Default server: 192.168.1.100
    
    RedBoot(tm) bootstrap and debug environment [ROMRAM]
    Non-certified release, version UNKNOWN - built 13:06:56, Dec  3 2007
    
    Platform: Cirrus Logic EDB9302 Board (ARM920T) Rev A
    Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
    Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited
    
    RAM: 0x00000000-0x02000000, [0x00043320-0x01fdd000] available
    FLASH: 0x60000000 - 0x64000000, 512 blocks of 0x00020000 bytes each.
    == Executing boot script in 3.000 seconds - enter ^C to abort
    RedBoot> fis load zImage
    RedBoot> exec -c "root=/dev/mtdblock1 rootfstype=jffs2 console=ttyAM0"
    Using base address 0x00080000 and length 0x00200000
    Uncompressing Linux................................................................................................ done, booting the ke.
    Linux version 2.6.20.4 (root@software) (gcc version 4.1.1) #2 PREEMPT Wed Apr 2 10:55:26 PST 2008
    CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
    Machine: Cirrus Logic EDB9302 Evaluation Board
    Memory policy: ECC disabled, Data cache writeback
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    Built 1 zonelists.  Total pages: 8016
    Kernel command line: root=/dev/mtdblock1 rootfstype=jffs2 console=ttyAM0
    PID hash table entries: 128 (order: 7, 512 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    Memory: 8MB 8MB 8MB 8MB = 32MB total
    Memory: 29304KB available (2736K code, 295K data, 108K init)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    ep93xx: PLL1 running at 400 MHz, PLL2 at 260 MHz
    ep93xx: FCLK 200 MHz, HCLK 100 MHz, PCLK 50 MHz
    SCSI subsystem initialized
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    TCP bind hash table entries: 512 (order: -1, 2048 bytes)
    TCP: Hash tables configured (established 1024 bind 512)
    TCP reno registered
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
    io scheduler noop registered (default)
    io scheduler anticipatory registered
    ep93xx_wdt: EP93XX watchdog, driver version 0.3
    Serial: AMBA driver $Revision: 1.41 $
    apb:uart1: ttyAM0 at MMIO 0x808c0000 (irq = 52) is a AMBA
    apb:uart2: ttyAM1 at MMIO 0x808d0000 (irq = 54) is a AMBA
    uart-pl010: probe of apb:uart3 failed with error -16
    RAMDISK: wrong blocksize 8096, reverting to defaults
    RAMDISK driver initialized: 2 RAM disks of 32768K size 1024 blocksize
    loop: loaded (max 8 devices)
    nbd: registered device at major 43
    physmap platform flash device: 04000000 at 60000000
    physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
     Amd/Fujitsu Extended Query Table at 0x0040
    physmap-flash.0: CFI does not contain boot bank location. Assuming top.
    number of CFI chips: 1
    cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
    cmdlinepart partition parsing not available
    Searching for RedBoot partition table in physmap-flash.0 at offset 0x3fe0000
    8 RedBoot partitions found on MTD device physmap-flash.0
    Creating 8 MTD partitions on "physmap-flash.0":
    0x00000000-0x00040000 : "RedBoot"
    0x00040000-0x01e40000 : "rootfs"
    0x01e40000-0x02040000 : "zImage"
    0x02040000-0x02240000 : "zImage-a"
    0x02240000-0x036e0000 : "partition1"
    0x036e0000-0x03fe0000 : "unallocated"
    0x03fe0000-0x03fff000 : "FIS directory"
    mtd: partition "FIS directory" doesn't end on an erase block -- force read-only
    0x03fff000-0x04000000 : "RedBoot config"
    mtd: partition "RedBoot config" doesn't start on an erase block boundary -- force read-only
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 10
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    VFS: Mounted root (jffs2 filesystem).
    Freeing init memory: 108K
    eth0: No network cable detected!
    eth0: No network cable detected!
    
    
    
    *****************************   MAIN MENU   ******************************
    *  Instructions: Enter selection number and hit return.                  *
    *                                                                        *
    *  1  Enter Static IP                                                    *
    *  2  Use DHCP                                                           *
    *  3  Reset VR To Defaults                                               *
    *  4  Get Reader IP Info                                                 *
    *  5  Reboot Reader                                                      *
    **************************************************************************
    > Data CRC a78ce15a != calculated CRC 2a1b6263 for node at 009c725c
    Data CRC 45ec67f5 != calculated CRC 4741cd8d for node at 009c99a8
    Data CRC d7a06533 != calculated CRC 07e499c5 for node at 009ca574
    

    Jak je vidět zvýrazněný text, o bootování se stará Redboot a má nastaven 3s timetou v boot menu. Stačí během těch 3s zmáčknout CTRL+C a jsme v boot menu. Poté stačí nadatlovat zmíněné příkazy s lehkou úpravou a máme roota :

    minicom rfid
    Vítejte v programu minicom 2.6.1
    
    VOLBY: I18n 
    Datum překladu programu: Mar 25 2012, 09:58:15.
    Port /dev/ttyS0
    
    Stiskněte CTRL-A Z pro nápovědu o klávesách se zvláštním významem
    
    +Ethernet eth0: MAC address 00:50:c2:81:30:30
    IP: 10.1.7.99/255.255.255.0, Gateway: 10.1.7.1
    Default server: 192.168.1.100
    
    RedBoot(tm) bootstrap and debug environment [ROMRAM]
    Non-certified release, version UNKNOWN - built 13:06:56, Dec  3 2007
    
    Platform: Cirrus Logic EDB9302 Board (ARM920T) Rev A
    Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
    Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited
    
    RAM: 0x00000000-0x02000000, [0x00043320-0x01fdd000] available
    FLASH: 0x60000000 - 0x64000000, 512 blocks of 0x00020000 bytes each.
    == Executing boot script in 3.000 seconds - enter ^C to abort
    
    == Executing boot script in 3.000 seconds - enter ^C to abort
    
    == Executing boot script in 3.000 seconds - enter ^C to abort
    ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> ^C
    RedBoot> fis load zImage
    RedBoot> exec -c "root=/dev/mtdblock1 rootfstype=jffs2 console=ttyAM0 init=/bin/sh"
    Using base address 0x00080000 and length 0x00250000
    Uncompressing Linux................................................................................................ done, booting the ke.
    Linux version 2.6.20.4 (root@software) (gcc version 4.1.1) #2 PREEMPT Wed Apr 2 10:55:26 PST 2008
    CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
    Machine: Cirrus Logic EDB9302 Evaluation Board
    Memory policy: ECC disabled, Data cache writeback
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    Built 1 zonelists.  Total pages: 8016
    Kernel command line: root=/dev/mtdblock1 rootfstype=jffs2 console=ttyAM0 init=/bin/sh
    PID hash table entries: 128 (order: 7, 512 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    Memory: 8MB 8MB 8MB 8MB = 32MB total
    Memory: 29304KB available (2736K code, 295K data, 108K init)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    ep93xx: PLL1 running at 400 MHz, PLL2 at 260 MHz
    ep93xx: FCLK 200 MHz, HCLK 100 MHz, PCLK 50 MHz
    SCSI subsystem initialized
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    TCP bind hash table entries: 512 (orderČtečku můžeme : -1, 2048 bytes)
    TCP: Hash tables configured (established 1024 bind 512)
    TCP reno registered
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
    io scheduler noop registered (default)
    io scheduler anticipatory registered
    ep93xx_wdt: EP93XX watchdog, driver version 0.3
    Serial: AMBA driver $Revision: 1.41 $
    apb:uart1: ttyAM0 at MMIO 0x808c0000 (irq = 52) is a AMBA
    apb:uart2: ttyAM1 at MMIO 0x808d0000 (irq = 54) is a AMBA
    uart-pl010: probe of apb:uart3 failed with error -16
    RAMDISK: wrong blocksize 8096, reverting to defaults
    RAMDISK driver initialized: 2 RAM disks of 32768K size 1024 blocksize
    loop: loaded (max 8 devices)
    nbd: registered device at major 43
    physmap platform flash device: 04000000 at 60000000
    physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
     Amd/Fujitsu Extended Query Table at 0x0040
    physmap-flash.0: CFI does not contain boot bank location. Assuming top.
    number of CFI chips: 1
    cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
    cmdlinepart partition parsing not available
    Searching for RedBoot partition table in physmap-flash.0 at offset 0x3fe0000
    8 RedBoot partitions found on MTD device physmap-flash.0
    Creating 8 MTD partitions on "physmap-flash.0":
    0x00000000-0x00040000 : "RedBoot"
    0x00040000-0x01e40000 : "rootfs"
    0x01e40000-0x020a0000 : "zImage"
    0x020a0000-0x02300000 : "zImage-a"
    0x02300000-0x037a0000 : "partition1"
    0x037a0000-0x03fe0000 : "unallocated"
    0x03fe0000-0x03fff000 : "FIS directory"
    mtd: partition "FIS directory" doesn't end on an erase block -- force read-only
    0x03fff000-0x04000000 : "RedBoot config"
    mtd: partition "RedBoot config" doesn't start on an erase block boundary -- force read-only
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 10
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    VFS: Mounted root (jffs2 filesystem).
    Freeing init memory: 108K
    /bin/sh: can't access tty; job control turned off
    #
    

    Abychom nijak neovlivnili heslo roota(těžko říci, jak dochází k flashování a zda ho nějak nevyužívají), tak si vytvoříme vlastního uživatele (v našem případě se bude jmenovat "admin") a dáme mu uid 0, aby měl stejná práva jako root (což je takový malý hack, který používají oškliví lidé).

    # vytvoříme vlastní domovský adresář :
    mkdir /home/admin
    
    # přidáme řádek do passwd :
    vi /etc/passwd
    ...
    admin:x:0:0:root:/home/admin:/bin/sh
    
    # přidáme řádek do shadow :
    vi /etc/shadow
    ...
    admin:*:10933:0:99999:7:::
    
    # nastavíme heslo :
    passwd admin
    

    Nyní by měl fungovat vzdálený přístup na čtečku přes ssh. Ale teď v ní nic neběží (ani ssh), nesputily se žádné služby. Spustili jsme totiž místo init scriptů rovnou shell "/bin/sh". Čtečku můžeme klidně natrdo restartovat a seriový kabel už nepotřebujeme (vše už můžeme dělat přes ssh). Nebo můžeme spustit tento příkaz, jenž nám spustí ssh a další věci (pak by měl přístup na ssh skutečně jít, ale web service a další věci to nespustí):

    /etc/rc.sysinit
    

    Nejde uložit žádný soubor - volné místo na partition.

    Pokud nám nejde uložit žádný soubor při úpravě (/etc/passwd, /etc/shadow apod.), tak nejspíše proto, že došlo místo na flashce. Toto byl problém u asi 80% čteček. Může zato program watchdogu, který nesmyslně loguje přímo na interní disk. To lze zjistit, tak, že si vypíšeme PID procesu, jenž přistupuje k danému souboru :

    # zjištění PID procesu :
    fuser /dev/inull
    264
    
    # zjištění samotného procesu
    ps |grep 264
    264 root       512 S    /watchdog.FMR5000.bin
    

    Partition se systémem má velikost 30MiB. Je použit souborový systém jffs2 se zapnutou kompresí. Program "/watchdog.FMR5000.bin" loguje do "/dev/inull", což je obyčejný soubor. Tento soubor nabyde asi do 190MiB, což je zhruba 19MiB zkomprimovaných dat a pak mohou začít problémy (na systémové partition defaultně 11MiB sežere systém + zmíněných 19MiB logů a je jasné, že je problém). Prvních pár řádků souborů s logem, jen tak pro přehled :

    Watchdog Version 0.0.0004 
    arg1 => turn on logging [1=true,0=false]
    Starting DevStatus Test of VR
    Connection established...
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    ///////////////////////////////////////////////// 
    // SocketConnection Object at address:0x13008
    socketConnection->PortNumber:         80
    socketConnection->IsServer:           0x0
    socketConnection->RecvTimeoutSeconds: 0
    socketConnection->RecvTimeoutMS:      1000
    socketConnection->DataSize:           987
    socketConnection->GotNewData:         0x0
    socketConnection->DeviceName:         /dev/eth0
    socketConnection->ServerIP:           127.0.0.1
    socketConnection->ConnectionHandle:   3
    socketConnection->LastErrorCode:      0
    socketConnection->BufferSize:         8192
    socketConnection->Buffer: 
    ---HEX DISPLAY ---
     3c 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e 3c 65 72 72 6f 72 52 65 70 6f 72 74 3e 3c 6e 75
     6d 45 72 72 6f 72 73 3e 30 3c 2f 6e 75 6d 45 72 72 6f 72 73 3e 3c 2f 65 72 72 6f 72 52 65 70 6f
     72 74 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 30 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73
     69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 35 3c 2f 6d 69
     6e 6f 72 3e 3c 70 61 74 63 68 3e 38 36 39 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65
     78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64
     65 76 49 44 3e 31 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 30
     3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 61 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31
     3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c
     2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 32 3c 2f 64 65 76 49 44 3e
     3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72
     3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63
     65 3e 3c 64 65 76 49 44 3e 33 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f
     72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74
     63 68 3e 33 30 33 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72
     73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 34 3c 2f
     64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c
     6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 34 30 34 3c 2f 70 61 74 63 68
     3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65
     3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 35 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f
     6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f
     72 3e 3c 70 61 74 63 68 3e 35 30 35 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74
     3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 63 6f 75 6e 74 72 79 3e 33 32 37
     3c 2f 63 6f 75 6e 74 72 79 3e 3c 2f 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e
    --- ASCII DISPLAY ---
    0035869ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ130a1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ22001ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3200303ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ411404ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ511505ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ327
    // END 
    ///////////////////////////////////////////////// 
    Starting DevStatus Test of VR
    Connection established...
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    ///////////////////////////////////////////////// 
    // SocketConnection Object at address:0x13008
    socketConnection->PortNumber:         80
    socketConnection->IsServer:           0x0
    socketConnection->RecvTimeoutSeconds: 0
    socketConnection->RecvTimeoutMS:      1000
    socketConnection->DataSize:           987
    socketConnection->GotNewData:         0x0
    socketConnection->DeviceName:         /dev/eth0
    socketConnection->ServerIP:           127.0.0.1
    socketConnection->ConnectionHandle:   3
    socketConnection->LastErrorCode:      0
    socketConnection->BufferSize:         8192
    socketConnection->Buffer: 
    ---HEX DISPLAY ---
     3c 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e 3c 65 72 72 6f 72 52 65 70 6f 72 74 3e 3c 6e 75
     6d 45 72 72 6f 72 73 3e 30 3c 2f 6e 75 6d 45 72 72 6f 72 73 3e 3c 2f 65 72 72 6f 72 52 65 70 6f
     72 74 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 30 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73
     69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 35 3c 2f 6d 69
     6e 6f 72 3e 3c 70 61 74 63 68 3e 38 36 39 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65
     78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64
     65 76 49 44 3e 31 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 30
     3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 61 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31
     3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c
     2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 32 3c 2f 64 65 76 49 44 3e
     3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72
     3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63
     65 3e 3c 64 65 76 49 44 3e 33 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f
     72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74
     63 68 3e 33 30 33 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72
     73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 34 3c 2f
     64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c
     6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 34 30 34 3c 2f 70 61 74 63 68
     3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65
     3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 35 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f
     6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f
     72 3e 3c 70 61 74 63 68 3e 35 30 35 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74
     3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 63 6f 75 6e 74 72 79 3e 33 32 37
     3c 2f 63 6f 75 6e 74 72 79 3e 3c 2f 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e
    --- ASCII DISPLAY ---
    0035869ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ130a1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ22001ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3200303ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ411404ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ511505ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ327
    // END 
    ///////////////////////////////////////////////// 
    Starting DevStatus Test of VR
    Connection established...
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    SocketConnection_Read() recv error code = 11
     Handle = 3, buffer = , data size = 0
    ///////////////////////////////////////////////// 
    // SocketConnection Object at address:0x13008
    socketConnection->PortNumber:         80
    socketConnection->IsServer:           0x0
    socketConnection->RecvTimeoutSeconds: 0
    socketConnection->RecvTimeoutMS:      1000
    socketConnection->DataSize:           987
    socketConnection->GotNewData:         0x0
    socketConnection->DeviceName:         /dev/eth0
    socketConnection->ServerIP:           127.0.0.1
    socketConnection->ConnectionHandle:   3
    socketConnection->LastErrorCode:      0
    socketConnection->BufferSize:         8192
    socketConnection->Buffer: 
    ---HEX DISPLAY ---
     3c 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e 3c 65 72 72 6f 72 52 65 70 6f 72 74 3e 3c 6e 75
     6d 45 72 72 6f 72 73 3e 30 3c 2f 6e 75 6d 45 72 72 6f 72 73 3e 3c 2f 65 72 72 6f 72 52 65 70 6f
     72 74 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 30 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73
     69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 35 3c 2f 6d 69
     6e 6f 72 3e 3c 70 61 74 63 68 3e 38 36 39 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65
     78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64
     65 76 49 44 3e 31 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 33 30
     3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 61 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31
     3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c
     2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 32 3c 2f 64 65 76 49 44 3e
     3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72
     3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 31 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63
     65 3e 3c 64 65 76 49 44 3e 33 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f
     72 3e 32 30 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 30 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74
     63 68 3e 33 30 33 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72
     73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 34 3c 2f
     64 65 76 49 44 3e 3c 76 65 72 73 69 6f 6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c
     6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f 72 3e 3c 70 61 74 63 68 3e 34 30 34 3c 2f 70 61 74 63 68
     3e 3c 74 65 78 74 3e ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff 3c 2f 74 65 78 74 3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65
     3e 3c 64 65 76 69 63 65 3e 3c 64 65 76 49 44 3e 35 3c 2f 64 65 76 49 44 3e 3c 76 65 72 73 69 6f
     6e 3e 3c 6d 61 6a 6f 72 3e 31 3c 2f 6d 61 6a 6f 72 3e 3c 6d 69 6e 6f 72 3e 31 3c 2f 6d 69 6e 6f
     72 3e 3c 70 61 74 63 68 3e 35 30 35 3c 2f 70 61 74 63 68 3e 3c 74 65 78 74 3e ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 3c 2f 74 65 78 74
     3e 3c 2f 76 65 72 73 69 6f 6e 3e 3c 2f 64 65 76 69 63 65 3e 3c 63 6f 75 6e 74 72 79 3e 33 32 37
     3c 2f 63 6f 75 6e 74 72 79 3e 3c 2f 64 65 76 53 74 61 74 75 73 52 65 70 6c 79 3e
    --- ASCII DISPLAY ---
    0035869ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ130a1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ22001ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3200303ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ411404ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ511505ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ327
    // END 
    ///////////////////////////////////////////////// 
    Starting DevStatus Test of VR
    

    Setkal jsem se s případama, že byl soubor s logem menší, možná se někdy zcela náhodně otočí, opravdu nevím, jen vím, že se dost často neotáčí. Taktéž se stalo na pár čtečkách, že neběžel watchdog (asi kvůli 100% zaplnění místa)


    /dev/inull ?.

    Tento idiotský problém se vyřeší tak, že soubor smažeme a vytvoříme hardlink do /dev/null, což jednoduše znamená, že budeme veškeré logy zahazovat :

    rm /dev/inull
    ln /dev/null /dev/inull
    
    # provedeme restart, ať máme jistotu :
    reboot
    

    Smazání souboru může trvat někdy docela dlouho, pěkná šílenost. Jednou jsem snad i natvrdo vypnul rfid a znovu nahodil


    Co jsme tím vyřešili?.


    Heslo roota aneb milujeme Johna.

    Z předchozích kroků jsme získali přístup k osoleným hash heslům. Otázkou je, co s nimi? Jsou to sice MD5 hashe, ale jsou osolený, takže klasické tabulky s hashy nám asi nepomohou (mám jich doma kolem 500GiB, fňuk.). Měl jsem mít týden dovolenou, tak jsem si řekl, že na tu dobu pustím brutal force attack a uvidíme. Třeba to bude nějaké krátké heslo a podaří se.

    # připravíme si db pro Johna :
    unshadow /etc/passwd /etc/shadow > crack.passwd.db
    
    # lámání hesel spustíme ve screenu, abychom mohli jednoduše kontrolovat průběh na dálku :
    screen -dmS john-ripper
    screen -r john-ripper
    
    # spustíme lámání :
    john crack.passwd.db
    Created directory: /home/devaine/.john
    Loaded 1 password hash (FreeBSD MD5 [SSE2i 12x])
    
    # když dáme enter, tak se zobrazí aktuální rychlost + aktuálně zkoušený pass :
    guesses: 0  time: 0:00:00:19 0.00% (3)  c/s: 102063  trying: ev4 - iu2
    

    Úlohu jsem spustil na "Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz". K mému úžasu bylo druhý den po lámání. Stačilo k tomu 13h a výsledek je decryptované heslo : "ifx123" :). Paráda, nemusím obíhat čtečky s notebookem a bojovat přes seriák, nyní mám plný přístup na dálku na jakoukoliv čtečku. Ještě teda něco, co bude strejdovi G víc chutnat : intelleflex rfid root password : ifx123


    Boot systému z blízka.

    Jak čtečka nabíhá? Následujícím způsobem :

    RedBoot -> Kernel 2.6.20.4 -> /etc/inittab :
    
    cat /etc/inittab 
    # /etc/inittab
    #
    # Copyright (C) 2001 Erik Andersen 
    #
    # Note: BusyBox init doesn't support runlevels.  The runlevels field is
    # completely ignored by BusyBox init. If you want runlevels, use
    # sysvinit.
    #
    # Format for each entry: :::
    #
    # id        == tty to run on, or empty for /dev/console
    # runlevels == ignored
    # action    == one of sysinit, respawn, askfirst, wait, and once
    # process   == program to run
    
    # Startup the system
    null::sysinit:/etc/rc.sysinit
    
    # Put a shell on the serial port
    ##ttyAM0::askfirst:-/sbin/getty 57600 /dev/ttyAM0
    null::once:/work/intelleflex/serial_con
    #null::once:/usr/local/reader/sr320init
    null::once:/bin/sh /work/intelleflex/runStage1.sh
    null::shutdown:/bin/umount -a
    

    Dále pak inittab načte "/etc/rc.sysinit". Ten připojí nezbytná zařízení, nastaví adresu síťovce (buď dhcp, nebo spustí externí script, který nastaví statickou ip), dále spustí ssh službu (dropbear)

    cat /etc/rc.sysinit
    #!/bin/sh
    
    #
    # Set the path so we can find the programs we need.
    #
    PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/reader:/:/usr/local/bin:.
    
    #
    # Mount the /proc, /proc/bus/usb, and /dev/pts filesystems.
    #
    mount -t proc proc /proc
    mount -t usbfs usbfs /proc/bus/usb
    mount -t devpts devpts /dev/pts
    mkdir -p /sys
    mount -t sysfs sysfs /sys
    mount -a
    
    #
    # Start syslogd.
    #
    syslogd -C -m 0
    
    #
    # Start klogd.
    #
    klogd
    
    HWADDR=`getRedBootMAC`
    echo "${HWADDR}" > /etc/MACAddress
    ifconfig eth0 down
    ifconfig eth0 hw ether ${HWADDR}
    
    #
    # Configure the network interfaces.
    #
    ifconfig lo 127.0.0.1 up
    route add -net 127.0.0.0 netmask 255.0.0.0 lo
    if [ "x`grep ip= /proc/cmdline`" = "x" ]
    then
    udhcpc -i eth0 -b -p /var/run/udhcpc.eth0.pid >/dev/null 2>&1
    fi
    
    /setup_eth0.sh
    
    #
    # Start inetd.
    #
    inetd
    
    #/work/intelleflex/serial_con & >/dev/null 2>&1
    
    /bin/dropbear & >/dev/null 2>&1
    
    
    #
    # Start crond.
    #
    crond
    

    Na tomto scriptu jsou nějaké docela zajímavé věci :

    Dále se spouští binárka :

    /work/intelleflex/serial_con
    

    a script "/work/intelleflex/runStage1.sh", který nahodí web service, watchdog apod. :

    cat /work/intelleflex/runStage1.sh
    #!/bin/sh
    
    /etc/rc5.d/S99iflex start >/dev/null 2>&1 &
    
    exit 0
    
    # if the upgrade script exists in /usr/local/upgrade then run it 
    if [ -f /usr/local/upgrade/runUpgrade.sh ]
    then
       /bin/sh /usr/local/upgrade/runUpgrade.sh
       status=$?
       if [ $status == 0 ]
       then
            rm -rf /usr/local/upgrade
            rm /usr/local/SystemUpdate.zip
            /work/intelleflex/runVR.sh
       else
            ## update failed
            rm -rf /usr/local/upgrade
            rm /usr/local/SystemUpdate.zip
            mkdir -p /work/intelleflex
            cd /
            tar -zxvf /usr/local/previous.tgz
            /work/intelleflex/runVR.sh
            #reboot
       fi
    else
      # if there was no upgrade then run VR as normal
      /work/intelleflex/runVR.sh
    fi
    

    Nějaké systémové info.

    # uname -a
    Linux (none) 2.6.20.4 #2 PREEMPT Wed Apr 2 10:55:26 PST 2008 armv4tl unknown
    
    # cat /proc/cpuinfo
    Processor       : ARM920T rev 0 (v4l)
    BogoMIPS        : 99.73
    Features        : swp half 
    CPU implementer : 0x41
    CPU architecture: 4T
    CPU variant     : 0x1
    CPU part        : 0x920
    CPU revision    : 0
    Cache type      : write-back
    Cache clean     : cp15 c7 ops
    Cache lockdown  : format A
    Cache format    : Harvard
    I size          : 16384
    I assoc         : 64
    I line length   : 32
    I sets          : 8
    D size          : 16384
    D assoc         : 64
    D line length   : 32
    D sets          : 8
    
    Hardware        : Cirrus Logic EDB9302 Evaluation Board
    Revision        : 0000
    Serial          : 0000000000000000
    
    # cat /proc/meminfo
    MemTotal:        29412 kB
    MemFree:          1104 kB
    Buffers:             0 kB
    Cached:           6712 kB
    SwapCached:          0 kB
    Active:          22148 kB
    Inactive:         2628 kB
    SwapTotal:           0 kB
    SwapFree:            0 kB
    Dirty:               0 kB
    Writeback:           0 kB
    AnonPages:       18088 kB
    Mapped:           3524 kB
    Slab:             2424 kB
    SReclaimable:      660 kB
    SUnreclaim:       1764 kB
    PageTables:        172 kB
    NFS_Unstable:        0 kB
    Bounce:              0 kB
    CommitLimit:     14704 kB
    Committed_AS:    22324 kB
    VmallocTotal:   925696 kB
    VmallocUsed:     65968 kB
    VmallocChunk:   843772 kB
    
    # free
                  total         used         free       shared      buffers
      Mem:        29412        28296         1116            0            0
     Swap:            0            0            0
    Total:        29412        28296         1116
    
    # cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00040000 00020000 "RedBoot"
    mtd1: 01e00000 00020000 "rootfs"
    mtd2: 00200000 00020000 "zImage"
    mtd3: 00200000 00020000 "zImage-a"
    mtd4: 014a0000 00020000 "partition1"
    mtd5: 00900000 00020000 "unallocated"
    mtd6: 0001f000 00020000 "FIS directory"
    mtd7: 00001000 00020000 "RedBoot config"
    
    # cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    #                    
    /dev/root       /              ext2     rw,noauto         0      1
    proc            /proc          proc     defaults          0      0
    devpts          /dev/pts       devpts   defaults,gid=5,mode=620   0      0
    tmpfs           /tmp           tmpfs    defaults          0      0
    
    # mount
    rootfs on / type rootfs (rw)
    /dev/root on / type jffs2 (rw)
    proc on /proc type proc (rw)
    devpts on /dev/pts type devpts (rw)
    sysfs on /sys type sysfs (rw)
    tmpfs on /tmp type tmpfs (rw)
    
    # df -ah
    Filesystem                Size      Used Available Use% Mounted on
    /dev/root                30.0M     11.5M     18.5M  38% /
    proc                         0         0         0   0% /proc
    devpts                       0         0         0   0% /dev/pts
    sysfs                        0         0         0   0% /sys
    tmpfs                    14.4M     12.0K     14.3M   0% /tmp
    
    # dmesg
    Linux version 2.6.20.4 (root@software) (gcc version 4.1.1) #2 PREEMPT Wed Apr 2 10:55:26 PST 2008
    CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 
    Machine: Cirrus Logic EDB9302 Evaluation Board 
    Memory policy: ECC disabled, Data cache writeback   
    On node 0 totalpages: 8192 
      DMA zone: 176 pages used for memmap
      DMA zone: 0 pages reserved    
      DMA zone: 8016 pages, LIFO batch:0 
      Normal zone: 0 pages used for memmap    
    CPU0: D VIVT write-back cache   
    CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    Built 1 zonelists.  Total pages: 8016
    Kernel command line: root=/dev/mtdblock1 rootfstype=jffs2 console=ttyAM0
    PID hash table entries: 128 (order: 7, 512 bytes)   
    Console: colour dummy device 80x30   
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) 
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)   
    Memory: 8MB 8MB 8MB 8MB = 32MB total 
    Memory: 29304KB available (2736K code, 295K data, 108K init)  
    Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)    
    Mount-cache hash table entries: 512  
    CPU: Testing write buffer coherency: ok   
    NET: Registered protocol family 16   
    ep93xx: PLL1 running at 400 MHz, PLL2 at 260 MHz    
    ep93xx: FCLK 200 MHz, HCLK 100 MHz, PCLK 50 MHz
    SCSI subsystem initialized 
    NET: Registered protocol family 2    
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)    
    TCP bind hash table entries: 512 (order: -1, 2048 bytes) 
    TCP: Hash tables configured (established 1024 bind 512)  
    TCP reno registered   
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.    
    io scheduler noop registered (default)    
    io scheduler anticipatory registered 
    ep93xx_wdt: EP93XX watchdog, driver version 0.3
    Serial: AMBA driver $Revision: 1.41 $
    apb:uart1: ttyAM0 at MMIO 0x808c0000 (irq = 52) is a AMBA
    apb:uart2: ttyAM1 at MMIO 0x808d0000 (irq = 54) is a AMBA
    uart-pl010: probe of apb:uart3 failed with error -16
    RAMDISK: wrong blocksize 8096, reverting to defaults
    RAMDISK driver initialized: 2 RAM disks of 32768K size 1024 blocksize
    loop: loaded (max 8 devices)
    nbd: registered device at major 43
    physmap platform flash device: 04000000 at 60000000
    physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
     Amd/Fujitsu Extended Query Table at 0x0040
    physmap-flash.0: CFI does not contain boot bank location. Assuming top.
    number of CFI chips: 1
    cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
    cmdlinepart partition parsing not available
    Searching for RedBoot partition table in physmap-flash.0 at offset 0x3fe0000
    8 RedBoot partitions found on MTD device physmap-flash.0
    Creating 8 MTD partitions on "physmap-flash.0":
    0x00000000-0x00040000 : "RedBoot"
    0x00040000-0x01e40000 : "rootfs"
    0x01e40000-0x02040000 : "zImage"
    0x02040000-0x02240000 : "zImage-a"
    0x02240000-0x036e0000 : "partition1"
    0x036e0000-0x03fe0000 : "unallocated"
    0x03fe0000-0x03fff000 : "FIS directory"
    mtd: partition "FIS directory" doesn't end on an erase block -- force read-only
    0x03fff000-0x04000000 : "RedBoot config"
    mtd: partition "RedBoot config" doesn't start on an erase block boundary -- force read-only
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 10
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    VFS: Mounted root (jffs2 filesystem).
    Freeing init memory: 108K
    eth0: no IPv6 routers presen
    

    Webové služby čtečky.

    Služby, které běží na portu 80 směrováno na 8080(webcache), a které slouží ke komunikaci, jsou napsány v ruby. To není špatný jazyk, určitě se v něm takové věci rychle píšou, ale lze to použít na tak bídný hw?

    # /opt/arm-ruby-linux2/bin/ruby --version
    ruby 1.9.1p378 (2010-01-10 revision 26273) [arm-linux]
    
    # /opt/arm-ruby-linux2/bin/rake --version
    rake, version 0.8.3
    
    # /opt/arm-ruby-linux2/bin/gem --version
    1.3.1
    
    # ps
      PID USER       VSZ STAT COMMAND
        1 root      1000 S    init       
        2 root         0 SWN  [ksoftirqd/0]
        3 root         0 SW<  [events/0]
        4 root         0 SW<  [khelper]
        5 root         0 SW<  [kthread]
       35 root         0 SW<  [kblockd/0]
       36 root         0 SW<  [kseriod]
       48 root         0 SW   [pdflush]
       49 root         0 SW   [pdflush]
       50 root         0 SW<  [kswapd0]
       51 root         0 SW<  [aio/0]
      154 root         0 SW   [mtdblockd]
      182 root         0 SWN  [jffs2_gcd_mtd1]
      192 root      1000 S    syslogd -C -m 0 
      194 root       984 S    klogd 
      215 root      1000 S    inetd 
      219 root       500 S    /work/intelleflex/serial_con 
      224 root       872 S    /bin/dropbear 
      263 root       948 S    /bin/dropbear 
      264 root       512 S    /watchdog.FMR5000.bin 
      267 root      1008 S    -sh 
      319 root       540 S    /tcpserver8.arm.bin 
      321 root     23684 R    /opt/arm-ruby-linux2/bin/ruby ./LJ.rb 
      323 root     23684 S    /opt/arm-ruby-linux2/bin/ruby ./LJ.rb 
      324 root     23684 S    /opt/arm-ruby-linux2/bin/ruby ./LJ.rb 
      349 root     23684 S    /opt/arm-ruby-linux2/bin/ruby ./LJ.rb 
      376 root       988 R    ps
    
    # netstat -aep 
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:2020            0.0.0.0:*               LISTEN      401/tcpserver8.arm.
    tcp        0      0 0.0.0.0:time            0.0.0.0:*               LISTEN      215/inetd
    tcp        0      0 0.0.0.0:echo            0.0.0.0:*               LISTEN      215/inetd
    tcp        0      0 0.0.0.0:discard         0.0.0.0:*               LISTEN      215/inetd
    tcp        0      0 0.0.0.0:daytime         0.0.0.0:*               LISTEN      215/inetd
    tcp        0      0 0.0.0.0:webcache        0.0.0.0:*               LISTEN      403/ruby
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      403/ruby
    tcp        0      0 0.0.0.0:chargen         0.0.0.0:*               LISTEN      215/inetd
    tcp        0      0 0.0.0.0:2005            0.0.0.0:*               LISTEN      401/tcpserver8.arm.
    tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      224/dropbear
    tcp        0      0 0.0.0.0:2010            0.0.0.0:*               LISTEN      401/tcpserver8.arm.
    tcp        0      0 192.168.0.1:3655      192.168.0.1:80        TIME_WAIT   -
    tcp        0      0 192.168.0.1:webcache  192.168.0.244:43653     TIME_WAIT   -
    tcp        0      0 192.168.0.1:webcache  192.168.0.244:43655     TIME_WAIT   -
    tcp        0      0 192.168.0.1:webcache  192.168.0.244:43651     TIME_WAIT   -
    tcp        0      0 192.168.0.1:ssh       192.168.0.244:50454     ESTABLISHED 263/dropbear
    tcp        0      0 localhost:2020          localhost:3851          ESTABLISHED 401/tcpserver8.arm.
    tcp        0      0 localhost:2005          localhost:3887          ESTABLISHED 401/tcpserver8.arm.
    tcp        0      0 localhost:3887          localhost:2005          ESTABLISHED 403/ruby
    tcp        0      0 localhost:80            localhost:3907          ESTABLISHED 403/ruby
    tcp        0      0 localhost:3907          localhost:80            ESTABLISHED 264/watchdog.FMR500
    tcp        0      0 192.168.0.1:webcache  192.168.0.244:43652     TIME_WAIT   -
    tcp        0      0 192.168.0.1:webcache  192.168.0.244:43654     TIME_WAIT   -
    tcp        0      0 localhost:3851          localhost:2020          ESTABLISHED 403/ruby
    udp        0      0 0.0.0.0:echo            0.0.0.0:*                           215/inetd
    udp        0      0 0.0.0.0:discard         0.0.0.0:*                           215/inetd
    udp        0      0 0.0.0.0:daytime         0.0.0.0:*                           215/inetd
    udp        0      0 0.0.0.0:chargen         0.0.0.0:*                           215/inetd
    udp        0      0 0.0.0.0:time            0.0.0.0:*                           215/inetd
    udp        0      0 0.0.0.0:1003            0.0.0.0:*                           403/ruby
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
    unix  5      [ ]         DGRAM                       359 192/syslogd         /tmp/log
    unix  2      [ ]         DGRAM                       457 224/dropbear        
    unix  2      [ ]         DGRAM                       451 215/inetd           
    unix  2      [ ]         DGRAM                       362 194/klogd
    

    Stabilita? Ale kdeže... by oom-killer.

    Resetování uptime ve web rozhraní má důvod, jenž jsem delší dobu předpokládal. Tím důvodem je restart webových služeb. Jenomže jsem nečekal, že neprobíhá úplně standardně :-/. K restartu web služeb dochází tak, že jednou za pár hodin vyskočí hláška s nedostatkem paměti a do práce se pustí oom-killer, který začne zabíjet aplikaci, jenž zato může(tou bývá web service). Watchdog se pak postará o to, aby služba znovu naběhla. Čtečka má tedy jednou za 2-5h výtuh na cca 3min, než se vše pokilluje a znovu pospouští (přecijen, když se ve scriptech používá sleep 60 apod., tak to tak rychlý start mít nikdy nebude). Občas se i mocný pan oom-killer mine a sundá i něco jiného (hlavně, pokud se někdo trefí do doby killování a je přihlášen na čtečce).


    Timeout na čtečce, někdy až 3s!.

    Kolega i já jsme si všimli, že občas trvá i 2-3s, než se načte tag. Možná je to způsobeno tím, že program na čtení tagů prochází čtečky cyklicky seriově za sebou a při větším počtu čteček je možná nějaká prodleva. Software dodal dodavatel (vyjímečně jsme si tentokrát nepsali nic vlastního). V takovém případě by byly dvě možné řešení :

    1) přepsat app, aby komunikovala paralelně
    2) spustit zmíněnou app vícekrát (po každé s určitými čtečkami - nebyl by problém)


    Rekapitulace - kde soudruzi udělali chybu?.

    Takže si shrneme, kde výrobce udělal chybu :


    FMR-6000.

    Tato čtečka má 512MiB NAND flash + 256MiB ramky, takže tady se konečně trochu pochlapili (FMR-5000 má 32MiB a 32MiB). Systém vypadá už líp. Ovšem web rozhraní má stále slabší uptime - taktéž u něj dochází k restartování. Root heslo je stejné jako u FMR-5000, tzn. "ifx123". Netuhne.

    Čtečka podporuje runlevely, takže se spouští už trochu klasičtěji. Spouští se vše v pátem runlevelu :

    ~# ls -l /etc/rc5.d/
    total 6
    lrwxrwxrwx 1 1001 1001   14 Jan  1  2000 S09sshd -> ../init.d/sshd
    lrwxrwxrwx 1 1001 1001   16 Jan  1  2000 S20syslog -> ../init.d/syslog
    lrwxrwxrwx 1 1001 1001   16 Jan  1  2000 S80rc.pvr -> ../init.d/rc.pvr
    -rwxr-xr-x 1 1001 1001  374 Dec 18  2009 S90setdisp
    -rwxr-xr-x 1 1001 1001 2158 May 16  2011 S99iflex
    lrwxrwxrwx 1 1001 1001   19 Jan  1  2000 S99rmnologin -> ../init.d/rmnologin
    -rwxr-xr-x 1 1001 1001   31 Nov  1  2010 S99rtc
    -rwxrwxrwx 1 root root   62 Nov 18  2010 S99tmpfs
    

    Nějaké info o čtečce :

    # dmesg
    d 8192)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    AM3517  Linux PSP version 03.00.00.05 (AM3517EVM)
    NetWinder Floating Point Emulator V0.97 (double precision)
    VFS: Disk quotas dquot_6.5.2
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
    Slow work thread pool: Starting up
    Slow work thread pool: Ready
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    msgmni has been set to 487
    alg: No test for stdrng (krng)                                                  
    io scheduler noop registered                                                    
    io scheduler deadline registered                                                
    io scheduler cfq registered (default)                                           
    OMAP DSS rev 2.0                                                                
    OMAP DISPC rev 3.0                                                              
    OMAP VENC rev 2                                                                 
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled                         
    serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654                  
    serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654                  
    serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654                  
    console [ttyS2] enabled                                                         
    brd: module loaded                                                              
    loop: module loaded                                                             
    omap2-nand driver initializing                                                  
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bi
    Creating 5 MTD partitions on "omap2-nand.0":                                    
    0x000000000000-0x000000080000 : "xloader-nand"                                  
    0x000000080000-0x000000240000 : "uboot-nand"                                    
    0x000000240000-0x000000280000 : "params-nand"                                   
    0x000000280000-0x000000780000 : "linux-nand"                                    
    0x000000780000-0x000020000000 : "jffs2-nand"                                    
    vcan: Virtual CAN interface driver                                              
    CAN device driver interface                                                     
    TI High End CAN Controller Driver 0.7                                           
    failed to get can_stb                                                           
    ti_hecc ti_hecc.1: device registered (reg_base=d0870000, irq=24)                
    usbcore: registered new interface driver kaweth                                 
    pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver           
    usbcore: registered new interface driver pegasus                                
    rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver                  
    usbcore: registered new interface driver rtl8150                                
    usbcore: registered new interface driver cdc_ether                              
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver                      
    ehci-omap ehci-omap.0: OMAP-EHCI Host Controller                                
    ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1            
    ehci-omap ehci-omap.0: irq 77, io mem 0x48064800                                
    ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00                               
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002                   
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1              
    usb usb1: Product: OMAP-EHCI Host Controller                                    
    usb usb1: Manufacturer: Linux 2.6.32 ehci_hcd                                   
    usb usb1: SerialNumber: ehci-omap.0                                             
    hub 1-0:1.0: USB hub found                                                      
    hub 1-0:1.0: 3 ports detected                                                   
    usbcore: registered new interface driver usblp                                  
    usbcore: registered new interface driver cdc_wdm                                
    Initializing USB Mass Storage driver...                                         
    usbcore: registered new interface driver usb-storage                            
    USB Mass Storage support registered.                                            
    usbcore: registered new interface driver mdc800                                 
    mdc800: v0.7.5 (30/10/2000):USB Driver for Mustek MDC800 Digital Camera         
    usbcore: registered new interface driver usbserial                              
    USB Serial support registered for generic                                       
    usbcore: registered new interface driver usbserial_generic                      
    usbserial: USB Serial Driver core                                               
    USB Serial support registered for aircable                                      
    usbcore: registered new interface driver aircable                               
    USB Serial support registered for ark3116                                       
    usbcore: registered new interface driver ark3116                                
    ark3116:v0.5:USB ARK3116 serial/IrDA driver                                     
    USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter  
    usbcore: registered new interface driver belkin                                 
    belkin_sa: v1.2:USB Belkin Serial converter driver                              
    USB Serial support registered for ch341-uart                                    
    usbcore: registered new interface driver ch341                                  
    USB Serial support registered for cp210x                                        
    usbcore: registered new interface driver cp210x                                 
    cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver                   
    USB Serial support registered for Reiner SCT Cyberjack USB card reader          
    usbcore: registered new interface driver cyberjack                              
    cyberjack: v1.01 Matthias Bruestle                                              
    cyberjack: REINER SCT cyberJack pinpad/e-com USB Chipcard Reader Driver         
    drivers/usb/serial/cypress_m8.c: cypress_init                                   
    USB Serial support registered for DeLorme Earthmate USB                         
    USB Serial support registered for HID->COM RS232 Adapter                        
    USB Serial support registered for Nokia CA-42 V2 Adapter                        
    usbcore: registered new interface driver cypress                                
    cypress_m8: v1.09:Cypress USB to Serial Driver                                  
    USB Serial support registered for debug                                         
    usbcore: registered new interface driver debug                                  
    USB Serial support registered for Digi 2 port USB adapter                       
    USB Serial support registered for Digi 4 port USB adapter                       
    usbcore: registered new interface driver digi_acceleport                        
    digi_acceleport: v1.80.1.2:Digi AccelePort USB-2/USB-4 Serial Converter driver  
    USB Serial support registered for Edgeport 2 port adapter                       
    USB Serial support registered for Edgeport 4 port adapter                       
    USB Serial support registered for Edgeport 8 port adapter                       
    USB Serial support registered for EPiC device                                   
    usbcore: registered new interface driver io_edgeport                            
    io_edgeport: v2.7:Edgeport USB Serial Driver                                    
    USB Serial support registered for Edgeport TI 1 port adapter                    
    USB Serial support registered for Edgeport TI 2 port adapter                    
    usbcore: registered new interface driver io_ti                                  
    io_ti: v0.7mode043006:Edgeport USB Serial Driver                                
    USB Serial support registered for empeg                                         
    usbcore: registered new interface driver empeg                                  
    empeg: v1.2:USB Empeg Mark I/II Driver                                          
    USB Serial support registered for FTDI USB Serial Device                        
    usbcore: registered new interface driver ftdi_sio                               
    ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver                              
    USB Serial support registered for funsoft                                       
    usbcore: registered new interface driver funsoft                                
    USB Serial support registered for Garmin GPS usb/tty                            
    usbcore: registered new interface driver garmin_gps                             
    garmin_gps: v0.33:garmin gps driver                                             
    USB Serial support registered for hp4X                                          
    usbcore: registered new interface driver hp4X                                   
    hp4x: v1.00:HP4x (48/49) Generic Serial driver                                  
    USB Serial support registered for PocketPC PDA                                  
    usbcore: registered new interface driver ipaq                                   
    ipaq: v0.5:USB PocketPC PDA driver                                              
    USB Serial support registered for IPWireless converter                          
    usbcore: registered new interface driver ipwtty                                 
    ipw: v0.3:IPWireless tty driver                                                 
    USB Serial support registered for IR Dongle                                     
    usbcore: registered new interface driver ir-usb                                 
    ir_usb: v0.4:USB IR Dongle driver                                               
    USB Serial support registered for iuu_phoenix                                   
    usbcore: registered new interface driver iuu_phoenix                            
    iuu_phoenix: v0.11:Infinity USB Unlimited Phoenix driver                        
    USB Serial support registered for Keyspan - (without firmware)                  
    USB Serial support registered for Keyspan 1 port adapter                        
    USB Serial support registered for Keyspan 2 port adapter                        
    USB Serial support registered for Keyspan 4 port adapter                        
    usbcore: registered new interface driver keyspan                                
    keyspan: v1.1.5:Keyspan USB to Serial Converter Driver                          
    USB Serial support registered for Keyspan PDA                                   
    USB Serial support registered for Keyspan PDA - (prerenumeration)               
    USB Serial support registered for Xircom / Entregra PGS - (prerenumeration)     
    usbcore: registered new interface driver keyspan_pda                            
    keyspan_pda: v1.1:USB Keyspan PDA Converter driver                              
    USB Serial support registered for KL5KUSB105D / PalmConnect                     
    usbcore: registered new interface driver kl5kusb105d                            
    kl5kusb105: v0.3a:KLSI KL5KUSB105 chipset USB->Serial Converter driver          
    USB Serial support registered for KOBIL USB smart card terminal                 
    usbcore: registered new interface driver kobil                                  
    kobil_sct: 21/05/2004:KOBIL USB Smart Card Terminal Driver (experimental)       
    USB Serial support registered for MCT U232                                      
    usbcore: registered new interface driver mct_u232                               
    mct_u232: z2.1:Magic Control Technology USB-RS232 converter driver              
    USB Serial support registered for Moschip 2 port adapter                        
    mos7720: 1.0.0.4F:Moschip USB Serial Driver                                     
    usbcore: registered new interface driver moschip7720                            
    USB Serial support registered for Moschip 7840/7820 USB Serial Driver           
    mos7840: 1.3.2:Moschip 7840/7820 USB Serial Driver                              
    usbcore: registered new interface driver mos7840                                
    USB Serial support registered for moto-modem                                    
    usbcore: registered new interface driver moto-modem                             
    USB Serial support registered for navman                                        
    usbcore: registered new interface driver navman                                 
    USB Serial support registered for ZyXEL - omni.net lcd plus usb                 
    usbcore: registered new interface driver omninet                                
    omninet: v1.1:USB ZyXEL omni.net LCD PLUS Driver                                
    USB Serial support registered for opticon                                       
    usbcore: registered new interface driver opticon                                
    USB Serial support registered for GSM modem (1-port)                            
    usbcore: registered new interface driver option                                 
    option: v0.7.2:USB Driver for GSM modems                                        
    USB Serial support registered for oti6858                                       
    usbcore: registered new interface driver oti6858                                
    USB Serial support registered for pl2303                                        
    usbcore: registered new interface driver pl2303                                 
    pl2303: Prolific PL2303 USB to serial adaptor driver                            
    USB Serial support registered for Qualcomm USB modem                            
    usbcore: registered new interface driver qcserial                               
    safe_serial: v0.0b:USB Safe Encapsulated Serial                                 
    USB Serial support registered for safe_serial                                   
    usbcore: registered new interface driver safe_serial                            
    USB Serial support registered for siemens_mpi                                   
    usbcore: registered new interface driver siemens_mpi                            
    Driver for Siemens USB/MPI adapter                                              
    Version 0.1 09/26/2005 Thomas Hergenhahn@web.de http://libnodave.sf.net         
    USB Serial support registered for Sierra USB modem                              
    usbcore: registered new interface driver sierra                                 
    sierra: v.1.7.16:USB Driver for Sierra Wireless USB modems                      
    USB Serial support registered for SPCP8x5                                       
    usbcore: registered new interface driver spcp8x5                                
    spcp8x5: v0.04:SPCP8x5 USB to serial adaptor driver                             
    USB Serial support registered for symbol                                        
    usbcore: registered new interface driver symbol                                 
    USB Serial support registered for TI USB 3410 1 port adapter                    
    USB Serial support registered for TI USB 5052 2 port adapter                    
    usbcore: registered new interface driver ti_usb_3410_5052                       
    ti_usb_3410_5052: v0.9:TI USB 3410/5052 Serial Driver                           
    USB Serial support registered for Handspring Visor / Palm OS                    
    USB Serial support registered for Sony Clie 3.5                                 
    USB Serial support registered for Sony Clie 5.0                                 
    usbcore: registered new interface driver visor                                  
    visor: USB HandSpring Visor / Palm OS driver                                    
    USB Serial support registered for Connect Tech - WhiteHEAT - (prerenumeration)  
    USB Serial support registered for Connect Tech - WhiteHEAT                      
    usbcore: registered new interface driver whiteheat                              
    whiteheat: v2.0:USB ConnectTech WhiteHEAT driver                                
    usbcore: registered new interface driver usblcd                                 
    usbcore: registered new interface driver usbled                                 
    usbcore: registered new interface driver usbtest                                
    usbcore: registered new interface driver sisusb                                 
    g_ether gadget: using random self ethernet address                              
    g_ether gadget: using random host ethernet address                              
    usb0: MAC 9e:88:35:89:d3:7e                                                     
    usb0: HOST MAC 76:52:cf:4a:78:8b                                                
    g_ether gadget: Ethernet Gadget, version: Memorial Day 2008                     
    g_ether gadget: g_ether ready                                                   
    musb_hdrc musb_hdrc: MUSB HDRC host driver                                      
    musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2              
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0002                   
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1              
    usb usb2: Product: MUSB HDRC host driver                                        
    usb usb2: Manufacturer: Linux 2.6.32 musb-hcd                                   
    usb usb2: SerialNumber: musb_hdrc                                               
    hub 2-0:1.0: USB hub found                                                      
    hub 2-0:1.0: 1 port detected                                                    
    input: TSC2004 Touchscreen as /class/input/input0                               
    rtc-s35390a 1-0030: rtc core: registered rtc-s35390a as rtc0                    
    Bluetooth: Virtual HCI driver ver 1.3                                           
    Bluetooth: HCI UART driver ver 2.2                                              
    Bluetooth: HCI H4 protocol initialized                                          
    Bluetooth: HCI BCSP protocol initialized                                        
    Bluetooth: HCILL protocol initialized                                           
    Bluetooth: Broadcom Blutonium firmware driver ver 1.2                           
    usbcore: registered new interface driver bcm203x                                
    Bluetooth: Digianswer Bluetooth USB driver ver 0.10                             
    usbcore: registered new interface driver bpa10x                                 
    Bluetooth: BlueFRITZ! USB driver ver 1.2                                        
    usbcore: registered new interface driver bfusb                                  
    Bluetooth: Generic Bluetooth USB driver ver 0.6                                 
    usbcore: registered new interface driver btusb                                  
    Bluetooth: Generic Bluetooth SDIO driver ver 0.1                                
    usbcore: registered new interface driver usbhid                                 
    usbhid: USB HID core driver                                                     
    TCP cubic registered                                                            
    NET: Registered protocol family 17                                              
    NET: Registered protocol family 15                                              
    can: controller area network core (rev 20090105 abi 8)                          
    NET: Registered protocol family 29                                              
    can: raw protocol (rev 20090105)                                                
    can: broadcast manager protocol (rev 20090105 t)                                
    Bluetooth: L2CAP ver 2.14                                                       
    Bluetooth: L2CAP socket layer initialized                                       
    Bluetooth: SCO (Voice Link) ver 0.6                                             
    Bluetooth: SCO socket layer initialized                                         
    Bluetooth: RFCOMM TTY layer initialized                                         
    Bluetooth: RFCOMM socket layer initialized                                      
    Bluetooth: RFCOMM ver 1.11                                                      
    Bluetooth: BNEP (Ethernet Emulation) ver 1.3                                    
    Bluetooth: BNEP filters: protocol multicast                                     
    Bluetooth: HIDP (Human Interface Emulation) ver 1.2                             
    lib80211: common routines for IEEE802.11 drivers                                
    lib80211_crypt: registered algorithm 'NULL'                                     
    Power Management for TI OMAP3.                                                  
    Disabling unused clock "vpfe_fck"                                               
    Disabling unused clock "vpfe_ick"                                               
    Disabling unused clock "emac_fck"                                               
    Disabling unused clock "emac_ick"                                               
    Disabling unused clock "mcbsp_fck"                                              
    Disabling unused clock "mcbsp_fck"                                              
    Disabling unused clock "mcbsp_fck"                                              
    Disabling unused clock "mcbsp_ick"                                              
    Disabling unused clock "mcbsp_ick"                                              
    Disabling unused clock "mcbsp_ick"                                              
    Disabling unused clock "gpt2_ick"                                               
    Disabling unused clock "gpt3_ick"                                               
    Disabling unused clock "gpt4_ick"                                               
    Disabling unused clock "gpt5_ick"                                               
    Disabling unused clock "gpt6_ick"                                               
    Disabling unused clock "gpt7_ick"                                               
    Disabling unused clock "gpt8_ick"                                               
    Disabling unused clock "gpt9_ick"                                               
    Disabling unused clock "wdt3_ick"                                               
    Disabling unused clock "wdt3_fck"                                               
    Disabling unused clock "gpio2_dbck"                                             
    Disabling unused clock "gpio4_dbck"                                             
    Disabling unused clock "gpio5_dbck"                                             
    Disabling unused clock "gpio6_dbck"                                             
    Disabling unused clock "gpt9_fck"                                               
    Disabling unused clock "gpt8_fck"                                               
    Disabling unused clock "gpt7_fck"                                               
    Disabling unused clock "gpt6_fck"                                               
    Disabling unused clock "gpt5_fck"                                               
    Disabling unused clock "gpt4_fck"                                               
    Disabling unused clock "gpt3_fck"                                               
    Disabling unused clock "gpt2_fck"                                               
    Disabling unused clock "gpt12_ick"                                              
    Disabling unused clock "wdt1_ick"                                               
    Disabling unused clock "wdt2_ick"                                               
    Disabling unused clock "wdt2_fck"                                               
    Disabling unused clock "gpio1_dbck"
    Disabling unused clock "mcbsp_ick"
    Disabling unused clock "mcbsp_ick"
    Disabling unused clock "gpt10_ick"
    Disabling unused clock "gpt11_ick"
    Disabling unused clock "mcspi_ick"
    Disabling unused clock "mcspi_ick"
    Disabling unused clock "mcspi_ick"
    Disabling unused clock "mcspi_ick"
    Disabling unused clock "hdq_ick"
    Disabling unused clock "hdq_fck"
    Disabling unused clock "mcspi_fck"
    Disabling unused clock "mcspi_fck"
    Disabling unused clock "mcspi_fck"
    Disabling unused clock "mcspi_fck"
    Disabling unused clock "mcbsp_fck"
    Disabling unused clock "mcbsp_fck"
    Disabling unused clock "gpt11_fck"
    Disabling unused clock "gpt10_fck"
    Disabling unused clock "dpll4_m6x2_ck"
    Disabling unused clock "dpll4_m5x2_ck"
    Disabling unused clock "dpll3_m3x2_ck"
    Disabling unused clock "sys_clkout1"
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
    emac-mii: probed
    rtc-s35390a 1-0030: setting system clock to 2012-05-26 13:29:24 UTC (1338038964)
    VFS: Mounted root (jffs2 filesystem) on device 31:4.
    Freeing init memory: 176K
    udev: starting version 141
    udev: deprecated sysfs layout; update the kernel or disable CONFIG_SYSFS_DEPRECATED; some udev features will not work correctly
    eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:00, id=7c0f1)
    PHY: ffffffff:00 - Link is Up - 100/Full
    
    ~# uname -a
    Linux IA211100138 2.6.32 #5 PREEMPT Tue Nov 2 16:13:56 PDT 2010 armv7l GNU/Linux
    
    ~# cat /proc/cpuinfo
    Processor       : ARMv7 Processor rev 7 (v7l)
    BogoMIPS        : 499.92
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x1
    CPU part        : 0xc08
    CPU revision    : 7
    
    Hardware        : OMAP3517/AM3517 EVM
    Revision        : 0020
    Serial          : 0000000000000000
    
    ~# cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00080000 00020000 "xloader-nand"
    mtd1: 001c0000 00020000 "uboot-nand"
    mtd2: 00040000 00020000 "params-nand"
    mtd3: 00500000 00020000 "linux-nand"
    mtd4: 1f880000 00020000 "jffs2-nand"
    
    ~# cat /etc/fstab
    # stock fstab - you probably want to override this with a machine specific one
    
    rootfs               /                    auto       defaults              1  1
    proc                 /proc                proc       defaults              0  0
    devpts               /dev/pts             devpts     mode=0620,gid=5       0  0
    usbfs                /proc/bus/usb        usbfs      defaults              0  0
    tmpfs                /var/volatile        tmpfs      defaults,size=32M     0  0
    tmpfs                /dev/shm             tmpfs      mode=0777             0  0
    tmpfs                /media/ram           tmpfs      defaults,size=32M     0  0
    
    # uncomment this if your device has a SD/MMC/Transflash slot
    #/dev/mmcblk0p1       /media/card          auto       defaults,sync,noauto  0  0
    
    ~# mount
    rootfs on / type rootfs (rw)
    /dev/root on / type jffs2 (rw,relatime)
    proc on /proc type proc (rw,relatime)
    sysfs on /sys type sysfs (rw,relatime)
    none on /dev type tmpfs (rw,relatime,size=8k,nr_inodes=8192,mode=755)
    devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
    usbfs on /proc/bus/usb type usbfs (rw,relatime)
    tmpfs on /var/volatile type tmpfs (rw,relatime,size=131072k)
    tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
    
    ~# df -ah
    Filesystem                Size      Used Available Use% Mounted on
    /dev/root               504.5M    163.9M    340.6M  32% /
    proc                         0         0         0   0% /proc
    sysfs                        0         0         0   0% /sys
    none                      8.0K      8.0K         0 100% /dev
    devpts                       0         0         0   0% /dev/pts
    usbfs                        0         0         0   0% /proc/bus/usb
    tmpfs                   128.0M     24.0K    128.0M   0% /var/volatile
    tmpfs                   122.0M         0    122.0M   0% /dev/shm
    
    ~# cat /proc/meminfo      
    MemTotal:         249860 kB
    MemFree:          203680 kB
    Buffers:               0 kB
    Cached:            15728 kB
    SwapCached:            0 kB
    Active:            28796 kB
    Inactive:           7320 kB
    Active(anon):      20484 kB
    Inactive(anon):        0 kB
    Active(file):       8312 kB
    Inactive(file):     7320 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:                 0 kB
    Writeback:             0 kB
    AnonPages:         20416 kB
    Mapped:             6068 kB
    Shmem:                96 kB
    Slab:               8312 kB
    SReclaimable:       2716 kB
    SUnreclaim:         5596 kB
    KernelStack:         328 kB
    PageTables:          204 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:      124928 kB
    Committed_AS:      24004 kB
    VmallocTotal:     647168 kB
    VmallocUsed:        1112 kB
    VmallocChunk:     645884 kB
    
    ~# free
                  total         used         free       shared      buffers
      Mem:       249860        46180       203680            0            0
     Swap:            0            0            0
    Total:       249860        46180       203680
    
    ~# ps                          
      PID USER       VSZ STAT COMMAN
        1 root      1640 S    init [
        2 root         0 SW   [kthre
        3 root         0 SW   [ksoft
        4 root         0 SW   [watch
        5 root         0 SW   [event
        6 root         0 SW   [khelp
       10 root         0 SW   [async
      214 root         0 SW   [sync_supers]
      216 root         0 SW   [bdi-default]
      217 root         0 SW   [kblockd/0]
      228 root         0 SW   [ksuspend_usbd]
      233 root         0 SW   [khubd]
      248 root         0 SW   [kmmcd]
      254 root         0 SW   [bluetooth]
      259 root         0 SW   [cfg80211]
      271 root         0 SW   [musb_hdrc]
      273 root         0 SW   [rpciod/0]
      280 root         0 SW   [khungtaskd]
      281 root         0 SW   [kswapd0]
      282 root         0 SW   [aio/0]
      283 root         0 SW   [nfsiod]
      284 root         0 SW<  [kslowd000]
      285 root         0 SW<  [kslowd001]
      286 root         0 SW   [crypto/0]
      438 root         0 SW   [mtdblockd]
      614 root         0 SW   [usbhid_resumer]
      617 root         0 SW<  [krfcommd]
      652 root      2024 S <  /sbin/udevd -d 
     1241 root         0 SWN  [jffs2_gcd_mtd4]
     1373 root      4300 S    /usr/sbin/sshd 
     1378 root      2680 S    /sbin/syslogd -n -C64 -m 20 
     1380 root      2616 S    /sbin/klogd -n 
     1433 root      1548 S    /work/intelleflex/watchdog.bin 
     1440 root      1896 S    /sbin/getty 38400 tty1 
     1998 root      1548 S    /tcpserver.a8.bin /dev/ttyS0 115200 
     2000 root     29236 S    /usr/bin/ruby ./LJ.rb 
     2039 root      4352 S    sshd: root@pts/0  
     2044 root      2884 S    -bash 
     2076 root      2944 R    ps
    
    ~# /opt/ruby1.9.1/bin/ruby --version
    ruby 1.9.1p378 (2010-01-10 revision 26273) [armv7l-linux-eabi]
    
    ~# /opt/ruby1.9.1/bin/rake --version
    rake, version 0.8.7
    
    ~# /opt/ruby1.9.1/bin/gem --version
    1.3.7
    
    ~# netstat -aep                                                                     
    Active Internet connections (servers and established)                                
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/P
    tcp        0      0 (null):2020             (null):*                LISTEN      1998/
    tcp        0      0 (null):webcache         (null):*                LISTEN      2000/
    tcp        0      0 (null):www              (null):*                LISTEN      2000/
    tcp        0      0 (null):2005             (null):*                LISTEN      1998/
    tcp        0      0 (null):ssh              (null):*                LISTEN      1373/
    tcp        0      0 (null):ndtp             (null):*                LISTEN      1998/
    tcp        0      0 (null):50342            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61414            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61452            TIME_WAIT   -    
    tcp        0      0 (null):45087            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45102            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61462            TIME_WAIT   -    
    tcp        0      0 (null):45067            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61464            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61442            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61429            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61461            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61447            TIME_WAIT   -    
    tcp        0      0 (null):45083            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61463            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61424            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61394            TIME_WAIT   -    
    tcp        0      0 (null):45085            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61466            TIME_WAIT   -    
    tcp        0      0 (null):45071            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):50344            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):50339            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45070            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61423            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61430            TIME_WAIT   -    
    tcp        0      0 (null):50341            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61457            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61406            TIME_WAIT   -    
    tcp        0      0 (null):45078            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61425            TIME_WAIT   -    
    tcp        0      0 (null):45097            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45104            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61392            TIME_WAIT   -    
    tcp        0      0 (null):45111            (null):www              TIME_WAIT   -    
    tcp        0      0 localhost.localdomain:49480 localhost.localdomain:2005 ESTABLISHE
    tcp        0      0 (null):webcache         (null):61407            TIME_WAIT   -    
    tcp        0      0 (null):45110            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61390            TIME_WAIT   -    
    tcp        0      0 (null):45095            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45117            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61412            TIME_WAIT   -    
    tcp        0      0 (null):50338            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61412            TIME_WAIT   -    
    tcp        0      0 (null):50338            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):50346            (null):www              ESTABLISHED -    
    tcp        0      0 (null):45092            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45091            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61431            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61459            TIME_WAIT   -    
    tcp        0      0 (null):45108            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45076            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45099            (null):www              TIME_WAIT   -    
    tcp        0      0 localhost.localdomain:49701 localhost.localdomain:www ESTABLISHED
    tcp        0      0 (null):45112            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61402            TIME_WAIT   -    
    tcp        0      0 (null):45115            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61419            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61455            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61432            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61460            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61393            TIME_WAIT   -    
    tcp        0      0 (null):50335            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45086            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45064            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45084            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45103            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61450            TIME_WAIT   -    
    tcp        0      0 localhost.localdomain:www localhost.localdomain:49701 ESTABLISHED
    tcp        0      0 (null):50330            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45072            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45118            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45073            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61428            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61458            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61449            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61395            TIME_WAIT   -    
    tcp        0      0 localhost.localdomain:57617 localhost.localdomain:2020 ESTABLISHE
    tcp        0      0 (null):50340            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61427            TIME_WAIT   -    
    tcp        0      0 (null):45080            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45098            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45093            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45089            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45106            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61443            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61411            TIME_WAIT   -    
    tcp        0      0 (null):50345            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61435            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61438            TIME_WAIT   -    
    tcp        0      0 localhost.localdomain:2005 localhost.localdomain:49480 ESTABLISHE
    tcp        0      0 (null):45082            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61451            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61445            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61418            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61437            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61434            TIME_WAIT   -    
    tcp        0      0 (null):50332            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61416            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61468            TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61405            TIME_WAIT   -    
    tcp        0      0 (null):45074            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61415            TIME_WAIT   -    
    tcp        0      0 (null):50337            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):50336            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45109            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45107            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45081            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):45077            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):webcache         (null):61408            TIME_WAIT   -    
    tcp        0      0 (null):50334            (null):www              TIME_WAIT   -    
    tcp        0      0 (null):ssh              (null):37271            ESTABLISHED 2039/
    tcp        0      0 (null):webcache         (null):61408            TIME_WAIT   -    
    tcp        0      0 (null):50334            (null):www              TIME_WAIT   -
    tcp        0      0 (null):ssh              (null):37271            ESTABLISHED 2039/0
    tcp        0      0 (null):45101            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61467            TIME_WAIT   -
    tcp        0      0 (null):45105            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61410            TIME_WAIT   -
    tcp        0      0 (null):45096            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61417            TIME_WAIT   -
    tcp        0      0 (null):50333            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61426            TIME_WAIT   -
    tcp        0      0 (null):50343            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61401            TIME_WAIT   -
    tcp        0      0 localhost.localdomain:2020 localhost.localdomain:57617 ESTABLISHED 1998/tcpserver.a8.b
    tcp        0      0 (null):webcache         (null):61420            TIME_WAIT   -
    tcp        0      0 (null):45113            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61454            TIME_WAIT   -
    tcp        0      0 (null):45075            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61456            TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61436            TIME_WAIT   -
    tcp        0      0 (null):45100            (null):www              TIME_WAIT   -
    tcp        0      0 (null):45116            (null):www              TIME_WAIT   -
    tcp        0      0 (null):webcache         (null):61444            TIME_WAIT   -
    tcp        0      0 (null):45090            (null):www              TIME_WAIT   -
    netstat: /proc/net/tcp6: No such file or directory
    udp        0      0 (null):1003             (null):*                            2000/ruby
    netstat: /proc/net/udp6: No such file or directory
    netstat: /proc/net/raw6: No such file or directory
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
    unix  2      [ ]         DGRAM                      1323 652/udevd           @/org/kernel/udev/udevd
    unix  3      [ ]         DGRAM                      2296 1378/syslogd        /dev/log
    unix  2      [ ]         DGRAM                      2303 1380/klogd
    

    Kvalita podpory.

    Support Intelleflexu je něco velmi žalostného. Podpora netuší vůbec nic, ani netušili, že nějaký FMR-5000 mají. Veškeré respons time byly v řádu týdnů a vše muselo jít přes dodavatele (přímo s námi se nikdo nechtěl bavit). Dodavatel řešil problémy výměnami za čtečky, jenž měl jako testovací/náhradní. U FMR-6000 jsme řešili to, že četla tagy na 100m a výkon nešel nijak regulovat, web rozhraní akceptovalo změny, zapsalo do souborů na čtečce, ale chovalo se to stejně. Když jsme se obrátili na support, tak jsme se odpovědi nedočkali, ale chtěli po nás elaborát, jak zařízení používáme, v jakém prostředí, proč to chceme apod. a po asi 5 týdnech nám bylo sděleno, že lze regulovat výkon jen přes API a toto nám již pomohlo.
    Když jsme přecházeli z US na EU firmware, tak jsem porovnal oba fw a našel rozdíl jen v jednom parametru u jednoho scriptu (vypadalo to jak nahrávání fw do čtečky s jinými parametry). Ne, z podpory nechtěli říci, jak jednoduše pomocí nastavení změnit US fw na EU a museli jsme jim čtečky posílat.


    Budoucnost.

    Našli jsme v ČR výrobce RFID čteček, které jsou kompatibilní s našimi tagy, za které jsme dali stovky tisíc. Tímto výrobcem je Metra Blansko a.s.. Jejich RFID je plně otevřeno, umožňují úpravu fw, dodávají ukázkové zdrojáky v pythonu, odpovídají na cokoliv, nic netají a jsou plně otevřeni. Tyto RFID čtečky jsme začali dodávat do kiosků na automatizaci tisku lístků pro tahače a zatím plná spokojenost. V této souvilosti je v plánu zahájit testování těchto RFID čteček jako náhradu za Intelleflex. Pro ovládání a komunikaci se čtečkami je v plánu zakoupit tuto kompaktní průmyslovou hračku včetně GPIO a relé, které na pár místech taktéž používáme : TS-7550 a TS-ENC750
    Ve finále se tedy předpokládá toto all-in-one řešení, které je tak třetinové velikosti, je plně otevřené, s více možnostmi a menším, leč dostatečným, výkonem a poloviční cenou (možná ještě menší).


    Závěr.

    V současné době je ve všech čtečkách smazaný log soubor a přesměrovaný do "/dev/null".
    HW 230V Spínače jsem všude povypínal a již nejsou potřeba.
    Zatím čtečky běží stabilně (když pominu restart webových služeb pokillováním oom-killerem)
    Chvíli jsem si hrál s myšlenou posílit ram pomocí compcache, nebo něčeho podobného, ale nakonec jsem usoudil, že ten čas na úpravy se mi nevyplatí.
    Na několika místech používáme FMR-6000, ale problémy s FW (né moc funkční web rozhraní, nulové zabezpečení) uzavřeností, supportem apod. samozřejmě zůstávají.

    Ve skutečnosti bylo problémů ještě více a prošli jsme si více upgradama firmwarů, na jedné čtečce jsem detekoval poškozený storage apod., ale myslím, že to už nemělo cenu sepisovat a toto bohatě stačilo :).

    Produkty firmy Intelleflex nemohu nikomu doporučit, ač nějaké zlepšení tam je, tak stále je to jedna velká tragedie.

    Máte také podobné zkušenosti s některýma "enterprise" produktama?


    UPDATE 29.8.2013 :
    Nakonec nejdeme do té krásné, trochu cenově dražší, krabičky z USA. Důvodem je nejen cena, která by nevadila, ale hlavně i dostupnost. Máme už tedy objednané dva sety tohoto :

    1x desku (65 EUR):
    A20-OLinuXino-MICRO-4GB

    1x MOD-IO2 (13 EUR)
    MOD-IO2

    2x RS232 (2x 6 EUR):
    MOD-RS232

    1x rozpětku (2 EUR):
    UEXTx5

    2x kabel (2x 2 EUR):
    CABLE-IDC10-15cm

    1x teplotní sensor (8 EUR):
    MOD-TC

    1x Teplotní sondu (3 EUR):
    TC-K-TYPE

    1x SD karta se systémem (10 EUR)
    (použije se jako předloha, systém bude běžet na NAND flash paměti, s případnými dalšími ks se už nebude kupovat)
    A20-Debian-SD

    Poštovné (1-3 day): 21 EUR :
    Shipping

    Je to plně otevřené řešení a pěkná skládačka. Pokud se to osvědčí, tak si asi necháme udělat shield na míru pro nás, aby to bylo aspoň na úrovni a bude.
    Taktéž se nezapomenu podělit o zkušenosti s nasazením :)

    Zdar Max        

    Hodnocení: 97 %

            špatnédobré        

    Anketa

    Tak jak to vidíte?
     (2 %)
     (17 %)
     (1 %)
     (9 %)
     (93 %)
    Celkem 153 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Luk avatar 26.8.2013 00:03 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Omlátit jim to o držku, nic lepšího si nezaslouží. Mimochodem mám zkušenosti podobného charakteru s čtečkami čárových kódů Motorola MC-2180. Bohužel se čtečkami (přenosnými na čárové kódy, autonomními, s OS, robustními a blbuvzdornými atd.) je ta potíž, že není skoro žádný výběr a pokud se dají dohromady požadované vlastnosti, prakticky nic k výběru nezbyde.

    Zmíněná čtečka běží na Windows Mobile Core, což je OS, ve kterém není v podstatě nic, kromě holého systému. K tomu je tam přidaných pár aplikací, jedna pro čtení čárových kódů a pár dalších pro jiné věci. Vyvíjet pro to aplikace se moc nedá. Motorola poskytuje jakési prostředí RhoMobile Suite, založené na Eclipse, které ale nejde rozchodit (nebudu rozepisovat proč, bylo by to na déle). Navíc pro využití podstatné části API je potřeba dodatečná licence.

    Sama Motorola doporučuje implementovat aplikace webově a poskytuje k tomu jakousi odvozeninu WebKitu, obohacenou o čtečkově specifické věci. Takže teoreticky to vypadá slibně. Jenže - není zlato vše, co se třpytí:
    • Ten WebKit je ukrutně pomalý. Načtený čárový kód doputuje do aplikace za cca 2 sekundy, což je děsivé. Při změně barvy pozadí z JS je vidět, jak se to celé zvolna překresluje.
    • Samovolně a nedeterministicky se vymazává Local Storage. Někdy přežije ukončení aplikace, někdy ne. Nedeterminističnost spočívá v nějaké neznámé závislosti na aplikaci, při opakovaném spouštění téže aplikace se to chová konzistentně.
    • Po delší době běhu aplikace se WebKit dostane do podivného stavu, z něhož se lze někdy dostat ukončením a opětovným spuštěním, jindy pomůže jen restart čtečky.
    • CORS a HTTPS se v tomto WebKitu nesnášejí a společně nefungují.
    • Při přepnutí do režimu suspend (po chvíli neaktivity) aplikace ztratí fokus a už ho sama nedokáže získat. Výsledek - vše se tváří normálně, ale nefunguje to. Musí se hrábnout prstem/stylusem na displej a teprve pak to ožije.
    • Není žádná intuitivní cesta, jak systém čistě vypnout nebo restartovat. Uživateli pak dojde trpělivost a vyndá baterku.
    • Má to ještě další neduhy, na které jsem si teď nevzpomněl a je to dobře, protože proč se rozčilovat víc, než je nutné...
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    26.8.2013 01:45 Kvakor
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    To čarování s MAC adresou tam mohlo být ze starší verze, co běžela na hardwaru bez MAC adresy. Podobné embedded desky bez MAC v síťové kartě jem viděl a MAC tam byla buď samostatně v NVRAM nebo se musela načítat ze souboru, aby to nedělalo brikule s DHCP (defaultně se generuje MAC náhodně).

    A to logování do /dev/input je nejspíš něco, co zapoměli vývojáři odstranit, zkusil bych se kouknout do konfigurace udevu, co tam vlastně strkali a do čeho jim ta data lezla. Vůbec bych se nedivil, kdyby to původně bylo něco na způsob USB/serial konvertoru, co se z druhé strany chová jako sériová konzola.

    PS: Vlastně mně napadá, že by vůbec nebylo špatné mít kabel, kde by z obou stran byly USB konektory a mezi tím dva USB/serial konvertory oddělené optočleny a zapojené křížem jako NULL modem. Nevyrábí někdo něco takového?
    Jendа avatar 26.8.2013 07:05 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    PS: Vlastně mně napadá, že by vůbec nebylo špatné mít kabel, kde by z obou stran byly USB konektory a mezi tím dva USB/serial konvertory oddělené optočleny a zapojené křížem jako NULL modem. Nevyrábí někdo něco takového?
    Ne, ale můžeš si to snadno postavit: FTDI Basic Breakout (lze koupit na DX za třetinu ceny) + dva optočleny.
    27.8.2013 23:38 Dan Ohnesorg | skóre: 29 | blog: Danuv patentovy blog | Rudná u Prahy
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    A nebo se da koupit http://www.ftdichip.com/Products/Cables/USBtoUSB.htm - USB Null Modem Cable 2.5m, pod linuxem to chodi uplne v pohode. Daji se i konfigurovat, takze se da v udev zachytit vlastni kabel a podle toho spustit nejake akce. Na seriove konzole je to idealni.
    I'm an Igor, thur. We don't athk quethtionth. Really? Why not? I don't know, thur. I didn't athk. TP -- Making Money
    Jendа avatar 26.8.2013 06:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Vítej v Enterprise.

    +1

    Tohle je ten článek, který bych možná psal anglicky. Jinak to root heslo bych jim napsal a za týden poslal na full-disclosure mailing list.
    Tato čtečka má 512MiB NAND flash + 256MiB ramky, takže tady se konečně trochu pochlapili (FMR-5000 má 32MiB a 32MiB).
    LOL, nám čte RFIDy Arduino (16 KiB flash, 1 KiB RAM). Jak si může *čtečka* nevystačit s 32 MiB RAM? Já na takovém počítači provozuji i MySQL server :-D.

    Co jim ten web interface přepsat do něčeho normálního? Vždyť když tam máš SSH, tak nepotřebuješ nic kromě vyčtení tagu.
    Max avatar 26.8.2013 07:24 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Teď, když se čtečky nacházejí v relativně dostatečně funkčním stavu, to asi nemá smysl přepisovat. Článek vznikal na jaře a od té doby je funkčnost uspokojující. Osobně nejsem programátor, ale spíš slepovač kódu a programátoři nemají na takové věci time.
    Zdar Max
    Měl jsem sen ... :(
    26.8.2013 09:12 Dodoj
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Dobry :-D Nejlepsi na tom je to ruby. Kvuli nemu byla vlastne vetsina tvych problemu. HW na to nestacil ani kdyz orezali pulku funkci toho weboveho rozhrani. To jim zase nejakej frikulin poradil, ze je to in. Nebo tam spis nastoupil nejaky studentik a zacal to tam bastlit po dalsim studentikovi, ktery se uklepl pri zadavani /dev/null.
    26.8.2013 09:51 drunkezz | skóre: 34 | blog: kadeco
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    +11...uplne presne.

    dpc ruby vsade!..co to je za moda toto.?!?

    Max avatar 26.8.2013 09:55 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Jinak na těch novějších RFID FRM-6000 vytěžuje ta web služba napsaná v ruby CPU na 60% nonstop.
    zdar Max
    Měl jsem sen ... :(
    26.8.2013 10:35 Honz
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Dobrá machrovina... Hodně štěstí v dalším boji s emerickými imperialisty...
    26.8.2013 11:46 Radovan Garabík
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Len by si autor mal dať pozor pri najbližšej návšteve USA, aby naňho už nečakali páni v tmavých oblekoch a slnečných okuliaroch... (viď Skľarov).
    26.8.2013 19:31 Kvakor
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    To je pravda, vlézt do zařízení přes bootloader by možná ještě šlo okecat, ale to lámání hesel by už nejspíš bylo považopvané za porušení DMCA.
    26.8.2013 13:13 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Pro jeden projekt jsme teď nakoupili od Honeywellu čtečky QR kódů. Utěšuju se tím, že je tam Android ale po přečtení tvého článku se začínám trochu bát, jak moc dobře to bude fungovat...
    Max avatar 26.8.2013 16:30 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    My kromě několika Motorol a dalších věcí máme i několik Honeywell Dolphin 9900. Po asi dvou letech nám dva odešly (z celkem asi 10). Odešla dotykovka. Problém je, že oni mají vše all-in-one, takže se oprava vůbec nevyplatí. Motorola je na tom mnohem líp, takže náhradní součástky jsou a jdou měnit a nemají to tak integrované, takže je oprava i levnější.
    Odteď asi na Honeywall kašleme a pojedeme asi jen v Motorole.
    Ještě se uvidí.
    Zdar Max
    Měl jsem sen ... :(
    Dreit avatar 26.8.2013 16:27 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    Bohužel "Enterprise" = "tajíme, mlžíme, hrabeme" :-(

     

    Docela hezky by to šlo udělat s přenosným FM vysílačem (zlomek wattu, dosah pár metrů, levný a legální) a jednočipem. Master by mohl běžet na PC ve firmě (například nějaký slabý ARM) a postupně dokolečka vysílat ID možných přijímačů. Pokud by slave zachytil svoje ID, odeslal by odpověď. Tou by mohlo být téměř cokoli, od prostého "ANO" až po jméno řidiče, popis nákladu a tlak v pneumatikách. Pokud se odpověď v nastaveném timeoutu nevrátí, zkusí master komunikovat s dalším přijímačem. (vymyšleno za pochodu, určitě na tom najdete hromadu chyb)

    Nope
    26.8.2013 17:26 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Enterprise je velice casto hruza, vyvijet vlastni system imho take ale neni idealni.
    Dreit avatar 26.8.2013 18:11 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    Ideální to není, ale kompletní dokumentace a člověk co ví jak to funguje je často k nezaplacení ;-)

    Nope
    26.8.2013 18:58 Michal Kašpar | skóre: 15
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    Ideální to není, ale kompletní dokumentace a člověk co ví jak to funguje je často k nezaplacení ;-)

    Hehe. A vy už jste skutečně někdy u interního vývoje trvajícího déle než rok viděl aspoň jedno z toho :-)?
    26.8.2013 19:29 drunkezz | skóre: 34 | blog: kadeco
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    +1 .... uz 3/4 roka sa bastli u nas esset management 2ja ludia ktori na tom robia pomaly zacinaju reverz engineering na moduloch co uz spravili:)

    enterprise je jedine dobre co existuje, ale nie kvazi-enterprise co sa na to hraju firmicky atd... a este aj toho enteprise vendora je treba dobre vyberat. ked sme vyberali noveho blejd/nw vendora, sme mali od ciska IBM a HP kompletne riesenia asi 3 mesiace na testovanie, a obracali sme to hore dole (RAC testy,new perf I/O perf CPU perf, memory ...)

    Dreit avatar 26.8.2013 20:12 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex

    Znám člověka, co vytvořil několik navzájem podobných přístrojů a nemá problém se v nich vyznat. Nedávno mě překvapil když jsem měl jednu otázku na jeho schéma staré několik let a bez váhání mi vysvětlil důvody, proč to udělal přesně tak, jak to udělal. Nevěřil jsem svým očím.

    Ale pravda, s dokumentací je to trochu horší. Schéma a osazovací plány desek sice jsou, ale pár záchytných míst kam připojit sondu a tabulka možných závat by často nebyla na škodu - teď se řešení všech anomálií rovná reverznímu inženýrství a část výrobků pro naší bezradnost končí v koši.

    Nope
    26.8.2013 17:19 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Skvela prace, moc diky ze sis dal praci a sepsalo to do blogu :-)
    xkucf03 avatar 27.8.2013 15:05 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Certifikace
    Má Intelleflex certifikát?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    27.8.2013 15:42 Marv-CZ | skóre: 21
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Takovýto blog je lepší, než většina hlavních článků. Díky autorovi za něj.
    29.8.2013 05:30 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    To by asi bylo jednodušší od nich koupit prázdnej hardware a distribuci si sestavit sám. Kde mají ke stažení zdrojáky?
    Max avatar 29.8.2013 07:37 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Co jsme se o tom bavili, tak tenkrát u nás prý bylo několik firem, co dodává řešení RFID a toto jediné řešení bylo funkční. Léta ubíhají, možná by se tenkrát našlo ještě něco lepšího, možná ne. Každopádně současný stav je po SW stránce taktéž lehce žalostný, nemluvě o supportu.
    V článku píšu o krabičce z USA. Nakonec jsme se rozhodli pro něco jiného a mnohem levnějšího. Rozhodnutí takové padlo nejen kvůli ceně, ale hlavně kvůli dostupnosti a dobrému renomé. Už jsou tedy na cestě tyto dva komplety k testování :

    1x desku (65 EUR):
    A20-OLinuXino-MICRO-4GB

    1x MOD-IO2 (13 EUR)
    MOD-IO2

    2x RS232 (2x 6 EUR):
    MOD-RS232

    1x rozpětku (2 EUR):
    UEXTx5

    2x kabel (2x 2 EUR):
    CABLE-IDC10-15cm

    1x teplotní sensor (8 EUR):
    MOD-TC

    1x Teplotní sondu (3 EUR):
    TC-K-TYPE

    1x SD karta se systémem (10 EUR)
    (použije se jako předloha, systém bude běžet na NAND flash paměti, s případnými dalšími ks se už nebude kupovat) A20-Debian-SD

    Poštovné (1-3 day): 21 EUR :
    Shipping

    Je to plně otevřené řešení a pěkná skládačka. Pokud se to osvědčí, tak si asi necháme udělat shield na míru pro nás, aby to bylo aspoň na úrovni a bude.
    Zdar Max
    Měl jsem sen ... :(
    29.8.2013 21:19 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Každopádně současný stav je po SW stránce taktéž lehce žalostný, nemluvě o supportu. V článku píšu o krabičce z USA.
    A GPL zdrojáky k tomu dodávaj? Přece jen i nějakej IT student dokáže sestavit minimálně stejně "kvalitní" systém :-D. ... Hmm ale nevím zda se na obchod firma-firma GPL vztahuje (na pronájem ne).

    Ad deska: Hezký, ale na RFID to je overkill :-D (i když jsem na webu výrobce nenašel frekvenci těch ARM jader). Ledaže by to byl decentralizovaný firemní server s přidruženou RFID funkcí :-D.
    Max avatar 29.8.2013 22:35 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Nerozumím otázce :) Oni podle mně jen kupují desku od nějakého výrobce, který k tomu dodává i ten linuch s devel nástroji. Klasická emeded distribuce. Teď to z hlavy nevím, který to je. A co udělá Intelleflex? Přidá k tomu RFID a napíše management služby včetně API v ruby. Teď nechápu, k čemu by měl dodávat zdrojáky? K tomu jejich výtvoru v ruby nejsou potřeba, ne? A nějaká čistá clean linux distribuce, k čemu zdrojáky u ní? Problém je v tom ovládání RFID (v tom ruby bastlu). Napsat něco vlastního je jaksi mimo a je to práce bez budoucnosti.

    Pokud jde o tu novou desku pro vlastní řešení. Co by jsi navrhl ty? Ušetřit 500,-Kč a koupit něco s 1% výkonem? Teď vážně, opravdu mi zkus doporučit něco v podobné cenové hladině, co bude mít GPIO, dvě relátka, dva seriáky a dvě USB + NAND flash a bude to otevřené řešení.
    Zdar Max
    Měl jsem sen ... :(
    30.8.2013 02:18 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    No asi je výhodnější koupit hotový řešení, ale blog tou vírou otřásá :-). Možná by bylo levnější si nechat sestavit distribuci od nějakýho brigádníka, nebo sám a vyhnout se tak problémům s firmwarem, přehříváním a s tím přidruženým offline časem. Na vlastní sestavení jsou ale potřeba drivery RFID popřípadně drivery toho SoC (pokud to není ve vanilla). V případě vlastní firmware by pak nehrozil konec podpory od výrobce (to už tady IMHO pár lidí psalo).

    Dualcore ARM a dualcore 3D grafika jako jádro čtečky mě prostě overkill přijdou (nemůžu si pomoct :-( :-D). Většinu tvých požadavků ale splňuje třeba Rpí ne? Funkci: vyčíst data a poslat info na server + otevřít dveře by krásně dokázal 8bit MCU (i když, tam by asi byl problém s ethernetem, ale RS232/485 nebo klidně DTMF po interní telefonní lince :-D to jistí).

    Ale pokud je u těch starejch čteček problém jen ve firmware, tak bych si je jen rootnul a upravil k obrazu svému.
    Max avatar 30.8.2013 07:32 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    U RPI asi jedině model B, ale stále se mi nelíbí, že nemá NAND a systém by měl být tedy na SD kartě. A cenově není nijak moc vzdálen od onoho A20-OLinuXino. Samozřejmě se mi zdá výkon u A20 velký, na druhou stranu to spíš beru jako bonus, pokud by se to chtělo zneužít k něčemu jinému. Poměr cena/výkon/výbava je u A20 nejlepší, co jsem viděl a dodávací lhůty včetně všech rozšiřujících modulů jsou plně ok.

    Pokud jde o to RFID, tak tam podle mně není chyba jen v SW (jehož ruby bastl jede 60-100% CPU,na nových RFID nejde pod 60%), ale i v HW (u toho staršího typu). Deklarují třeba funkčnost při 55 stupních, což je v reálných podmínkách bez chlazení nemožné dodržet (a kdo ví, zda ten první rok, co to běželo, nebylo slabší léto a tudíž ho to přežilo).
    Z toho důvodu bych také rád u nového zařízení monitoroval teplotu, abychom měli nějaký přehled a znali reálné podmínky.
    Zdar Max
    PS: u té A20 - Cortex-A7 jsem se dočetl, že by měla být max frekvence 912MHz
    Měl jsem sen ... :(
    30.8.2013 22:28 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Jo neexistence NAND je určitá nevýhoda, ale zase by ses nemusel bát, že překročíš počet zápisů na připájeným čipu. Jinak právě dvojjádro bude spíš to teplo generovat než třeba Microchip ;-). Ale 55 stupňů by měly ty desky vydržet všechny, u mého modemu (MIPS nebo ARM - teď si nejsem jistý) mám někdy dojem, že to je pracovní teplota :-D.
    Max avatar 30.8.2013 22:31 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Právě, že to hřát nebude. Je to jak slabší mobil ;-).
    O zápisy na NAND flash se netřeba bát, logy a vše ostatní půjde do ram.
    Zdar Max
    Měl jsem sen ... :(
    Stanislav Brabec avatar 23.9.2013 17:10 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Skoro mi připadá, že tato firma nasadila své experty i do Národního bezpečnostního úřadu Slovenské republiky. Algoritmus generování master hesla i kvalita softwaru tomu odpovídá.

    Zlatí čínští inženýři. Když jsem napsal zdrcující kritiku na jejich Bluetooth přijímač, poděkoval mi jeden z vývojářů firmware, a dostal jsem za odměnu opravenou verzi (pravda, tam zase přehodili levý a pravý kanál).
    23.9.2013 20:44 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Enterprise řešení RFID v podání firmy Intelleflex
    Tak zase betatesting zadarmo.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.