特殊:Badtitle/NS100:TabletSetupWizardpenDapper:修订间差异
小 新页面: {{From|https://help.ubuntu.com/community/TabletSetupWizardpenDapper}} {{Languages|UbuntuHelp:TabletSetupWizardpenDapper}} https://help.ubuntu.com/community/IconsPage?action=AttachFile&d... |
小无编辑摘要 |
||
(未显示同一用户的5个中间版本) | |||
第1行: | 第1行: | ||
{{From|https://help.ubuntu.com/community/TabletSetupWizardpenDapper}} | {{From|https://help.ubuntu.com/community/TabletSetupWizardpenDapper}} | ||
{{Languages|UbuntuHelp:TabletSetupWizardpenDapper}} | {{Languages|UbuntuHelp:TabletSetupWizardpenDapper}} | ||
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=warning.png THIS GUIDE IS NO LONGER UPDATED - SEE: [[UbuntuHelp:TabletSetupWizardpen|TabletSetupWizardpen]] for support for the newest release | |||
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=warning.png THIS GUIDE IS NO LONGER UPDATED - SEE: TabletSetupWizardpen for support for the newest release | |||
== Known tablets working with the Wizardpen-driver == | == Known tablets working with the Wizardpen-driver == | ||
The setup has been tested with the following tablets. | The setup has been tested with the following tablets. | ||
=== Known vendors === | === Known vendors === | ||
* UC-LOGIC | * UC-LOGIC | ||
=== Known tablets === | === Known tablets === | ||
* Tablet WP4030U | * Tablet WP4030U | ||
* Tablet WP5540U | * Tablet WP5540U | ||
* Tablet WP8060U | * Tablet WP8060U | ||
If your tablet is not listed here, please ADD it! (If you don't have an account, then email me: [email protected]) | If your tablet is not listed here, please ADD it! (If you don't have an account, then email me: [email protected]) | ||
=== Known problems === | === Known problems === | ||
There are some problems, that I haven't been able to solve: | There are some problems, that I haven't been able to solve: | ||
'''* Hotplugging''' - The driver doesn't support hotplugging - but this howto includes a partial workaround | '''* Hotplugging''' - The driver doesn't support hotplugging - but this howto includes a partial workaround | ||
'''* Shortcuts''' - The driver doesn't support the shortcut-fields of the tablet! - I'm working on a solution to this one! | '''* Shortcuts''' - The driver doesn't support the shortcut-fields of the tablet! - I'm working on a solution to this one! | ||
== Setting up your tablet == | == Setting up your tablet == | ||
=== General information === | === General information === | ||
This guide is based on: '''*ubuntu 6.06 - Dapper Drake''' | This guide is based on: '''*ubuntu 6.06 - Dapper Drake''' | ||
For the newest release, please see [[UbuntuHelp:TabletSetupWizardpen|TabletSetupWizardpen]] | |||
For the newest release, please see TabletSetupWizardpen | |||
=== The first step... === | === The first step... === | ||
Open a terminal | Open a terminal | ||
Install some needed packages - Run this command: | Install some needed packages - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo apt-get install xutils libx11-dev libxext-dev x-dev build-essential xautomation xinput | sudo apt-get install xutils libx11-dev libxext-dev x-dev build-essential xautomation xinput | ||
</nowiki></pre> | </nowiki></pre> | ||
=== Downloading and installing the driver === | === Downloading and installing the driver === | ||
If your connection is a little slow, you can just proceed with these steps in another terminal. | If your connection is a little slow, you can just proceed with these steps in another terminal. | ||
Download the wizardpen driver, and extract it! - Run these commands: | Download the wizardpen driver, and extract it! - Run these commands: | ||
<pre><nowiki> | <pre><nowiki> | ||
wget http://www.stud.fit.vutbr.cz/~xhorak28/wizardpen-driver-0.5.0.tar.gz | wget http://www.stud.fit.vutbr.cz/~xhorak28/wizardpen-driver-0.5.0.tar.gz | ||
第63行: | 第37行: | ||
cd wizardpen-driver-0.5.0 | cd wizardpen-driver-0.5.0 | ||
</nowiki></pre> | </nowiki></pre> | ||
Some adjustment is needed - Run this command: | Some adjustment is needed - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sed -ie 's,\#include\ \"/usr/X11R6/lib/X11/config/Server.tmpl\",,' Imakefile | sed -ie 's,\#include\ \"/usr/X11R6/lib/X11/config/Server.tmpl\",,' Imakefile | ||
</nowiki></pre> | </nowiki></pre> | ||
Create a Makefile from the Imakefile, and run Make - Run this command: | Create a Makefile from the Imakefile, and run Make - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
xmkmf && make | xmkmf && make | ||
</nowiki></pre> | </nowiki></pre> | ||
Copy the driver into the input-driver-directory - Run this command: | Copy the driver into the input-driver-directory - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo cp wizardpen_drv.o /usr/lib/xorg/modules/input/ | sudo cp wizardpen_drv.o /usr/lib/xorg/modules/input/ | ||
</nowiki></pre> | </nowiki></pre> | ||
=== Setting up udev (If the tablet is USB) === | === Setting up udev (If the tablet is USB) === | ||
Connect your tablet, if it is not connected yet. | Connect your tablet, if it is not connected yet. | ||
Find out what the device is called: (product) | Find out what the device is called: (product) | ||
Run this command: | Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
cat /sys/bus/usb/devices/*/product | cat /sys/bus/usb/devices/*/product | ||
</nowiki></pre> | </nowiki></pre> | ||
The output will look something like this: (depending on your system) | The output will look something like this: (depending on your system) | ||
<pre><nowiki> | <pre><nowiki> | ||
Tablet WP8060U | Tablet WP8060U | ||
第103行: | 第64行: | ||
EHCI Host Controller | EHCI Host Controller | ||
</nowiki></pre> | </nowiki></pre> | ||
Note the product of the tablet (obviously '''Tablet WP8060U''' in my case!) | Note the product of the tablet (obviously '''Tablet WP8060U''' in my case!) | ||
Now, add a udev rule: (Note that the SYSFS{product} is tablet-specific! - See output from above command!) | Now, add a udev rule: (Note that the SYSFS{product} is tablet-specific! - See output from above command!) | ||
Run these commands: | Run these commands: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo bash | sudo bash | ||
第119行: | 第76行: | ||
exit | exit | ||
</nowiki></pre> | </nowiki></pre> | ||
Restart udev - Run this command: | Restart udev - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo /etc/init.d/udev restart | sudo /etc/init.d/udev restart | ||
</nowiki></pre> | </nowiki></pre> | ||
Check that the syslink has been created - Run this command: | Check that the syslink has been created - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
ls -la /dev/tablet-event | ls -la /dev/tablet-event | ||
</nowiki></pre> | </nowiki></pre> | ||
If it outputs a line, it means that it succeeded! | If it outputs a line, it means that it succeeded! | ||
=== Calibration === | === Calibration === | ||
Enter the "calibrate"-directory - Run this command: | Enter the "calibrate"-directory - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
cd calibrate | cd calibrate | ||
</nowiki></pre> | </nowiki></pre> | ||
Build the calibration tool - Run this command: | Build the calibration tool - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
make | make | ||
</nowiki></pre> | </nowiki></pre> | ||
Calibrate in order to find the edges of your tablet/digitizer - Run this command: | Calibrate in order to find the edges of your tablet/digitizer - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo ./wizardpen-calibrate /dev/tablet-event | sudo ./wizardpen-calibrate /dev/tablet-event | ||
</nowiki></pre> | </nowiki></pre> | ||
Save the output from wizardpen-calibrate (the last 8 lines!) - You need it later in this howto! | Save the output from wizardpen-calibrate (the last 8 lines!) - You need it later in this howto! | ||
==== Calibration output (If calibrate for some reason doesn't work!) ==== | ==== Calibration output (If calibrate for some reason doesn't work!) ==== | ||
/!\ Skip this section if calibrate worked for you! | /!\ Skip this section if calibrate worked for you! | ||
Tablet W5540U (UC-Logic): | Tablet W5540U (UC-Logic): | ||
<pre><nowiki> | <pre><nowiki> | ||
Driver "wizardpen" | Driver "wizardpen" | ||
Option "Device" "/dev/tablet-event" | Option "Device" "/dev/tablet-event" | ||
Option "TopX" "2199" | Option "TopX" "2199" | ||
Option "TopY" "3598" | Option "TopY" "3598" | ||
Option "BottomX" "30325" | Option "BottomX" "30325" | ||
Option "BottomY" "29278" | Option "BottomY" "29278" | ||
Option "MaxX" "30325" | Option "MaxX" "30325" | ||
Option "MaxY" "29278" | Option "MaxY" "29278" | ||
</nowiki></pre> | </nowiki></pre> | ||
=== Setting up X === | === Setting up X === | ||
Now we are ready to edit the xorg.conf file! | Now we are ready to edit the xorg.conf file! | ||
Take a backup - Run this command: | Take a backup - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup | sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup | ||
</nowiki></pre> | </nowiki></pre> | ||
Edit the file - Run this command: | Edit the file - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo vi /etc/X11/xorg.conf | sudo vi /etc/X11/xorg.conf | ||
</nowiki></pre> | </nowiki></pre> | ||
Press '''"I"''' - So that '''"-- INSERT --"''' appears! | Press '''"I"''' - So that '''"-- INSERT --"''' appears! | ||
Insert the following section into xorg.conf: (just place it below your generic mouse!) | Insert the following section into xorg.conf: (just place it below your generic mouse!) | ||
<pre><nowiki> | <pre><nowiki> | ||
Section "InputDevice" | Section "InputDevice" | ||
Identifier "WizardPen Tablet" | Identifier "WizardPen Tablet" | ||
Option "SendCoreEvents" "true" | Option "SendCoreEvents" "true" | ||
(the output from calibrate) | (the output from calibrate) | ||
EndSection | EndSection | ||
</nowiki></pre> | </nowiki></pre> | ||
Add the following line in the "ServerLayout" section: | Add the following line in the "ServerLayout" section: | ||
<pre><nowiki> | <pre><nowiki> | ||
InputDevice "WizardPen Tablet" "AlwaysCore" | InputDevice "WizardPen Tablet" "AlwaysCore" | ||
</nowiki></pre> | </nowiki></pre> | ||
Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter") | Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter") | ||
=== Making X start without a tablet connected === | === Making X start without a tablet connected === | ||
Now, the driver should NOT be initialized, if the tablet is NOT found! | Now, the driver should NOT be initialized, if the tablet is NOT found! | ||
The wizardpen-driver does not support hotplugging, so we should run a script on startup, to define whether or not the tablet is present. | The wizardpen-driver does not support hotplugging, so we should run a script on startup, to define whether or not the tablet is present. | ||
Open '''/etc/rc.local''' - Run this command: | Open '''/etc/rc.local''' - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo vi /etc/rc.local | sudo vi /etc/rc.local | ||
</nowiki></pre> | </nowiki></pre> | ||
Press '''"I"''' - So that '''"-- INSERT --"''' appears! | Press '''"I"''' - So that '''"-- INSERT --"''' appears! | ||
...and insert some code: (insert it JUST above "exit 0") | ...and insert some code: (insert it JUST above "exit 0") | ||
<pre><nowiki> | <pre><nowiki> | ||
XORG_CONF=/etc/X11/xorg.conf | XORG_CONF=/etc/X11/xorg.conf | ||
if [ -e /dev/tablet-event ]; then | if [ -e /dev/tablet-event ]; then | ||
sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" | sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" | ||
echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" | echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" | ||
else | else | ||
sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" | sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" | ||
echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" | echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" | ||
fi | fi | ||
</nowiki></pre> | </nowiki></pre> | ||
...so that the file looks something like this: (in case you haven't added anything else to the file!) | ...so that the file looks something like this: (in case you haven't added anything else to the file!) | ||
<pre><nowiki> | <pre><nowiki> | ||
#!/bin/sh -e | #!/bin/sh -e | ||
第250行: | 第172行: | ||
XORG_CONF=/etc/X11/xorg.conf | XORG_CONF=/etc/X11/xorg.conf | ||
if [ -e /dev/tablet-event ]; then | if [ -e /dev/tablet-event ]; then | ||
sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" | sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" | ||
echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" | echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" | ||
else | else | ||
sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" | sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" | ||
echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" | echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" | ||
fi | fi | ||
第260行: | 第182行: | ||
</nowiki></pre> | </nowiki></pre> | ||
Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter") | Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter") | ||
Now you can test udev's ability to detect the tablet - Run this command: | Now you can test udev's ability to detect the tablet - Run this command: | ||
<pre><nowiki> | <pre><nowiki> | ||
sudo /etc/init.d/rc.local start | sudo /etc/init.d/rc.local start | ||
</nowiki></pre> | </nowiki></pre> | ||
The output will tell you if it is present or not! - And it should match reality! (try to disconnect it, and try again! - connect, and then again! - etc...) | The output will tell you if it is present or not! - And it should match reality! (try to disconnect it, and try again! - connect, and then again! - etc...) | ||
You should now be able to restart X and have the tablet working as a mouse. | You should now be able to restart X and have the tablet working as a mouse. | ||
I'm still working on a way to support hotplugging, but the above code-example will make X start without a present tablet. | I'm still working on a way to support hotplugging, but the above code-example will make X start without a present tablet. | ||
'''X will still freeze if you unplug the tablet!''' - Please contact me, in case you have a solution! | '''X will still freeze if you unplug the tablet!''' - Please contact me, in case you have a solution! | ||
=== Configuring the buttons on the pen === | === Configuring the buttons on the pen === | ||
I'm working on a wizard for this task! | I'm working on a wizard for this task! | ||
In the meantime, look into the package "xinput" which is installed first in this guide. | In the meantime, look into the package "xinput" which is installed first in this guide. | ||
Here is a list of numbers with their corresponding function: | Here is a list of numbers with their corresponding function: | ||
{|border="1" cellspacing="0" | {|border="1" cellspacing="0" | ||
| Number || Function | | Number || Function | ||
第299行: | 第210行: | ||
| 5 || Scroll down | | 5 || Scroll down | ||
|} | |} | ||
=== Configuring the tablet HOTSPOTS === | === Configuring the tablet HOTSPOTS === | ||
I'm working on a daemon for this task! | I'm working on a daemon for this task! | ||
It's working well so far, just need a little tweaking, and making it start automatically. | It's working well so far, just need a little tweaking, and making it start automatically. | ||
The biggest problem is to execute the commands as child-processes (so that a failure, doesn't cause the daemon to die!) | The biggest problem is to execute the commands as child-processes (so that a failure, doesn't cause the daemon to die!) | ||
[[category:UbuntuHelp]] | [[category:UbuntuHelp]] |
2008年10月20日 (一) 00:45的最新版本
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/TabletSetupWizardpenDapper }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/af | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Afrikaans| [[::TabletSetupWizardpenDapper/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ar | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|العربية| [[::TabletSetupWizardpenDapper/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/az | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|azərbaycanca| [[::TabletSetupWizardpenDapper/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/bcc | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|جهلسری بلوچی| [[::TabletSetupWizardpenDapper/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/bg | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|български| [[::TabletSetupWizardpenDapper/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/br | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|brezhoneg| [[::TabletSetupWizardpenDapper/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ca | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|català| [[::TabletSetupWizardpenDapper/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/cs | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|čeština| [[::TabletSetupWizardpenDapper/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/de | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Deutsch| [[::TabletSetupWizardpenDapper/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/el | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Ελληνικά| [[::TabletSetupWizardpenDapper/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/es | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|español| [[::TabletSetupWizardpenDapper/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/fa | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|فارسی| [[::TabletSetupWizardpenDapper/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/fi | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|suomi| [[::TabletSetupWizardpenDapper/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/fr | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|français| [[::TabletSetupWizardpenDapper/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/gu | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|ગુજરાતી| [[::TabletSetupWizardpenDapper/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/he | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|עברית| [[::TabletSetupWizardpenDapper/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/hu | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|magyar| [[::TabletSetupWizardpenDapper/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/id | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Bahasa Indonesia| [[::TabletSetupWizardpenDapper/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/it | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|italiano| [[::TabletSetupWizardpenDapper/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ja | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|日本語| [[::TabletSetupWizardpenDapper/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ko | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|한국어| [[::TabletSetupWizardpenDapper/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ksh | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Ripoarisch| [[::TabletSetupWizardpenDapper/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/mr | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|मराठी| [[::TabletSetupWizardpenDapper/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ms | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Bahasa Melayu| [[::TabletSetupWizardpenDapper/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/nl | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Nederlands| [[::TabletSetupWizardpenDapper/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/no | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|norsk| [[::TabletSetupWizardpenDapper/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/oc | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|occitan| [[::TabletSetupWizardpenDapper/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/pl | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|polski| [[::TabletSetupWizardpenDapper/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/pt | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|português| [[::TabletSetupWizardpenDapper/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ro | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|română| [[::TabletSetupWizardpenDapper/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/ru | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|русский| [[::TabletSetupWizardpenDapper/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/si | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|සිංහල| [[::TabletSetupWizardpenDapper/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/sq | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|shqip| [[::TabletSetupWizardpenDapper/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/sr | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|српски / srpski| [[::TabletSetupWizardpenDapper/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/sv | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|svenska| [[::TabletSetupWizardpenDapper/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/th | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|ไทย| [[::TabletSetupWizardpenDapper/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/tr | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Türkçe| [[::TabletSetupWizardpenDapper/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/vi | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|Tiếng Việt| [[::TabletSetupWizardpenDapper/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/yue | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|粵語| [[::TabletSetupWizardpenDapper/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/zh | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|中文| [[::TabletSetupWizardpenDapper/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/zh-hans | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|中文(简体)| [[::TabletSetupWizardpenDapper/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:TabletSetupWizardpenDapper | UbuntuHelp:TabletSetupWizardpenDapper | {{#if: | :}}TabletSetupWizardpenDapper}}/zh-hant | • {{#if: UbuntuHelp:TabletSetupWizardpenDapper|中文(繁體)| [[::TabletSetupWizardpenDapper/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:TabletSetupWizardpenDapper|:TabletSetupWizardpenDapper|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :TabletSetupWizardpenDapper/zh | | {{#ifexist: TabletSetupWizardpenDapper/zh | | {{#ifeq: {{#titleparts:TabletSetupWizardpenDapper|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:TabletSetupWizardpenDapper|1|-1|}} | zh | | }}
THIS GUIDE IS NO LONGER UPDATED - SEE: TabletSetupWizardpen for support for the newest release
Known tablets working with the Wizardpen-driver
The setup has been tested with the following tablets.
Known vendors
- UC-LOGIC
Known tablets
- Tablet WP4030U
- Tablet WP5540U
- Tablet WP8060U
If your tablet is not listed here, please ADD it! (If you don't have an account, then email me: [email protected])
Known problems
There are some problems, that I haven't been able to solve: * Hotplugging - The driver doesn't support hotplugging - but this howto includes a partial workaround * Shortcuts - The driver doesn't support the shortcut-fields of the tablet! - I'm working on a solution to this one!
Setting up your tablet
General information
This guide is based on: *ubuntu 6.06 - Dapper Drake For the newest release, please see TabletSetupWizardpen
The first step...
Open a terminal Install some needed packages - Run this command:
sudo apt-get install xutils libx11-dev libxext-dev x-dev build-essential xautomation xinput
Downloading and installing the driver
If your connection is a little slow, you can just proceed with these steps in another terminal. Download the wizardpen driver, and extract it! - Run these commands:
wget http://www.stud.fit.vutbr.cz/~xhorak28/wizardpen-driver-0.5.0.tar.gz
tar -xvzf wizardpen-driver-0.5.0.tar.gz
cd wizardpen-driver-0.5.0
Some adjustment is needed - Run this command:
sed -ie 's,\#include\ \"/usr/X11R6/lib/X11/config/Server.tmpl\",,' Imakefile
Create a Makefile from the Imakefile, and run Make - Run this command:
xmkmf && make
Copy the driver into the input-driver-directory - Run this command:
sudo cp wizardpen_drv.o /usr/lib/xorg/modules/input/
Setting up udev (If the tablet is USB)
Connect your tablet, if it is not connected yet. Find out what the device is called: (product) Run this command:
cat /sys/bus/usb/devices/*/product
The output will look something like this: (depending on your system)
Tablet WP8060U UHCI Host Controller UHCI Host Controller UHCI Host Controller EHCI Host Controller
Note the product of the tablet (obviously Tablet WP8060U in my case!) Now, add a udev rule: (Note that the SYSFS{product} is tablet-specific! - See output from above command!) Run these commands:
sudo bash
echo 'BUS=="usb", KERNEL=="event*", SYSFS{product}=="Tablet WP8060U", NAME="input/%k", SYMLINK+="tablet-event", MODE="0666"' >> /etc/udev/rules.d/010_local.rules
exit
Restart udev - Run this command:
sudo /etc/init.d/udev restart
Check that the syslink has been created - Run this command:
ls -la /dev/tablet-event
If it outputs a line, it means that it succeeded!
Calibration
Enter the "calibrate"-directory - Run this command:
cd calibrate
Build the calibration tool - Run this command:
make
Calibrate in order to find the edges of your tablet/digitizer - Run this command:
sudo ./wizardpen-calibrate /dev/tablet-event
Save the output from wizardpen-calibrate (the last 8 lines!) - You need it later in this howto!
Calibration output (If calibrate for some reason doesn't work!)
/!\ Skip this section if calibrate worked for you! Tablet W5540U (UC-Logic):
Driver "wizardpen" Option "Device" "/dev/tablet-event" Option "TopX" "2199" Option "TopY" "3598" Option "BottomX" "30325" Option "BottomY" "29278" Option "MaxX" "30325" Option "MaxY" "29278"
Setting up X
Now we are ready to edit the xorg.conf file! Take a backup - Run this command:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
Edit the file - Run this command:
sudo vi /etc/X11/xorg.conf
Press "I" - So that "-- INSERT --" appears! Insert the following section into xorg.conf: (just place it below your generic mouse!)
Section "InputDevice" Identifier "WizardPen Tablet" Option "SendCoreEvents" "true" (the output from calibrate) EndSection
Add the following line in the "ServerLayout" section:
InputDevice "WizardPen Tablet" "AlwaysCore"
Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter")
Making X start without a tablet connected
Now, the driver should NOT be initialized, if the tablet is NOT found! The wizardpen-driver does not support hotplugging, so we should run a script on startup, to define whether or not the tablet is present. Open /etc/rc.local - Run this command:
sudo vi /etc/rc.local
Press "I" - So that "-- INSERT --" appears! ...and insert some code: (insert it JUST above "exit 0")
XORG_CONF=/etc/X11/xorg.conf if [ -e /dev/tablet-event ]; then sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" else sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" fi
...so that the file looks something like this: (in case you haven't added anything else to the file!)
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. XORG_CONF=/etc/X11/xorg.conf if [ -e /dev/tablet-event ]; then sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF" echo "Udev created /dev/tablet-event, which means that the tablet is present! - Tablet-driver enabled" else sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF" echo "Udev did NOT create /dev/tablet-event, which means that the tablet is NOT present! - Tablet-driver disabled" fi exit 0
Save the file, and exit the editor! (Press "ESC" and write ":wq" and press "Enter") Now you can test udev's ability to detect the tablet - Run this command:
sudo /etc/init.d/rc.local start
The output will tell you if it is present or not! - And it should match reality! (try to disconnect it, and try again! - connect, and then again! - etc...) You should now be able to restart X and have the tablet working as a mouse. I'm still working on a way to support hotplugging, but the above code-example will make X start without a present tablet. X will still freeze if you unplug the tablet! - Please contact me, in case you have a solution!
Configuring the buttons on the pen
I'm working on a wizard for this task! In the meantime, look into the package "xinput" which is installed first in this guide. Here is a list of numbers with their corresponding function:
Number | Function |
0 | No action (only movement) |
1 | Left button click |
2 | Middle Button click |
3 | Right Button click |
4 | Scroll up (one click equals one step of scroll wheel in my logitech mouse) |
5 | Scroll down |
Configuring the tablet HOTSPOTS
I'm working on a daemon for this task! It's working well so far, just need a little tweaking, and making it start automatically. The biggest problem is to execute the commands as child-processes (so that a failure, doesn't cause the daemon to die!)