Instructions for making ivtv-fb work with XFree86: Add the following sections and parts thereof to /etc/X11/XF86Config: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< # NOTE: The monitor section is obtainable by running: # fbset -fb /dev/fb1 -x # (or /dev/fbX for whatever framebuffer ivtv-fb is on # as discussed in install.txt) # Section "Monitor" Identifier "NTSC Monitor" HorizSync 30-68 VertRefresh 50-120 Mode "720x480" # D: 34.563 MHz, H: 37.244 kHz, V: 73.897 Hz DotClock 34.564 HTimings 720 752 840 928 VTimings 480 484 488 504 Flags "-HSync" "-VSync" EndMode EndSection # Uncomment the following for PAL #Section "Monitor" # Identifier "PAL Monitor" # HorizSync 30-68 # VertRefresh 50-120 # Mode "720x576" # # D: 41.475 MHz, H: 44.693 kHz, V: 74.488 Hz # DotClock 41.476 # HTimings 720 752 840 928 # VTimings 576 580 584 600 # Flags "-HSync" "-VSync" # EndMode #EndSection Section "Device" Identifier "Hauppauge PVR 350 iTVC15 Framebuffer" Driver "fbdev" Option "fbdev" "/dev/fb1" # <-- modify if using another device BusID "0:10:0" # <-- obtain from lspci (see later) EndSection Section "Screen" Identifier "TV Screen" Device "Hauppauge PVR 350 iTVC15 Framebuffer" Monitor "NTSC Monitor" # <-- select for NTSC # Monitor "PAL Monitor" # <-- select for PAL DefaultDepth 24 DefaultFbbpp 32 Subsection "Display" Depth 24 FbBpp 32 Modes "720x480" # <-- select for NTSC # Modes "720x576" # <-- select for PAL EndSubsection EndSection Section "ServerLayout" ... Screen 0 "Screen 1" # << (your computer monitor) # (add the following line) Screen 1 "TV Screen" RightOf "Screen 1" # << (TV screen) ... EndSection <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Then start X as usual; both your normal (computer) monitor and the NTSC or PAL TV monitor should display the default X background. Note the "RightOf" clause above: if you move the mouse off the right side of the computer screen, the pointer should appear on your TV screen. Keyboard events will go to windows in either screen. To start a program (e.g., xterm) on the TV only: export DISPLAY=:0.1 (i.e., X server #0, screen #1 = TV) xterm& There is also a way to join both the computer monitor and TV into one giant virtual screen using the Xinerama extension, but I haven't tried it. Doing so may not be such a good idea anyway, as you obviously wouldn't want random X windows getting moved over the TV picture. A note on unloading the fb driver: If you want to be able to unload the framebuffer driver (and you aren't already using fbcon), add this to your lilo config: video=vc:x-y where x is the first fb device to allocate and y is the second. If you already have a fb driver loaded, fiddle with the numbers so all the consoles are already allocated. For me, i just set it to 0-0, ie: in lilo.conf: image=/vmlinuz label=linux read-only append="root=/dev/hda1 video=vc:0-0" --OR-- on bootup, do this LILO: linux video=vc:0-0 according to how i read /usr/src/linux/drivers/video/fbmem.c and /usr/src/linux/drivers/char/console.c, that should disable the console hijacks, and allow you to unload the driver. ivtvfbctl ========= The ivtvfbctl command allows aspects of the ivtv framebuffer to be controlled. The command is: ivtvfbctl /dev/fbX [-on|-off] [-globalalpha|-noglobalalpha] [-localalpha|-nolocalalpha] [-flicker|-noflicker] [-alpha<alpha>] [-on|-off] enables/disables the framebuffer This is [FIX] [-globalalpha|-noglobalalpha] [FIX no idea] [-localalpha|-nolocalalpha] [FIX no idea] [-flicker|-noflicker] If flicker is on then updates are done at any time and may flicker. If noflicker is set then updates are done at vertical refreshes. [FIX - blind guess, maybe double buffering?] [-alpha<alpha>] Sets the transparency level for the framebuffer. If this is set to 0 the framebuffer is completely transparent. If it's set to 255 it's completely opaque. [FIX check not inverted meaning] Note that even if it set to 0 it will still produce a slight 'haze' and should be turned off in this case.