Hey All, I'm rather tied up today to
@Favux, I'll give that all a shot when I can. I am perfectly comfortable recovering a bad X'd system I've posted my udev file and xorg.conf below.
@Bogdanbiv, you are right it is spread. This is very much a work-in-progress with nothing real concrete. Heck, it's probably good to summarize anyway here goes... (I can see why diffs are used in patching now!)
The .../linuxwacom-0.8.4-3/src/2.6.28/wacom_wac.c needs two lines added (bolded lines - you can ignore "// ..." comments - I left it in context of code with line numbers):
andCode:887 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, 888 889 // for the CTL-460, X reports: maxX=29464 maxY=18288 maxZ=511 resX=2540 resY=2540 890 // NOTE: if evdev get the wacom (no xorg input defs) the following values have to be doubled?! 891 // in order for the pen to behave right - screen aspect 892 // With X drive, the pen is absolute and fine with the following values 14732 & 9144 893 { "Wacom Bamboo Pen 4x5", 9, 14732, 9144, 511, 63, GRAPHIRE }, // ...CTL-460 Bamboo Pen 894 { } 895 };
It's a good idea to do a 'lsusb' at system level to see your tablets id - mine is 0xd4:Code:958 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, 959 960 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xD4) }, // ...for CTL-460 Bamboo Pen Only 961 { }
Substitute d4 (or D4, not case sensitive as it's a hex number) for your tablet id (i.e. d1). It is sometimes written as 0xd4 to signify hexidecimal.Code:# lsusb ... Bus 002 Device 011: ID 056a:00d4 Wacom Co., Ltd ...
The .../linuxwacom-0.8.4-3/src/xdrv/wcmUSB.c needs one line added (2 if you want the comments):
EDIT: (missed the obvious here)Code:511 { 0x9A, 2540, 2540, &usbTabletPC }, /* TabletPC 0x9A */ 512 513 // for the CTL-460, X reports: maxX=29464 maxY=18288 maxZ=511 resX=2540 resY=2540 514 { 0xD4, 2540, 2540, &usbBamboo } /* Bamboo Pen CTL-460 4x6 */ 515 }; 516 517 Bool usbWcmInit(LocalDevicePtr local, char* id, float *version)
You then need to be root or use sudo for commands and compile and install stuff. From the linuxwacom-0.8.4-3 directory and as root - "(..)" are comments - don't type them!
$ sudo bash
password for ...: *****
# cd linuxwacom-0.8.4-3 (or where you unarch'd the wacomlinux files)
# ./configure --enable-wacom
# make (this shouldn't stop out with errors)
# make install (this shouldn't stop out with errors either)
# cd src/2.6.28 (change 2.6.28 for your kernel version - use 'uname -r' to find it)
(next line is distro dependent - use 'locate wacom.ko' to find where yours goes)
# cp wacom.ko /lib/modules/2.6.28-15-generic/kernel/drivers/input/tablet
# rmmod wacom
# insmod /lib/modules/2.6.28-15-generic/kernel/drivers/input/tablet/wacom.ko
# depmod -e (to insure proper module load sequence)
(you may have to add "wacom" as a line anywhere in /etc/modules - not sure - I do have it there but it may not be needed)
You also need to add or change an /lib/udev/rules.d/40-xserver-xorg-input-wacom.rules (or equiv, may depend on your distro - I'm Ubuntu Jaunty) - see other posts for that. Currently mine looks like this:
EDIT: had wrong directory for rules.d - corrected now.
Also, I do not yet understand the relationship of fdi files to xorg.conf so keep reading other posts
EDIT: Once changed you'll need to restart the 'hal' system as root:Code:root@kganb:.../linuxwacom-0.8.4-3/src/2.6.28# cat /lib/udev/rules.d/40-xserver-xorg-input-wacom.rules # udev rules for wacom tablets. # These rules were compiled for the Debian GNU/Linux distribution, # but others may, and indeed are encouraged to, use them also. # # Should you do so, PLEASE CO-ORDINATE ANY CHANGES OR ADDITIONS # of new devices with Ron <ron@debian.org> so that we can try # to present users with a standard set of device nodes which # they can rely on across the board. KERNEL!="event[0-9]*", GOTO="wacom_end" # Port specific link for users of multiple tablets of the same type. # The ID_PATH variable is set by the "path_id" script in an earlier rule file. ATTRS{idVendor}=="056a", ENV{ID_PATH}=="?*", SYMLINK="input/by-path/$env{ID_PATH}-wacom" # Multiple interface support for stylus and touch devices. DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", ENV{WACOM_TYPE}="stylus" DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", ENV{WACOM_TYPE}="touch" # Type-named links for multiple tablets. If you want to use multiple # tablets of the _same_ type, you will probably need to use the links # from /dev/input/by-path to identify which is plugged into what usb # port. For different tablet types though, just pick your links from # the list below. # # We override SYMLINK for tabletpc devices because the by-path link # is not required with such devices, there will only ever be one. ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0000", SYMLINK+="input/tablet-penpartner" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0003", SYMLINK+="input/tablet-cintiq_partner" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", SYMLINK+="input/tablet-graphire" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", SYMLINK+="input/tablet-graphire2-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", SYMLINK+="input/tablet-graphire2-5x7" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", SYMLINK+="input/tablet-graphire3" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", SYMLINK+="input/tablet-graphire3-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", SYMLINK+="input/tablet-graphire4-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", SYMLINK+="input/tablet-graphire4-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", SYMLINK+="input/tablet-bamboofun-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", SYMLINK+="input/tablet-bamboofun-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", SYMLINK+="input/tablet-bamboo1-medium" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0020", SYMLINK+="input/tablet-intuos-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0021", SYMLINK+="input/tablet-intuos-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0022", SYMLINK+="input/tablet-intuos-9x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0023", SYMLINK+="input/tablet-intuos-12x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0024", SYMLINK+="input/tablet-intuos-12x18" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0030", SYMLINK+="input/tablet-pl400" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0031", SYMLINK+="input/tablet-pl500" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0032", SYMLINK+="input/tablet-pl600" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0033", SYMLINK+="input/tablet-pl600sx" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0034", SYMLINK+="input/tablet-pl550" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0035", SYMLINK+="input/tablet-pl800" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0037", SYMLINK+="input/tablet-pl700" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0038", SYMLINK+="input/tablet-pl510" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0039", SYMLINK+="input/tablet-dtu710" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="003f", SYMLINK+="input/tablet-cintiq21ux" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0041", SYMLINK+="input/tablet-intuos2-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0042", SYMLINK+="input/tablet-intuos2-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0043", SYMLINK+="input/tablet-intuos2-9x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0044", SYMLINK+="input/tablet-intuos2-12x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0045", SYMLINK+="input/tablet-intuos2-12x18" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0047", SYMLINK+="input/tablet-intuos2-6x8a" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0060", SYMLINK+="input/tablet-volito" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0061", SYMLINK+="input/tablet-penstation2" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0062", SYMLINK+="input/tablet-volito2-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0063", SYMLINK+="input/tablet-volito2-2x3" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0064", SYMLINK+="input/tablet-penpartner2" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0065", SYMLINK+="input/tablet-bamboo" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0069", SYMLINK+="input/tablet-bamboo1" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0081", SYMLINK+="input/tablet-graphire_bt-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0090", SYMLINK="input/tablet-tpc90" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0093", SYMLINK="input/tablet-tpc93-$env{WACOM_TYPE}" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="009a", SYMLINK="input/tablet-tpc9a-$env{WACOM_TYPE}" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b0", SYMLINK+="input/tablet-intuos3-4x5" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b1", SYMLINK+="input/tablet-intuos3-6x8" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b2", SYMLINK+="input/tablet-intuos3-9x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b3", SYMLINK+="input/tablet-intuos3-12x12" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b4", SYMLINK+="input/tablet-intuos3-12x19" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b5", SYMLINK+="input/tablet-intuos3-6x11" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b7", SYMLINK+="input/tablet-intuos3-4x6" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b8", SYMLINK+="input/tablet-intuos4-4x6" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b9", SYMLINK+="input/tablet-intuos4-6x9" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ba", SYMLINK+="input/tablet-intuos4-8x13" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bb", SYMLINK+="input/tablet-intuos4-12x19" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c0", SYMLINK+="input/tablet-dtf521" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c4", SYMLINK+="input/tablet-dtf720" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c5", SYMLINK+="input/tablet-cintiq20wsx" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c6", SYMLINK+="input/tablet-cintiq12wx" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c7", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/tablet-dtu1931" ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", SYMLINK+="input/tablet-bamboo-pen" # Convenience links for the common case of a single tablet. We could do just this: #ATTRS{idVendor}=="056a", SYMLINK+="input/wacom-$env{WACOM_TYPE}" # but for legacy reasons, we keep the input/wacom link as the generic stylus device. ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom" ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/wacom-touch" # Check and repossess the device if a module other than the wacom one # is already bound to it. ATTRS{idVendor}=="056a", ACTION=="add", RUN+="check_driver wacom $devpath $env{ID_BUS}" LABEL="wacom_end"
# /etc/init.d/hal restart (will do it)
Lastly, and if you don't want just a fancy mouse pad, you may want to change your xorg.conf (backup first and set the 'ServerLayout' section 'Option "DontZap" "False"' (see below) so you can use Ctrl+Alt+Bkspc to kill X if it hangs! "startx" works to restart after you've edited your xorg.conf file.
My /etc/X11/xorg.conf is this (ignore the TouchKit lines):
Again, I'll repeat - without the xorg.conf changes Xournal works better (clicks, pen-down etc) but there will never be things like pressure or tilt etc - some of the good power that tablet+X can give you.Code:# xorg.conf (X.Org X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the xorg.conf manual page. # (Type "man xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # Note that some configuration settings that could be done previously # in this file, now are automatically configured by the server and settings # here are ignored. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # # sudo dpkg-reconfigure -phigh xserver-xorg # Section "Device" Identifier "Videocard0" Driver "intel" VendorName "Intel Corporation" BoardName "Mobile 945GME Express Integrated Graphics Controller" EndSection Section "Monitor" Identifier "Monitor0" Modeline "1024x600" 50.40 1024 1048 1184 1344 600 603 604 625 -hsync -vsync EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" "1024x600" "800x600" "640x480" EndSubSection EndSection ### TouchKit start Section "InputDevice" Identifier "EETI" Driver "egalax" Option "Device" "usbauto" Option "Parameters" "/var/lib/eeti.param" Option "ScreenNo" "0" Option "SkipClick" "1" EndSection ### TouchKit end ### Wacom start Section "InputDevice" Identifier "stylus" Driver "wacom" Option "Device" "/dev/input/wacom" Option "Type" "stylus" Option "USB" "on" Option "Threshold" "0" EndSection Section "InputDevice" Identifier "cursor" Driver "wacom" Option "Device" "/dev/input/wacom" Option "Type" "cursor" Option "USB" "on" Option "Threshold" "0" EndSection Section "InputDevice" Identifier "eraser" Driver "wacom" Option "Device" "/dev/input/wacom" Option "Type" "eraser" Option "USB" "on" EndSection Section "InputDevice" Identifier "pad" Driver "wacom" Option "Device" "/dev/input/wacom" Option "Type" "pad" Option "USB" "on" EndSection ### Wacom end Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 Option "DontZap" "false" ### TouchKit start InputDevice "EETI" "SendCoreEvents" ### TouchKit end ### Wacom start InputDevice "stylus" "SendCoreEvents" InputDevice "cursor" "SendCoreEvents" InputDevice "eraser" "SendCoreEvents" InputDevice "pad" ### Wacom end EndSection
These are the things we are sorting out yet. Although I think TheguywholikesLINUX is still not even getting good response from the tablet - not sure.
I think that's about it.
Of course, you can wait until we have all hammered out and shiny
Anyway, gotta run, but had to check on things...
Last edited by kgingeri; October 18th, 2009 at 07:16 PM. Reason: missed some ot the obvious! and various updates
Hi kgingeri,
Ah hah! Mystery of duplicate devices in your 'xinput --list's in post #94 solved. If you had the above xorg.conf then. I thought you were using the xorg.conf in post #64!
If you did have the xorg.conf with the Wacom sections active then:
is probably from the xorg.conf and:Code:"stylus" id=2 [XExtensionKeyboard]
is from the .fdi. I thought something was messed up with the .fdi.Code:"Wacom Bamboo Pen 4x5" id=13 [XExtensionKeyboard]
So when you have use of the stylus that's probably it being configured through xorg.conf and when you lose stylus activity it's reverting to the .fdi, when the Wacom driver drops it, which isn't working. Or actually it may be vice versa because the stylus works after a hotplug event. Hmmm.
Anyway you should use one or the other, not both.
Looking at the Wacom site your model does not have a pad or mouse. So you can remove the pad and cursor sections from xorg.conf and also the pad and cursor lines in "ServerLayout" TheguywholikesLINUX I notice that the CTH-460 does have a pad though.
In Jaunty the wacom.rules should be in "/lib/udev/rules.d/". Although I'm not sure what it is in Ubuntu Remix and besides you can add custom rules to “/etc/udev/rules.d/”.
Last edited by Favux; October 17th, 2009 at 10:11 PM.
For anyone that's interested in trying it I made a stab at a generic Wacom Bamboo Pen & Touch CTH-460 xorg.conf.
For it to work you'll need to install the symlink I mentioned in posts #42 & 44.
You would also want to add to the stylus section:
like Ayuthia asked for. Modify the video sections with yours.Code:Option "DebugLevel" "12" #give us lots of info for Xorg.0.log
If it doesn't take a books worth, can you fill me in better as to how the fdi vs xorg.conf stuff works?So when you have use of the stylus that's probably it being configured through xorg.conf and when you lose stylus activity it's reverting to the .fdi, when the Wacom driver drops it, which isn't working. Or actually it may be vice versa because the stylus works after a hotplug event. Hmmm.
Anyway you should use one or the other, not both.
Correct, mine is a very simple tablet - not even an eraser it seems (a disappointment) - it could be assigned to a button tho. There is a two-way button on the stylus.Looking at the Wacom site your model does not have a pad or mouse. So you can remove the pad and cursor sections from xorg.conf and also the pad and cursor lines in "ServerLayout" TheguywholikesLINUX I notice that the CTH-460 does have a pad though
I have eliminated the pad and cursor sections and all is still as good. Thx
Thanks for this! I should have done a 'locate' cmd - duh! I gotta remember that howto's are always distro sensitive. I created one cuz I didn't find it. I corrected my post in #102. So those instructions are probably wrong as I have both fdi and xorg stuff? Hense the question aboveIn Jaunty the wacom.rules should be in "/lib/udev/rules.d/". Although I'm not sure what it is in Ubuntu Remix and besides you can add custom rules to “/etc/udev/rules.d/”.
EDIT: oh boy, there is even a README in the /etc/udev directory - I will also lookup the man page on udev
Hey here is something very weird (to me anyway). When I unplug my tablet and reboot, my display is out of sync in X - unreadable! It's as if the Modeline is wrong!? Maybe this is due to the fdi stuff? I will remove both and try that too.
Off to try your other suggestions and the xorg.conf you posted...
Last edited by kgingeri; October 18th, 2009 at 07:33 PM.
Hi kgingeri,
I don't know enough to fill a book. Basically HAL (hardware abstraction layer) is a daemon that's suppose to present seamless hardware information to applications. So they don't have to worry about device type or bus, etc. But David Zeuthan over a year ago announced development was stopping on HAL and it was going to become DeviceKit (in Karmic). And then he announced it was going to be subsumed into udev-extras. Fun huh?
Basically from my lowly perspective HAL/.fdi is about usb hotplugging. HAL copies the udev .rules to itself and then is configured by the .fdi's (well the devices are). There's a chain of them like .rules. Whatever executes last is suppose to control. Xorg.conf executes last so whatever it says should go, theoretically. Practically we haven't found that always true. So I guess you could supplement or modify things in the .fdi's with xorg.conf. It's suppose to work that way and does sometimes.
This post, one of the first I found, by a long time Unix/Linux IT guy trying to hook up his iPod is funny and colored my thinking of HAL: http://www.mythic-beasts.com/~mark/random/hal/
HAL 0.5.1 spec.: http://www.marcuscom.com/hal-spec/hal-spec.html
wiki: http://wiki.archlinux.org/index.php/HAL
xinput and .fdi wiki: https://wiki.ubuntu.com/X/Config/Input
No eraser? That's pretty cheap of Wacom. Although on some of their styli I think a button is suppose to be the eraser. So look for that.
I don't know what's going on with the display. Why would unplugging the tablet do that?
Last edited by Favux; October 18th, 2009 at 08:17 PM.
Thanks for the resources!! I do see what looks like xorg.conf config directives in the fdi file so that explains it then.
Yeah - weird!!! I'll have to test if for sure, but on booting my machine today and not having the tablet plugged in I got bad display. I just had a hunch and plugged in the tablet on reboot and all seems ok. Anyway, more testing needed.I don't know what's going on with the display. Why would unplugging the tablet do that?
The pen does have a single button that acts as a rocker - upper and lower. Lower usually acts like a secondary or right click. I have seen no action at all from the upper, so maybe that's my eraser?
I'm going to try your xorg.conf but with the fdi line in /lib/udev/rules.d/40-xserver-xorg-input-wacom.rules file. Two questions tho...
- Should I be removing/disabling the /usr/share/...wacom.fdi file still? Maybe I'll try various stuff.
- Also the community link works now. I had visited that at one point - do you think I need that also still?
I had to read and catch up on all the posts (sorry Ayuthia, I think I missed some of your requests - I'll try to pay better attention ).
I think I'm caught up now so on to more testing and playing...
Well, they are more like Xinput directives.
I'd try it disabled first. In Intrepid with one of the earlier buggy linuxwacoms the driver would drop the devices occasionally. Since the .fdi was active it would pick up the stylus and I wouldn't realize there was a problem until I tried the eraser or touch (since the .fdi didn't support them).Should I be removing/disabling the /usr/share/...wacom.fdi file still?
Only if you want to test pressure in Gimp.Also the community link works now.
Yup, reboot with tablet unplugged means messed screen!? I'll have to figure that out and it wont be easy, as my consoles are also messed. I'll have to use historic logs. I started having that trouble when I started changing xorg.config. If I specify "Configured Monitor", in xorg.conf, does that mean its using fdi defs? I have specific Modeline stuff in it now (see my last post of it in #102)
As for Gimp & pressure - do I need the community-wacom mod only for evdev or will it be necessary for X as well. Am I making sense here - not sure I understand?
Hi kgingeri,
Did all the extra video stuff in your xorg.conf come from configuring through a Nvidia configuration app.? Maybe that's what's messing up?
Not sure. The Xserver starts after HAL so that could be, or what's defined in the xorg.conf. The "Configured Monitor" I guess refers to Xorg configuration of the video device, however that's done.
The Wacom wiki just shows you how to configure extended input devices for Gimp. Something that may not be obvious if you haven't used Gimp before with a tablet.
Bookmarks