X server and xinit works excellent....almost.

Chuck Swiger cswiger at mac.com
Thu Nov 10 01:35:21 UTC 2011


On Nov 9, 2011, at 5:01 PM, Polytropon wrote:
> In this regards, it's also strange how FreeBSD could "forget"
> USB information it once had.
> 
> On my old 5.x system, I got dmesg lines like that:
> 
> 	ukbd0: Sun Microsystems Type 6 USB keyboard,
> 		rev 1.00/1.02, addr 3, iclass 3/1 
> 	ums0: Sun Microsystems Type 6 USB mouse,
> 		rev 1.00/1.02, addr 2, iclass 3/1 

A USB standard device descriptor includes iManufacturer and iProduct fields, which are likely the source of the strings displayed above.  I guess the new USB stack doesn't bother to display them.

> Now that I have a type 7 keyboard, the USB information still
> is not useful:
> 
> 	% usbconfig -u 1 -a 3 dump_info
> 	ugen1.3: <Sun USB Keyboard vendor 0x0430> at usbus1,
> 		cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
> 	% usbconfig -u 1 -a 2 dump_info
> 	ugen1.2: <product 0x100e vendor 0x0430> at usbus1,
> 		cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
> 
> 	% dmesg | grep "^u[km]"
> 	ukbd1: <vendor 0x0430 Sun USB Keyboard,
> 		class 0/0, rev 2.00/1.05, addr 3> on usbus1
> 	ums0: <vendor 0x0430 product 0x0100,
> 		class 0/0, rev 1.00/1.02, addr 4> on usbus1
> 	ums0: 3 buttons and [XY] coordinates ID=0
> 
> You can also see that dmesg logs different data (0x100e vs. 0x0100).

The 0x0100 is for the mouse; the 0x100e is probably a USB hub, perhaps within the keyboard if the mouse attaches to the keyboard, although the database suggests it was a USB hub within a monitor.

>> If you figure out that a Logitech Tangentbord K120 (or an Apple
>> MC184S) is connected, then you've got a Swiss keyboard, and so
>> forth.
> 
> This is fine as long as you're going to keep that language
> settings. However, there are users who need a non-US language
> on a US keyboard layout - or vice versa. In such a case, the
> autodetection doesn't help.

The idea is that autodetection provides a suggested default, at least if it can identify a country for the input devices which are connected to the system.  But users should be able to set up their own language preferences, which might be different from the system default and from other user's settings.

> Your example with Apple hardware corresponds to my experience.
> I also have an older Mac keyboard which works fine on FreeBSD,
> including proper device identification.
> 
> My assumption still is: Not _every_ keyboard manufacturer does
> code the layout into the USB identification. If you tell me I'm
> wrong with this assumption, I'll be happy. :-)

Folks are supposed to use a different product ID for different devices, so you can uniquely identify them.  

I can't promise that every vendor handles this perfectly, any more than folks always ensured that PCI ids uniquely identified a specific hardware version, but one should blame the vendor for being brain-damaged in such cases; it isn't a fault of the USB standard....

Regards,
-- 
-Chuck



More information about the freebsd-questions mailing list