System specs
A nice review here : http://www.ruggedpcreview.com/3_slates_xplore_ix104c3.html
Users handbook : ftp://Support:Xplore@ftp.xploretech.com/Reports%20and%20Handbooks/iX104C3%20USERS%20HANDBOOK.pdf
Note: my model only has a digitizer (tablet PC model), no touchscreen (dual mode version)
Debian stable to the rescue
First I wanted to install Arch Linux on this system, but soon I encountered a severe setback : the Wacom stylus would not work. Then I tried Ubuntu 12.04 (Precise), everything worked out of the box, except the stylus!
Explanation : it seems the support for this older, serial Wacom tablet has been removed from the X.Org Wacom input drivers, since the 0.10.6 version and up.
(more info can be found here : http://ubuntuforums.org/showthread.php?t=1780154 )
Fortunately Debian Squeeze still uses a working 0.10.5 driver version!
Dual booting
I chose to keep the original Windows XP (Tablet PC edition) so I used PartedMagic / Gparted to shrink the windows partition (40G should be large enough).
If ever needed to restore the original windows sytem, recovery disks and drivers can be found here : http://www.xploretech.com/support/download_center
Debian Installation
This will be an i386 Debian since the Pentium M processor is 32bit only.
Plug an usb keyboard (optional : a mouse if using the graphical installer).
I installed my system from the network (netinstall with PXE booting). The wired network interface (realtek RTL8169sb/8110sb) works out of the box, the Intel wireless adapter (ipw2200) needs a firmware (will be installed later after we enable the non-free repository).
A standard (Gnome 2) desktop environment was selected.
Installation done, reboot into your newly installed system.
Note : when not using an usb keyboard, you will want to :
- enable automatic login in gdm3
- disable screen locking
(we will work on these two things a bit later)
System configuration
Still, the Wacom stylus does not work out of the box.
Configuring the Wacom stylus
We need to add some udev rules
# nano /etc/udev/rules.d/70-wacom-serial.rules
ACTION!="add|change", GOTO="wacom_end" # Match all serial wacom tablets with a serial ID starting with WACf # Notes: We assign NAME though we shouldn't, but currently the server requires it. # We assign the lot to subsystem pnp too because server reads NAME from # the parent device. Once all that's fixed, a simple SUBSYSTEM="tty" # will do and the ENV{NAME} can be removed. SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tab let $attr{id}" SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="FUJ*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tabl et $attr{id}" LABEL="wacom_end"
Then we also need to tell X.Org about our tablet
# mkdir -p /etc/X11/xorg.conf.d/
# cat >/etc/X11/xorg.conf.d/50-wacom.conf <<EOF
Section "InputClass" Identifier "Wacom class" MatchProduct "Wacom|WACOM|Hanwang|PTK-540WL" MatchDevicePath "/dev/input/event*" Driver "wacom" EndSection Section "InputClass" Identifier "Wacom serial class" MatchProduct "Serial Wacom Tablet" Driver "wacom" EndSection Section "InputClass" Identifier "Wacom serial class identifiers" MatchProduct "WACf|FUJ02e5|FUJ02e7|FUJ02e9" Driver "wacom" Option "Button1" "1" # left mouse button Option "Button2" "3" # right mouse button EndSection EOF
Reboot your system, the stylus should now be working!
Stylus calibration
If needed to perform stylus calibration, we will install xinput_calibrator from the sources (package is not available for Squeeze)
http://www.freedesktop.org/wiki/Software/xinput_calibrator
As a regular user
$ sudo apt-get install build-essential dh-autoreconf libx11-dev libxext-dev libxi-dev
$ cd && wget http://github.com/downloads/tias/xinput_calibrator/xinput_calibrator-0.7.5.tar.gz
$ tar xvzf xinput_calibrator* && cd xinput_calibrator*
$ ./autogen.sh && make && sudo make install
Now run
$ xinput_calibrator –output-type xorg.conf.d
Finally, as root, copy and paste the program’s output (the “option” lines) into your /etc/X11/xorg.conf.d/50-wacom.conf
(restart X for changes to take effect)
Updating the kernel (optional)
Enable the Debian backports
# echo >>/etc/apt/sources.list ‘deb http://backports.debian.org/debian-backports squeeze-backports main’ && apt-get update
# apt-get -t squeeze-backports install linux-image-686-pae
Enabling the non-free repo
# nano /etc/apt/sources.list
(your debian mirror will vary)
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
And installing the non-free firmwares
# apt-get update && apt-get install firmware-linux-nonfree firmware-ipw2x00 firmware-realtek
(reboot system)
Installing a newer Iceweasel (http://mozilla.debian.net/)
# echo >>/etc/apt/sources.list ‘deb http://mozilla.debian.net/ squeeze-backports iceweasel-release’
# apt-get update && apt-get install -t squeeze-backports iceweasel
Interesting add-ons for Iceweasel/Firefox :
FireGestures
https://addons.mozilla.org/en-US/firefox/addon/firegestures/
Accessibility tools
The Gnome On-screen Keyboard (GOK) was installed by default. I found it to be quite annoying to use (and sometimes buggy).
# apt-get remove gok
(There’s also Dasher. Haven’t tried it yet)
brltty (the Braille daemon) was also installed. As I don’t need it (and it takes some CPU time) :
# apt-get remove brltty
Same with Orca, the screen reader
# apt-get remove gnome-orca
So let’s install a nicer virtual keyboard :
Florence ( http://florence.sourceforge.net/english.html )
# apt-get install florence
Matchbox keyboard (light but less integrated into Gnome)
# apt-get install matchbox-keyboard
Enabling Florence at the GDM login screen
# cp /usr/share/applications/florence.desktop /usr/share/gdm/autostart/LoginWindow/
(you may now remove autologin in GDM)
Enable virtual keyboard when screen is locked ( https://live.gnome.org/GnomeScreensaver/FrequentlyAskedQuestions )
For some reason I wasn’t able to use Florence instead of matchbox-keyboard.
In GConf editor :
set /apps/gnome-screensaver/embedded_keyboard_enable to “true”
set /apps/gnome-screensaver/embedded_keyboard_command to “matchbox-keyboard –xid”
Allow virtual keyboard with gksu
Open GConf editor :
Set /apps/gksu/disable-grab to “true”
Some more applications for hand writing/drawing with the stylus
Xournal note taking
# apt-get install xournal
Mypaint drawing
# apt-get install mypaint
Special keys
By default on this hardware :
– the P1 key is mapped to F1
– P2 is mapped to F2
– P3 is mapped to F8
– Fn is mapped to F11
– “screen rotation” key is mapped to F12
– “secure” key is mapped to Ctrl-Alt-Del
How to see the corresponding keycodes? Just start
$ xev
Then try each special key.
P1 is keycode 0x67
P2 is 0x68
P3 is 0x74
Fn is 0x95
“Rotation key” is 0x96
“Secure key” will send the 3 keycodes corresponding to Ctrl-Alt-Del
Now modify your hotkey shortcuts in the Gnome settings.
Screen rotation
Copy this small script to /usr/local/bin/rotate.sh
# cat >/usr/local/bin/rotate.sh <<EOF
#!/bin/bash
#
# Rotate the screen clockwise 90 degrees.
# Also, rotate the wacom pointer so the stylus will still work.
#
# Original script by Ben Wong, October 1, 2010
# Public domain. No rights reserved.
#
# Modified by fredo696@gmail.com / https://agentoss.wordpress.com
# for use on Debian 6.0
# February 10, 2013
#
# set your wacom device name here (xsetwacom –list)
stylusdevname=”Serial Wacom Tablet WACf004 PNP0501″
case $(xsetwacom get “$stylusdevname” Rotate) in
CCW) # Currently top is rotated left, we should set it normal (0°)
xrandr -o normal
xsetwacom set “$stylusdevname” Rotate NONE
;;
NONE) # Screen is not rotated, we should rotate it right (90°)
xrandr -o right
xsetwacom set “$stylusdevname” Rotate CW
;;
CW) # Top of screen is rotated right, we should invert it (180°)
xrandr -o inverted
xsetwacom set “$stylusdevname” Rotate HALF
;;
HALF) # Screen is inverted, we should rotate it left (270°)
xrandr -o left
xsetwacom set “$stylusdevname” Rotate CCW
;;
*)
echo “Unknown result from ‘xsetwacom get $stylusdevname Rotate'” >&2
exit 1
;;
esac
exit 0
EOF
And make it executable
# chmod +x /usr/local/bin/rotate.sh
Now setup the “screen rotation” hotkey in the Gnome2 hotkey settings, to execute this script. Should work nicely 🙂
Gnome hotkey settings are good when you want to launch a program with a hotkey, but is not adapted when you want to remap a key.
To do key remapping we will use xmodmap ( https://wiki.archlinux.org/index.php/Extra_Keyboard_Keys_in_Xorg )
For instance I like the P2 and P3 buttons to act as Page_Up and Page_Down (useful when browsing)
As a regular user
$ nano ~/.Xmodmap
# P2 = F2 key = Page Up
keycode 68 = Page_Up
# P3 = F8 key = Page Down
keycode 74 = Page_Down
To test your .Xmodmap
$ xmodmap ~/.Xmodmap
When login in your next Gnome session, you will be asked if you want to load an .Xmodmap file, we select it and say yes of course.
Note : when using this method of key remapping, you will loose the actual F2 and F8 keys on the virtual keyboard.
TODO : Fingerprint scanner
The fingerprint reader module is a SGS Thomson/UPEK model (usb id 0483:2016). See more at http://www.freedesktop.org/wiki/Software/fprint/libfprint/upekts
# lsusb
Fingerprint GUI project
http://www.n-view.net/Appliance/fingerprint/index.php
# wget http://www.n-view.net/Appliance/fingerprint/download/fingerprint-gui-1.04.tar.gz
or libfprint
http://www.freedesktop.org/wiki/Software/fprint/Installation
Sound
Sound playback works out of the box; recording from the builtin mic needed some fiddling.
You need to enable some controls in the gnome volume control utility. See screenshots below.
Voice control and speech recognition
Google Chrome + speech recognition extension
Web speech API is now available with Chrome version 25 or later
https://www.google.com/intl/en/chrome/demos/speech.html
Download and install the .deb package from the official site, here for the 32 bits version
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb
$ sudo dpkg -i google-chrome*
(if apt complains about missing dependencies)
$ sudo apt-get -f install
Next, install a speech recognition extension. I suggest : “Speech Recognition for Text inputs”
(website at http://www.nonelike.me/2012/03/chrome-speech-recognition-extension.html )
Works nicely 🙂
(sadly, I don’t think Firefox/Iceweasel has a similar working extension yet)
Power Management
The battery has quite a short autonomy on this model, thus it’s important to optimize energy consumption.
CPU frequency scaling works out of the box.
Suspend to RAM (sleep) and Suspend to disk (hibernate) are working fine.
Still we need to install some useful tools
# apt-get install laptop-mode-tools powertop
Configure laptop-mode-tools
# nano /etc/laptop-mode/laptop-mode.conf
ENABLE_AUTO_MODULES=1
Edit LCD brightness settings
# nano /etc/laptop-mode/conf.d/lcd-brightness.conf
TO FIX : does not work. Modifying the value in /sys/class/backlight/intel_backlight/brightness seems to do nothing
# grep . /sys/class/backlight/intel_backlight/*
Enable bluetooth power off
# nano /etc/laptop-mode/conf.d/bluetooth.conf
CONTROL_BLUETOOTH=1
Other modules should have good default settings.
Finally restart the laptop-mode daemon
# /etc/init.d/laptop-mode restart
Also run powertop for other possible optimizations.
Show battery level and health in a terminal:
# acpi -i
TODO : disable GPS for lower energy consumption (kernel module : ftdi_sio)
Optimizations
Filesystem optimizations (noatime, tmpfs)
# nano /etc/fstab
proc /proc proc defaults 0 0
UUID=xxxxxxxxxx / ext4 errors=remount-ro,noatime 0 1
UUID=xxxxxxxxxx /home ext4 defaults,noatime 0 2
UUID=xxxxxxxxxx none swap sw 0 0
tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
Minimize swappiness (for less disk usage)
# sysctl -w ‘vm.swappiness=0’
# nano /etc/sysctl.conf
vm.swappiness = 0
Prelink binaries for faster loading
# apt-get install prelink
# prelink -a
(Remember to run prelink after software updates)
Sensors configuration (optional) for system temperature monitoring
# sensors-detect
Some minor cosmetic changes
Grub bootloader
Choose an image and convert it to PNG format using “convert” from the imagemagick package
$ convert image.jpg boot.png
Change the default background image
# nano /etc/default/grub
GRUB_GFXMODE=1024×768
GRUB_GFXPAYLOAD_LINUX=”keep”
GRUB_BACKGROUND=”path/to/the/boot.png”
Then
# update-grub
GDM3’s default background image can be changed as well
# nano /usr/share/gdm/greeter-config/10_desktop-base
GPS Applications
Install the gpsd GPS daemon
# apt-get install gpsd gpsd-clients
Configure your GPS device
# dpkg-reconfigure gpsd
device should by /dev/ttyUSB0
Start gpsd
# /etc/init.d/gpsd restart
Note: You’ll may have to get outside to properly receive GPS signal!
Navigation software
FoxtrotGPS (lightweight on dependencies)
# apt-get install foxtrotgps
gpsdrive (heavier on dependencies)
# apt-get install gpsdrive
Viking (not as easy to use)
# apt-get install viking
(there are plenty others)
Conclusion
If you own a similar computer running Linux, please share your comments, tips & tricks, etc!
Links
Debian Linux on a Tablet PC Howto
http://risujin.org/debian/
Tablet PC tips from the Arch wiki
https://wiki.archlinux.org/index.php/Tablet_PC
TODO
cellwriter (handwriting recognition)
voice control
navit (gps)
Reblogged this on anthonyvenable110.
hello,
upgrade lose the function ‘?
I noticed also very slow to respond, in general. (use google translator)
Enzo
please reformulate 🙂