How-To Ratowanie kamerek 1.3mpix (Longse, ala EPCAM, ...)

Dyskusja w 'Stacja monitoringu' rozpoczęta przez użytkownika kaugustyn, 11 Grudzień 2015.

Ładowanie...
  1. kaugustyn
    Offline

    kaugustyn Moderator Q's Excellence

    Dołączył:
    27 Styczeń 2014
    Wiadomości:
    63
    Local Time:
    21:45
    Oceny:
    +37 / 0 / -0
    Followers:
    0
    QNAP:
    TS-x79 Pro
    Ethernet:
    10 GbE
    TS-x79 Pro 10 GbE
    Ponieważ udało mi się uwalić kemerkę 1.3mpix opartą o układ HI3815, postawnowiłem trochę podłubać i udało mi się ją przywrócić do pierwotnego stanu.
    Poniżej w miaę kompletny tutorial jak odratowć taką kamerkę po wgraniu złego softu. Może też pomóc na inne przypadłości :)

    Potrzebne będą :
    1. Ogólna wiedza z zakresu : linux,sieć,posługiwanie się lutownicą
    2. serwer TFTP ( popularny TFTPD32 lub TFTPD64 by Philippe Jounin, strona domowa TFTPD32 : an opensource IPv6 ready TFTP server/service for windows : TFTP server )
    3. kawałek oprogramowania do podzielenia pliku binarnego - kamera ma ograniczony zasób pamięci i nie pomieści na raz największego pliku, trzeba go podzielić. można to zrobić na kilka sposobów, np : split -b 5242880 mtdblock3. Ja dzieliłem swój plik w programie TotalCommander.
    4. konwerter RS232 - USB, mój na zdjęciu to popularny FTDI. Pamiętamy, że kamera korzysta z poziomu logiki 3.3v, jeżeli podłączymy RS232 w standardzie 5v możemy spalić układ HI3518 i będzie po zabawie.
    Aby odratować uwaloną kamerkę, w pierwszej kolejności musimy wykonać "backup" oprogramowania z działającej sztuki. Czyli :

    Weryfikujemy gdzie leży i jak jest zorganizowana pamięć MTD

    Z poziomu systemu linux :

    telnet IP_Kamery
    user : root
    pass : admin

    Kod (Bash):
    1. cat /proc/mtd
    Wynik :
    Kod (Text):
    1. dev:    size  erasesize  name
    2. mtd0: 00100000 00010000 "boot"
    3. mtd1: 00200000 00010000 "kernel"
    4. mtd2: 00300000 00010000 "system"
    5. mtd3: 00a00000 00010000 "application"
    ... lub:
    Kod (Bash):
    1. dmesg | more
    Wynik :
    Kod (Text):
    1. .... (wycięte)
    2. 4 cmdlinepart partitions found on MTD device hi_sfc
    3. Creating 4 MTD partitions on "hi_sfc":
    4. 0x000000000000-0x000000100000 : "boot"
    5. 0x000000100000-0x000000300000 : "kernel"
    6. 0x000000300000-0x000000600000 : "system"
    7. 0x000000600000-0x000001000000 : "application"
    Z poziomu subsytemu Uboot via port szeregowy
    Kod (Text):
    1. U-Boot 2010.06 (Apr 11 2014 - 11:19:40)
    2.  
    3. DRAM:  256 MiB
    4. NAND:  Special Nand id table Version 1.35
    5. Nand ID: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    6. No NAND device found!!!
    7. 0 MiB
    8. Check spi flash controller v350... Found
    9. Spi(cs1) ID: 0xC2 0x20 0x19 0xC2 0x20 0x19
    10. Spi(cs1): Block:64KB Chip:32MB Name:"MX25L25635E/735E/635F"
    11. In:    serial
    12. Out:   serial
    13. Err:   serial
    14. Hit any key to stop autoboot:  0
    15. 32768 KiB hi_sfc at 0:0 is now current device
    16.  
    17. ## Booting kernel from Legacy Image at 82000000 ...
    18.    Image Name:   Linux-3.0.8
    19.    Image Type:   ARM Linux Kernel Image (uncompressed)
    20.    Data Size:    2063464 Bytes = 2 MiB
    21.    Load Address: 80008000
    22.    Entry Point:  80008000
    23.    Loading Kernel Image ... OK
    24. OK
    25.  
    26. Starting kernel ...
    27. .....
    28. 4 cmdlinepart partitions found on MTD device hi_sfc
    29. Creating 4 MTD partitions on "hi_sfc":
    30. 0x000000000000-0x000000100000 : "boot"
    31. 0x000000100000-0x000000300000 : "kernel"
    32. 0x000000300000-0x000000600000 : "system"
    33. 0x000000600000-0x000001000000 : "application"
    Tutaj widzimy że mamy 4 partycje, z któych trzeba wykonać kopię. Robimy ją z poziomu systemu HiLinux na sprawnej kamerze :
    Kod (Bash):
    1. #montujemy system plików jako ReadOnly - unikamy potencjalnych problemów z konsystencją danych
    2. mount -o remount,ro /
    3. #kopia partycji
    4. dd if=/dev/mtdblock0 of=/mnt/nfs/mtdblock0 bs=65536
    5. dd if=/dev/mtdblock1 of=/mnt/nfs/mtdblock1 bs=65536
    6. dd if=/dev/mtdblock2 of=/mnt/nfs/mtdblock2 bs=65536
    7. dd if=/dev/mtdblock3 of=/mnt/nfs/mtdblock3 bs=65536
    8. #powrót do pierwotnego stanu
    9. mount -o remount,rw /
    Gdzie lokalizacja /mnt/nfs to jakikolwiek zasób sieciowy dostępny via NFS. Obsługa NFS jest wbudowana w kamerę więc nie będzie problemu z montowaniem. Dla przykładu montujemy folder hicam z serwera QNAP_NAS:
    Kod (Bash):
    1. mkdir /mnt/nfs
    2. mount -t nfs -o nolock QNAP_NAS:/hicam /mnt/nfs
    Teraz zaczynamy zabawę z uwaloną kamerką. Nie gwarantuję że każada kamera da się podnieść w ten sposób, ale zdecydwana większość tych, które zostały zaktualizowane złym softem na pewno. Należy też mieć na uwadze, że jeżeli uwalimy coś w partycji 0, która zawiera boot-code, to możemy uwalić kamerkę na amen, więc jeżli nie ma takiej wyraźniej potrzeby to kopiowanie mtdblock0 można sobie odpuścić.

    W pierwszej kolejności musimy spreparować plik mtdblock3, ponieważ jest on za duży żeby go w jednym kroku wgrać do pamięci kamerki. W tum celu można z poziomu jakiegokolowek systemu linux wykonać polecenie :
    Kod (Bash):
    1. split -b 5242880 mtdblock3
    Można rówież wykonać to z poziomu programu TotalCommander, tak jak ja to zrobiłem, można poszukać innego oprogramowania które to zrobi. Najważniejsze jest to, aby plik podzileić binarnie zakładajć split po 5242880 bajtach.

    W następnym kroku musimy przygotować serwer TFTP, który będzie nam serwował pliki do kamerki. Aby to zrobić, uruchamiamy na przykład program tftpd32, w opcjach wskazujemy folder domowy dla plików, po czym kopiujemy do tego folderu pliki mtdblock0 mtdblock1 mtdblock2 mtdblock3.01 mtdblock3.02

    Teraz zabawa z lutownicą. Dotego musimy kamerkę rozebrać, odkręcając wieczko z szybą, 4 śrubki które trzymają kamerkę w obudowie, oraz 4 śrubki które trzymają ring IR na kołkach dystansowych.

    Zdjęcie poniżej pokazuje złącze RS na płytce kamerki, w prawym dolnym rogu trzy ocynowane pola na krawędzi

    20151211_145540.

    Przygotowujemy podłączenie do portu RS232 lutując 3 kabelki :
    20151211_145817.

    Te na zdjęciu powyżej to
    czarny - GND
    biały - TX
    szary - RX
    podłączenie do konwertera RS232 robimy oczywiście po krzyżu : TX z kamery do RX na konwererze i to samo z drugą parą. U mnie wygląda to tak :
    20151211_153239.

    Po poprawnym podłączeniu uruchamiamy dowolny program terminala, ja używam najnowszej wersji TeraTerm. Port szeregowy ustawiamy na 115200 8n1. Jeżeli źle ustawimy paramerty portu szeregowego, to zamiast poniższego zobaczymy przepiękne "krzaczki" :) Jeżeli ustawimy wszystko ok, to po włączeniu zasilania kamery powinniśmy dostać taki widok :

    Kod (Bash):
    1. U-Boot 2010.06 (Apr 11 2014 - 11:19:40)
    2.  
    3. DRAM:  256 MiB
    4. NAND:  Special Nand id table Version 1.35
    5. Nand ID: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    6. No NAND device found!!!
    7. 0 MiB
    8. Check spi flash controller v350... Found
    9. Spi(cs1) ID: 0xC2 0x20 0x19 0xC2 0x20 0x19
    10. Spi(cs1): Block:64KB Chip:32MB Name:"MX25L25635E/735E/635F"
    11. In:    serial
    12. Out:   serial
    13. Err:   serial
    W momencie kiedy zobaczymy "Hit any key to stop autoboot: 2" naciskamy dowolny klawisz aby przerwać proces dalszego bootowania.
    dostajemy prompt jak poniżej :
    Kod (Text):
    1. herospeed #
    Teraz kolej na konfigurację tftp dostępnego poprzez oprogramowanie u-boot.
    serverip - adres IP serwera TFTP na którym mamy kopię plików ze sprawnej kamerki
    ipaddr - tymczasowy adres IP naszej kamerki, uwaga - nie będzie można go zapingować, tak ma być.

    Kod (Bash):
    1. setenv serverip 192.168.100.20
    2. setenv ipaddr 192.168.100.251
    Przygotowanie pamięci
    Kod (Bash):
    1. sf probe 0
    A poniżej cała magia - kopiujemy via tftp kilejno pliki do pamięci kamerki, później kasujemy odpowiedni blok MTD i nadpisujemy go naszymi danymi

    Kod (Bash):
    1. tftp mtdblock0
    2. sf erase 0 0x100000
    3. sf write 0x80008000 0 0x100000
    4.  
    5. sf erase 0x100000 0x200000
    6. tftp mtdblock1
    7. sf write 0x80008000 0x100000 0x200000
    8.  
    9. sf erase 0x300000 0x300000
    10. tftp mtdblock2
    11. sf write 0x80008000 0x300000 0x300000
    12.  
    13. sf erase 0x600000 0xa00000
    14. tftp mtdblock3.001
    15. sf write 0x80008000 0x600000 0x500000
    16. ftp mtdblock3.002
    17. sf write 0x80008000 0xb00000 0x500000
    Jeżeli wszystko poszło ok. to po restarcie kamerka podnosi się. UWAGA - paramerty kamery bedą takie same jak tej, z której robiliśmy kopię MTD.

    To chyba na tyle :) życzę udanej zabawy :D
     
    • Lubię to! Lubię to! x 2
    • Wygrany! Wygrany! x 2
    • Piwo Piwo x 1
    • Ciasto Ciasto x 1
  2. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 559
    Miejscowość:
    Nowy Sącz
    Local Time:
    21:45
    Oceny:
    +1 464 / 30 / -6
    Followers:
    25
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE
    TVS-x71 1 GbE
    I takich gości jak Ty potrzebujemy!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  3. kaktus
    Offline

    kaktus μC Circuitmaker Q's Editor

    Dołączył:
    14 Luty 2011
    Wiadomości:
    933
    Miejscowość:
    opolskie
    Local Time:
    21:45
    Oceny:
    +225 / 9 / -3
    Followers:
    3
    QNAP:
    TS-219P+
    Ethernet:
    1 GbE
    TS-219P+ 1 GbE
    Załącz backupy jeśli to nie godzi w czyjeś prawa autorskie ...
     
  4. kazmirz
    Offline

    kazmirz Dotykam i psuje... Q's Expert

    Dołączył:
    17 Lipiec 2009
    Wiadomości:
    237
    Miejscowość:
    leszno
    Local Time:
    19:45
    Oceny:
    +33 / 1 / -1
    Followers:
    0
    QNAP:
    TS-x51
    Ethernet:
    1 GbE
    TS-x51 1 GbE
    Po testach softowych mam 3 kamery do Ciebie 1.3 mpix :-( uwalone..Jakbys mial ochote pomoc. po swietach.
     
  5. kaugustyn
    Offline

    kaugustyn Moderator Q's Excellence

    Dołączył:
    27 Styczeń 2014
    Wiadomości:
    63
    Local Time:
    21:45
    Oceny:
    +37 / 0 / -0
    Followers:
    0
    QNAP:
    TS-x79 Pro
    Ethernet:
    10 GbE
    TS-x79 Pro 10 GbE
    @kazmirz@kazmirz spoko, ale po świętach, teraz nie bardzo wiem jak się nazywam - końcówka roku jak zwykle jest "wspaniała"...
     
  6. urth
    Offline

    urth Nowy użytkownik Noobie

    Dołączył:
    22 Październik 2009
    Wiadomości:
    5
    Miejscowość:
    Gorzów Wlkp.
    Local Time:
    21:45
    Oceny:
    +6 / 0 / -0
    Followers:
    1
    QNAP:
    TS-x53
    Ethernet:
    1 GbE
    TS-x53 1 GbE
    Dzięki za instrukcje. Postępując wg opisu udało mi się uratować uwaloną kamerkę 1.3mpix. :oklaski: dla autora.

    Jedna uwaga dla potomnych - w wierszu 16 powinno być: tftp mtdblock3.002
     
  7. kazmirz
    Offline

    kazmirz Dotykam i psuje... Q's Expert

    Dołączył:
    17 Lipiec 2009
    Wiadomości:
    237
    Miejscowość:
    leszno
    Local Time:
    19:45
    Oceny:
    +33 / 1 / -1
    Followers:
    0
    QNAP:
    TS-x51
    Ethernet:
    1 GbE
    TS-x51 1 GbE

    moze nagrasz film krok po kroku :) ?
     
  8. urth
    Offline

    urth Nowy użytkownik Noobie

    Dołączył:
    22 Październik 2009
    Wiadomości:
    5
    Miejscowość:
    Gorzów Wlkp.
    Local Time:
    21:45
    Oceny:
    +6 / 0 / -0
    Followers:
    1
    QNAP:
    TS-x53
    Ethernet:
    1 GbE
    TS-x53 1 GbE
    Oki spróbuję sklecić coś w wolnej chwili, jak nie film to może uzupełnię (za zgodą autora instrukcji) opis o konfigurację programów TFTP i TeraTerm.
    --- Połączono posty, 8 Luty 2016, Data oryginalnego postu: 7 Luty 2016 ---
    W załączeniu pliki mtdblock0 mtdblock1 mtdblock2 mtdblock3.01 mtdblock3.02 do kamerki 1.3Mpix 3518C+IMX238
     

    Załączone pliki:

    • Lubię to! Lubię to! x 2
  9. bvm
    Offline

    bvm Nowy użytkownik Noobie

    Dołączył:
    12 Grudzień 2017
    Wiadomości:
    1
    Local Time:
    22:45
    Oceny:
    +1 / 0 / -0
    Followers:
    0
    QNAP:
    TS-411U
    Ethernet:
    802.11n
    TS-411U 802.11n
    [QUOTE = "Urth пост: 96282, член: 1342"] Oki опитаме да монтирам нещо в свободното си време, тъй като няма видео може да се допълват (със съгласието на инструкции на автора) описание на конфигурационните програми по ППФТ и TeraTerm.
    [DOUBLEPOST = 1,454,924,178.1454880415] [/ DOUBLEPOST] прикачени файлове mtdblock0 mtdblock1 mtdblock2 mtdblock3.01 mtdblock3.02 камери 1.3Mpix до + 3518C IMX238 [/ цитат]
    здрасти
    --- Połączono posty, 12 Grudzień 2017, Data oryginalnego postu: 12 Grudzień 2017 ---
    Dzięki za instrukcje. Postępując wg opisu udało mi się uratować uwaloną kamerkę 1.3mpix. :oklaski: dla autora.
    --- Połączono posty, 12 Grudzień 2017 ---
    Dzięki za instrukcje. Postępując wg opisu udało mi się uratować uwaloną kamerkę 1.3mpix. :oklaski: dla autora.
    hi
     
  10. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 559
    Miejscowość:
    Nowy Sącz
    Local Time:
    21:45
    Oceny:
    +1 464 / 30 / -6
    Followers:
    25
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE