Tag Archives: computer

USB Sucks Badly?

I bought new hub to use on my desk: 7 port USB 3.0 one with switchable ports. Connected to USB 3.0 port and problems started…

Base of my desktop is P67X-UD3-B3 mainboard from Gigabyte which I have chosen due to amount of USB ports on back (alternative was one of Z68 based mainboard which would give me HDMI/VGA/DVI ports for integrated graphics). But now it looks like it was not good choice.

I have those devices connected:

  • Microsoft Optical Mouse with Tilt Wheel
  • Microsoft Natural Ergonomic Keyboard 4000
  • Future Technology Devices International, Ltd FT232 USB-Serial
  • Logitech Webcam Pro 9000
  • NEC HighSpeed Hub integrated in my second monitor
  • Genesys Logic based 7-port USB 3.0 hub on my desk
  • Samsung ML-2160 Laser printer

But when I plug any of those USB 1.1 devices all I have is “Not enough bandwidth for new device state.” message from kernel. Faster devices are fine so I can connect pen drives, hard drives, phones or tablets. But forget about USB-Serial dongles or Yubikeys or BlueTooth…

Why’s that? Take a look at “lsusb -t” output:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 1: Dev 7, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 1: Dev 28, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 29, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 62, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 2: Dev 54, If 0, Class=Printer, Driver=usblp, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 3: Dev 10, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 2: Dev 11, If 0, Class=Video, Driver=uvcvideo, 480M
            |__ Port 2: Dev 11, If 1, Class=Video, Driver=uvcvideo, 480M
            |__ Port 2: Dev 11, If 2, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 2: Dev 11, If 3, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 3: Dev 12, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M
        |__ Port 5: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 5: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 6: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

How many EHCI buses do you see? You may say two (as there are two ehci-pci entries) or you may say four (as there are four 480M buses). I would say that “not enough” is best answer.

I played with cables to move devices from 2nd bus to 1st one, moved printer from 3rd bus to 5th (which is two USB 3.0 connectors on top of computer’s case) and still not enough bandwidth for Yubikey or other USB 1.1 device. Note that all devices plugged into on-desk USB 3.0 hub lands on 3rd (1.1/2.0) or 4th (3.0) bus.

During next few days I will plug extra USB 2.0 controller to check will it improve situation after keyboard, mouse, monitor, webcam, ftdi move there.

UPDATE: turns out that USB 3.0 hub does not fully conform to specification. In the end I have added USB 2.0 hub (connected to 2.0 port) just for my USB 1.1 devices.

How to get Zoom slider on Microsoft keyboard recognized by X11

If you are using Microsoft Natural Ergonomic Keyboard 4000 as I do you may wondered how to get that zoom slider in a middle to be useful. Thanks to Hans de Goede there is a solution.

There is one new file and changes to other needed. First we need to instruct udev to remap some keys for us. Create /lib/udev/hwdb.d50-msoffice-keyboard-xorg.hwdb file with this content:

# classic msoffice keyboard
keyboard:usb:v045Ep0048d*dc*dsc*dp*ic*isc*ip*in01*
 KEYBOARD_KEY_0c0184=documents          # KEY_WORDPROCESSOR to KEY_DOCUMENTS
 KEYBOARD_KEY_0c0186=finance            # KEY_SPREADSHEET   to KEY_FINANCE
 KEYBOARD_KEY_0c018e=chat               # KEY_CALENDAR      to KEY_CHAT
 KEYBOARD_KEY_0c01a3=nextsong           # KEY_NEXT          to KEY_NEXTSONG
 KEYBOARD_KEY_0c01a4=previoussong       # KEY_PREVIOUS      to KEY_PREVIOUSSONG
 KEYBOARD_KEY_0c01ab=search             # KEY_SPELLCHECK    to KEY_SEARCH

# Microsoft Natural Ergonomic Keyboard 4000
keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_0c01ab=search             # KEY_SPELLCHECK    to KEY_SEARCH
 KEYBOARD_KEY_0c022d=scrollup           # KEY_ZOOMIN        to KEY_SCROLLUP
 KEYBOARD_KEY_0c022e=scrolldown         # KEY_ZOOMOUT       to KEY_SCROLLDOWN

In Fedora rawhide I also needed to edit 60-keyboard.hwdb file (same directory) to disable some definitions:

# Microsoft Natural Ergonomic Keyboard 4000
#keyboard:usb:v045Ep00DB*
# KEYBOARD_KEY_c022d=zoomin
# KEYBOARD_KEY_c022e=zoomout

Now update of hwdb is needed:

sudo udevadm hwdb --update
sudo udevadm control --reload

And the only thing left is replugging the keyboard (or system reboot). As a bonus you get XF86Search button instead of non-working Spell (F10). Those who use Microsoft Office Keyboard (old one with scroller on left side) will get all keys working as well but they also need 3.14 kernel to get all recent fixes.

And why all that is needed at all? Simple — Xorg is still sitting in 80s when it comes to handling keyboard and ignores all keycodes with >8bit values. I hope that Wayland does not follow that way and does/will just take whatever system under is telling about input devices.

13:58 hrw@tygrysek:~$ sudo poweroff

Over month ago OVH started offering “KS 2G” servers for 15 PLN per month. Like few other friends I decided to take it.

Waiting for new machine took nearly a month but finally got it. I had a small problem with a name for it. But as “KS 2G” is smaller than i5 where my previous system was hosted I decided to reuse name “malenstwo” (Roo from “Winnie the Pooh”) which before was attached to PandaBoard(s).

Copied data from previous server (named tygrysek due to Tiger), updated Ubuntu to 13.04 and started to migrate services. And today I moved last one and sent my Xen VM instance to shredder…

What changed? I have “bare metal” machine on which I can do experiments and do not have to worry about users of other Xen instances like it was before. Have native IPv6 address so sending backups to my home will be easier.

I am running out of names for computers

Somewhere in 2010/11 I decided to clean up mess of naming machines at home and decided to go with character names from “Winnie the Pooh” books (Polish edition). Today I got new developer board and had to spend a moment to get a name for it.

So “klapouchy” (Eyeore) will be new name for DragonBoard. Maybe not best one but most of the names are already taken:

  • krzys (Christopher Robin) is my router (because Chris decides who can enter Hundred Acre Wood which is the name of my WiFi network)
  • puchatek (Winnie the Pooh) is main desktop
  • lumpek (Lumpy) is conference laptop (it was lucek before because it got Ubuntu Lucid as first system)
  • gofer (Gopher) is Efika MX Smartbook
  • krolik (Rabbit) is Samsung Chromebook
  • malenstwo (Roo) is Pandaboard (there were malenstwo-a1 and malenstwo-ea1 when I had two boards)
  • prosiaczek (Piglet) was MX53 Quickstart
  • kangurzyca (Kanga) is my wife laptop (she chosen the name)
  • sowa (Owl) is another router
  • tygrysek (Tigger) is my VPS (at beginning it was up/down/up/down all the time)

So most of the names from books are already taken. There are also Disney movies which adds few new ones (like Gopher and Lumpy) and cartoons (which I am not fan of). In worst case one day I will start re-using names or add names from other story.

What I used before? Desktop was “home” or “hrw”, Dell laptop (now “kangurzyca”) was “maluch” (small) due to 12″ size, “lumpek” was “lucek” due to Ubuntu Lucid installed and rest was named by hardware name (which is a default in OpenEmbedded).

How you are naming your machines?

New hard drive

During UDS-Q I bought 3TB Seagate disk in USB 3.0 enclosure. Today I finally connected it to my desktop, formatted as ext4 and mounted.

I am surprised by speed of USB 3.0 – 147MB/s according to hdparm test is more than rest of my hard drives have. If technology will increase that way my SSD may became obsolete at time when another hdd will join my setup.

What for 2.73TB drive someone may ask. I plan to use it for backup of my machines.

Scythe Mugen 2 and socket 1155 mainboard

When I moved my home machine to i7-2600K I realized out that Scythe Mugen 2 cpu cooler which I was using lacks elements to mount it on socket 1555 motherboard.

I looked at shops and found out that I need SCCSMG2-1156 (Scythe Mugen 2 mounting kit for Socket 1156/1155) as I have quite old version of cooler (then there was Rev. B released with support for all socket types). But then problem started — no one in Poland had them…

So I contacted Scythe directly and later after spending 10€ I got mounting kit delivered at Xmas Eve. Took me some days to find time to mount it.

First attempt ended with lot of curses, angry email to Scythe and stock cooler mounted again.

But I decided to not give up. Did some extra research and found this YouTube video where I saw that I mounted bolt screws wrong…

So I did another try. This time it fitted perfectly and I can enjoy silence.

Next step: replace new case fans with more quiet ones.