From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to compile uinput module on cRIO 9030

Hi guys,

Has this been solved yet?
I ran into the same problem.
I've also an eGalax touchpanel wich I want to use with  my CVS-1458RT

same behaviour: mouse movement works like a charm, but can only click once.. and then the clicking event does not work anymore.

A solution would be that I use the windows version for the CVS but that's my last option..

Bruno

0 Kudos
Message 31 of 73
(1,805 Views)

Can you try an experiment?

Copy the attached '05-egalax-virtual.conf' file on the target in '/usr/share/X11/xorg.conf.d'. You will have to do this as 'admin' (i.e. 'lvuser' doesn't have permissions to write at that location). Reboot the target and let us know if there are any changes in the way the touchscreen reacts.

Also post the following log file (after you reboot): /var/log/Xorg.0.log

The output from running 'lsusb -vvv' on the target would also be helpful. You will have to install 'usbutils' to get the command. You can do it by running 'opkg update' followed by 'opkg install usbutils'

0 Kudos
Message 32 of 73
(1,805 Views)

Still the same behaviour with when I put this file into the '/usr/share/X11/xorg.conf.d folder

IN annex the Xorg.0.log

I'll try the lsusb thing today..Regards,

Bruno

0 Kudos
Message 33 of 73
(1,805 Views)

THe output from lsusb -vvv is:

Bus 001 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.10

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0

  bDeviceProtocol         0

  bMaxPacketSize0        64

  idVendor           0x0eef D-WAV Scientific Co., Ltd

  idProduct          0x0001 eGalax TouchScreen

  bcdDevice            1.00

  iManufacturer           1 eGalax Inc.

  iProduct                2 USB TouchController

  iSerial                 0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           59

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          1 eGalax Inc.

    bmAttributes         0xa0

      (Bus Powered)

      Remote Wakeup

    MaxPower              100mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         3 Human Interface Device

      bInterfaceSubClass      1 Boot Interface Subclass

      bInterfaceProtocol      2 Mouse

      iInterface              0

        HID Device Descriptor:

          bLength                 9

          bDescriptorType        33

          bcdHID               2.10

          bCountryCode            0 Not supported

          bNumDescriptors         1

          bDescriptorType        34 Report

          wDescriptorLength     341

         Report Descriptors:

           ** UNAVAILABLE **

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               3

        ** UNRECOGNIZED:  19 ff 42 49 53 54 00 01 02 03 ff 00 00 00 00 00 01 04 b8 0b 02 05 b8 0b 00

Device Status:     0x0000

  (Bus Powered)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.00

  bDeviceClass            9 Hub

  bDeviceSubClass         0 Unused

  bDeviceProtocol         1 Single TT

  bMaxPacketSize0        64

  idVendor           0x1d6b Linux Foundation

  idProduct          0x0002 2.0 root hub

  bcdDevice            3.10

  iManufacturer           3 Linux 3.10.31-ltsi-rt29-2.10.0f0 xhci_hcd

  iProduct                2 xHCI Host Controller

  iSerial                 1 0000:00:14.0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           25

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          0

    bmAttributes         0xe0

      Self Powered

      Remote Wakeup

    MaxPower                0mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         9 Hub

      bInterfaceSubClass      0 Unused

      bInterfaceProtocol      0 Full speed (or root) hub

      iInterface              0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0004  1x 4 bytes

        bInterval              12

Hub Descriptor:

  bLength               9

  bDescriptorType      41

  nNbrPorts             6

  wHubCharacteristic 0x000a

    No power switching (usb 1.0)

    Per-port overcurrent protection

    TT think time 8 FS bits

  bPwrOn2PwrGood       10 * 2 milli seconds

  bHubContrCurrent      0 milli Ampere

  DeviceRemovable    0x7c

  PortPwrCtrlMask    0xff

Hub Port Status:

   Port 1: 0000.0103 power enable connect

   Port 2: 0000.0100 power

   Port 3: 0000.0100 power

   Port 4: 0000.0100 power

   Port 5: 0000.0100 power

   Port 6: 0000.0100 power

Device Status:     0x0001

  Self Powered

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               3.00

  bDeviceClass            9 Hub

  bDeviceSubClass         0 Unused

  bDeviceProtocol         3

  bMaxPacketSize0         9

  idVendor           0x1d6b Linux Foundation

  idProduct          0x0003 3.0 root hub

  bcdDevice            3.10

  iManufacturer           3 Linux 3.10.31-ltsi-rt29-2.10.0f0 xhci_hcd

  iProduct                2 xHCI Host Controller

  iSerial                 1 0000:00:14.0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           31

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          0

    bmAttributes         0xe0

      Self Powered

      Remote Wakeup

    MaxPower                0mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         9 Hub

      bInterfaceSubClass      0 Unused

      bInterfaceProtocol      0 Full speed (or root) hub

      iInterface              0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0004  1x 4 bytes

        bInterval              12

        bMaxBurst               0

Hub Descriptor:

  bLength              12

  bDescriptorType      42

  nNbrPorts             1

  wHubCharacteristic 0x000a

    No power switching (usb 1.0)

    Per-port overcurrent protection

  bPwrOn2PwrGood       10 * 2 milli seconds

  bHubContrCurrent      0 milli Ampere

  bHubDecLat          0.0 micro seconds

  wHubDelay             0 nano seconds

  DeviceRemovable    0x00

Hub Port Status:

   Port 1: 0000.02a0 5Gbps power Rx.Detect

Binary Object Store Descriptor:

  bLength                 5

  bDescriptorType        15

  wTotalLength           15

  bNumDeviceCaps          1

  SuperSpeed USB Device Capability:

    bLength                10

    bDescriptorType        16

    bDevCapabilityType      3

    bmAttributes         0x02

      Latency Tolerance Messages (LTM) Supported

    wSpeedsSupported   0x0008

      Device can operate at SuperSpeed (5Gbps)

    bFunctionalitySupport   3

      Lowest fully-functional device speed is SuperSpeed (5Gbps)

    bU1DevExitLat          10 micro seconds

    bU2DevExitLat         512 micro seconds

Device Status:     0x0001

  Self Powered

0 Kudos
Message 34 of 73
(1,805 Views)

Hi Gratian,

the same wrong behavor with the virtual conf file too..

attached the Xlog a lsusb log files.

regards

Download All
0 Kudos
Message 35 of 73
(1,805 Views)

As I told before, the EV_TOUCH value of code 330 is always high on my touch screen. I.ve tried to force the value to be 0 after the touch tapping with the C code:

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <linux/input.h>

#include <fcntl.h>

#define MOUSEFILE "/dev/input/event7"

 

int main()

{

    int fd;

    struct input_event ie;

     

    if((fd = open(MOUSEFILE, O_RDWR)) == -1) {

        perror("opening device");

        exit(EXIT_FAILURE);

     }

 

ie.type = EV_KEY;

ie.code = 330;

ie.value = 0;

write(fd,&ie, sizeof(ie));

                    printf("write type %d\tcode %d\tvalue %d\n",

               ie.type, ie.code, ie.value);

   

}

    return 0;

}

Ufortunatelly, even if the value is resetted to 0, the monitor touch doesn't work. May be it depends by other driver.

I will try to add the HIDRAW module on the kernel as suggested by eGalax

Bye


0 Kudos
Message 36 of 73
(1,805 Views)

Biebel,m-power,

In order to configure and build a kernel with the HIDRAW support that eGalax is calling for:

  1. Enable ssh on your target and login
  2. opkg update
  3. opkg install git
  4. opkg install ncurses-dev
  5. opkg install bc
  6. opkg install coreutils
  7. opkg install --force-downgrade packagegroup-core-buildessential libz-dev
  8. cd
  9. git clone git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git
  10. cd squashfs-tools/squashfs-tools
  11. make && make install
  12. cd
  13. git clone git://github.com/ni/linux
  14. git checkout nilrt/$RELEASE/$KERNEL_VER
    • For 2015, this will be nilrt/15.0/3.14
  15. make nati_$TARGET_defconfig
    • E.g. for your vision targets, you'll use nati_x86_64_defconfig
  16. make menuconfig
    • To enable HIDRAW, Device Drivers→HID suport→HID bus support→/dev/hidraw raw HID device support ('Y' to enable)
  17. make ni-pkg
    • This will create a kernel, modules, and headers squashfs (needed for NI driver reinstallation)

Basically, you should have someone who's a bit more experienced working with Linux run through these steps, as I don't really have a x64 target to test this out on and there may be missing steps or steps that need to be adjusted.

This may seem like quite a bit of pain/annoyance, but keep in mind that touch panels with the eGalax touch controller were never tested nor suggested that they would be supported. This is the reason that NI resold touch panel displays with many mounting options and thoroghly tested those. There are simply too many options out there and Linux touch screen support is fairly low on many of the touchscreen manufacture's list of concerns.

0 Kudos
Message 37 of 73
(1,805 Views)

HI,

I was finally able to build the kernel with HIDRAW, uinput and evdev options enabled.

Now it created 3 folders:

-boot (with the bzImage in)

-headers

-lib

I know I need to be carefull now, and because I never replaced a kernel, I would appreciate it when you tell the next steps?

Thanks,

Bruno

0 Kudos
Message 38 of 73
(1,805 Views)

Again, I don't have a x64 target in front of me, but the good news is that you can always force the target to boot into Safe Mode and reformat through MAX.

Pulling from recollection, the .../boot/bzImage will go to the /boot/runmode/, replacing the existing bzImage (you can optionally copy the existing to something like "bzImage.old")

The .../lib/ directory contains the modules/firmware for this recompilation of the kernel. Copy the content of this folder to your /lib directory (if you are in Run Mode/LVRT-mode currently)

The .../headers/ directory contains a headers.squashfs. Copy (and rename) this file to replace the existing kernel's header squashfs at /usr/local/natinst/tools/module-versioning-image.squashfs (again, you can rename the old to keep it around)

Once all of these have been done, reboot your target. When it comes back up, either check in MAX or run uname -a from a console to make sure that you're using the new kernel (check the date of the build, and note that it will match the time as set on your target, as that's where the kernel was built)

0 Kudos
Message 39 of 73
(1,805 Views)

ofcourse it failed booting.

Now I'm back on the old kernel (went through the faile safe mode etc)

I should start with a default configuration of national instruments I think, but I didn't find the nati_x86_64_defconfig file, only the x86_64_defconfig file...

0 Kudos
Message 40 of 73
(1,805 Views)