Plextor Convertx PX-M402U: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Zeile 237: Zeile 237:
* "-input 1" für den Svideo-Eingang.
* "-input 1" für den Svideo-Eingang.


  $ <b>gorecord -input 1 -duration 10 testvideo.avi</b>
  $ <b>gorecord -input 0 -duration 10 testvideo.avi</b>
  /dev/video0 is a GO7007 device at USB address 5-3:1.0
  /dev/video0 is a GO7007 device at USB address 5-3:1.0
  Attempting to determine audio device...using audio device /dev/dsp1
  Attempting to determine audio device...using audio device /dev/dsp1
Zeile 253: Zeile 253:
Nun wird mit [[gorecord]] eine weitere Testaufzeichnung gemacht. Diesmal werden 10 Sekunden Filmmaterial nach der PAL-Norm mit einer Auflösung von 720x576 Bildpunkten im MPEG-2-Format in die Ausgabedatei "testvideo.avi" geschrieben.
Nun wird mit [[gorecord]] eine weitere Testaufzeichnung gemacht. Diesmal werden 10 Sekunden Filmmaterial nach der PAL-Norm mit einer Auflösung von 720x576 Bildpunkten im MPEG-2-Format in die Ausgabedatei "testvideo.avi" geschrieben.


  $ <b>gorecord -input 1 -duration 10 -mode pal-bg -width 720 -height 576 -format mpeg2-dvd testvideo.avi</b>
  $ <b>gorecord -input 0 -duration 10 -mode pal-bg -width 720 -height 576 -format mpeg2-dvd testvideo.avi</b>
  /dev/video0 is a GO7007 device at USB address 5-3:1.0
  /dev/video0 is a GO7007 device at USB address 5-3:1.0
  Attempting to determine audio device...using audio device /dev/dsp1
  Attempting to determine audio device...using audio device /dev/dsp1

Version vom 18. August 2009, 19:22 Uhr

Der Videokonverter Plextor Convertx PX-M402U (auch: Plextor ConvertX PX-M402U) enthält den Videoencoderchip WIS Go7007 MPEG-4, der ursprünglich von der Firma Wischip International (später Micronas USA) hergestellt wurde. Dabei wurde ein Kernelmodul für den Linux-Kernel 2.6.x zur Verfügung gestellt, das komprimierte Videodaten über die Programmierschnittstelle Video4linux 2 und unkomprimierte Audiodaten über die Programmierschnittstelle ALSA lieferte.

Leider wurde der Treiber schon länger nicht mehr aktualisiert, weswegen er auf den meisten modernen Linux-Distributionen nicht funktioniert. Einige nette Programmierer haben deswegen passende Patches geschrieben, sodass die wis-go7007-linux-0.9.8-Quelldateien auch unter Fedora Core 5 und 6, Fedora 7, und 9 sowie unter Ubuntu 6.04, 6.10, 7.04, 7.10 und 8.04 funktionieren.

Das Gerät eignet sich, um den Inhalt analoger VHS-Videokassetten noch vor der Weitergabe an den Rechner zu digitalisieren.

Technische Daten

Merkmal Beschreibung
Hersteller Plextor
Modell Convertx PX-M402U
Videoeingang Composite, S-Video
Audioeingang Composite
PC-Schnittstelle USB 2.0
Fernsehstandards NTSC, PAL, SECAM
Videoausgabe AVI, Divx, MPEG-1, MPEG-2, MPEG-4, WMV
Lieferumfang Konvertergerät, Netzteil, Kabel (USB, Video, Audio), Software für Microsoft Windows
Preis 80 Euro (2006)

Installation

Ubuntu 8.04 Hardy Heron (Linux 2.6.24-24)

Herunterladen: http://nikosapi.org/wiki/index.php/WIS_Go7007_Linux_driver

Installation der benötigten Entwicklungspakete. Das Paket "fxload" wird zur Übertragung der im Gerät arbeitende Firmware benötigt.

$ sudo apt-get install linux-headers-generic fxload libncurses5-dev
$ sudo apt-get install linux-headers-lum-2.6.24-24-generic

Entfernen der inkorrekten Sound-Kernelheader.

$ sudo mv /usr/src/linux-headers-2.6.24-24-generic/include/sound \
    /usr/src/linux-headers-2.6.24-24-generic/include/sound-BACKUP20090812

Herunterladen der Datei "wis-go7007-linux-0.9.8-2.tar.bz2", welche bereits einige notwendige Patches enthält.

$ mkdir Plextor && cd Plextor
$ wget http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2
$ tar xjf wis-go7007-linux-0.9.8-2.tar.bz2
$ cd wis-go7007-linux-0.9.8-2

In den wis-go7007-Quelldateien muss folgende Zeile am Anfang der Datei "Makefile" eingefügt werden, damit der richtige LUM ALSA-Header berücksichtigt wird.

$ vi kernel/Makefile
EXTRA_CFLAGS += -I /usr/src/linux-headers-lum-2.6.24-24-generic -include sound/config.h

Zumindest unter Ubuntu 8.04 Hardy Heron mit Linux-Kernel 2.6.24 kann gorecord aus 0.9.8.2 die vom snd_go7007-Modul mitgeteilte ALSA-Audioeingabe nicht finden (und gibt dann folgende Fehlermeldung aus: "Unable to find associated ALSA device node"). Zur Behebung dieses Problems wird in der Datei "gorecord.c" die Zeile 213 wie folgt geändert:

if (!strcmp(gopath, canonpath))

zu

if (!strncmp(gopath, canonpath, strlen(gopath)))
$ vi ~/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/apps/gorecord.c

Kompilieren und Installieren.

$ make

***** Using kernel source in /usr/src/linux-headers-2.6.24-24-generic *****

make modules -C /usr/src/linux-headers-2.6.24-24-generic M=/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.24-24-generic'
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-driver.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-fw.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-usb.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.o
In Datei, eingefügt von /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c:39:
/usr/src/linux-headers-lum-2.6.24-24-generic/sound/driver.h:1:2: Warnung: #warning "This file is deprecated"
In Datei, eingefügt von /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c:39:
/usr/src/linux-headers-lum-2.6.24-24-generic/sound/driver.h:1:2: Warnung: #warning "This file is deprecated"
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7115.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw9903.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-uda1342.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7113.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-ov7640.o
  CC [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw2804.o
  Building modules, stage 2.
  MODPOST 10 modules
WARNING: "snd_pcm_period_elapsed" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_card_disconnect" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_device_new" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_pcm_set_ops" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_card_free_when_closed" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_pcm_lib_ioctl" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_card_new" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_card_free" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_card_register" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
WARNING: "snd_pcm_new" [/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko] undefined!
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-usb.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007-usb.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/go7007.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/snd-go7007.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-ov7640.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-ov7640.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7113.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7113.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7115.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-saa7115.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw2804.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw2804.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw9903.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-tw9903.ko
  CC      /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-uda1342.mod.o
  LD [M]  /home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/kernel/wis-uda1342.ko
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.24-24-generic'
sed -e s/@FIRMWARE_DIR@/\\/lib\\/firmware/ \
                        -e s/@FXLOAD@/\\/sbin\\/fxload/ \
                <hotplug/wis-ezusb.in >hotplug/wis-ezusb
sed -e s/@FIRMWARE_DIR@/\\/lib\\/firmware/ \
                        -e s/@FXLOAD@/\\/sbin\\/fxload/ \
                <udev/go7007_firmware_load.in >udev/go7007_firmware_load
sed -e s/@DESTDIR@// <udev/91-wis-ezusb.rules.in >udev/91-wis-ezusb.rules
make -C apps CFLAGS="-I/usr/src/linux-headers-2.6.24-24-generic/include -I../include"
make[1]: Betrete Verzeichnis '/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/apps'
gcc -Wall -I/usr/src/linux-headers-2.6.24-24-generic/include -I../include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -o gorecord gorecord.c tv-freq.c
gcc -Wall -I/usr/src/linux-headers-2.6.24-24-generic/include -I../include -o modet modet.c -lncurses
make[1]: Verlasse Verzeichnis '/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/apps'
$ sudo checkinstall
...
 Done. The new package has been installed and saved to

/home/mik/backup/hardware/Plextor/wis-go7007-linux-0.9.8-2/wis-go7007-linux-0.9.8_2-1_i386.deb

You can remove it from your system anytime using: 

     dpkg -r wis-go7007-linux-0.9.8

Damit fxload die Firmware ins Gerät laden kann, muss usbfs (oder usbdevfs) nach "/proc/bus/usb" eingehängt werden. Dazu muss die Datei "/etc/init.d/mountdevsubfs.sh" angepasst werden. Dafür gibt es einen einfachen Patch, der im neuesten Treiberpaket enthalten ist.

$ cd /etc/init.d
$ sudo cp mountdevsubfs.sh mountdevsubfs.sh-BACKUP20090812
$ cd wis-go7007-linux-0.9.8-2
$ wd=`pwd`; sudo patch -d /etc/init.d -p0 -i "$wd"/patches/mountdevsubfs.sh-usbfs.patch
patching file mountdevsubfs.sh
$ sudo /etc/init.d/mountdevsubfs.sh start

Im Verzeichnis "/proc/bus/usb" sollten jetzt Inhalte zu sehen sein.

Test

Das Quellgerät (in meinem Fall ein Videorekorder Daewoo ST242) besitzt einen SCART-Anschluss. Auf diesen wird ein SCART-Adapter gesteckt, woran die roten, weissen (Audio) und gelben (Video) Cinch-Stecker stecken. Deren andere Enden werden ans Plextor Convertx-Gerät gesteckt.

Vom Plextor Convertx-Gerät her wird schliesslich das USB-Kabel an einen freien USB-2.0-Port am Aufnahmerechner eingesteckt.

Auf dem Aufnahmerechner werden nun zur Überprüfung folgende Aktionen durchgeführt.

$ lsmod | grep 7007
go7007_usb             15748  0 
go7007                 55040  2 wis_saa7115,go7007_usb
videodev               29440  1 go7007
v4l2_common            18304  2 go7007,videodev
snd_go7007              7716  1 go7007
snd_pcm                78596  5 snd_go7007,snd_emu10k1,snd_ac97_codec,snd_pcm_oss
snd                    56996  24 snd_go7007,snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,
                                 snd_pcm,snd_hwdep,snd_seq_dummy,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
i2c_core               24832  4 wis_saa7115,go7007_usb,go7007,nvidia
usbcore               146412  4 go7007_usb,ehci_hcd,uhci_hcd

In der Ausgabe von lsusb sollte der Eintrag "Plextor" erscheinen.

$ lsusb
Bus 005 Device 003: ID 093b:a102 Plextor Corp.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Mit Hilfe von dmesg ist zu sehen, ob die Treiber korrket geladen wurden.

$ dmesg
...
[  194.430748] usb 5-3: new high speed USB device using ehci_hcd and address 2
[  194.563106] usb 5-3: configuration #1 chosen from 1 choice
[  194.877531] usb 5-3: USB disconnect, address 2
[  196.625026] usb 5-3: new high speed USB device using ehci_hcd and address 3
[  196.757806] usb 5-3: configuration #1 chosen from 1 choice
[  196.980243] Linux video capture interface: v2.00
[  197.047195] go7007-usb: probing new GO7007 USB board
[  197.332068] go7007: registering new Plextor PX-M402U
[  197.341036] wis-saa7115: initializing SAA7115 at address 32 on WIS GO7007SB
[  199.651762] usbcore: registered new interface driver go7007
[  200.107954] go7007: unsupported ioctl -2143521279

Der folgende Befehl prüft, ob das Video4Linux-System die Konverterbox erkannt hat. Sollte das System das Convertx-Modul nicht erkennen, so wird stattdessen das Netzteil aus der Steckdose gezogen und direkt wieder eingesteckt. Hilft auch das nicht, so wird das System einmal vollständig neu gestartet - in diesem Fall wird der Konverter eingesteckt und eingeschaltet gelassen.

$ grep go7007 /sys/class/video4linux/video*/name
go7007

Der Shell-Befehl gorecord dient der Aufzeichnung von Audio- und Videodaten. Aufgerufen mit dem Schalter "-verbose" sollte er folgende Ausgabe zeigen:

$ gorecord -verbose
/dev/video0 is a GO7007 device at USB address 5-3:1.0
Attempting to determine audio device...using audio device /dev/dsp1

Driver:   go7007
Card:     Plextor PX-M402U
Version:  0.9.8

Formats supported: Motion-JPEG, MPEG1/MPEG2/MPEG4

Input ports available:
   input  0: Composite (NTSC, PAL/SECAM)
   input  1: S-Video (NTSC, PAL/SECAM)

Sensor controls available:
   Brightness           Range: (    0,  255)    Default: 128
   Contrast             Range: (    0,  127)    Default: 64
   Saturation           Range: (    0,  127)    Default: 64
   Hue                  Range: ( -128,  127)    Default: 0

Nun wird mit gorecord eine erste Testaufzeichnung gemacht. Dabei werden 10 Sekunden Filmmaterial nach der NTSC-Norm im Format MPEG-4 (Divx) in die Ausgabedatei "testvideo.avi" geschrieben.

  • "-input 0" für den Composite-Eingang.
  • "-input 1" für den Svideo-Eingang.
$ gorecord -input 0 -duration 10 testvideo.avi
/dev/video0 is a GO7007 device at USB address 5-3:1.0
Attempting to determine audio device...using audio device /dev/dsp1
Using input port S-Video
Warning: no video standard specified; using NTSC
Capturing video at 640x480, 29.97 FPS
 00:00:20.00  Frames:   501  AVI size:   6MB  A-V: 2200.86ms  Video:  1298kbps

    Video data written to file: 3183981 bytes of MPEG4
    Audio data written to file: 3644988 bytes of uncompressed PCM
    AVI file format overhead  : 25339 bytes
    Total file size           : 6854308 bytes
    Total A/V correction      : -213444 bytes

Nun wird mit gorecord eine weitere Testaufzeichnung gemacht. Diesmal werden 10 Sekunden Filmmaterial nach der PAL-Norm mit einer Auflösung von 720x576 Bildpunkten im MPEG-2-Format in die Ausgabedatei "testvideo.avi" geschrieben.

$ gorecord -input 0 -duration 10 -mode pal-bg -width 720 -height 576 -format mpeg2-dvd testvideo.avi
/dev/video0 is a GO7007 device at USB address 5-3:1.0
Attempting to determine audio device...using audio device /dev/dsp1
Using input port S-Video
Capturing video at 720x576, 25.00 FPS
 00:00:20.00  Frames:   501  AVI size:   7MB  A-V:  -29.83ms  Video:  1650kbps

    Video data written to file: 3773144 bytes of MPEG2
    Audio data written to file: 3857312 bytes of uncompressed PCM
    AVI file format overhead  : 25330 bytes
    Total file size           : 7655786 bytes
    Total A/V correction      : -9312 bytes

Test der Wiedergabe.

$ mplayer testvideo.avi

Weblinks

Alte Weblinks

Vorlage:Weblinks1

Herausgeber Sprache Webseitentitel Anmerkungen