Panasonic Forum



Spaß mit der AG-HPX301E



... was Panasonic-Modelle betrifft, die keine eigene Kategorie haben
Antworten
deti
Beiträge: 3974

Spaß mit der AG-HPX301E

Beitrag von deti »

Wie ja schon vor einiger Zeit angekündigt, wollte ich unbedingt Zugriff auf das Linux-Betriebssystem der AG-HPX301E haben. Dass dies prinzipiell möglich ist, war relativ schnell klar, da die Firmware-Update-Datei im TGZ-Format vorliegt. Nach dem Entpacken zeigen sich eine Menge Shell-Skripten und CROMFS- bzw. CRAMFS-Images, die sich unter Linux leicht mounten und ansehen lassen. Dieses Format scheint für alle HVX2* und HPX*-Kameras identisch zu sein. Bereits vor einiger Zeit wurden hier unter http://deadhacker.com/2009/07/26/target ... hd-camera/ schon einige Erkenntnisse gewonnen. Was dem damaligen "Hacker" nicht gelang, war ein Login auf dem Linux-System und die Ausführung eigener Programme.

Anknüpfend an die obigen Erkenntnisse ist es mir zuerst gelungen das Dateisystem des Updaters (vupfs.bin) zu mounten und zu untersuchen. Hier mussten lediglich 0x420 Bytes am Anfang der Imagedatei bis zum Beginn des GZIP-Headers übersprungen werden:
dd if=vupfs.bin skip=1056 bs=1 of=vupfs.img.gz
gunzip vupfs.img.gz
sudo mount -o loop vupfs.img /mnt

Der Updater "/etc/init.d/vupsys" startet im Wesentlichen wiederum das Updateskript "vup2.sh" des Update-Pakets. Dieses wiederum offenbart aus welchen Subsystemen die Kamera aufgebaut ist und wie diese unter Linux angesprochen werden:

- Grundsätzlich gibt es ein Linuxsystem, das während des Betriebs die Menüfunktionen bereitstellt und den Thumbnailmodus ermöglicht.

- Hinzu kommt ein Systemcontroller (SYSCON) der die eigentlichen Kamerafunktionen realisiert - hierfür gibt es ein eigenes Update-Skript "syscon_vup.sh".

- Dann gibt es noch ein FPGA, das scheinbar die DVCPRO und AVC-Intra-Codecs beherbergt und verschiedene DMA-Funktionen zum direkten P2-Zugriff ermöglicht. Dieses FPGA wird über ein weiteres Update-Skript "vup.sh" aktualisiert.

- Letztendlich gibt es noch mehrere Bootloader, die den Linuxkernel entweder aus dem Flash oder via Netzwerk starten.

Also wo finden wir nun unsere Lücke, um auf das Linux-System zuzugreifen?

- Es gibt eine serielle Konsole, deren Anschlüsse man nur irgendwo finden müsste. Aufschrauben und messen wäre hier eine Lösung. Das ist aber invasiv und zeitaufwendig.

- Man könnte einen Netzwerkadapter oder einen RS232-Adapter über USB anschließen. Dazu müsste man eigentlich nur den von Montavista angepassten Linux-Kernel Version 2.4.20_mvl31-ms7751r nehmen und die geeigneten Module kompilieren. Nur nun stellt sich die Frage, wie man diese Module laden kann?

Eine Lösungsmöglichkeit wäre der Zugriff auf die Kamera, indem man ein pseudo Update-Paket baut. Dummerweise ist Kamera in diesem Modus zu nichts mehr zu gebrauchen, weil der Updatemodus einen kompletten Reboot auslöst.

Untersucht man nun die Executables im Root-Filesytem, so findet man "/home/apli/sg" - dieser Prozess scheint alle wichtigen Menüfunktionen der Kamera bereitzustellen. Wenn man da ein wenig disassembliert, findet man den Aufruf eines Skriptes "/home/apli/ext_prgrm.sh" - das wiederum ruft ein beliebiges Shell-Skript (mit der Endung .sh) von der SD-Karte auf, sofern dieses im Verzeichnis "PRIVATE/MEIGROUP/PAVCN/SBG/P2SD/MNTNC" liegt. Das wäre ja schon der Hauptgewinn gewesen, aber leider fehlt immer noch ein Trick um dieses magische Skript "ext_prgrm.sh" aufzurufen. Wenn man weiter disassembliert, so findet man in der Anwendung "/home/apli/pa" Code der scheinbar nach einer Datei "PASSWD" in oben genanntem Verzeichnis auf der SD-Karte sucht.

Legt man nun eine leere Datei PASSWD unter "PRIVATE/MEIGROUP/PAVCN/SBG/P2SD/MNTNC" an, so erscheint im Thumbnail-Menü ein neuer Menüpunkt "SERVICE" und darunter der Punkt "EXTERNAL". Wenn man nun diesen Punkt anwählt und bestätigt, kommt ein beliebiges Shell-Skript von der SD-Karte zur Ausführung (siehe Bild anbei). Somit stellt das Laden von Gerätertreibern und starten von beliebigen Programmen kein Problem mehr da. Also schauen wir doch mal, was auf der Kamera so los ist:

Der Prozessor:
cpu family : SH-4
cache size : 8K-byte/16K-byte
bogomips : 197.83

Machine: 7751 SolutionEngine
CPU clock: 198.00MHz
Bus clock: 99.00MHz
Peripheral module clock: 49.50MHz

Der Speicher:
total: used: free: shared: buffers: cached:
Mem: 114147328 45776896 68370432 0 6012928 10424320

Die PCI-Devices:
PCI devices found:
Bus 0, device 1, function 0:
Multimedia video controller: PCI device 10f7:820a (Matsushita Electric Industrial Co., Ltd.) (rev 0).
IRQ 7.
Master Capable. Latency=32. Min Gnt=16.Max Lat=16.
Non-prefetchable 32 bit memory at 0xfd000000 [0xfd003fff].
Non-prefetchable 32 bit memory at 0xfd004000 [0xfd007fff].
Prefetchable 32 bit memory at 0xf0000000 [0xf7ffffff].
Prefetchable 32 bit memory at 0xfd200000 [0xfd3fffff].
Bus 0, device 2, function 0:
CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 139).
IRQ 8.
Master Capable. Latency=64. Min Gnt=2.Max Lat=4.
Non-prefetchable 32 bit memory at 0xfd008000 [0xfd008fff].
Bus 0, device 2, function 1:
CardBus bridge: Ricoh Co Ltd RL5c476 II (#2) (rev 139).
IRQ 9.
Master Capable. Latency=64. Min Gnt=2.Max Lat=4.
Non-prefetchable 32 bit memory at 0xfd009000 [0xfd009fff].
Bus 0, device 2, function 2:
Class 0805: PCI device 1180:0822 (Ricoh Co Ltd) (rev 17).
IRQ 10.
Non-prefetchable 32 bit memory at 0xfd00a000 [0xfd00a0ff].
Bus 0, device 6, function 0:
USB Controller: PCI device 17cc:2280 (rev 1).
IRQ 10.
Non-prefetchable 32 bit memory at 0xfd010000 [0xfd01ffff].
Prefetchable 32 bit memory at 0xfd020000 [0xfd02ffff].
Non-prefetchable 32 bit memory at 0xfd030000 [0xfd03ffff].
Bus 0, device 7, function 0:
USB Controller: NEC Corporation USB (rev 68).
IRQ 9.
Master Capable. Latency=64. Min Gnt=1.Max Lat=42.
Non-prefetchable 32 bit memory at 0xfd00b000 [0xfd00bfff].
Bus 0, device 7, function 1:
USB Controller: NEC Corporation USB 2.0 (rev 5).
IRQ 9.
Master Capable. Latency=68. Min Gnt=16.Max Lat=34.
Non-prefetchable 32 bit memory at 0xfd00a100 [0xfd00a1ff].
Bus 5, device 0, function 0:
Unknown mass storage controller: (rev 1).
IRQ 9.
Master Capable. Latency=64. Min Gnt=16.Max Lat=16.
Bus 1, device 0, function 0:
Unknown mass storage controller: (rev 1).
IRQ 8.
Master Capable. Latency=64. Min Gnt=16.Max Lat=16.

Die Interrupts:
CPU0
7: 1456 IPR-IRQ ZION, zcom
8: 72 IPR-IRQ i82365, spd
9: 131 IPR-IRQ i82365, ehci-hcd, usb-ohci, spd
10: 4315 IPR-IRQ sdcard
16: 5351 IPR-IRQ timer
38: 0 IPR-IRQ dma_err
40: 0 IPR-IRQ sci
41: 0 IPR-IRQ sci
42: 0 IPR-IRQ sci
43: 14 IPR-IRQ sci
65: 0 INTC2-IRQ SH4PCIDMA
66: 39 INTC2-IRQ SH4PCIDMA

Dir vorhandenen Block-Devices:

major minor #blocks name
244 0 996864 sdcarda
244 1 996740 sdcarda1
240 0 30900224 spda
240 1 30875648 spda1
240 16 30900224 spdb
240 17 30875648 spdb1
31 0 256 mtdblocka
31 1 256 mtdblockb
31 2 256 mtdblockc
31 3 5120 mtdblockd
31 4 37632 mtdblocke
31 5 8192 mtdblockf
31 6 2048 mtdblockg
31 7 6144 mtdblockh
31 8 2816 mtdblocki
31 9 2816 mtdblockj

Die laufenden Prozesse:
PID Uid VmSize Stat Command
1 root 432 S init
2 root SW [keventd]
3 root RWN [ksoftirqd_CPU0]
4 root SW [kswapd]
5 root SW [bdflush]
6 root SW [kupdated]
7 root SW [mtdblockd]
8 root SW [khubd]
40 root 572 S /sbin/syslogd -p /var/dev-log
43 root 456 S /sbin/klogd
52 root DW [delayprocd]
55 root 412 S /sbin/cardmgr -q -c /lib/modules/2.4.20_mvl31-ms7751r
62 root 612 D [ksdcheck]
66 root 1196 S /home/apli/sg
67 root 468 S /sbin/getty -L /dev/ttySC1 38400 vt100
94 root 476 S /bin/ash /home/apli/ext_prgrm.sh
105 root 472 S /bin/ash /mnt/sdcarda/PRIVATE/MEIGROUP/PAVCN/SBG/P2SD
110 root 488 R ps

Jetzt stellt sich natürlich die Frage, was man mit diesen Erkenntnissen anstellen kann. Spontan fallen mir so Dinge ein, wie
- Fernsteurung der Kamera via Netzwerk
- Aufzeichnung auf Massenspeicher via USB
- Nutzung des Displays für beliebige Unix-Anwendungen (z.B. Teleprompter)

Naja.. euch wird sicher auch etwas einfallen!

Nun noch die obligatorische Schlussklausel: Jeder der solche Dinge ausprobiert sollte wissen was er tut und trägt die Verantwortung für eventuelle Schäden selbst. Trotzdem viel Spaß beim Basteln und Spielen.

Deti
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



rudi
Administrator
Administrator
Beiträge: 1459

Re: Spaß mit der AG-HPX301E

Beitrag von rudi »

Wow, der SH-4 ist nicht mal ARM, und du kannst den dissassemblieren (bzw. SH4-Assembler verstehen) :o
Dann kannst du ja sicherlich auch mal schnell ´nen Dreamcast-Emulator auf die HPX301 portieren ;) (war glaube ich auch SH-4)

Also echt. Hut ab, Deti



deti
Beiträge: 3974

Re: Spaß mit der AG-HPX301E

Beitrag von deti »

Der SH-4 Assembler ist nicht so schwer zu verstehen, denn es gibt ja die GNU-Binutils. Damit kann man sehr einfach alle Objekt- und Debug-Symbole ausgeben. Panasonic war so lieb auch jede Menge Debug-Ausgaben für's Syslog drin zu lassen. Das macht das Verstehen des Codes deutlich leichter ;-)

Die Idee einen Emulator auf der Kamera zu starten ist im Prinzip ganz toll, aber ich fürchte die Rechenleistung des 100Mhz Prozessors reicht für keine großen Projekte. Mir schwebt eher etwas in Richtung Fernsteuerung und Teleprompter vor.

Seltsamerweise geht das Aufzeichnen auf die P2-Karte ohne hohe CPU-Last. Da muss also im Hintergrund etwas auf Hardwarebene die Daten direkt verschieben. Vermutlich lässt sich deshalb auch nicht durch einfaches Umbiegen des Mountpunkts auf die SD-Karte aufzeichnen.

Deti



cyphunk
Beiträge: 1

Re: Spaß mit der AG-HPX301E

Beitrag von cyphunk »

Deti, can you contact me (via cyphunk at gmail.com) ... I was excited to see someone else working on this (I wrote the article you reference on deadhacker.com). would like to join you in your efforts. Not only are we working on similar stuff but we are in the same part of the world.



 Aktuelle Beiträge [alle Foren]
 
» Was schaust Du gerade?
von klusterdegenerierung - Mi 1:48
» Digitale Avatare im Metaverse - doch das nächste große Ding?
von roki100 - Mi 0:33
» IMAX-Blockbuster The Creator mit 5.000 Euro Kamera gedreht - Sonys FX3
von Frank Glencairn - Di 22:26
» Wie finde ich eine Timecode Lösung für den Zoom F3?
von Frank Glencairn - Di 22:16
» DJI Kameraplatte in Peak Design Capture Clip V3
von msteini3 - Di 21:39
» [Drehbuch] An deiner Seite
von 7River - Di 20:16
» Panasonic S5II und S5IIX Firmware-Updates mit verbesserter V-Log Qualität, Upgrade Key u.a. verfügbar
von iasi - Di 20:02
» Stromversorgung für Blackmagic Cinema Camera 2.5K/Production Camera 4K?
von rush - Di 19:36
» Systemwechsel ? Von Sony A7IV, Fx30... zu Lumix g9 II
von alex66183 - Di 18:55
» Canon C200 Kit und Sony A7R II Kit zu verkaufen.
von Fassbrause - Di 18:52
» Premium-Mikro für Tierfilm
von Skeptiker - Di 16:06
» Sigma teasert Produktvorstellung für den 05. Oktober
von DeeZiD - Di 13:13
» Videoclip: Adobe Premiere Pro erklärt: Mit KI Pausen und Füllwörter schnell entfernen u.v.m.
von Alex - Di 13:12
» Gerücht: DJI Pocket 3
von cantsin - Di 11:40
» Gpixel GCINE3243: 8K-S35 CMOS-Sensor vorgestellt mit 60 fps und 14 Bit
von dienstag_01 - Di 11:22
» Großsensor-Look mit viel Zoom...
von Frank Glencairn - Di 11:13
» Atomos Ninja / Shniobi Preisunterschied nur noch knapp 100 Euro, trotzdem Shinobi?
von rush - Mo 20:21
» Kann Chat GPT Bilder besser verlustfrei komprimieren als PNG?
von dienstag_01 - Mo 14:19
» Neue kabellose Mikrofone von Sony - ECM-W3 und ECM-W3S
von rush - Mo 9:08
» Google zeigt KI-Bullet-Time Effekt inkl. Slow Motion, Blur und Stabilizer - DynIBaR
von Viteq - So 21:35
» "Old Film" Plugin für PP/AE?
von TomStg - So 19:38
» Was hörst Du gerade?
von klusterdegenerierung - So 19:07
» Suche 4K Allrounder für diverse Veranstaltungen
von suchor - So 18:28
» Geschichte im Reportagestil
von AndySeeon - So 16:00
» Sony PXW FS7 II 4K 60p Video Kamera Kino Metabones Speedbooster
von Mr NN - So 11:01
» Verkaufe GH6 Body
von roki100 - So 10:51
» Motor Smart: Intelligenter AutoFocus-Motor von PDMovie nutzt LiDAR und KI
von roki100 - So 10:10
» Neu: GoPro HERO12 Black mit HDR / GP-Log und längerer Akkulaufzeit
von Alex - So 9:25
» slashCAM präsentiert: Nikon RAW Grading-Wettbewerb - Nikon Z 8 zu gewinnen!
von apbild - Sa 14:39
» REDs High-End Cine-Kamera Serie V-Raptor erhält Face Detection Autofokus
von iasi - Sa 14:32
» Hard und Software für Live Vortrag mit Streaming gesucht
von Auf Achse - Sa 13:30
» Wie viel bringt S-Cinetone ggü. sLog3 und Rec709 8 Bit?
von dienstag_01 - Sa 13:23
» KI Rohschnitt mit ChatGPT? Videoscipt + Transcript Davinci Resolve zu ChatGPT = EDL?
von Frank Glencairn - Sa 11:41
» Gezähmte Grafikkarten-Entwicklung bei AMD und Nvidia in 2024?
von dienstag_01 - Sa 11:32
» Neue Objektive von Sigma - Produktvorstellung fünfter Oktober
von rush - Sa 7:34
 
neuester Artikel
 
Digitale Avatare im Metaverse

Das Metaverse war eigentlich schon wieder abgeschrieben, doch Metas neue Kodak Avatare könnten unsere Kommunikation in Zukunft doch gehörig umkrempeln. weiterlesen>>

Generative KI -Videos mit Midjourney und Pika Labs

Seitdem Midjourney oder Stable Diffusion fotorealistische Bilder generieren kann, will man natürlich auch realistische Bewegungen "digital erträumen". Doch das erweist sich für ein KI-Modell noch einmal als ziemlich anspruchsvollere Aufgabe... weiterlesen>>