Hi Zusammen!
Ich habe ein kleines Prob mit dem CN700er Chipsatz der auf einem Mainboard von Jetway steckt.
Folgendes habe ich ausprobiert:
1) RealPC/viafb Howto strikt befolgen:
Scheitert leider bereits an dem linux-viafb Modul. Ich musste erstmal die PCI-ID (3344) von dem Chipsatz in via_fbobj.c hinzufügen, damit das Ding überhaupt erkannt wird. Abgesehen davon dass die Timings total unpräzise sind und mein TFT nix anzeigen will (nur bei manueller Anpassung der fb.modes) zeigt der Fernseher nur ein GRAUES Bild. VDR Ausgabe klappt weder mit Framebuffer noch mit DirectFB (softdevice, xineliboutput)
2) Originaltreiber von VIA (wird auch im RealPC Thread erwähnt) mit dem Acceleration Patch (55 -> 77)
accel.h:
/* To be included in fb.h */
#ifndef FB_ACCEL_VIA_UNICHROME
#define FB_ACCEL_VIA_UNICHROME 77
#endif
In diesem Fall sieht das Ganze schon etwas besser aus. Ich sehe die Konsole sowohl auf dem TFT als auch auf dem Fernseher. Wenn ich jedoch VDR starte kommt nur das OSD, aber kein Bild :(((
Also habe ich folgendes ausprobiert:
2.1) Mit der "primary-layer" Einstellung (directfbrc) rumspielen:
primary-layer=0
selber Effekt, nur OSD.
primary-layer=1
Es kommt ein Bild, das jedoch nur die Hälfte des Bildschirmes einnimmt und total verzerrt ist. OSD wird nicht angezeigt.
2.2) Den Layer im DirectFB umpatchen (Quelle)
Damit kriege ich ein Bild, das sich aber im OSD befindet! Also wenn ich das Menü aufmache sehe ich das Fernsehbild als OSD Hintergrund!?!?! Mit primary-laxer konnte ich leider keine Änderung der Situation erzwingen.
So wie es ausschaut könnte das Ganze also mit dem Originaltreiber von VIA funzen, würde DirectFB nicht irgendwie die Layer vertauschen.
Hier noch ein Paar Ausgaben mit dem VIA Treiber:
fbset -i
mode "800x600-63"
# D: 40.000 MHz, H: 39.062 kHz, V: 62.600 Hz
geometry 800 600 800 600 32
timings 25000 96 32 16 4 96 4
rgba 8/16,8/8,8/0,0/0
endmode
Frame buffer device information:
Name : Via
Address : 0xf4000000
Size : 66830336
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 1
YWrapStep : 0
LineLength : 3200
MMIO Address: 0xfb000000
MMIO Size : 16777216
Accelerator : Unknown (77)
Alles anzeigen
(habe es auch mit 720x576-50 probiert, DirectFB schaltet ja eh auf die eigene Auflösung um)
directfbrc
fbdev=/dev/fb0
mode=720x576
depth=32
pixelformat=ARGB
#primary-layer=1
disable-module=cle266
no-vt
(hier habe ich auch verschiedene Auflösungen probiert, leider immer mit dem selben Ergebnis)
VDR-Ausgabe ohne primary-layer Einstellung (nur OSD wird angezeigt)
vdr -P"softdevice -ao alsa:pcm=default#ac3=plug:spdif# -vo dfb:viatv"
[softdevice] processing args
[softdevice] argv [0] = softdevice
[softdevice] argv [1] = -ao
[softdevice] using PCM alsa device default
[softdevice] using AC3 alsa device plug:spdif
[softdevice] argv [3] = -vo
vo_argv: dfb:viatv
[softdevice] enabling field parity
[softdevice] initializing Plugin
[softdevice] Initializing Video Out
[softdevice] ffmpeg build(3348736)
[dfb] init
=======================| DirectFB 1.0.0-rc2 |=======================
(c) 2001-2006 United Cultures of Earth - go for outer space!
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2007-01-18 11:13)
(*) Direct/Memcpy: Using MMXEXT optimized memcpy()
(*) Direct/Thread: Running 'LiRC Input' (INPUT, 6220)...
(*) DirectFB/Input: LIRC Device 0.2 (directfb.org)
(*) DirectFB/Genefx: MMX detected and enabled
(*) Direct/Modules: suppress module 'cle266'
(*) DirectFB/Graphics: VIA/S3G CN700/Unichrome Pro 0.4 (-)
(*) DirectFB/Core/WM: Default 0.2 (directfb.org)
[dfb] RAM: 66830336 bytes
[dfb] Accellerated Functions: FillRectange DrawRectange DrawLine FillTriangle Blit StretchBlit All
[dfb] Drawing Flags: Blend Xor
[dfb] Surface Blitting Flags: BlendAlpha BlendColorAlpha Colorize SrcColorkey DstColorkey Deinterlace
[dfb] Supported video Modes are: 640x480@32 640x480@32 640x480@32 640x480@32 640x480@32 720x480@32 800x480@32 720x576@32 800x600@32 800x600@32 800x600@32 800x600@32 800x600@32 848x480@32 856x480@32 1024x512@32 1024x768@32 1024x768@32 1024x768@32 1024x768@32 1152x864@32 1152x864@32 1280x768@32 1280x960@32 1280x1024@32 1280x1024@32 1280x1024@32 1440x1050@32 1600x1200@32 1600x1200@32 1280x720@32 1920x1080@32 1400x1050@32
[dfb] Enumerating display Layers
[dfb] Configuring CooperativeLevel for OSD
Layer 0 VIA CLE266 Graphics Type: graphics
Caps: alphachannel brightness contrast opacity saturation src_colorkey surface
Layer 1 VIA Unichrome Video Type: graphics picture video
Caps: deinterlacing dst_colorkey levels field_parity opacity screen_location surface
[dfb] (osdLayer): flags, options, pixelformat: 0000000f, 00000000 00418c04
[dfb] (osdLayer): width, height: 720 576
[dfb] osdLayer has alpha channel
[dfb] Set DLBM_TRIPLE for layer [VIA Unichrome Video]
[dfb] DLOP_FIELD_PARITY supported by layer [VIA Unichrome Video]
[surface capabilities] scrSurface: videoonly double-buffered flipping PixelFormat = 0x00418c04
[dfb] width = 720, height = 576
[dfb] got fmt = 0x00418c04 bpp = 32
[dfb] Using this layer for OSD: (VIA CLE266 Graphics - [720x576])
[surface capabilities] osdSurface: videoonly double-buffered flipping PixelFormat = 0x00418c04
[dfb] Configuring CooperativeLevel for Overlay
[surface capabilities] videoSurface: videoonly PixelFormat = 0x0810060a
[dfb] Using this layer for OSD: VIA CLE266 Graphics
[dfb] Using this layer for Video out: VIA Unichrome Video
[dfb] Display frame time is 16668 microseconds
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[surface capabilities] videoSurface: videoonly flipping triple-buffered PixelFormat = 0x08100609
[dfb] (re)configured 0x08100609
[softdevice] Subplugin successfully opend
[softdevice] Video Out seems to be OK
[softdevice] Initializing Audio Out
[softdevice] Audio out seems to be OK
[softdevice] A/V devices initialized, now initializing MPEG2 Decoder
[dfb] (re)configuring Videolayer to 736 x 576 (736x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[surface capabilities] videoSurface: videoonly flipping triple-buffered PixelFormat = 0x08100609
[dfb] (re)configured 0x08100609
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[surface capabilities] videoSurface: videoonly flipping triple-buffered PixelFormat = 0x08100609
[dfb] (re)configured 0x08100609
Alles anzeigen
VDR-Log mit primary-layer=1 in directfbrc und dem verstümmelten Bild ohne OSD
[softdevice] processing args
[softdevice] argv [0] = softdevice
[softdevice] argv [1] = -ao
[softdevice] using PCM alsa device default
[softdevice] using AC3 alsa device plug:spdif
[softdevice] argv [3] = -vo
vo_argv: dfb:viatv
[softdevice] enabling field parity
[softdevice] initializing Plugin
[softdevice] Initializing Video Out
[softdevice] ffmpeg build(3348736)
[dfb] init
=======================| DirectFB 1.0.0-rc2 |=======================
(c) 2001-2006 United Cultures of Earth - go for outer space!
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2007-01-18 11:13)
(*) Direct/Memcpy: Using MMXEXT optimized memcpy()
(*) Direct/Thread: Running 'LiRC Input' (INPUT, 6244)...
(*) DirectFB/Input: LIRC Device 0.2 (directfb.org)
(*) DirectFB/Genefx: MMX detected and enabled
(*) Direct/Modules: suppress module 'cle266'
(*) DirectFB/Graphics: VIA/S3G CN700/Unichrome Pro 0.4 (-)
(*) DirectFB/Core/WM: Default 0.2 (directfb.org)
[dfb] RAM: 66830336 bytes
[dfb] Accellerated Functions: FillRectange DrawRectange DrawLine FillTriangle Blit StretchBlit All
[dfb] Drawing Flags: Blend Xor
[dfb] Surface Blitting Flags: BlendAlpha BlendColorAlpha Colorize SrcColorkey DstColorkey Deinterlace
[dfb] Supported video Modes are: 640x480@32 640x480@32 640x480@32 640x480@32 640x480@32 720x480@32 800x480@32 720x576@32 800x600@32 800x600@32 800x600@32 800x600@32 800x600@32 848x480@32 856x480@32 1024x512@32 1024x768@32 1024x768@32 1024x768@32 1024x768@32 1152x864@32 1152x864@32 1280x768@32 1280x960@32 1280x1024@32 1280x1024@32 1280x1024@32 1440x1050@32 1600x1200@32 1600x1200@32 1280x720@32 1920x1080@32 1400x1050@32
[dfb] Enumerating display Layers
[dfb] Configuring CooperativeLevel for OSD
Layer 1 VIA CLE266 Graphics Type: graphics
Caps: alphachannel brightness contrast opacity saturation src_colorkey surface
[dfb] (osdLayer): flags, options, pixelformat: 0000001f, 00000000 00418c04
[dfb] (osdLayer): width, height: 720 576
[dfb] osdLayer without !! alpha channel
(!?!) *** BUG [unexpected pixel format] *** [uc_ovl_hwmap.c:592 in uc_ovl_map_colorkey()]
(!?!) *** BUG [unexpected pixel format] *** [uc_ovl_hwmap.c:592 in uc_ovl_map_colorkey()]
(!?!) *** BUG [unexpected pixel format] *** [uc_ovl_hwmap.c:592 in uc_ovl_map_colorkey()]
[dfb] Set DLBM_TRIPLE for layer [VIA CLE266 Graphics]
[dfb] DLOP_FIELD_PARITY not supported by layer [VIA CLE266 Graphics]
[surface capabilities] scrSurface: videoonly double-buffered flipping PixelFormat = 0x00418c04
[dfb] width = 720, height = 576
[dfb] got fmt = 0x00418c04 bpp = 32
[dfb] Using this layer for OSD: (VIA Unichrome Video - [720x576])
[surface capabilities] osdSurface: videoonly double-buffered flipping PixelFormat = 0x00418c04
[dfb] Configuring CooperativeLevel for Overlay
[dfb] BES-ON: action=IDirectFBDisplayLayer::SetConfiguration(DFBDisplayLayerConfig&), result=Not supported!
[surface capabilities] videoSurface: videoonly PixelFormat = 0x00200801
[dfb] Using this layer for OSD: VIA Unichrome Video
[dfb] Using this layer for Video out: VIA CLE266 Graphics
[dfb] Display frame time is 16565 microseconds
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[dfb]: SetParms (): failed to set buffermode to triple, will try back video
[dfb]: SetParams: failed to set buffermode to back video, reverting to normal
[dfb] SetParams: action=IDirectFBDisplayLayer::SetConfiguration(DFBDisplayLayerConfig&), result=Not supported!
Can't configure ScreenLocation. Hope it is Fullscreen
[surface capabilities] videoSurface: videoonly PixelFormat = 0x00200801
[dfb] (re)configured 0x08100609
[softdevice] Subplugin successfully opend
[softdevice] Video Out seems to be OK
[softdevice] Initializing Audio Out
[softdevice] Audio out seems to be OK
[softdevice] A/V devices initialized, now initializing MPEG2 Decoder
[dfb] (re)configuring Videolayer to 736 x 576 (736x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[dfb]: SetParms (): failed to set buffermode to triple, will try back video
[dfb]: SetParams: failed to set buffermode to back video, reverting to normal
[dfb] SetParams: action=IDirectFBDisplayLayer::SetConfiguration(DFBDisplayLayerConfig&), result=Not supported!
Can't configure ScreenLocation. Hope it is Fullscreen
[surface capabilities] videoSurface: videoonly PixelFormat = 0x00200801
[dfb] (re)configured 0x08100609
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[dfb]: SetParms (): failed to set buffermode to triple, will try back video
[dfb]: SetParams: failed to set buffermode to back video, reverting to normal
[dfb] SetParams: action=IDirectFBDisplayLayer::SetConfiguration(DFBDisplayLayerConfig&), result=Not supported!
Can't configure ScreenLocation. Hope it is Fullscreen
[surface capabilities] videoSurface: videoonly PixelFormat = 0x00200801
[dfb] (re)configured 0x08100609
Alles anzeigen
Leider sagt mir diese Fehlermeldung nichts
Versionen (alle Kombinationen probiert)
Kernel: 2.6.19.1
GCC: 4.1.1
VIAFB (directfb source): linux-viafb CVS 06.01.2007
VIAFB (Original von VIA): Linux-FBDev-kernel-src_2.6.00.02a mit Patch für >2.6.18 von hier
DirectFB: 1.0.0-rc2 und/oder CVS 06.01.2007
DFB++: CVS 06.01.2007
libcle266mpegdec: 0.5
Softdevice: CVS 06.01.2007
VDR: 1.4.4
Also, hat jemand schon mal den CN700 Chipsatz erfolgreicht ans Laufen gekriegt? Oder hat jemand vielleicht einen Tip was ich noch ausprobieren könnte?
Bin für jede Hilfe Dankbar!!!
Gruß,
Sevo
PS: Habe 2 Screenshots mit "cat /dev/fb0 > /test.raw" gemacht und danach konvertiert. Das Bild von dem "NUR-OSD" Fall hat geklappt, aber bei dem primary-layer=1 also dem ersten Bild muss man sich die Bilder übereinandergelegt vorstellen. Beider Shots bei einer Auflösung von 720x576-60.
PSS: Direct Framebuffer habe ich im BIOS aktiviert