Telepräsenzpanzer

Version vom 11. Dezember 2015, 18:37 Uhr von Coffee (Diskussion | Beiträge) (→‎2015-12-11: XMODEM Transfer scheint zu funktionieren)

Wir haben eine Netzwerkkamera (sogar mit WLAN), in der coffee und hk ein embedded Linux und das Potenzial zur Steuerung der ebenfalls vorhandenen Ketten-Roboter-Basis vermuten erwarteten und fanden.


Reverse Engineering

2015-12-07

Ein USART ist schon gefunden, da dieser sogar auf dem Board markiert war. (Wie zuvorkommend…)

Details: 115200 Bits/s, 8bit words, 1 stop, no parity, LSB first, non-inverted]

2015-12-09

Das Geraet ist ein "IP-Farbkamera PIPC-011"

Der Bootloader ist anscheinend ab Werk komplett offen, und auch das System bietet eine Shell auf dem USART. Strike!

bootlog: Datei:Ipcam boot dump.zip

Pollin-Produktbeschreibung: Link

/> ls /proc
1 14 15 16 18 19 2 21 22 26 28 3 30 4 5 6 7 8 9 bus cmdline cpuinfo devices
dma driver execdomains filesystems flash_4m fs interrupts iomem ioports
kcore kmsg loadavg locks meminfo misc mounts net p1_p1 partitions self
slabinfo stat swaps tty uptime version wau881


/> cat /proc/cpuinfo
Processor       : Winbond W90N745 rev 1 (v3l)
BogoMIPS        : 39.83
Hardware        : W90N745
Revision        : 0000
Serial          : 0000000000000000


/> cat /proc/version
Linux version 2.4.20-uc0 (root@maverick-linux) (gcc version 3.0) #1460 ¶þ 12ÔÂ 7 23:30:28 CST 2010


/> cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  15007744  6209536  8798208        0    53248  1368064
Swap:        0        0        0
MemTotal:        14656 kB
MemFree:          8592 kB
MemShared:           0 kB
Buffers:            52 kB
Cached:           1336 kB
SwapCached:          0 kB
Active:            220 kB
Inactive:         1168 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        14656 kB
LowFree:          8592 kB
SwapTotal:           0 kB
SwapFree:            0 kB

W90P745 Boot Loader [ Version 1.1 $Revision: 1 $ ] Rebuilt on May 11 2010
Memory Size is 0x1000000 Bytes, Flash Size is 0x400000 Bytes             
Board designed by Winbond                                   
Hardware support provided at Winbond
Copyright (c) Winbond Limited 2001 - 2006. All rights reserved.
Boot Loader Configuration:                                     
                          
	MAC Address         : 00:0D:C5:DA:E5:76
	IP Address          : 0.0.0.0          
	DHCP Client         : Enabled
	CACHE               : Enabled
	BL buffer base      : 0x00300000
	BL buffer size      : 0x00100000
	Baud Rate           : -1        
	USB Interface       : Disabled
	Serial Number       : 0xFFFFFFFF
                                        

For help on the available commands type 'h'
                                           
Press ESC to enter debug mode .....
                                   
bootloader > h
              
W90P745 Command Shell v1.0 Rebuilt on May 06 2010 at 13:00:07
                                                             
H        Display the available commands
B        Set Baud Rate                 
D        Display memory. D -? for help
E        Edit memory. E -? for help   
G        Goto address              
I        information 
MX       Xmodem download
MT       TFTP/USB download
FT       Program the flash by TFTP/USB. FT -? for help
FX       Program the flash by Xmodem. FX -? for help  
CP       Memory copy                                
LS       List the images in the flash
SET      Setting boot loader configuration. SET -? for help
CHK      Check the flash                                   
RUN      Execute image  
DEL      DEL the image or flash block
MSET     Fill memory                 
TERM     Change the terminal output port
BOOT     Reboot the system              
CACHE    Cache setting    
USB      USB interface setting
UNZIP    Unzip image          
ATTRIB   Change the image attribution
INTF     Print bootloader supported interface, ether USB or MA

Das Gerät scheint ein seltsames Binary-Format zu verwenden: kein ELF, sondern BFLT. Anscheinend gibt es eine Compiler-Option für den ARM-GCC, um BFLT zu erzeugen.

Ein Build-Prozess für neue Firmware-Images ist in Arbeit.

/bin/camera scheint den Großteil der Funktionalität zu implementieren, denn ein gesonderter HTTPD ist nicht auffindbar.


Anscheinend haben sich noch andere Leute mit diesen Kameras befasst http://www.openipcam.com/, und sogar etwas ausgegraben, das wie ein BSP aussieht: http://www.openipcam.com/files/BSP/W90N745BSP05262008.tar.gz

2015-12-10

coffee hat das Gerät halb gebrickt beim Versuch, ein neues Root-FS hochzuladen. Der Bootloader beklagte sich erst nach dem Löschen des existierenden Root-FS über falsche Parameter. Nächstes mal für weniger Ärger direkt mit diesem Bootloader-Kommando versuchen:

fx 6 rootfs 0x7F0E0000 0x7F0E0000 -af

coffee hatte weder mit minicom noch mit picocom Erfolg beim Versuch ein neues Image hochzuladen. Eine angeblich funktionierende Config für Kermit, um per XMODEM ein neues Image hochzuladen, gibt's hier: http://wiki.openipcam.com/index.php/Serial_Console

2015-12-11

# picocom -b 115200 /dev/ttyUSB0 --send-cmd 'lsz -X -a'

für stressfreie Kommunikation mit dem Bootloader, so dass auch das Flashen von Images klappt.

TO DO

  • sobald wie möglich wieder irgendein funktionierendes Root-FS flashen
  • existierende Dokumentation sichten
  • neues Firmware-Image bauen
    • Build-Prozess für neue Firmware-Images erarbeiten (in Progress)
    • Komische Nachhausetelefoniererei abschalten (seltsames Original-Dynamic-DNS)
    • busybox bauen
  • Steuerung der DC-Motoren und Relais-Ausgänge identifizieren
  • ???
  • Profit!