Jump to content
8 posts in this topic

Recommended Posts

I am trying to get my motion LE1700 tablet to work with 10.5.2

Graphics works great. Sound works, but only through line out/in, and the digitizer works well - using tabletmagic.

A new network card is on the way, to replace my 3945.

 

The main remaining problem is the keyboard!

If I plug a USB keyboard in, it works great (that's what I'm typing on now). But the keybaord of the tablet itself does not work. The tablet is a "slate", so you can attach and detach the keyboard. The keyboard has a single special plug that it attaches with, and includes a track point (mouse), keyboard, a USB port at the back, and it also supplies power to the tablet.

 

When I plug it in, Hardware growler reports a IOUSBHubDevice, and then a "Semtech PixKey". The USB plug that is attached to the keyboard seems to work. The trackpoint and the keyboard don't work.

 

BTW: The keyboard does work in linux, so I could potatially spy on it there..

 

Does anyone have any idea how to get it to work? Do I need to add the Vendor/device ID to any kext, or some such?

As far as I know, this is a USB keyboard. But, maybe it somehow is a PS/2 keyboard and mouse? Could it be that these are the PS/2 problems that others where reporting? How could I tell?

 

And I also have a simpler question: hardware growler does report when the keyboard is plugged and unplugged. But I can not see the event on any log file. I would really like to know more about what is going on, what errors occur when I plug the keyboard in... Is there any log file I could look at?

 

Thank you very much for listening!

 

 

 

------ Here is the description of the hub+pixkey on the mac

Hub:

 

Version: 0.0b

Bus Power (mA): 500

Speed: Up to 480 Mb/sec

Product ID: 0x6560

Vendor ID: 0x04b4

 

Semtech PixKey:

 

Version: 0.64

Bus Power (mA): 500

Speed: Up to 12 Mb/sec

Manufacturer: Semtech

Product ID: 0x2165

Vendor ID: 0x047a

 

------ and here is the description on linux, using lsusb -v (taking only the parts that change on unplugging)

 Bus 005 Device 008: ID 047a:2165 Semtech Corp. 
Device Descriptor:
  bLength				18
  bDescriptorType		 1
  bcdUSB			   1.10
  bDeviceClass			0 (Defined at Interface level)
  bDeviceSubClass		 0 
  bDeviceProtocol		 0 
  bMaxPacketSize0		 8
  idVendor		   0x047a Semtech Corp.
  idProduct		  0x2165 
  bcdDevice			0.64
  iManufacturer		   1 Semtech
  iProduct				2 Semtech PixKey
  iSerial				 0 
  bNumConfigurations	  1
  Configuration Descriptor:
 bLength				 9
 bDescriptorType		 2
 wTotalLength		   84
 bNumInterfaces		  3
 bConfigurationValue	 1
 iConfiguration		  0 
 bmAttributes		 0xe0
   Self Powered
   Remote Wakeup
 MaxPower			   20mA
 Interface Descriptor:
   bLength				 9
   bDescriptorType		 4
   bInterfaceNumber		0
   bAlternateSetting	   0
   bNumEndpoints		   1
   bInterfaceClass		 3 Human Interface Devices
   bInterfaceSubClass	  1 Boot Interface Subclass
   bInterfaceProtocol	  1 Keyboard
   iInterface			  0 
	 HID Device Descriptor:
	   bLength				 9
	   bDescriptorType		33
	   bcdHID			   1.10
	   bCountryCode			0 Not supported
	   bNumDescriptors		 1
	   bDescriptorType		34 Report
	   wDescriptorLength	  81
	  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 Devices
   bInterfaceSubClass	  1 Boot Interface Subclass
   bInterfaceProtocol	  2 Mouse
   iInterface			  0 
	 HID Device Descriptor:
	   bLength				 9
	   bDescriptorType		33
	   bcdHID			   1.10
	   bCountryCode			0 Not supported
	   bNumDescriptors		 1
	   bDescriptorType		34 Report
	   wDescriptorLength	  66
	  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	 0x0008  1x 8 bytes
	 bInterval			  10
 Interface Descriptor:
   bLength				 9
   bDescriptorType		 4
   bInterfaceNumber		2
   bAlternateSetting	   0
   bNumEndpoints		   1
   bInterfaceClass		 3 Human Interface Devices
   bInterfaceSubClass	  0 No Subclass
   bInterfaceProtocol	  0 None
   iInterface			  0 
	 HID Device Descriptor:
	   bLength				 9
	   bDescriptorType		33
	   bcdHID			   1.10
	   bCountryCode			0 Not supported
	   bNumDescriptors		 1
	   bDescriptorType		34 Report
	   wDescriptorLength	 125
	  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	 0x0008  1x 8 bytes
	 bInterval			  10
Device Status:	 0x0000
  (Bus Powered)

Bus 005 Device 007: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Device Descriptor:
  bLength				18
  bDescriptorType		 1
  bcdUSB			   2.00
  bDeviceClass			9 Hub
  bDeviceSubClass		 0 Unused
  bDeviceProtocol		 2 TT per port
  bMaxPacketSize0		64
  idVendor		   0x04b4 Cypress Semiconductor Corp.
  idProduct		  0x6560 CY7C65640 USB-2.0 "TetraHub"
  bcdDevice			0.0b
  iManufacturer		   0 
  iProduct				0 
  iSerial				 0 
  bNumConfigurations	  1
  Configuration Descriptor:
 bLength				 9
 bDescriptorType		 2
 wTotalLength		   41
 bNumInterfaces		  1
 bConfigurationValue	 1
 iConfiguration		  0 
 bmAttributes		 0xe0
   Self Powered
   Remote Wakeup
 MaxPower			  100mA
 Interface Descriptor:
   bLength				 9
   bDescriptorType		 4
   bInterfaceNumber		0
   bAlternateSetting	   0
   bNumEndpoints		   1
   bInterfaceClass		 9 Hub
   bInterfaceSubClass	  0 Unused
   bInterfaceProtocol	  1 Single TT
   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	 0x0001  1x 1 bytes
	 bInterval			  12
 Interface Descriptor:
   bLength				 9
   bDescriptorType		 4
   bInterfaceNumber		0
   bAlternateSetting	   1
   bNumEndpoints		   1
   bInterfaceClass		 9 Hub
   bInterfaceSubClass	  0 Unused
   bInterfaceProtocol	  2 TT per port
   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	 0x0001  1x 1 bytes
	 bInterval			  12
Hub Descriptor:
  bLength			   9
  bDescriptorType	  41
  nNbrPorts			 4
  wHubCharacteristic 0x0089
 Per-port power switching
 Per-port overcurrent protection
 TT think time 8 FS bits
 Port indicators
  bPwrOn2PwrGood	   50 * 2 milli seconds
  bHubContrCurrent	100 milli Ampere
  DeviceRemovable	0x00
  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
Device Qualifier (for other device speed):
  bLength				10
  bDescriptorType		 6
  bcdUSB			   2.00
  bDeviceClass			9 Hub
  bDeviceSubClass		 0 Unused
  bDeviceProtocol		 0 Full speed hub
  bMaxPacketSize0		64
  bNumConfigurations	  1
Device Status:	 0x0001
  Self Powered

------------------------

  • 2 weeks later...

I have the same hardware (LE1700) and issue with the detachable keyboard... would like to know if you get it working!

 

Along these lines, was wondering if there is a way to place the PNP info for this keyboard in a plist file so it sees and treats it like a typical USB keyboard? Just an idea, haven't attempted this, not sure if it would be worth trying.

 

Thanks

Still no answer, but I'm slowly understanding some more.

 

Both in the Linux and in the OSX report, the Semtech device is reported as having three interfaces.

ioreg -l reports

IOUSBInterface@0

IOUSBInterface@1

IOUSBInterface@2

 

And, so does linux. In linux we can see that interface 0 connects to the keyboard, 1 to the mouse, and 2 I'm not sure.

When I looked at my Dell keyboard, it also reports a IOUSBInterface@0, which is then connected to IOUSBHIDDriver.

For now, I think that is the problem. IOUSBInterface@0 should connect to IOUSBHIDDriver also on the LE1700, but for some reason doesn't.

When I look at the IOUSBHIDDriver report for the Dell keyboard, I can see that it seems the driver claimed the interface, because

bInterfaceClass + bInterfaceSubClass + bInterfaceProtocol matched what the interface specified.

when I look into IOUSBFamily.kext/Contents/PlugIns/IOUSBHIDDriver.kext/Contents/Info.plist, I can see the following:

						<key>CFBundleIdentifier</key>
					<string>com.apple.iokit.IOUSBHIDDriver</string>
					<key>HIDDefaultBehavior</key>
					<string></string>
					<key>IOClass</key>
					<string>IOUSBHIDDriver</string>
					<key>IOProviderClass</key>
					<string>IOUSBInterface</string>
					<key>bInterfaceClass</key>
					<integer>3</integer>
					<key>bInterfaceProtocol</key>
					<integer>1</integer>
					<key>bInterfaceSubClass</key>
					<integer>1</integer>

As far as I understand, you need bInterfaceClass=3, bInterfaceProtocol=1, bInterfaceSubClass=1.

According to http://developer.apple.com/qa/qa2001/qa1076.html, that then gives you a "score" of 60000. This is indeed the score reported for the Dell keyboard. On the LE1700, IOUSBInterface@0 reports exectly the same numbers:

	| |   |   | +-o IOUSBInterface@0  <class IOUSBInterface, registered, matched, active, busy 0, retain 5>
| |   |   | |   {
| |   |   | |	 "bInterfaceProtocol" = 1
| |   |   | |	 "locationID" = 18446744073665576960
| |   |   | |	 "bcdDevice" = 100
| |   |   | |	 "bConfigurationValue" = 1
| |   |   | |	 "iInterface" = 0
| |   |   | |	 "idProduct" = 8549
| |   |   | |	 "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| |   |   | |	 "bInterfaceSubClass" = 1
| |   |   | |	 "bAlternateSetting" = 0
| |   |   | |	 "IOUserClientClass" = "IOUSBInterfaceUserClientV2"
| |   |   | |	 "bInterfaceClass" = 3
| |   |   | |	 "bInterfaceNumber" = 0
| |   |   | |	 "bNumEndpoints" = 1
| |   |   | |	 "idVendor" = 1146
| |   |   | |   }

(which also fits with what Linux reports), but for some reason this is not claimed by IOUSBHIDDriver or any other driver. I'm not sure exactly why. Could it be that this is because it is just one of 3 interfaces on the same device?

Maybe I should try to match one of the other possibilities mentioned, like (idVendor + bDeviceSubClass + bDeviceProtocol), or maybe

(idVendor + idProduct + bInterfaceNumber + bConfigurationValue)....

 

Does anyone understand these things? :jester:

I modified /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBHIDDriver.kext/Contents/Info.plist, and added the following:

	   <key>Motion Keyboard</key>
	<dict>
			<key>CFBundleIdentifier</key>
							<string>com.apple.iokit.IOUSBHIDDriver</string>
							<key>HIDDefaultBehavior</key>
							<string></string>
							<key>IOClass</key>
							<string>IOUSBHIDDriver</string>
							<key>IOProviderClass</key>
							<string>IOUSBInterface</string>
			<key>bInterfaceNumber</key>
			<integer>0</integer>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>idProduct</key>
			<integer>8549</integer>
			<key>idVendor</key>
			<integer>1146</integer>
	</dict>

But still no go.... nothing changed.

  • 2 weeks later...

Finally got it working after reading, search doesn't work very well.

Ghost got it from one of your other posts.

 

Try copying the whole Apple16X50Serial.kext to the desktop, delete the one in the extensions, reboot, then put it back in, repair permissions, and reboot again.

 

The only thing I have left is the outer buttons and the fingerprint reader. Have you guys found anything for that.

My USB mouse stops working about ever 10 minutes so I just unplug and plug back in and it works.

×
×
  • Create New...