Computers 'n Stuff

I here share the resolutions for my Linux problems so they might safe somebody some time.

Sunday, June 03, 2007 parmanent link to this post

My .xbindkeysrc.scm configruation file I use with the MX1000 lasermouse (for now)

This is my .xbindkeysrc I'm using with my mx1000 lasermouse. It's quite useful. with firefox. The thumbkeys can scroll in history and if you press the appbutton and use the scrollwheel at the same time you scroll through tabs.. If the mouse is setup properly it should be possible to do horizontal scrolling by the tilting th scroll wheel. However Firefox needs some adjustments for theis to function since he will scroll through history when the horizontal scroll buttons are pressed. The appbutton pushed and released alone will toggle the last active app.

The the Guru repository xbindkey suse rpm are compiled without guile support.To use xbindkeys it has to be compiled with guile support. The Guru repository does provide a xbindkeys-1.8.2-1-src.rpm that can be compiled with :
# rpmbuild --with guile --rebuild sourcepackage 

to provide guile support. where sourcepackgage has to be replaced by the name of the sourcpackage, in this matter by xbindkeys-1.8.2-1-src.rpm. You will need to install the guile-devel package in order to compile xbindkeys in this way however. The compild RPM will show up in /usr/src/packages/RPMS/`architecture` where architecture has to corrospond your hardware architechture, in my case x86_64-

;; This configuration is guile based.
;; http://www.gnu.org/software/guile/guile.html
;; This config script us supposed to live in the homedirectory.
;; This was a not so quick but probably yet dirty hack by Vee Lee.(I know nothing about coding but at least it works)
;; You'll need xmacroplay and xbindkeys with -guile support compiled for this to work..
;; This is heavily based on the domoscripts (http://hocwp.free.fr/xbindkeys/xbindkeysrc-combo.scm.html)
;; of the author of xbindkeys (hocwp at free dot fr) Many thanks and keep up the good work.
;; It assigns keybindings to the scroll wheel on the fly after the appwindow button is pressed on the mx1000 lasermous!

define (display-n str)
"Display a string then newline"
(display str)
(newline))

(define (first-binding)
"First binding"
(xbindkey-function '("b:10") second-binding)
(xbindkey-function '("m:0" "b:9") (lambda () (run-command "echo -e 'KeyStrPress Alt_L\nKeyStrPress Right\nKeyStrRelease Right\nKeyStrRelease Alt_L\n' | xmacroplay :0 &")))
(xbindkey-function '("m:0" "b:8") (lambda () (run-command "echo -e 'KeyStrPress Alt_L\nKeyStrPress Left\nKeyStrRelease Left\nKeyStrRelease Alt_L\n' | xmacroplay :0 &")))
)

(define (reset-first-binding)
"reset first binding"
(display-n "resetting first binding")
(ungrab-all-keys)
(remove-all-keys)
(first-binding)
(grab-all-keys))

;;This allows to scroll through tabs in firefox
(define (second-binding)
"Second binding"
(display-n "setting second binding")
(ungrab-all-keys)
(remove-all-keys)
(xbindkey-function '("b:4")
(lambda ()
(display-n "Scroll up")
(run-command "echo -e 'KeyStrPress Control_L\nKeyStrPress Tab\nKeyStrRelease Tab\nKeyStrRelease Control_L' | xmacroplay :0 &")
))

(xbindkey-function '("b:5")
(lambda ()
(display-n "Scroll down")
(run-command "echo -e 'KeyStrPress Control_L\nKeyStrPress Shift_L\nKeyStrPress Tab\nKeyStrRelease Tab\nKeyStrRelease Shift_L\nKeyStrRelease Control_L' | xmacroplay :0 &")
))

(xbindkey-function '(release "b:10") (lambda ()
(run-command "echo -e 'KeyStrPress Alt_L\nKeyStrPress Tab\nKeyStrRelease Tab\nKeyStrRelease Alt_L' | xmacroplay :0 &")
(reset-first-binding)))
(grab-all-keys))

(define (scroll-apps-binding)
"scroll-apps-binding"
(display-n "scroll apps binding success")
(ungrab-all-keys)
(remove-all-keys)
(xbindkey-function '("b:4")(run-command "echo -e 'KeyStrPress Tab\nKeyStrRelease Tab' | xmacroplay :0 &"))
(xbindkey-function '("b:5")(run-command "echo -e 'KeyStrPress Shift_L\nKeyStrPress Tab\nKeyStrRelease Tab\nKeyStrRelease Shift_L' | xmacroplay :0 &"))
(xbindkey-function '("b:1") reset-first-binding)
(grab-all-keys))
(debug)
(grab-all-keys)
(first-binding)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; End of xbindkeys configuration ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


I'm looking for a way to alt + tab through the application windows using the scroll wheel but I can't get this working. Suggestions are welcome

Related Posts:
Mouse setup in linux links

Labels: , , , ,

Do you want to read on <<click

Saturday, June 02, 2007 parmanent link to this post

setup of the MX1000: .xbindkeysrc with xmacroplay



Binding mouse events of the thumbbuttens to XVkdb by xbindkeys kind of sucks. I makes Firefox freeze. Hers my new .xbindkeyrc using xmacroplay.

Ok, this is my .xbindkeysrc

# Backward and Forward buttons
# "xvkbd -text "\A\[Left]"" # freezes firefox and makes mouse cursor jump
"echo -e 'KeyStrPress Alt_L\nKeyStrPress Left\nKeyStrRelease Left\nKeyStrRelease Alt_L' | xmacroplay :0 &" #better
m:0x10 + b:8"
#"xvkbd -text "\A\[Right]""
"echo -e 'KeyStrPress Alt_L\nKeyStrPress Right\nKeyStrRelease Right\nKeyStrRelease Alt_L' | xmacroplay :0 &"
m:0x10 + b:9

the idea was stolen from Stephan Reichelt Nice Work!
Get xmacro sources and make. copy xmacroplay to /usr/bin. I couldn't find a Suse rpm for this.

Related Posts
MX1000 Setup
MX1000 setup part 2

Labels: , , , ,

Do you want to read on <<click

How the Logitech MX1000 setup works in OpenSuse 10.2

Some more information about the setup of the MX1000 lasermouse in OpenSuse. Its a guide to use lomoco and keybindings with xbindkeys in conjunction with xvkdb.




In Suse 10.2 udev detects the mx1000 with this ruleset found in:
/etc/udev/rules.d/40-lomco.rules

# "C-BN34",  "Receiver for MX1000 Laser"
BUS=="usb", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c50e", RUN="/lib/udev/lomoco.sh"

Then it runs the script:

/lib/udev/lomoco.sh



This script takes options for smartscroll enable/disable and resolution from this cofnig file:

/etc/sysconfig/logitech_mouse


So this is probalby the place to modify the lomoco settings at boot time systems wide.
For keybinding you can use xbindkeys it is a package of OpenSuse and you don't need to compile and install lmwheels. Its not maintained any more from what I understand. But check yourself if in doubt. Create .xbindkeysrc in you homedir with

# 'xbindkeys --defaults > /home/yourhomedir/.xbindkeysrc'.


Now edit .xbindkeysrc and add the following lines:

# Application-toggle button
"xvkbd -text "\[Alt_L]\[Tab]""
m:0x10 + b:10
# Backward and Forward buttons
"xvkbd -text "\[Alt_L]\[Left]""
m:0x10 + b:8
"xvkbd -text "\[Alt_L]\[Right]""
m:0x10 + b:9

The .xbindkeyserc was stolen with modification from here So how it works is that xbindkeys traces the events you trigger by pressing keys. When it catches a defind event then it launches an application which is here above the respective event in the .xbindkeysrc. In our case of the mouse events it starts xvkbd which is a virtual keybord that sends keyboard events to the xserver you define behind the -text optons. you kould define any keystroke you like instead the events here. For lmwheels you could probably define different keystrokes depending on the application you use the mouse in if you need it The b:10 and b:8 and so on are the mouse events where the number is the event the mouse sends. Here I created a listo of events triggerd by the MX1000 buttons if you need to know which number you need to use. Now execute xbindkeys and test the key bindings.

When satisfied you can make an autostart entry in your KDE Atotstart folder to start xbindkeys each time you boot. To do so execute e.g.:

# ln -s `which xbindkeys` `kde-config --userpath autostart`
links to lots of mouse setup guides

Technorati Tags: , ,

Labels: , , , ,

Do you want to read on <<click

Friday, June 01, 2007 parmanent link to this post

Logitech MX1000 USB mouse configuration / setup for X11 in OpenSuse 10.2 linux

The MX1000 Lasermouse is supported pretty well by OpenSuse. It was just a little hard to find out what you need. Here I write how I did the setup of the MX1000







To support all mouse buttons of a modern USB mouse like the Logitech MX1000 lasermouse in X11 I use the evdev driver. This driver is compiled into X11 by Suse linux so you just need to activate that driver. To do this I first modified the /etc/X11/xorg.conf now it looks like:

Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "evBits" "+1-2"
Option "keyBits" "~272-287"
Option "relBits" "~0-2 ~6 ~8"
Option "Pass" "3"
EndSection

The options are stolen from the man page of evdev and are said to work for virtually any mouse. forget all about these mapping and ZAxixMapping Options, they are not supported by evdev, Check the manpage. In some forums you can read to use Options protocoll evdev. But this is obsolete and only used for older veresions of evdev. However, the identifier Mouse0 is crucial I guess, since with another identifier like mouse[0] the xserver refused to start. My explaination is that is has to match the entry in /dev/input/mouse0. This entry (node) done by udev. The configuratin is probalbly done at installation of Suse. Sombody wrote that Suse 10.2 does not support evdev any more. I think this is not true. You don't need to load it as a kernel module. evdev is compiled into the Xorg server.

I use lomoco, to control the feaures of the MX1000 lasermouse. lomoco is installed per default, it can be used to incerase the resolution from 400dpi (default) to 800 dpi:
# lomoco -8
and to turn on/off smart scrolling

# lomoco --sms
# lomoco --no-sms
in Suse linux /etc/sysconfig/logitech_mouse holds the configruation file of the lomoco config scrip that is executed on detection of a logitech mouse to configure smart scrolling and resolution of Logitech mice at startup.


What happens when you hit a mouse key depends on the xevent that is triggered and translated by the application into action. The xev command can be used to decipher the events triggerd by the mouse buttons. these xevents are generated by the mouse depending on sms or no-sms (use
# xev
in a console to test):

button event with smart scroll event without smart scroll
left 1 1
wheel pressed 2 2
right 3 3
wheel up 4 4
wheel down 5 5
wheel tilt right 6 14
wheel tilt right release 14 n/a
wheel tilt left 7 13
wheel tilt right release 13 n/a
thujb back 8 8
thumb front 9 9
app change 10 10
smart scroll up 4(as long as hold down) 11
smart scroll up release 11 n/a
smart scroll down 5(as long as hold down) 12
smart scroll down release 12 n/a

this is a list of x events triggerd by the mousbuttens in different modes of the logitech mouse.
Intersitng to note that although the MX1000 is a 12 button mouse (10 button + two for the wheel) the mouse can generate 14 events. So actually these Options Buttons 12 you can find in many forums are probably wrong anyway.

Xmodmap is used to remap the events of the mouse to other events. This technique comes in handy when an application has a hard wired reaction to a mouse event, but you want to trigger that event by another moue button. So what xomodmap does is to translate one event to another and sends that event to the application instead of the original. For example you could use xmodmap to map the thumbbuttons 8 and 9 on xevents 7 and 8 by
# xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16 17 18 19 20"
In this row the position of the digit is the value of original x event and the value is the new xevent that will be sent in case that event is trigged, in this matter
(digit at position 6 has the value 8) event 6 (tilt mouse wheel with smart scroll enableled) will be mapped to event 8 (thumb button) . Event 8 (thumb button) is now tranlated ot event 6 (tilt mouse wheel)
This above mapping is interesting since firefox can be configured to do horizontal scrolling or to scroll
forward and backward history on events 6 and 7 depending on the about:config settings when you don't need horizontal scrolling a lot. . This is the default setting (type about:config in the adress field of firefox to check, I used Firefox 2.0 here) which does history scrolling on events 6 and 7 , that are usually the events triggered by the horizontal mouse wheel in X11.
mousewheel.horizscroll.withnokey.action Standart Integer 2
mousewheel.horizscroll.withnokey.sysnumlines Standard boolean false
of course you can also do horziontal scrolling now with the thumb buttons if you like but you have to change Integer to 1 and boolean to true.

Other customizations of mouse xeve
nts that x applications do not recoginze by default can be done by imwheel or xbindkeys in combinatin with xvkdb or xbindkeys in combination with xmacroplay

imwheel : imwheel will directly translate mouse events to (virual) keystrokes (or xevents) that are sent to and recognized by the application. e.g. alt + left will scroll one item back in history of firefox and you can configure imwheel to sent this keystrokes to the application when the thumb buttons are pressed which are not recognized by default. The advantage of imwheels is that it can be configured to send different keystrokes when a different application is used and that it doesen't need helper applications.

xbindkeys: xbindkeys is usually used to execute applications when a key or a combination of keys is pressed.
This is usually referred to as keyboard shortcuts. The advantage over imwheels is that it is highly configurable. You can use chord keys with the mouse and you can change the keybindings on the fly. With the mouse it can be used to execute an application that itself sends (virtual) keystrokes (or xevents) to an application similar to imwheel. Applications that are capable of sending virual keystrokes would be xvkdb and xmacroplay. I prefer to use xmacroplay since it is lightwight, quicker and causes less overhead when mouseevents are triggered in rapid fashion.

Related Posts:

MX1000 Lasermouse

Usefule mouse setup links
:
linklinst of Lots of linux mouse setup guides:



Labels: , , , , , ,

Do you want to read on <<click

Tuesday, May 22, 2007 parmanent link to this post

Azureus I2p Network plugin configuration Howto for Linux


So Azureus comes with a lot of nice plugins for download. Let's see which of them I'll install .... wait, what is this I2P network plug in... allows use of the I2P network ... Hm, no idea what I2p network really is, sounds useful though ok let's install the plugin and see what happens.

These were my first thoughts when I stumbled upon the I2P network and the corresponding Azureus plugin. Had I only known how much work i took to get it up and running I probably wouldn't have installed it. Here I write what It takes to set up the Azureus I2P Network plugin.

Outline:
  1. Install the i2prouter
  2. configure the server tunnel
  3. configure Azureus to send the i2pnetwork destination hash of the server tunnel to the tracker instead of the local ip adress.
  4. configure Azureus to listen on the target port of the server tunnel of the 12prouter
  5. configure Azureus and the i2p network plugin to communicate with each other via an proxy network relay port

Introduction:

Ok, what is the I2P network

The I2p network is a anonymous Network inside the Internet. It is a distributed network technology to make it harder to the the server to find out your IP address. I like to think of it as a Network layer on top of the Internet protocols. The Internet is usually not as anonymous as you might think since if you connect to e.g. a server over the Internet a connection is established such that the server knows your IP address. This IP address and the data transmitted from and to this address can be logged. Since ISPs (Internet service provider) log which IP address has been assigned to which user its no problem to trace back the person who established this connection. To cut long things short, your IP address usually reveals you real identity

Things get a little different if you connect to the internet through a proxy. In this case only the proxy knows your IP adress but the servers in the internet only know the IP address of the proxy. Every computer behind such a proxy appears to the internet as only one IP address. And heres what the I2P Netwokr does: It turns your computer into a proxy and all your internet communication has to go through that proxy and the peers are identified by hash keys to each other and not by their real IP address and treaffic is dynamically tunneled through multiple proxys. Since the traffic is encrypted and no single proxy knows all IP addresses of the proxys participating in the tunnel and from the outside its not clear if your only routing the tunnel or are the end of the tunnel it becoms extremely hard to trace which hash key belongs to which IP address.

Ok, what does the Azureus I2P Network Plugin do?

Well, I like to think the I2P Network plugin serves as some kind of proxy to which Azureus connects.In this way the plugin can trace all Azureus traffic and if it detects that Azureus is trying to connect to the I2P Network it redirects the traffic to the port of the I2P router/proxy which knows to handle the torrent protocol in the I2P network. (usually 7654 on your localhost). In other words the I2P network plugin redirects the outgoing I2P traffic of azureus to your I2P router that is if Azureus is trying to connect to some peer outside.

The Incomming traffic is not handeled by the plug in. To allow for incomming traffic you have to configure a server tunnel in your I2P-router and forward this tunnel to some port on the machine where azureus lives and listens. For this to work you have to instruct azureus to overwrite the address sent to the tracker with the hash key for that server tunnel

So, what's next?

Configuration and installation of the i2prouter:

Download the I2P proxy and install it to /usr/local/i2p and fire it up

# java -jar i2pinstall.exe
# cd /usr/local/i2p
# ./postinstall.sh
# ./i2prouter start

now fire up your browser and connect to the i2pconsole at:

http://localhost:7657/index.jsp

If you can see the the I2p proxy console now your i2p router should be up and running. Make sure you do the general I2P router configuration and itis working properly (configuring NAT and the like where applicable) Inbound TCP connection need to be enabeled if you want remote source to connct to Azureus (NAT OK)

Now do the Azureus specific I2P router configuration:

  • Click on "I2P tunnel" Or you can click here
  • Select add new server tunnel standard and click create.
  • Enter a Name e.g. Azureus and a Description e.g. Azureus server tunnel.
  • Check Auto Start (yes) so that the Server tunnel gets opened automatically when you fire up your i2p router.
  • enter the target host which is the IP address or name of the machine where Azureus lives. If your I2P router and Azureus running on the same box its usually ok to enter localhost here.
  • As Target host Port enter the port number your Azureus is listening on incoming TCP connections e.g. 57431
  • Enter a name for the Private key file e.g. AzureusPriv.dat.

The rest can remain unchanged.

  • Now click save and the I2P router will generate a local destination hash.
  • Copy the local destination hash to the clipboard that will appear in the status message window. The hash will be the address or identifier which will be announced to the tracker and wich peers from the i2p network will use to connect to you.
    If you lost this hash you can also copy it from the Local Server Tunnel entry. You will find a new entry und local server tunnels with the name you have chosen above e.g. Azureus. Click on the Name and a Tunnel configuration window will pop open. Now you can copy the hash from the local destination field . Make sure you get the whole thing its very long.

Now your finished with the I2P router configuration

Configuration of Azureus
  • go to Azureus/Tools/Ḱonfiguration/Tracker/Client
  • Click on overwrite announce ip address options and paste the local destination hash in here which you copied from the server tunnel you just created.
  • Move the curser to the end of the hash and append
.i2p
This is important. If you don't do this correctly it will render Azureus unresponsive when you open a torrent.

  • Now go to Connection and enter port 57431 in the incoming TCP field. The port should be the same as your entered as the target port field when you configured the server tunnel in your I2P router.
  • Now go to proxy settings and
  • activate use proxy for comunication with Tracker
  • activate have SOCKS proxy
  • enter localhost as host address
  • enter an unused port which azureus should use to communicate with the I2P network plugin (which serves as proxy) e.g. 15223
  • leave user and pass blank
  • (check) activate Proxying for source communication
  • uncheck (deactivate) imform tracker ..
  • select SOCKS Version V4a (do not use V4, this will not work)
  • check (activate) use the same Proxy setting for Tracker and Source communication.
  • Now go to Plugins/I2P Network Plugin and
Configuration of the I2P Network plugin
  • Check "enable" to activate the plugin
  • enter the path to the directory where you have installed the i2p router to e.g. /usr/local/i2prouter
  • if you don't do this correctly then you get
  • I2P install location not defind, plugin initialisation failed
  • Enter the Port you which the I2p Network plugin to listen on In Network relay port. This port must mach the port you entered as the port for tracker communication.

The rest can remain unchanged.

Configure the UPnP functionality if you which so that the i2p network plugin opens the i2p router ports for you.

  • Now restart Azureus

When lucky then you get: "i2p router connection succeeded" messge
Attantion: This only means that your i2p plugin works. Make sure that Azreus does not accept connections from outsinde i2p and that azureus does not attemt to connect to networks outside the 12p. this might compromise you ananymity since in this case you're in danger transmit your ip and your hasch to the same server.

Now go to tracker.postman.i2p

Troubleshooting:
If Azureus freezes after you opened a terrent then you dident copy the destination hash of your server tunnel to Azureus correctly. Check that .i2p is appended to the end of the hash.
If your NAT status light remains yellow this most likely means that you haven't configured the incomming connections properly. Then you have to check if you configured the server tunnel correctly. Check furthermore if the target port of the Azureus server tunnel of the i2prouter and the TCP port Azureus listens on do match each other. More over the i2prouter needs to be configured to accept incoming TCP connections.
Links:
Azureus I2p Plugin

Labels: , , , ,

Do you want to read on <<click

Sunday, May 20, 2007 parmanent link to this post

PCTV analog USB2: "open /dev/vbi: Device or resource busy issue" solved

VBI means Vertical Blank interval of a TV signal in the US terminology. This is the interval between frames where no picture is displayed but information like teletext can be broadcasted. I guess the VBI device in linux is the interface to read out such data from the TV signal provided that you TV grabber can extract you the VBI data from the video signal. Here I write why many people report that the VBI device of the PCTV analog USB is always busy though no application is using it.

the 150e/55e has an em2820 on board which does not support teletext ( raw VBI capture, sliced VBI capture)!!!

Although the em28xx driver supports em2820 based tv grabbers quite well it initializes an vbi device although it probably shouldn't. This is likely to the reason for the erreor you get when starting scnatv:

#scantv

vbi: open failed [/dev/vbi]

open /dev/vbi: Device or resource busy

#dmesg

em28xx #0: this driver can be opened only once

This issue has been fixed in the new version of the em28xx driver. If you update the em28xx driver it wont initialize a vbi device any more. However, after update you are likely to get anoher error message after starting scantv:

open /dev/vbi: no such device or directory
obviously scantv refuses to work without a vbi device which is probably a bug?



But as a workaround you could now start kdetv or xaw tv and scan the channels. This will work and you can enter the addtitional imformation for the channels manually.











Technorati Tags: ,



Powered by ScribeFire.

Labels: , , ,

Do you want to read on <<click

Saturday, May 19, 2007 parmanent link to this post

Howto solve PCTV analog USB 2 (150e/55e) tuner issue: can't scan UHF

For me the em28xx detected tuner #37 which is probably wrong cause tuning UHF channels din't work. Here I explain how to solve this problem.

My tuner reads LG tape something so I use #47 for the tuner= insmod option instead. Now I can tune in UHF channels.

For Suse you have to edit /etc/modprobe.d/tv and enter the module options for the em28xx. Look for options and change tuner=37 to tuner=47. Now UHF works fine for me. Heres how my /etc/modprobe.d/tv looks like.

alias char-major-81 videodev
options em28xx card=8 disable_ir=0 tuner=47
alias char-major-81-0 off
alias char-major-81-1 em28xx
alias char-major-81-2 off
alias char-major-81-3 off
wiki discussing the em28xx UHF tuning issue for other cards

In addition I use card=8. Here is a list of valid choices for the card= insmod option:

em28xx #0:     card=0 -&gt; Generic EM2800 video grabber
em28xx #0: card=1 Generic EM2820 video grabber
em28xx #0: card=2 Generic EM2821 video grabber
em28xx #0: card=3 Generic EM2870 video grabber
em28xx #0: card=4 Generic EM2881 video grabber
em28xx #0: card=5 Generic EM2860 video grabber
em28xx #0: card=6 Generic EM2861 video grabber
em28xx #0: card=7 Terratec Cinergy 250 USB
em28xx #0: card=8 Pinnacle PCTV USB 2 (LG PAL TAPC)
em28xx #0: card=9 Hauppauge WinTV USB 2
em28xx #0: card=10 MSI VOX USB 2.0
em28xx #0: card=11 Terratec Cinergy 200 USB
em28xx #0: card=12 Leadtek Winfast USB II
em28xx #0: card=13 Kworld USB2800
em28xx #0: card=14 Pinnacle Dazzle DVC 90
em28xx #0: card=15 Hauppauge WinTV HVR 900
em28xx #0: card=16 Terratec Hybrid XS
em28xx #0: card=17 Terratec Hybrid XS Secam
em28xx #0: card=18 Kworld PVR TV 2800 RF
em28xx #0: card=19 Terratec Prodigy XS
em28xx #0: card=20 Videology 20K14XUSB USB2.0
em28xx #0: card=21 Usbgear VD204v9
em28xx #0: card=22 Terratec Cinergy T XS
em28xx #0: card=23 Pinnacle PCTV DVB-T
em28xx #0: card=24 DNT DA2 Hybrid
em28xx #0: card=25 Pinnacle Hybrid Pro
em28xx #0: card=26 Hercules Smart TV USB 2.0
em28xx #0: card=27 Compro, VideoMate U3
em28xx #0: card=28 KWorld DVB-T 310U
em28xx #0: card=29 SIIG AVTuner-PVR/Prolink PlayTV USB 2.0
em28xx #0: card=30 Terratec Cinergy T XS (MT2060)
em28xx #0: card=31 MSI DigiVox A/D
em28xx #0: card=32 D-Link DUB-T210 TV Tuner
em28xx #0: card=33 Gadmei UTV310
em28xx #0: card=34 Kworld 355 U DVB-T
em28xx #0: card=35 Supercomp USB 2.0 TV
em28xx #0: card=36 Hauppauge WinTV HVR Rev. 1.2
em28xx #0: card=37 Gadmei UTV330
em28xx #0: card=38 V-Gear PocketTV
em28xx #0: card=39 Kworld 350 U DVB-T
em28xx #0: card=40 Terratec Hybrid XS (em2882)
em28xx #0: card=41 Pinnacle Dazzle DVC 100
em28xx #0: card=42 Generic EM2750 video grabber
em28xx #0: card=43 Yakumo MovieMixer
em28xx #0: card=44 Huaqi DLCW-130
em28xx #0: card=45 Generic EM2883 video grabber
em28xx #0: card=46 Hauppauge WinTV HVR 950
em28xx #0: card=47 Pinnacle PCTV HD Pro
em28xx #0: card=48 Pinnacle Hybrid Pro (2)
em28xx #0: card=49 Hauppauge WinTV USB 2 (R2)
em28xx #0: card=50 NetGMBH Cam
em28xx #0: card=51 Leadtek Winfast USB II Deluxe
em28xx #0: card=52 MSI DigiVox A/D II
em28xx #0: card=53 Typhoon DVD Maker
em28xx #0: card=54 Pinnacle PCTV USB 2 (Philips FM1216ME)
Here is a list for valid options for the insmod tuner= option. I use tuner=47

tuner=0 - Temic PAL (4002 FH5)
tuner=1 - Philips PAL_I (FI1246 and compatibles)
tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles)
tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)
tuner=4 - NoTuner
tuner=5 - Philips PAL_BG (FI1216 and compatibles)
tuner=6 - Temic NTSC (4032 FY5)
tuner=7 - Temic PAL_I (4062 FY5)
tuner=8 - Temic NTSC (4036 FY5)
tuner=9 - Alps HSBH1
tuner=10 - Alps TSBE1
tuner=11 - Alps TSBB5
tuner=12 - Alps TSBE5
tuner=13 - Alps TSBC5
tuner=14 - Temic PAL_BG (4006FH5)
tuner=15 - Alps TSCH6
tuner=16 - Temic PAL_DK (4016 FY5)
tuner=17 - Philips NTSC_M (MK2)
tuner=18 - Temic PAL_I (4066 FY5)
tuner=19 - Temic PAL* auto (4006 FN5)
tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)
tuner=21 - Temic NTSC (4039 FR5)
tuner=22 - Temic PAL/SECAM multi (4046 FM5)
tuner=23 - Philips PAL_DK (FI1256 and compatibles)
tuner=24 - Philips PAL/SECAM multi (FQ1216ME)
tuner=25 - LG PAL_I+FM (TAPC-I001D)
tuner=26 - LG PAL_I (TAPC-I701D)
tuner=27 - LG NTSC+FM (TPI8NSR01F)
tuner=28 - LG PAL_BG+FM (TPI8PSB01D)
tuner=29 - LG PAL_BG (TPI8PSB11D)
tuner=30 - Temic PAL* auto + FM (4009 FN5)
tuner=31 - SHARP NTSC_JP (2U5JF5540)
tuner=32 - Samsung PAL TCPM9091PD27
tuner=33 - MT20xx universal
tuner=34 - Temic PAL_BG (4106 FH5)
tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5)
tuner=36 - Temic NTSC (4136 FY5)
tuner=37 - LG PAL (newer TAPC series)
tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3)
tuner=39 - LG NTSC (newer TAPC series)
tuner=40 - HITACHI V7-J180AT
tuner=41 - Philips PAL_MK (FI1216 MK)
tuner=42 - Philips 1236D ATSC/NTSC dual in
tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)
tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)
tuner=45 - Microtune 4049 FM5
tuner=46 - Panasonic VP27s/ENGE4324D
tuner=47 - LG NTSC (TAPE series)
tuner=48 - Tenna TNF 8831 BGFF)
tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in
tuner=50 - TCL 2002N
tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3)
tuner=52 - Thomson DTT 7610 (ATSC/NTSC)
tuner=53 - Philips FQ1286
tuner=54 - tda8290+75
tuner=55 - TCL 2002MB
tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
tuner=57 - Philips FQ1236A MK4
tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
tuner=59 - Ymec TVision TVF-5533MF
tuner=60 - Thomson DTT 761X (ATSC/NTSC)
tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
tuner=62 - Philips TEA5767HN FM Radio
tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
tuner=64 - LG TDVS-H06xF
tuner=65 - Ymec TVF66T5-B/DFF
tuner=66 - LG TALN series
tuner=67 - Philips TD1316 Hybrid Tuner
tuner=68 - Philips TUV1236D ATSC/NTSC dual in
tuner=69 - Tena TNF 5335 and similar models
tuner=70 - Samsung TCPN 2121P30A
tuner=71 - Xceive xc3028
tuner=72 - Thomson FE6600
tuner=73 - Samsung TCPG 6121P30A
tuner=75 - Philips TEA5761 FM Radio
the original list can be found here:

em28xx tuner insmod option list: I use no 47 for LG TAPE series
Related Posts can be found here


Labels: , , , ,

Do you want to read on <<click

Monday, May 07, 2007 parmanent link to this post

Howto install the Pinnacle PCTV analog USB (PCTV USB 2, 150e / 55e) OpenSuse 10.2 64Bit

PCTV analog USB (Pinnacle Systems GmbH 150e/55e PAL/SEC) Works! It is detected as Pinnacle PCTV USB2 and supported by the em28xx driver.
The TV decoder chip on this device is
  • em2820.
The label on the tuner reads:
  • LG TAPE-S701D 601F0514.
Other chips:
  • EMP202.
  • Phillips
  • SAA7113H,
  • TIPS6:120,
  • PIC16C54C
# dmesg
em28xx v4l2 driver version 0.0.1 loaded
em28xx new video device (2304:0208): interface 0, class 255
em28xx #0: Alternate settings: 8
em28xx #0: Alternate setting 0, max size= 0
em28xx #0: Alternate setting 1, max size= 1024
em28xx #0: Alternate setting 2, max size= 1448
em28xx #0: Alternate setting 3, max size= 2048
em28xx #0: Alternate setting 4, max size= 2304
em28xx #0: Alternate setting 5, max size= 2580
em28xx #0: Alternate setting 6, max size= 2892
em28xx #0: Alternate setting 7, max size= 3072
saa7115 8-0025: saa7113 found @ 0x4a (em28xx #0)
tuner 8-0043: chip found @ 0x86 (em28xx #0)
tda9887 8-0043: tda988[5/6/7] found @ 0x43 (tuner)
tuner 8-0063: chip found @ 0xc6 (em28xx #0)
tuner 8-0063: type set to 37 (LG PAL (newer TAPC series))
em28xx #0: i2c eeprom 00: 1a eb 67 95 04 23 08 02 10 00 1e 03 98 1e 6a 2e
em28xx #0: i2c eeprom 10: 00 00 06 57 6e 00 00 00 8e 00 00 00 07 00 00 00
em28xx #0: i2c eeprom 20: 16 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 10 01 00 00 00 00 00 00
em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 2e 03 50 00 69 00
em28xx #0: i2c eeprom 70: 6e 00 6e 00 61 00 63 00 6c 00 65 00 20 00 53 00
em28xx #0: i2c eeprom 80: 79 00 73 00 74 00 65 00 6d 00 73 00 20 00 47 00
em28xx #0: i2c eeprom 90: 6d 00 62 00 48 00 00 00 1e 03 50 00 43 00 54 00
em28xx #0: i2c eeprom a0: 56 00 20 00 55 00 53 00 42 00 32 00 20 00 50 00
em28xx #0: i2c eeprom b0: 41 00 4c 00 00 00 06 03 31 00 00 00 00 00 00 00
em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 0e 5d 62 39 03 ad 97 e4
EEPROM ID= 0x9567eb1a
Vendor/Product ID= 2304:0208
AC97 audio (5 sample rates)
500mA max power
Table at 0x06, strings=0x1e98, 0x2e6a, 0x0000
registered VBI
em28xx #0: V4L2 device registered as /dev/video0 and /dev/vbi0
em28xx #0: Found Pinnacle PCTV USB 2
usbcore: registered new driver em28xx

# lsusb
Bus 001 Device 005: ID 2304:0208 Pinnacle Systems, Inc. [hex] Pinnacle Studio PCTV USB2

Suse 10.2 Recognizes the divice and loads the em28xx driver automatically when device is plugged into USB 2.0 port.

Install: mplayer, video4linux2 (v4l2), sox

Successfull commands to start tv-playback:

# sox -t ossdsp -r 48000 -b -c 2 /dev/dsp1 -t ossdsp /dev/dsp

REM: this will pipe PCTV USB2 audio stream (dsp1) to installed Soundcard device (dsp2)

# v4lctl -c /dev/video0 volume mute off

REM: turns muting of video0 device (PCTV USB2 v4l2 device) off = sound on.

# mplayer -tv device=/dev/video0:amode=0:input=0:norm=PAL:driver=v4l2:outfmt=yuy2 tv://

REM: starts the mplayer with tv playback from video0 with PAL norm. This way i can get audio and video. channels can be swiched with H and K/L on the keyboard when the focus is on mplayer window.

Another possibility to watch TV where audio playback needs no sox, yet channelswitching is buggy:

# mplayer -tv driver=v4l2:device=/dev/video0:amode=1:input=0:norm=PAL:adevice=/dev/dsp1:immediatemode=0:audiorate=48000 tv://

command options will be explained in the man pages of mplayer under -tv option
scantv mythtv and kdetv tvtime don't work with the opensuse 10.2 version of the em28xx driver.




Labels: , , , , ,

Do you want to read on <<click