OpenSUSE and Microchip EXPHID0x25 device on Raon Everun

Looking for help with linux on my UMPC - Raon Everun

So far the installation of OpenSUSE 11 finishes with no problems - everithing seems to work OK, except some hardware.

This device is “built” on a base of AMD Geode LX900 processor, CS5536 Geode companion audio.

The system works OK, but most needed hardware does not:

  1. Input (mouse, keyboard, touchscreen)
  2. Sound (cs5536 Geode companion audio)
  3. bluetooth
  4. wifi (Marvell SD8686 SDIO card)

Anyway, I can live without sound, bt and wifi, but without input devices this UMPC becomes a brick with linux. I use external USB keyboard and mouse to operate the device.

The problem appears to be in the following:
Input devices (keyboard, mouse, touchscreen) appear to be attached to the Microchip controller, which is a USB device. In System information (in yast) this device is recognized as EXPHID0x25. But it does not seem to be operational (no input, the backlight on keyboard does no work)

Yast, actually, suggests 3 devices:
EXPHID0x25
EXPHID0x25 (dev/input/event3)
EXPHID0x25 (dev/input/mice)

Here is the output

kolyanoid@linux-fj2c:~> /usr/sbin/lsusb -s 002:002 -v

Bus 002 Device 002: ID 04d8:010a Microchip Technology, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x04d8 Microchip Technology, Inc.
  idProduct          0x010a
  bcdDevice            0.00
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          166
    bNumInterfaces          6
    bConfigurationValue     1
    iConfiguration          0
    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      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      63
         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     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      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               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      51
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0005  1x 5 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      45
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      34
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10

The thing is that the input enables after some time (from 30 seconds to n/d). Average is about 40 minutes. When it enables - everything starts to work - the keyboard with backlight, mouse and even touchscreen (not calibrated, however).

This behavior is common for ANY linux distro i tried (OpenSUSE, Kubutu, Knoppix 3.7, Backtrack 2). The ONLY exception is Mandriva - the keyboard and mouse work absolutely OK right from the start. But, because I don’t like mandriva - I am here with my problem :slight_smile:

This problem was once solved by a person (great thanks to him!) who runs Debian on this device. Here is a quote from umpcportal.com (take a look on a kernel patch comments - this seems to be a clue)

This is a link to the whole thread on the problems of linusx on Raon Everun
Forum - Raon Digital Everun - Linux on Everun S66HS: current status - UMPCPortal.com

I tried to apply this patch manually (due to version mismatch) to my kernel and compile it.
Everything was fine, I booted with this new patched kernel, but the problem was not solved. Actually, the exphid0x25 device seems to become operational, since the keyboard backlight started to work properly (turning on on button press and turning of after a few seconds), but still no input!
The things got worse after some time (approx 40 minutes, again) - the exphid0x25 seemed to turn off again, because the keyboard backlight stopped working.

So, this is the story. What shall I do now? Why the kernel patch does not work for me?

I really need your help! I can’t switch to linux without input - this is the only thing that holds me on XP :frowning:

P.S.
When compiling the kernel I used the current kernel’s config file from /boot/

This is a manual kernel configuration, suggested by the author of the above kernel patch:

  • Kernel configuration

I like building custom kernels with everything compiled in. Probably
because I started using Linux in 1993 and I still don’t really trust
these newfangled ‘modules’. Anyway here are the customizations of
note for the Everun:

The easy ones:

  • Processor type: AMD Geode GX3

  • ATA driver: CS55xx are the ATA drivers for Geode processors; I enabled them
    all just to be sure.

  • Bus support: there is an ISA bridge, so enable ISA bus support.

  • Display: VESA framebuffer works fine, there’s also a Geode
    framebuffer but I’m not sure it’s much of an advantage.

  • Audio: ALSA CS5535/5536 Audio driver is built in. I wasn’t able
    to get this working right away (it spewed tons of errors) so I
    disabled it for the moment.

  • Character devices: Don’t forget to enable “CS5535 GPIO
    Companion”… I have a sneaky feeling it will be important

  • USB: Enable EHCI and OHCI host controllers and “full HID”.

  • Bluetooth: Enable hci_uart module for the built-in BT over the
    internal serial port.

  • power management: enable ACPI and all the relevant-looking modules

And not-so-easy:

  • Wifi: According to a thread on umpcportal, the Everun’s Wifi
    chipset is a Marvell SD8686 SDIO card. The Marvell 8xxx chipsets
    have a Linux driver in the main kernel, but it doesn’t work for
    the SDIO version.

  • lspci shows a “Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
    Adapter”. That’s where our wifi is hanging. Since there aren’t
    any SD/MMC physical slots available on the machine there’s not
    much point in enabling the driver.

P.S.2
Sorry for such a huge post…

Anybody?

If you don’t know the answer, may be you know a better place on the net, where I can ask it?

I typically send users to the audio troubleshooting guide in order to take a first cut at sorting their audio problems. However a prerequisite is that they have a functioning mouse and keyboard. Are there any ‘legacy’ settings in your BIOS that you can set for mouse and keyboard to get them functioning.

Reference your audio, the oepnSUSE audio troubleshooting guide can be found here: SDB:AudioTroubleshooting - openSUSE Note that guide assumes a nominal kernel, so if you compiled your own, a lot of the guide will not be applicable.

Thanks for reply!

. Are there any ‘legacy’ settings in your BIOS that you can set for mouse and keyboard to get them functioning.

Unfortunately, no… There are no setting for keyboard and mouse.
By the way, while system is booting the keyboard and mouse seem to be functional - navigation in BIOS works, GRUB menu navigation, Acronis True Image usage with keyboard and mouse.

They all disable just when the Linux starts to boot and enables only after huge random amount of time (well, you have heard the rest of the story :wink: )

P.S.
When compiling the kernel, I noticed one interesting option. It switches the keyboard and mouse and to the “start up” state.
I will try to compile the kernel, may be this will work (not a solution, but walkaround)…

P.S.2
Thanks for the sound guide, I will try it as soon as I tackle my input problems!
By the way, the soundcard is recogised in Yast and Alsa, the proper kernel module is used. But it gives tons of errors in dmesg… I will try to solve it, but a bit later…

Please also confirm you conducted an md5sum chieck on your openSUSE CD/DVD comparing:
a. md5sum listed on openSUSE website for the ISO file against,
b. md5sum on your PC hard drive after downloading the ISO against,
c. md5sum of the data the CD/DVD which can be conducted by creating ISO file from CD/DVD.

Alternatively, just conduct a media check on the CD/DVD which is one of the Fx options when one inserts the CD/DVD for initial installation.

I am 100% sure, the installation of broken files is not the reason for this problem as:

  1. Other people experience exactly the same problem
  2. In other distros the problem is the same
  3. OpenSUSE 11 Alpha 1 and 3, Beta 1, 2 and 3 and the final release - all the same.

Perhaps not, but there is a possibility you introduced additional problems as a result of a failure to ensure the md5sums were good, decreasing even further the possibility of your solving this riddle.

Why not put the boot CD/DVD in your drive, reboot, and then select the Fx menu option to do a CD/DVD media check? It will remove that as a possibility of there being additional errors, or it will point out that you have even more problems that need be fixed.

Kolyanoid wrote:

>
> Anybody?
>
> If you don’t know the answer, may be you know a better place on the
> net, where I can ask it?
>
>

I read the referenced site and about the issues with ‘starting’ the
keyboard/mouse devices. (and the rest of the posts… strange answers)

You’ve got a perfect installation, that’s definite, just that the chipset used
in the UMPC you have is so very new that the kernel developers haven’t had a
chance to create drivers for them. I searched the kernel source, and that
particular Microchip device does not exist yet.

You need to monitor that conversation on umpcsite.com, the user there has a
working driver, written for 2.6.23 kernel, while the new opensuse 11.0 kernel
is 2.6.25. I know you said you tried manually patching it and installing the
new kernel.

After installing the kernel-sources, as root, cd to /usr/src/linux/
then run

make cloneconfig

This will set up for duplicating the exact current setup.

Apply the patch, by hand, or by working with the patch program, it can handle
some differences if you give it your ‘ok’ (it’s usually pretty conservative
to prevent weird things happening)

make
make install
make modules_install ← used to have to do that, think they merged it
into ‘make install’

I know it’s usually done by ‘make install’, but then I always run ‘mkinitrd’
to force the system to update the boot ramdrive with new modules and drivers.

I tinkered with the patch code a little too, it looks to be quite possible to
write a small utility program to ‘kickstart’ the keyboard/mouse devices
anytime after boot too. The code is really only sending a single byte of
data to the main device of the Microchip.

Keep looking though, ‘bleeding edge’ equipment is often slow to start getting
support, but as prices come down and interest rises, support and drivers come
quickly and can change often.

Take Care,

Loni

(enjoy the Raon… I’ve been drooling over them myself too, {sigh} no funds)


L R Nix
lornix@lornix.com

Thanks for reply, lornix!

After installing the kernel-sources, as root, cd to /usr/src/linux/
then run

Thanks, I will try this one!
To tell you the truth, I use OS11 installation on my home PC to compile the kernel and build the RPM (as for .config file - I used the one from the UMPC installation) . There was not enough space on UMPC to compile it and it’s too slow… But I think, I will try again - i have some ideas :slight_smile:

I tinkered with the patch code a little too, it looks to be quite possible to
write a small utility program to ‘kickstart’ the keyboard/mouse devices
anytime after boot too. The code is really only sending a single byte of
data to the main device of the Microchip.

Thats true! Still I am looking for console command to send a message to USB device…

Keep looking though, ‘bleeding edge’ equipment is often slow to start getting
support, but as prices come down and interest rises, support and drivers come
quickly and can change often.

There are more “bleeding edge” ideas in this UMPC :slight_smile: Most onboard devices are supported by latest kernels, even the SDIO WLAN card and sound card. Unfortunately, it requires enourmous efforts to make them work.

Hope the situation becomes better in future, before this UMPC becomes “old”

Perhaps not, but there is a possibility you introduced additional problems as a result of a failure to ensure the md5sums were good, decreasing even further the possibility of your solving this riddle.

Why not put the boot CD/DVD in your drive, reboot, and then select the Fx menu option to do a CD/DVD media check? It will remove that as a possibility of there being additional errors, or it will point out that you have even more problems that need be fixed.

I checked it - everything is ok as I expected :slight_smile:

P.S.1
The Sony VAIO UX UMPC now works with almost no problems with linux. Unfortunately, this device is no longer manufactured :slight_smile:

P.S.2
On latest Ubuntu the sound card is reported to work well.

(enjoy the Raon… I’ve been drooling over them myself too, {sigh} no funds)

Thanks! It is a really nice device. Rather slow - too slow for DVD video or Youtube (flash vidoe), but runs office applications fine. Enough for my educational needs.

Nickolai Kozlov