Cintiq 12WX, OpenSuse 11.0, and much pain and suffering

Let that be a lesson to me: Always blog solutions to problems. The cost of doing so is not just time wasted solving things again, but also the frustration of knowing I’d solved the problem before and if I had just taken a few extra minutes to share what I knew… GRR.

When I upgraded to OpenSuse 11 on the desktop at home, I forgot to back up my X11 configuration files: the Nvidia-Twinview-Cintiq12WX configuration I’d laboriously pieced together from fragments on the Internet and lots of troubleshooting.

ARGH.

Anyway, here it is, so I don’t lose it again: my xorg.conf:

Section "ServerLayout"
    Identifier     "Layout[all]"
    Screen         0 "Screen0" 0 0
    InputDevice    "Keyboard[0]" "CoreKeyboard"
    InputDevice    "Mouse[1]" "CorePointer"
    InputDevice    "stylus"   "SendCoreEvents"
    InputDevice    "eraser"  "SendCoreEvents"
    InputDevice    "pad"
    Option         "Clone" "off"
    Option         "Xinerama" "off"
EndSection

Section "Files"
    InputDevices   "/dev/gpmdata"
    InputDevices   "/dev/input/mice"
    InputDevices   "/dev/input/wacom"
    FontPath       "/usr/share/fonts/misc:unscaled"
    FontPath       "/usr/share/fonts/local"
    FontPath       "/usr/share/fonts/75dpi:unscaled"
    FontPath       "/usr/share/fonts/100dpi:unscaled"
    FontPath       "/usr/share/fonts/Type1"
    FontPath       "/usr/share/fonts/URW"
    FontPath       "/usr/share/fonts/Speedo"
    FontPath       "/usr/share/fonts/PEX"
    FontPath       "/usr/share/fonts/cyrillic"
    FontPath       "/usr/share/fonts/latin2/misc:unscaled"
    FontPath       "/usr/share/fonts/latin2/75dpi:unscaled"
    FontPath       "/usr/share/fonts/latin2/100dpi:unscaled"
    FontPath       "/usr/share/fonts/latin2/Type1"
    FontPath       "/usr/share/fonts/latin7/75dpi:unscaled"
    FontPath       "/usr/share/fonts/baekmuk:unscaled"
    FontPath       "/usr/share/fonts/japanese:unscaled"
    FontPath       "/usr/share/fonts/kwintv"
    FontPath       "/usr/share/fonts/truetype"
    FontPath       "/usr/share/fonts/uni:unscaled"
    FontPath       "/usr/share/fonts/CID"
    FontPath       "/usr/share/fonts/ucs/misc:unscaled"
    FontPath       "/usr/share/fonts/ucs/75dpi:unscaled"
    FontPath       "/usr/share/fonts/ucs/100dpi:unscaled"
    FontPath       "/usr/share/fonts/hellas/misc:unscaled"
    FontPath       "/usr/share/fonts/hellas/75dpi:unscaled"
    FontPath       "/usr/share/fonts/hellas/100dpi:unscaled"
    FontPath       "/usr/share/fonts/hellas/Type1"
    FontPath       "/usr/share/fonts/misc/sgi:unscaled"
    FontPath       "/usr/share/fonts/xtest"
    FontPath       "/opt/kde3/share/fonts"
EndSection

Section "Module"
    Load           "glx"
    Load           "type1"
    Load           "extmod"
    Load           "dbe"
    Load           "freetype"
    Load           "vbe"
    Load           "ddc"
    Load           "i2c"
    Load           "bitmap"
EndSection

Section "ServerFlags"
    Option         "AllowMouseOpenFail" "on"
    Option         "Xinerama" "0"
    Option "AutoAddDevices"  "False"
EndSection

Section "InputDevice"
    Identifier     "Keyboard[0]"
    Driver         "kbd"
    Option         "Protocol" "Standard"
    Option         "XkbLayout" "us"
    Option         "XkbModel" "microsoftpro"
    Option         "XkbOptions" "ctrl:nocaps"
    Option         "XkbRules" "xfree86"
EndSection

Section "InputDevice"
    Identifier     "Mouse[1]"
    Driver         "mouse"
    Option         "Buttons" "9"
    Option         "Device" "/dev/input/mice"
    Option         "Name" "Razer Diamondback Optical Mouse"
    Option         "Protocol" "explorerps/2"
    Option         "Vendor" "Sysp"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Driver         "wacom"
    Identifier     "cursor"
    Option         "Mode" "Absolute"
    Option         "Device" "/dev/input/wacom"
    Option         "Type" "cursor"
    Option         "USB" "on"                  # USB ONLY
    Option         "ScreenNo" "0"
    Option         "TwinView" "horizontal"
    Option         "TVResolution"  "1280x800,1600x1200"
EndSection
Section "InputDevice"
    Driver         "wacom"
    Identifier     "stylus"
    Option         "Mode" "Absolute"
    Option         "Device" "/dev/input/wacom"
    Option         "Type" "stylus"
    Option         "USB" "on"                  # USB ONLY
    Option         "ScreenNo" "0"
    Option         "TwinView" "horizontal"
    Option         "TVResolution"  "1280x800,1600x1200"
EndSection
Section "InputDevice"
    Driver         "wacom"
    Identifier     "eraser"
    Option         "Device" "/dev/input/wacom"
    Option         "Type" "eraser"
    Option         "USB" "on"                  # USB ONLY
    Option         "ScreenNo" "0"
    Option         "TwinView" "horizontal"
    Option         "TVResolution"  "1280x800,1600x1200"
EndSection
Section "InputDevice"
    Driver         "wacom"
    Identifier     "pad"
    Option         "Device" "/dev/input/wacom"
    Option         "Type" "pad"
    Option         "USB" "on"                  # USB ONLY
    Option         "ScreenNo" "0"
    Option         "TwinView" "horizontal"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "DELL"
    ModelName      "D1626HT"
    DisplaySize     388    291
    HorizSync       30.0 - 96.0
    VertRefresh     50.0 - 160.0
    Option         "dpms"
EndSection

Section "Device"
    Identifier     "VideoCard"
    Driver         "nvidia"
    VendorName     "NVidia"
    BoardName      "GeForce 6800 GT"
    Option "TwinView" "true"
    Option "MetaModes" "1600x1200,1280x800"
    Option "SecondMonitorHorizSync"   "31-107"
    Option "SecondMonitorVertRefresh" "50-75"
    Option "TwinViewOrientation" "LeftOf"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "VideoCard"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
    Option "SecondMonitorHorizSync"   "31-107"
    Option "SecondMonitorVertRefresh" "50-75"
    Option "TwinViewOrientation" "LeftOf"
    Option "MetaModes" "1600x1200,1280x800"
    Option "TwinView" "on"
EndSection

Getting back to the xorg.conf above was a bit of a pain. First I needed to get the nvidia drivers working again, which was a matter of adding the repository and downloading the RPMs. Then I needed to get the dual-monitor setup. I was running into all sorts of problems with it, and I must’ve tried configuring TwinView from scratch at least five times. Then I noticed I had an xorg.conf.twinview in my home directory, so I copied that and used it as a basis. Progress! The screen on the Cintiq started working as a proper screen again.

I had been having problems with the wacomcpl in OpenSuse 11 (Error: unknown device “stylus” or it is currently a core device), so I recompiled the drivers from the Linux Wacom Project. While trying to recompile the driver, I discovered that the kernel-source installed on my system… didn’t have the source files. Pfft.

After much poking around, I threw up my hands and downloaded the kernel source code that matched my system, copied the appropriate config file from /boot as the kernel source code directory’s .config, and started “make oldconfig; make”.

After make had set up the directory tree, I switched back to the linuxwacom drivers and ran “./configure –with-kernel= –enable-wacom –enable-hid –enable-evdev –enable-usbmouse –enable-modver –enable-xsetwacom > log”. Fortunately, make and make install proceeded without incident. (After all the false starts I’ve had today, I was glad at least something worked.)

Then it was a matter of more TwinView poking around to get the tablet confined to just one screen instead of being mapped to two. With a lot of fiddling, I finally got it to work.

Now it’s Sunday evening and I’m grumpy from an entire afternoon spent dealing with hardware issues, so I’m in no mood to write our annual updates. I’ll probably feel much better after the Chicken Maryland we’ve planned for dinner, though. =) And after some cat cuddling. Cats are nice and warm.

All that griping aside, I’d still rather use Linux than Microsoft Windows for stuff like this. =)

  • http://sachachua.com Sacha Chua

    This xorg.conf works out even better. It puts my screen on the right and lets me use the tablet for both screens.

    Section "ServerLayout"
        Identifier     "Layout[all]"
        Screen         0 "Screen0" 0 0
        InputDevice    "Keyboard[0]" "CoreKeyboard"
        InputDevice    "Mouse[1]" "CorePointer"
        InputDevice    "stylus"   "SendCoreEvents"
        InputDevice    "eraser"  "SendCoreEvents"
        InputDevice    "pad"
        Option         "Clone" "off"
        Option         "Xinerama" "off"
    EndSection
    
    Section "Files"
        InputDevices   "/dev/gpmdata"
        InputDevices   "/dev/input/mice"
        InputDevices   "/dev/input/wacom"
        FontPath       "/usr/share/fonts/misc:unscaled"
        FontPath       "/usr/share/fonts/local"
        FontPath       "/usr/share/fonts/75dpi:unscaled"
        FontPath       "/usr/share/fonts/100dpi:unscaled"
        FontPath       "/usr/share/fonts/Type1"
        FontPath       "/usr/share/fonts/URW"
        FontPath       "/usr/share/fonts/Speedo"
        FontPath       "/usr/share/fonts/PEX"
        FontPath       "/usr/share/fonts/cyrillic"
        FontPath       "/usr/share/fonts/latin2/misc:unscaled"
        FontPath       "/usr/share/fonts/latin2/75dpi:unscaled"
        FontPath       "/usr/share/fonts/latin2/100dpi:unscaled"
        FontPath       "/usr/share/fonts/latin2/Type1"
        FontPath       "/usr/share/fonts/latin7/75dpi:unscaled"
        FontPath       "/usr/share/fonts/baekmuk:unscaled"
        FontPath       "/usr/share/fonts/japanese:unscaled"
        FontPath       "/usr/share/fonts/kwintv"
        FontPath       "/usr/share/fonts/truetype"
        FontPath       "/usr/share/fonts/uni:unscaled"
        FontPath       "/usr/share/fonts/CID"
        FontPath       "/usr/share/fonts/ucs/misc:unscaled"
        FontPath       "/usr/share/fonts/ucs/75dpi:unscaled"
        FontPath       "/usr/share/fonts/ucs/100dpi:unscaled"
        FontPath       "/usr/share/fonts/hellas/misc:unscaled"
        FontPath       "/usr/share/fonts/hellas/75dpi:unscaled"
        FontPath       "/usr/share/fonts/hellas/100dpi:unscaled"
        FontPath       "/usr/share/fonts/hellas/Type1"
        FontPath       "/usr/share/fonts/misc/sgi:unscaled"
        FontPath       "/usr/share/fonts/xtest"
        FontPath       "/opt/kde3/share/fonts"
    EndSection
    
    Section "Module"
        Load           "glx"
        Load           "type1"
        Load           "extmod"
        Load           "dbe"
        Load           "freetype"
        Load           "vbe"
        Load           "ddc"
        Load           "i2c"
        Load           "bitmap"
    EndSection
    
    Section "ServerFlags"
        Option         "AllowMouseOpenFail" "on"
        Option         "Xinerama" "0"
        Option "AutoAddDevices"  "False"
    EndSection
    
    Section "InputDevice"
        Identifier     "Keyboard[0]"
        Driver         "kbd"
        Option         "Protocol" "Standard"
        Option         "XkbLayout" "us"
        Option         "XkbModel" "microsoftpro"
        Option         "XkbOptions" "ctrl:nocaps"
        Option         "XkbRules" "xfree86"
    EndSection
    
    Section "InputDevice"
        Identifier     "Mouse[1]"
        Driver         "mouse"
        Option         "Buttons" "9"
        Option         "Device" "/dev/input/mice"
        Option         "Name" "Razer Diamondback Optical Mouse"
        Option         "Protocol" "explorerps/2"
        Option         "Vendor" "Sysp"
        Option         "ZAxisMapping" "4 5"
    EndSection
    Section "InputDevice"
        Driver         "wacom"
        Identifier     "stylus"
        Option         "Mode" "Absolute"
        Option         "Device" "/dev/input/wacom"
        Option         "Type" "stylus"
        Option         "USB" "on"                  # USB ONLY
        Option         "ScreenNo" "2"
        Option         "TwinView" "horizontal"
        Option         "TVResolution"  "1600x1200,1280x800"
    EndSection
    Section "InputDevice"
        Driver         "wacom"
        Identifier     "eraser"
        Option         "Device" "/dev/input/wacom"
        Option         "Type" "eraser"
        Option         "USB" "on"                  # USB ONLY
        Option         "ScreenNo" "2"
        Option         "TwinView" "horizontal"
        Option         "TVResolution"  "1600x1200,1280x800"
    EndSection
    Section "InputDevice"
        Driver         "wacom"
        Identifier     "pad"
        Option         "Device" "/dev/input/wacom"
        Option         "Type" "pad"
        Option         "USB" "on"                  # USB ONLY
        Option         "ScreenNo" "1"
        Option         "TwinView" "horizontal"
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor1"
        VendorName     "DELL"
        ModelName      "D1626HT"
        HorizSync       30.0 - 96.0
        VertRefresh     50.0 - 160.0
        #Option         "dpms"
    EndSection
    
    Section "Device"
        Identifier     "VideoCard"
        Driver         "nvidia"
        VendorName     "NVidia"
        BoardName      "GeForce 6800 GT"
        Option "TwinView" "true"
        Option "MetaModes" "1600x1200,1280x800"
        #Option "MetaModes" "1280x800,1600x1200"
        Option "SecondMonitorHorizSync"   "31-107"
        Option "SecondMonitorVertRefresh" "50-75"
        Option "TwinViewOrientation" "RightOf"
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "VideoCard"
        Monitor        "Monitor1"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
  • http://mpwilson.com/ Mike Wilson

    The magic phrase in your head that should tip off the little red flag saying ‘blog this’ is “that was obvious. This will never happen to me again.”

    Reminds me of why I keep my whole ~/emacs/ and .emacs in a zip file someplace strange on my server (mpwilson.com) (no, it’s not findable ;) ’cause I KNOW what’ll happen eventually.

  • http://-- Walter

    Hi Sacha!

    Have you read that Opensuse 11.1 will be available tomorrow ?

    Regards,
    Walter

    • http://sachachua.com Sacha Chua

      It figures. Just as I’ve sorted things out… <laugh>

  • Victor

    Sacha – I’m curious what software you use with the Cintiq12WX in Linux and how many of its inherent features does it support (levels of pressure sensitivity, rotation, inclination, etc)?

    • http://sachachua.com Sacha Chua

      Someday I will be enough of an artist to make the most of pressure sensitivity, inclination, and other goodies. =)

      In the meantime, I’m just _thrilled_ to do vector drawing in Inkscape and the occasional bit of photo retouching in the Gimp. Rumor has it that you can get pressure sensitivity worked out, and wacdump prints out all the inclination data, so I suspect more serious artists can make their Cintiqs really dance.

  • Stan Fraser

    The section
    Section “InputDevice”
    Identifier “Keyboard[0]”
    Driver “kbd”
    Option “Protocol” “Standard”
    Option “XkbLayout” “us” changed to “gb”
    Option “XkbModel” “microsoftpro”
    Option “XkbOptions” “ctrl:nocaps”
    Option “XkbRules” “xfree86″
    EndSection

    was a great help as changing the keyboard was messing up SAX. changing the displays to the wrong res

    Have printed my working xorg.conf file out and filed it away because I’m sure to need it again

    Thanks