Some [Linux] Housekeeping

Posted in Guides, Linux, Ubuntu by aliencam | 4 Comments »

hRecent updates have broken functionality of both the fingerprint reader and screen brightness adjustment on my laptop  (Thinkpad X61 Tablet with Ubuntu 8.10).

Fingerprint Reader:


The problem with the fingerprint was that a recent security update had overwritten the /etc/pam.d/*-auth  files (it allerted me to this beforehand, but to prevent issues with the update I allowed it to totally overwrite my files).  If this happened to you, all you need to do is run the script to edit the /etc/pam.d/common-auth file to allow the fingerprint reader to be a method of authentication.

run the following command:

sudo '/usr/lib/pam-thinkfinger/pam-thinkfinger-enable'

nothing should return, but when you restart the authentication daemon (I don’t remember the command offhand, so I just restarted the computer) the fingerprint reader should work again.

Fixing ACPI Brightness Adjustment


After updating to the 2.6.27-11 kernel, brightness controls would not work for me or any of my friends with the Thinkpad X61 laptop.  There is not an update released yet to fix this, and it has been marked as  “low priority”. The low priority kind of makes me upset since sometimes I can’t even see my laptop screen because of it’s low screen brightness, and other times I get half of the battery life I’m used to since the brightness is all the way up.

Anyway, the fix I found for this was on the issue’s bug report.

In order to do this, you need to edit the /etc/modprobe.d/options file and add the line “options thinkpad_acpi brightness_enable=1”. There are many ways to do this, but my preferred is the following:

in a terminal, type:
sudo nano /etc/modprobe.d/options

then arrow down to the bottom, and then type:
# set to get brightness controlls working in 2.6.27.11 kernel
options thinkpad_acpi brightness_enable=1

exit by pressing ctrl-x then enter to save and overwrite the file. Now you can reboot and the brightness control should work just fine.

If you have any questions or the problems are not fixed by these then leave a comment.

–aliencam

Thinkpad Fingerprint Reader in Ubuntu 8.10 Intrepid

Posted in Guides, Linux, Ubuntu by aliencam | No Comments »

The version of thinkfinger in the Ubuntu 8.10 repositories does not yet work perfectly.  You can install and configure it close to the same way that it was in 8.04, however with one (annoying) difference.  Previously, you could just slide your fingerptint and it would be entered automatically, however a bug in this version makes it so that you have to slide your finger and then press the enter key.  if this doesn’t bother you, or you want to wait for the “official fix”, the follow these instructions (directions that fix this are  further below):

sudo apt-get install thinkfinger-tools libpam-thinkfinger

tf-tool --acquire

If that gives you an error, “could not get USB device” or similar, restart and try again.  Now it will ask you to slide your finger three times, do so until it reads 3 successful swipes.Then,

tf-tool --verify

It will ask you to swipe your finger one time, to verify the data on file. You no longer have to do the “tf-tool –add-user $USERNAME” command, it has been replaced by the above two commands.

At this point, there (thankfully) is a script that edits /etc/pam.d/common-auth so we don't have to. Execute the script with the following command:

sudo '/usr/lib/pam-thinkfinger/pam-thinkfinger-enable'

At this point everything should be working, just restart and you will be able to login and sudo using your fingerprint reader (keep reading to set it up to work on wake from suspend or screensaver).

If you do not want to have to press enter every time, before you install thinkfinger-tools and libpam-thinkfinger, you need to add the following sources to “Third Party Sources” under “Software Sources”:
deb http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main
deb-src http://ppa.launchpad.net/jon-oberheide/ubuntu intrepid main

Now, in order to have the fingerprint reader work to wake up from suspend or screensaver, use the following steps:

create a group “fingerprint” with the following command:

sudo groupadd fingerprint

then create a file with:

sudo nano /etc/udev/rules.d/60-thinkfinger.rules

Then paste in the following lines (use ctrl-shift-v to paste into terminal):


#
# udev rules file for the thinkfinger fingerprint scanner
#
# gives access to the fingerprint reader to those in the “fingerprint” group
#
# Taken from:
# http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger
# which was taken and modified from:
# http://article.gmane.org/gmane.linux.drivers.thinkfinger/329
#

# SGS Thomson Microelectronics Fingerprint Reader
SYSFS{idVendor}==”0483″, SYSFS{idProduct}==”2016″, SYMLINK+=”input/thinkfinger-%k”, MODE=”0660″, GROUP=”fingerprint”

# the also-needed uinput device
KERNEL==”uinput”, MODE=”0660″, GROUP=”fingerprint”

Exit nano with ctrl-X, and save by hitting “y”.

Now, edit /etc/pam.d/gnome-screensaver with:

<code>sudo gedit /etc/pam.d/gnome-screensaver</code>

and add the lines:

auth sufficient pam_thinkfinger.so
auth required pam_unix.so try_first_pass nullok_secure

Between the two existing lines. save and exit.

Now add each user who has a fingerprint profile, and change the file permissions with the commands:

gpasswd -a $USERNAME fingerprint
chmod +x /home/$USERNAME/.thinkfinger.bir

Restart the computer, and it should work.  If you have any more problems leave a comment and I should be able to help you, or check out these other links that may help:

http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger

and the bug report for the bug that requires you to hit enter:

https://bugs.launchpad.net/ubuntu/+source/thinkfinger/+bug/256429

There is one problem that I don’t know how to fix, every time I boot, I get an authentication box telling me that the application “Do” (I assume gnome-do) requires that the gnome-keyring be unlocked.  This only happens when you login with the fingerprint, not when you type in the password. There is no pam_gnome-keyring.so file, so I don’t know what else to add or change to get this to stop.  I will file a bug on launchpad when I get a chance.

I hope that works for everyone, it did for me!

–aliencam

NOTE: I did this yesterday, and today I noticed the fingerprint reader was getting really hot… I saw a mention of a bug that causes this on thinkwiki, but I think the problem only occurs when I am plugged in instead of on battery. I also know that turning on USB Autosuspend does solve it, and powertop will enable that for you… I will investigate further later.

further note: the problem did not persist. Enabling USB Autosuspend once seems to have fixed the problem indefinitely.  Use the powertop program and it should ask you to enable USB autosuspend if you have this problem. If not, read the thinkwiki entry on thinkfinger, and it should help. If that doesn’t help, leave a comment and I’ll get back to you.

UPDATE:
As of Feburary 16th, 2009 an update has broken functionality of thinkfinger. (it wrote over the /etc/pam.d/common-auth file) If the same thing happened to you, I wrote a post describing how to fix this problem.
http://blog.aliencam.net/2009/02/some-linux-housekeeping/

Ubuntu 8.10 X61t Tablet Setup (With Touch)

Posted in Guides, Linux by aliencam | No Comments »

Well, I wanted to get a head start on playing with ubuntu 8.10, so that it doesn’t take me hundreds of hours this weekend to rewrite my entire ubuntu setup guide to be relevent to 8.10, so I partitioned off 10 gb and did a fresh install of ubuntu 8.10 RC last week. The first thing I set up was tablet support.

Supposedly this is more difficult in this version of Ubuntu thanks to a fancy new xorg server that ignores the xorg.conf file unless you tell it to, but you tell it to use the file by adding a server section to the xorg.conf file anyway!

This guide only activates the tablet in ubuntu 8.10, it does not do other things that I will need to do later in the xorg.conf file. (such as middle-mouse scroll, and turning off the annoying middle-mouse button = paste function)


***NOTE: ALWAYS BACKUP YOUR XORG.CONF FILE BEFORE EDITING. YOU CAN DO THIS WITH THE COMMAND:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Then if you can’t login and need to restore the original, from a failsafe termainal login you can do:

sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

YOU MAY NOW PROCEED TO MAKING YOUR UBUNTU COMPUTER AWESOME.***

So, for archival/recovery purposes, here is my original xorg.conf with a Thinkpad x61 Tablet in Ubuntu 8.10, Intrepid Ibex:

Section "Device"
Identifier    "Configured Video Device"
EndSection

Section "Monitor"
Identifier    "Configured Monitor"
EndSection

Section "Screen"
Identifier    "Default Screen"
Monitor        "Configured Monitor"
Device        "Configured Video Device"
EndSection

Of course, that does not include the  commented out parts, or any correct tab spacing (curse you wordpress!!!) but those aren’t really important.

In order to get the tablet working, you need to add at least the three pen devices (eraser, stylus, and cursor) and optionally the “touch” device (if you have a multitouch screen [is your max resolution 102×768? then you likely have multitouch])

The lines for that is as follows:

#BEGIN TABLET SECTION
Section "InputDevice"
Driver        "wacom"
Identifier    "stylus"
Option        "Device"    "/dev/input/wacom"    # USB ONLY
Option        "Type"        "stylus"
Option        "USB"        "on"        # USB ONLY
Option        "ForceDevice"    "ISDV4"        # Tablet PC ONLY
Option        "Button2"    "3"        # Added to map stylus click correctly
EndSection


Section "InputDevice"
Driver        "wacom"
Identifier    "eraser"
Option        "Device"    "/dev/input/wacom"   # USB ONLY
Option        "Type"          "eraser"
Option        "USB"           "on"        # USB ONLY
Option        "ForceDevice"   "ISDV4"        # Tablet PC ONLY
Option        "Button3"    "2"        # Added to map eraser correctly
EndSection

Section "InputDevice"
Driver        "wacom"
Identifier    "cursor"
Option        "Device"        "/dev/input/wacom"    # USB ONLY
Option        "Type"        "cursor"
Option        "USB"        "on"        # USB ONLY
Option        "ForceDevice"    "ISDV4"        # Tablet PC ONLY
EndSection
#END TABLET SECTION

And if you have a tablet PC with multitouch, before the line “#END TABLET SECTION” you can add:

# This section is for the TabletPC that supports touch
Section "InputDevice"
Driver        "wacom"
Identifier    "touch"
Option        "Device"        "/dev/input/wacom"  # USB ONLY
Option        "Type"          "touch"
Option        "ForceDevice"   "ISDV4"               # Tablet PC ONLY
Option        "USB"           "on"                  # USB ONLY
EndSection

Finally, add the server layout section to the bottom of the file so that what you just entered does something:

Section "ServerLayout"
Identifier    "Default Layout"
Screen        "Default Screen"

#Section for tablet events
InputDevice     "stylus"    "SendCoreEvents"
InputDevice     "cursor"    "SendCoreEvents"
InputDevice     "eraser"    "SendCoreEvents"
#InputDevice    "touch"        "SendCoreEvents"  #for the TabletPCs that supports touch
EndSection

If your laptop DOES have multitouch, and you want poking the screen with your finger to work, remove the “#” that is before the line InputDevice    "touch"        "SendCoreEvents"

That’s it, save and restart, and BAM!

Everything on a line after a pound sign (#)  in the above is a comment.  I have put comments in the above xorg.conf configuration so that I know what sections do what, without having to remember things.  If you want, you can remove all of the comments, but I would not suggest it because someday when  you are editing xorg.conf and xorg crashes on you and you want to figure out what you messed up, you will need that documentation.

Remember that my favorite system file editor is nano, NOT gedit.  gedit is very nice for editing normal text files, but I find that things break much more often when using a graphical text editor than a CLI one like nano.  The hardest part about nano is the keyboard shortcuts.  arrow keys to move up and down, and ctrl-shift-c for copy, ctrl-shift-v for paste, and ctrl-x for exit.  You cannot save until you exit (I think…) and when you press ctrl-x it will ask you “do you want to save this file” or something similar, press y, then where you want to save it (probably just hit enter).

So, using nano, the command to edit xorg.conf is:

sudo nano /etc/X11/xorg.conf

And just in case I was not clear enough above, here are the contents of my final xorg.conf file:

# 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    "Configured Video Device"
EndSection

Section "Monitor"
Identifier    "Configured Monitor"
EndSection


Section "Screen"
Identifier    "Default Screen"
Monitor        "Configured Monitor"
Device        "Configured Video Device"
EndSection

#BEGIN TABLET SECTION
Section "InputDevice"
Driver        "wacom"
Identifier    "stylus"
Option        "Device"    "/dev/input/wacom"    # USB ONLY
Option        "Type"        "stylus"
Option        "USB"        "on"        # USB ONLY
Option        "ForceDevice"    "ISDV4"        # Tablet PC ONLY
Option        "Button2"    "3"        # Added for stylus click
EndSection

Section "InputDevice"
Driver        "wacom"
Identifier    "eraser"
Option        "Device"    "/dev/input/wacom"   # USB ONLY
Option        "Type"          "eraser"
Option        "USB"           "on"        # USB ONLY
Option        "ForceDevice"   "ISDV4"        # Tablet PC ONLY
Option        "Button3"    "2"        # Added for eraser working
EndSection

Section "InputDevice"
Driver        "wacom"
Identifier    "cursor"
Option        "Device"        "/dev/input/wacom"    # USB ONLY
Option        "Type"        "cursor"
Option        "USB"        "on"        # USB ONLY
Option        "ForceDevice"    "ISDV4"        # Tablet PC ONLY
EndSection

# This section is for the TabletPC that supports touch
Section "InputDevice"
Driver        "wacom"
Identifier    "touch"
Option        "Device"        "/dev/input/wacom"  # USB ONLY
Option        "Type"          "touch"
Option        "ForceDevice"   "ISDV4"               # Tablet PC ONLY
Option        "USB"           "on"                  # USB ONLY
EndSection
#END TABLET SECTION

Section "ServerLayout"
Identifier    "Default Layout"
Screen        "Default Screen"
#    InputDevice    "Synaptics Touchpad"


#added to get tablet working
InputDevice     "stylus"    "SendCoreEvents"
InputDevice     "cursor"    "SendCoreEvents"
InputDevice     "eraser"    "SendCoreEvents"
InputDevice    "touch"        "SendCoreEvents"
EndSection

Hope this helps, I don’t think there is another guide for it online yet.

–aliencam

Final Note:

I wrote this guide in Noble Library on ASU’s campus this morning, and I lost my laptop’s stylus while I was there… So far it has not shown up in any of the lost and founds around campus, and it was not in the study room where I was working, so it looks like I need a new one… The problem is that I don’t have any money right now, the pen costs $50, and I need it to take notes in many of my classes… If this  guide helped you out, and you need web hosting, please consider using the bluehost affiliate link in the right sidebar.  Bluehost is great for very cheap unlimited hosting, (I think about $90/yr) and if one person were to sign up, the affiliate program would pay me enough to afford a new digitizer pen for my laptop. The stylus is also on my amazon wishlist at the link at the top of the page, and here

Here is my xorg.conf file with Touch disabled.  I am posting this because there are problems with wordpress messing up quotation marks and indentations/tab spacing in the things I have posted, causing people who copy-pasted from my blog to only be able to boot in low-graphics mode.

xorg.conf

UPDATE 01.07.2008: I just updated the xorg.conf sections in this post to include “code” tags, so now it should be okay to copy-paste directly from here. Double check that it is not still pasting “smart-quotes” before saving the changes, but hopefully that shouldn’t happen.

Also, one commenter has said that the buttons on their digitizer pen are mapped differently. If you could not get the eraser working, try mapping the eraser to "Button1" "3" instead of "Button3" "2"

aliencam's Customized Ubuntu Setup part V: Getting the Tablet to work in Ubuntu Hardy

Posted in Life in General by aliencam | No Comments »

Setting up the Tablet
Thinkpad x61 or x60 tablet only (I think. But it might work for other wacom tablet computers as well.)

This again requires editing the xorg.conf file, so make sure you have at least one backed up copy of it already. If not, see the Middle Mouse Scroll section. Backing up xorg.conf before making edits is VERY IMPORTANT.
in a terminal:
sudo gedit /etc/X11/xorg.conf
then scroll down the the very bottom. Here you will find a section that looks like this:

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"
EndSection

(of course, the correct line spacing will actually work… unlike wordpress’s)
change that so that it looks like this:

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"

#added to get tablet working
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
InputDevice "touch" "SendCoreEvents"
EndSection

Then, above that, make a few more lines, and then add in this:

#BEGIN TABLET SECTION
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "stylus"
Option "USB" "on" # USB ONLY
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
Option "Button2" "3" # Added for stylus click
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "eraser"
Option "USB" "on" # USB ONLY
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
Option "Button3" "2" # Added for eraser working
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "cursor"
Option "USB" "on" # USB ONLY
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection

# This section is for the TabletPC that supports touch
Section "InputDevice"
Driver "wacom"
Identifier "touch"
Option "Device" "/dev/input/wacom" # USB ONLY
Option "Type" "touch"
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
Option "USB" "on" # USB ONLY
EndSection
#END TABLET SECTION

Now I would like to note that “touch” does not work yet with this tablet driver. However, It was in the manual, which means that it eventually could work, which would be amazing. It does not cause me any errors to have it in there though, so I figure it won’t hurt. If you wish, remove the section “for the TabletPC that supports touch” and the “touch” line in the server layout section at the bottom.

With this setting, the tip of the pen will act as a regular “left-click”, the button on the pen will act as a “right-click” and the eraser will act as a regular left-click except in applications that support the eraser.

My favorite of such eraser-supporting applications is called xournal. This is a note-taking program that allows a combination of tablet and typing, and lets you annotate PDF files. Very handy for taking notes in my engineering classes. However the eraser does not work correctly by default in this program. In order to get it to work go to Options, and check Use XInput, Discard Core Events, and Eraser Tip. Then, Options > Button 3 Mapping > Highlighter, and back to Options to select Auto-Save Preferences and Save Preferences. Then your pen will work nicely in Xournal from now on.

image of xorg.conf next to tablet writings in xournal

References: The Linux Wacom Project (man wacdump)

Creative Commons License