1

I installed Kubuntu 13.04 (64-bit) on my new Fujitsu LifeBook P1630, and added just a few packages:

First aptitude, then I did aptitude update && safe-upgrade, then xinput-calibrator (which seems to work, except that I have to run it again every time I restart the system), then gcc, make, build-essential, checkinstall, binutils, and linux-source.

Then I downloaded the file cybergene-fujitsu-usb-touchscreen-112fdb75b406.zip which is linked from the page https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/overview (I'm assuming it's the elusive v0.3.9, which doesn't seem to be linked under that name from anywhere); I extracted its contents to a directory ~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 and attempted to run make. The console (er, Konsole) trace is below:

archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$ make
make -C /lib/modules/3.8.0-30-generic/build M=/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-30-generic'
  CC [M]  /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_irq’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:133:4: error: implicit declaration of function ‘dbg’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:182:3: error: implicit declaration of function ‘err’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_probe’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:246:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:253:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:263:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:270:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:277:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:302:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:358:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:366:5: error: called object ‘err’ is not a function
cc1: some warnings being treated as errors
make[2]: *** [/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o] Error 1
make[1]: *** [_module_/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-30-generic'
make: *** [fujitsu_usb_touchscreen.ko] Error 2
archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$

I should also note that make completes without errors on my other computer, a Toshiba Satellite R10 running Kubuntu 12.04; this machine also has a (fully operational) tablet with stylus. (The Toshiba's tablet is a Wacom with active digitizer as opposed to the Fujitsu's USB resistive touchscreen). So, probably I'm just missing some package or other---I haven't compiled anything for years and never was particularly good at it. Perhaps you can sort me out.

UPDATE: I've replaced 13.04 with 12.04 LTS, retaining my /home partition, and now the package compiles: make completes without errors. However, make install does not. [To be precise, I ran checkinstall (or, rather, sudo checkinstall), which calls make install, because as far as I can tell the former is a simple upgrade of the latter (at least for my purposes), providing integration with the package management system.] Initially, it failed with the following error:

make: execvp: /etc/init.d/fujitsu_touchscreen: Permission denied
make: *** [install] Error 127

After some research, I tried using chmod +x on the affected file:

$ sudo chmod +x /etc/init.d/fujitsu_touchscreen

Running sudo checkinstall again, the permission error is seen to have been resolved; it gets much further along before failing again. The log which it offers to print to stdout shows a dpkg error, as follows:

dpkg: error processing /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/cybergene-fujitsu-usb-touchscreen-112fdb75b406_amd64.deb (--install):
 unable to create `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy.dpkg-new' (while processing `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy'): No such file or directory

And, indeed, while there is /sys/module/fujitsu_usb_touchscreen/parameters/touch_maxy, there is no /sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy; apparently a typographical error has been introduced somewhere. Thus I must find and fix it. But unfortunately I have very little idea where to look other than the install; section of the makefile, and it's not in there. (I understand there is sometimes an install file instead? But there isn't in this case.) ...Help?

(Since this is an entirely distinct issue, I've asked a separate question: `make install` fails apparently due to typo, but not in makefile: How to find and fix?)

UPDATE 2013-10-18 After reinstalling Kubuntu 12.04 again, this time recreating the /home partition (which, again, had been generated during an install of 13.04), I can no longer reproduce the strange error immediately above. I am still curious to know how the underscores got changed to slashes, but it looks as though nobody has any idea. It is perhaps also of interest to note that while I have still not successfully run checkinstall against this package, I have done make install; it requires the executabilization of /etc/init.d/fujitsu_touchscreen and the installation of hal, and the GUI freezes shortly after installation completes, and there is no particular new functionality afterwards that I have noticed, and the system can no longer resume from being suspended. I have subsequently lost interest in fujitsu-usb-touchscreen since it appears the Magick Rotation package can provide everything I was looking for. It does not, however, work 'out-of-the-box'; I have filed a bug report which also documents the inelegant workaround I discovered.

Archelon
  • 83
  • 1
  • 9

1 Answers1

1

fujitsu_usb_touchscreen.c says it's v0.3.9, despite the enclosed README file reporting "Fujitsu usb touchscreen kernel module and utilities v0.3.5". I hate saying this, but "it works for me":

wget https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/get/112fdb75b406.zip
unzip 112fdb75b406.zip
cd cybergene-fujitsu-usb-touchscreen-112fdb75b406
make

Three possibilities:

  1. Possibly the zip file is corrupt? Try downloading again and repeating the extract/make steps?

  2. Make sure you have the current linux-headers package installed (this is needed for the inludes: linux/kernel.h, linux/slab.h, linux/module.h, linux/init.h, linux/usb/input.h). e.g.: find /usr/src/ -iname slab.h

  3. The package author does say, "Drop me an email if you have trouble installing the package." Have you tried that yet?

--beg:edit

I've been testing this in VirtualBox guests. The one I had it working under was installed from kubuntu-13.04-desktop-i386.iso some time ago and probably has some extra headers kicking around that made it happy.

I just installed a clean guest from kubuntu-13.04-desktop-amd64.iso and was able to repro your error. Not sure what's going on there, but if in fujitsu_usb_touchscreen.c I add the following lines immediately after the includes then it compiles without error:

#define dbg(args...) printk(args)
#define err(args...) printk(args)

Also, the usb_u810_tablet_probe() function defines an int err which is confusing to humans vs. the err() function/macro.

Hope this helps!

Phoeey
  • 521