NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Not the supervisor

Thanks. That got past that hurdle. Now it is giving me an error saying

(E) No /etc/rc.local file found.

(E) The driver archive has been removed already.

There are a couple of rc#.d folders but no rc.local. Is there an analogue for folder it should be looking at?

0 Kudos
Message 11 of 54
(1,357 Views)

Based on all of the issues that you're seeing, and the quality of the shell code that I saw in the script, I would recommend just trying to get to the "root" (pun definitely intended) of what the script does and do the work yourself. Note that, for building kernel modules, you're going to want to use some of the documentation that exists for some of the differences regarding kernel header and tool locations: see Tutorial: Adding Kernel Modules on NI Linux Real-Time

Edit: while written from the perspective of writing a new kernel module (you create the Makefile yourself, etc.) many of the steps/considerations stay the same. Be sure to ask questions for some clarification if needed.

0 Kudos
Message 12 of 54
(1,357 Views)

They don't seem to have their source code readily available. But it is possible I missed it.

0 Kudos
Message 13 of 54
(1,357 Views)

Are you trying to use the USB or the UART version of the touch screen?

If it's the USB version what happens if you just plug it in w/o installing their binary driver (i.e. doesn't work at all, works but calibration is off etc.)?

The reason I'm asking is: the USB multi-touch driver that's already on the target supports a fairly wide selection of USB HID touch screens and it might just work with some tweaking. Also if you do this experiment (assuming you have the USB version) can you post the output from running 'dmesg' on the target as admin after you plug in the touch screen?

0 Kudos
Message 14 of 54
(1,357 Views)

And, on further checking, it seems that these "drivers" are not standard kernel drivers, rather something that likely sits in userspace and either works on the serial ports or (in the USB case), the HID device, a raw USB interface (via libusb), or possibly something else.

0 Kudos
Message 15 of 54
(1,357 Views)

Reading the Programming Guide, yep, evdev interface, hidraw.

0 Kudos
Message 16 of 54
(1,357 Views)

When I plug in the touch screen capabilities via USB the calibration is off. Is there another way to fix this since installing their software seems very difficult.

0 Kudos
Message 17 of 54
(1,357 Views)

Here is the dmesg log after I unplugged the touch screen

0 Kudos
Message 18 of 54
(1,357 Views)

There is software included in the NI Linux RT distro just for calibrating touchscreens. I'd recommend giving that a shot. There's an RT Utility VI that you can run to launch the calibration (a bit unusual, but basically drop the VI in a VI that is then deployed and run on the target) or, if you have a mouse handy, you can plug that in and navigate to "Settings" → "Calibrate Touchscreen"

0 Kudos
Message 19 of 54
(1,357 Views)

If you are using the 2014sp1 stack the calibration utility should run automatically if you've plugged in a new touchscreen and rebooted the target. 2014sp1 also has a VI in the RT palette that can start the calibration from LabVIEW.

If you're still on the 2014 software stack you can run the calibration utility by hand following these steps:

  1. open a terminal window on the target or log in via ssh
  2. if you are using an ssh terminal run export DISPLAY=:0 (this will tell subsequent commands where things are displayed i.e. the local attached display)
  3. run: xinput_calibrator | tail -n 6 > 99-calibration.conf (this will run the calibration utility extract the last 6 lines from the output and save it to a file)
  4. follow the instructions on the screen to calibrate it
  5. as administrator copy the resulting 99-calibration.conf file to /usr/share/X11/xorg.conf.d/ (this will ensure next the time system reboots the calibrations constants are loaded and you don't have to run the calibration utility again)

A word of warning: make sure the resulting 99-calibration.conf file looks correct before copying it to the path mention above as a malformed configuration file can prevent the desktop environment from starting. If you open it in an editor or if you run cat 99-calibration.conf you should see someting that looks like this (the the product name and calibration numbers is going to be different):

Section "InputClass"

    Identifier    "calibration"

    MatchProduct    "DIALOGUE INC PenMount USB"

    Option    "Calibration"    "929 86 930 85"

    Option    "SwapAxes"    "0"

EndSection

0 Kudos
Message 20 of 54
(1,357 Views)