To get the “NextWindow” USB touchscreen that is common on HP Touchsmart systems to work correctly under Fedora 10+ Linux. Please note that this has been tested only on Fedora 10 but I suspect it should also work just as well with Fedora 11/12++.
Note! This is for a touchscreen not listed on the NextWindow hardware compatibility page.
This is for a “1950 Model, usb ids 1926:0006,~0060-0099” Touchscreen.
What you Need:
A system with a NextWindow USB touchscreen. (Our example we use the HP Touchsmart 300).
The currently -unreleased- driver from NextWindow (nwfermi: http://launchpadlibrarian.net/40645019/nwfermi-0.1_i386.deb )
Root on your system.
Section 1: Preparing your system for the touchscreen
Section 2: Installing the driver in the correct location & Rebuilding your initrd so the driver will autoload on boot.
Section 3: Setup your xorg.conf (you may be able to skip this... I had to do this on my system).
Note: In some cases you will need sudo/root access to set this up correctly.
You may also see sections that start with “>” These sections are intended for you to enter on the command line.
Section 1: Praparing your system.
Please make sure you already have your ATI Drivers installed. This will make your system run much faster. Drivers are available on the www.ati.com website and are known to work on Fedora 10/11.
Make sure your system is up-to-date so we don't have issues with any packages that should exist but don't.
You must have GCC installed for compiling. Make sure you have this.
> sudo yum install gcc gcc-c++ -y
Section 2: Installing the Driver
First you will need to pull the source files out of the drivers .deb package. In Fedora you can right click the package and select “Open with Archive Manager” which will allow you to pull out the “/usr/src/” folder. Make sure to put it somewhere easy to get to.
Cd into the “src” directory we just pulled out of the nwfermi.deb
> cd /where/you/putit/src/nwfermi-0.1/
run “make” in that directory. It will proceed to create several files that you need. The file we are most interested in is nw-fermi.ko This is the “driver” that we need to copy to our kernel.
Copy the nw-fermi.ko file to the correct location on your system. I will give you an example below. (Note that this may be different if you are using a different kernel! Run “uname -r to see what kernel you are running!)
>sudo cp nw-fermi.ko /lib/modules/18.104.22.168-105.fc11.x86_64/kernel/drivers/input/touchscreen
Now that the “driver” is in the correct location we need to pull it into the kernel.
> sudo insmod /lib/modules/22.214.171.124-105.fc11.x86_64/kernel/drivers/input/touchscreen/nw-fermi.ko
Now if you type something like “dmesg” on your command line you should see that you have a new “event” device listed that you can use.
From here we need to make sure the driver will get loaded every time we reboot otherwise we will have problems. We can do this by running a depmod and rebuilding our initrd.
Lets run depmod.
> sudo depmod -a
Now that we have done that its time to rebuild the initrd.
> sudo -i
> cd /boot
> mkinitrd -v -f /boot/initrd-126.96.36.199-105.fc11.x86_64 188.8.131.52-105.fc11.x86_64
At this point you should also make sure you have the “evtouch” tools installed.
Go here: http://www.conan.de/touchscreen/evtouch.html Follow the instructions to download and install the evtouch drivers.
Lastly you should copy the udev rules from the package to your udev.d folder on your system. (Extracted from the “etc” folder in the package).
>cp 40-nw-fermi.rules /etc/udev/rules.d
This will make sure the proper driver/etc is setup on boot.
Your initrd should now be rebuilt and if you reboot now the new touchscreen “driver” should now be loading on boot. If you look in /dev/input you should see a new “event 6/7/8..etc” that we will need to know for the next section.
Section 3: Setting up your xorg.conf (optional?)
If you are on fedora 11+ you may not have an xorg.conf sitting in /etc/X11/ You can do the following to get one.
From what i have been told the xorg.conf is generated on boot if there is not one and placed in /tmp So we can just grab that one!
> sudo cp /tmp/xorg.conf /etc/X11/
Now that we have a working xorg.conf we can setup the other options for the touchscreen. Open your xorg.conf in VIM or a text editor you are happy with.
> sudo -i
> vim /etx/X11/xorg.conf
At the end of the file add the following text. (From NextWindow website: http://www.nextwindow.com/nextwindow_support/app_working_under_linux_2.html )
Option "Device" "/dev/input/event1"
Option "DeviceName" "touchscreen"
Option "MinX" "1"
Option "MinY" "1"
Option "MaxX" "32768"
Option "MaxY" "32768"
Option "ReportingMode" "Raw"
Option "Emulate3Buttons" "false"
Option "Emulate3Timeout" "50"
Option "SendCoreEvents" "On"
Now under the “ServerLayout” section make sure to add in the following.
You will notice a “Device” “/dev/input/event1” line. You need to change the “event1” to match the event of the device that you saw earlier in dmesg. (run dmesg on command line to see again).
My system sees the touchscreen as “event6”.
You can now save and exit the “xorg.conf” file.
You also need the “ConsoleDriver” object out of the driver package. You can find this under “/usr/sbin”. Extract it using the Archive Manager again and copy it to /usr/sbin.
> sudo cp ConsoleDriver /usr/sbin
From here you should be able to reboot your system and the touchscreen should work properly.