Plextor Convertx PX-M402U
Plextor Convertx PX-M402U (auch: Plextor ConvertX PX-M402U)
Der WIS Go7007 MPEG-4 Encoderchip ist in vielen Videoencodergeräten enthalten, darunter Plextor Convertx PX-M402U. Dieser Chip wird von Linux vollständig unterstützt, sofern der passende Treiber vorhanden ist. Eine Liste der unterstützten Geräte kann unter http://oss.wischip.com/ gefunden werden (inzwischen zeigt der URL allerdings ins Nirwana).
Leider hat WIS den 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/6, Fedora 7/8/9 und Ubuntu Dapper/Edgy/Feisty/Gutsy/Hardy funktionieren. Auch das Programm gorecord kann mit einem audio/video Sync-Patch nun Videodateien grösser als 1 GB aufnehmen.
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.
$ 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
Für einen Aufnahmetest wird das Video Capture-Gerät an einen freien USB-2.0-Port eingesteckt.
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 ... [32301.495309] usb 5-3: new high speed USB device using ehci_hcd and address 7 [32301.628197] usb 5-3: configuration #1 chosen from 1 choice [32301.635286] go7007-usb: probing new GO7007 USB board [32301.960323] go7007: registering new Plextor PX-M402U [32301.978310] wis-saa7115: initializing SAA7115 at address 32 on WIS GO7007SB [32305.005311] go7007: unsupported ioctl -2143521279
[12231.024894] go7007-usb: probing new GO7007 USB board [12231.277032] go7007: registering new Plextor PX-M402U [12233.628649] usbcore: registered new interface driver go7007 [12233.781610] 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
Nun wird mit gorecord eine erste Testaufzeichnung gemacht. Damit werden 20 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 1 -duration 20 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 20 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 1 -duration 20 -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
- http://www.bcchardware.com/index.php?option=com_content&task=view&id=71&Itemid=40
- http://www.linux.com/archive/articles/46113
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|