22

Does linux support usb-c yet? So far only the power function seems to work, my phone will start charging when I plug it in.

I'm wondering if Ubuntu supports USB-C yet - in my experience, only the charging feature works when I connect my phone.

Are there extra program needed to enable it?

If it is not available at all yet, is there a good place to follow progress on the development?

  • 1
    It at least partially works with 4.4 kernel. ubuntuforums.org/… – oldfred Jan 11 '16 at 14:25
  • @oldfred I do follow that thread I will post an answer here as soon as something valuable shows up. – Calin Jan 11 '16 at 17:06
  • What's the make and model of your computer? USB data transfer and video out work with USB type-c adapters on some Dell machines I know. – Anthony Wong Jan 20 '16 at 2:28
  • Is the latest XPS 15 with i7 Skylake processor – Calin Mar 14 '16 at 20:37
  • Are you sure your phone is in whatever mode it needs to be? Some phones will not show up unless the phone is awake, unlocked, and configured to appear as mass storage. – SomeoneSomewhereSupportsMonica Apr 20 '16 at 22:58
10

There are multiple parts to answer this question, first is does the linux kernel support USB Type-C; the answer is yes. The next thing to consider is, does the kernel you're currently using have that functionality yet? That's probably yes unless you're using a really old version of Ubuntu.

The next part is the important part: Does your USB host controller have a driver in the kernel? To find the answer you can type lspci -d ::0c03 -k you should find output like this:

00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
    Subsystem: CLEVO/KAPOK Computer 8 Series/C220 Series Chipset Family USB xHCI
    Kernel driver in use: xhci_hcd
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
    Subsystem: CLEVO/KAPOK Computer 8 Series/C220 Series Chipset Family USB EHCI
    Kernel driver in use: ehci-pci

Intel chipsets usually have the best support, and most usb chipset makers claim to have linux support on their websites for their USB Type-C chipsets. If you need more specific information about your type of usb controller, you can ask a question with this information in it.

If you have a driver, then the next part is to see what happens when you plug something in in the kern.log file, type tail -f /var/log/kern.log and plug and unplug some usb type-c device. For a usb-2 device, this is the kind of output one would see:

Jun  3 14:29:24 delen kernel: [10007.452686] usb 3-2: new low-speed USB device number 4 using xhci_hcd
Jun  3 14:29:24 delen kernel: [10007.584351] usb 3-2: New USB device found, idVendor=13ee, idProduct=0001
Jun  3 14:29:24 delen kernel: [10007.584356] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun  3 14:29:24 delen kernel: [10007.584359] usb 3-2: Product: AND 
Jun  3 14:29:24 delen kernel: [10007.584361] usb 3-2: Manufacturer: MOON
Jun  3 14:29:24 delen kernel: [10007.584363] usb 3-2: SerialNumber: @ɌAB
Jun  3 14:29:24 delen kernel: [10007.584567] usb 3-2: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
Jun  3 14:29:24 delen kernel: [10007.599137] hidraw: raw HID events driver (C) Jiri Kosina
Jun  3 14:29:24 delen kernel: [10007.604255] usbcore: registered new interface driver usbhid
Jun  3 14:29:24 delen kernel: [10007.604258] usbhid: USB HID core driver
Jun  3 14:29:24 delen kernel: [10007.606568] input: MOON AND  as /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:13EE:0001.0001/input/input26
Jun  3 14:29:24 delen kernel: [10007.606725] hid-generic 0003:13EE:0001.0001: input,hidraw0: USB HID v1.00 Mouse [MOON AND ] on usb-0000:00:14.0-2/input0
Jun  3 14:29:27 delen kernel: [10010.189280] usb 3-2: USB disconnect, device number 4

If you see nothing happening, then you don't have a driver or it doesn't really work (or the thing you're trying to plug in is switch off or broken).

You can use the log information above to understand what might be happening, it documents things like device use switching (power vs. data vs. display) and can tell you a lot about why the mode you want isn't being used.

The last part of usb type-c is as a display port. I could only find information about Google Chromebooks which have this port and no information about if the functionality had made its way into the mailline kernel (google does not always push for upstream patches of it's kernel code).

| improve this answer | |
  • Thanks for the comment, my usb-c issues was a little weird it the latest kernel's the detection strated working but there where other issues bugzilla.opensuse.org/show_bug.cgi?id=973138 – Calin Jun 5 '16 at 14:59
  • Good to hear it was a driver issue, can you comment on which driver it was for the record? – Martin Owens -doctormo- Jun 8 '16 at 1:26
  • Not sure how to figure that out, I've switched computers in the mean time – Calin Jun 8 '16 at 9:16
  • Matches my experience on Dell precision 5510 and ubuntu 16.04. The ethernet port on the Dell 4 plug dongle worked fine from start. The USB-2 plug in the USB_c dongle did work for a while, but quit when kernel updated. I don't have power connecter to test USB-C ability to receive power. – pauljohn32 Oct 14 '16 at 5:14
  • I will mark this as answer, looks like a very good detailed explanation, unfortunately I don't own a Dell anymore. – Calin Apr 8 '17 at 16:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.