Cover photo
Greg Kroah-Hartman
Works at Linux


Greg Kroah-Hartman

Shared publicly  - 
1500+ kernel patches processed the past 2 days, boiled down to about 400-500 different patches actually applied, keeping the normal 1/3 of all patch emails sent that get applied ratio true to form.

Now just 1500 more to go, all for char/misc things that I've been ignoring for a month or so, the end is in sight now that the staging, tty, and usb driver trees are now up to date.
Marc MERLIN's profile photopunit vara's profile photokoos vriezen's profile photoDrew Fustini (pdp7)'s profile photo
The kernel is the last part on most of my linux systems that I still compile myself. Very much thanks to make the latest kernels so stable.
Only my dell xps 13 touch needs a few reboots to get a stable system, tried up until 4.5-rc3. Because some reported success by late loading hid_multitouch and my ethernet via dell 4-1 also hangs the network setup on boot, I'm currently eyeing at the usb fixes. Strangely how longer the device was turned off, how worse it gets. Maybe a too low powering up timing (my limited electric skills thinks about a capacitor).
Suspend/resume might be broken because of that too, when suspended longer, chance of proper resuming degrades.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
I've been working on selling our house for the past few months, which is why I've gotten way behind on applying patches (sorry about that), and ran across this old bottle at the back of the liquor cabinet.

I doubt a vintage like this is supposed to be aged for 15 years in the bottle, so I guess I should finally drink it, but what kind of food are you supposed to pair "Holy Penguin Pee" with? I think that's what has stumped us for all these years and is why it is still unopened...

Any suggestions?
Grant Grundler's profile photoGeert Uytterhoeven's profile photoMasashi Tashiro's profile photoOleg Nizhnik's profile photo
+Anand Kumria The laptop bags are more convenient to take on the plane. The last thing you want is blessing conveyor belts with holy penguin pee...
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
Ugh, no fun, but at least I can blame my random kernel crashes on the hardware, not the kernel.

Now, how do I figure out which stick of RAM this is...
Alexey Shvetsov's profile photoGuillermo Amaral (gamaral)'s profile photoEric Curtin's profile photoSteffen Sandvold Lundin's profile photo
So annoying when this happens, happen with two machines of mine in a row. My Windows work machine (I have no choice of OS unfortunately) kept randomly blue screening every 3 or 4 days and I kept saying "stupid windows drivers" to myself. Turned out it was ram when I finally got around to doing a memtest .
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
Time to go home terminology, you're drunk...

Actually, it's an interaction with the latest Arch Linux xorg update, but this means I have to go back to gnome-terminal for a few days until it gets sorted out, as the latest terminology source tree also has the same results as the pre-built package I show here, so odds of it being a terminology bug is probably pretty low...

Update, was a bug in Harfbuzz, now fixed, all is good.  Many thanks to the quick response from the Terminology and Harfbuzz developers.
Greg Kroah-Hartman's profile photoLinux Lady05 Winter's profile photoKrzysztof Wilczynski's profile photoSeth Galitzer's profile photo
Yes, this is now fixed, many thanks for the quick response.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
A USB controlled power supply to power a USB powered device. The circle is now complete...
Jean-Marc Liotier's profile photoDrew Fustini (pdp7)'s profile photoSelvaraj V's profile photoGeorgios Tsotsos's profile photo
I have always been powering my raspi with a usb hub. Also, 9 additional usb ports are really enough of those.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
I can store lots of "secrets" with this tray...

Many thanks to +YubiKey for the devices for user access, I'll be shipping these around the world in the next few weeks for those that need one.
Bob Looter's profile photoDrew Fustini (pdp7)'s profile photoWilliam O'Bryan's profile photozheng ping (pingz)'s profile photo
are those yubikey 4's? (I hope so 'cuz I just ordered on from them.)
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
GPLv3 and the automotive industry, this is a good summary of the issues involved.

And no, it's not like anyone ever warned the v3 process that stuff like this wouldn't happen... {sigh}

This will be interesting to see how it plays out over time in an industry with such small margins and low volumes compared to the "traditional" computing industries.
Philippé Lucas Béccard's profile photoNishanth Menon's profile photoPeter Baumann's profile photoAnders Darander's profile photo
I work in the automotive industry and we have very strict rules to never include or use GPLv3 projects in our Linux builds.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
I returned home from being in Cambridge this week to this package from the LTSI sponsors. I've been known to "code for hardware" at times, but this is a very nice surprise, one that I am very thankful for.

It's really wet and stormy up here in the Seattle area at the moment (much more so than normal), so this is the perfect thing to use to stay warm.

Oh, and speaking of the LTSI kernel, the -rc1 release for the 4.1 release is out for testing, go try it out and see if you have any problems with it. It is on its way to many consumer devices soon after the new year if all goes well:

Grant Grundler's profile photoSriram Ramkrishna (sri)'s profile photoConrad Meyer's profile photoIrikefe Osah's profile photo
+Sriram Ramkrishna , Woodinville Whiskey from WA is supposed to be pretty good.  They don't distribute outside the state, though, as far as I know.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
Great summary of USB type C cables and how they work.
USB Type C’s Configuration Channel

I’ve been getting questions about why certain kinds of USB adapters or cables work to charge new Type-C devices, and why other adapters are necessary to charge legacy devices from Type-C chargers.

This post will explain why, and will do a deeper dive into Type-C’s Configuration Channel (CC).

USB Type-A and Type-B
But first, I will start out with a description of how USB worked before Type-C so that we all understand some of the basic concepts.

USB cables are directional, meaning that each end of a cable has physically different plug: Type-A plug (the rectangular port and plug we find on our PCs, hubs, and chargers), and a Type-B plug (the squareish plug, or the smaller mini-B and much more common micro-B variants).

USB systems always form a tree based structure with a single USB host at the root (typically your PC), and one or more devices as leaves. USB was designed this way for simplicity. Hubs always have exactly one Type-B port and one or more Type-A ports. Devices by definition only have one Type-B port. Type-A plugs always plug into something that is closer to the root, or in other words Type-A plugs point “upstream.” Type-B plugs always plug into something that is further away from the root, or in other words Type-B plugs point “downstream.”

This architecture prevents problematic loops that are possible with other systems that have the non-directional cables, for example, Ethernet. A user simply cannot set up an incorrect USB tree by virtue of the physically different plugs and connectors.

Enter Type-C and CC
Type-C does not just replace one of the two classic USB connectors. It replaces both A and B types, making completely symmetrical and reversible Type-C cables possible. This does beg the question though: Does this mean that since the connectors and the plugs are physically identical that the tree structure of USB is no longer enforced?

The answer is no. USB Type-C systems still maintain the same tree structure as before with one USB host and one or many USB devices. Instead of a physically different connector and plug to signify the direction of data and power, USB Type-C devices now indicate their roles electrically through a brand new mechanism: the Communication Channel or CC.

Each USB Type-C port has 2 CC pins, oriented in such a way that when you flip the cable over the the CC pins in the cable plug always land on one of the two CC pins.

The new USB specification defines a new set of terminology to represent different ports, now that both types of ports are now share the same formfactor:
* “Type-A” ports become Downstream Facing Ports (DFP)
* “Type-B” ports become Upstream Facing Ports (UFP)

A resistor is placed on CC to mark whether a Type-C port is a DFP or a UFP:
* DFP uses an Rp, or a pull-up resistor between CC and Vbus
* UFP uses an Rd, or a pull-down resistor between CC and Vbus

When a DFP (usb host) is connected to a UFP (usb device) by means of a cable, the CC on both sides are connected together, and the shared CC line has both a pull-up and a pull-down on it. Both sides read the voltage on this line and can recognize that a connection has just been made when the voltage becomes a predictable value.

There’s more! The CC lines are also how Type-C implements connector “flip”ability or cable twist. Remember I noted that there are actually 2 CC lines in the Type-C cable that happened to line up such that each CC on the plug side will always line up with a CC in the connector. By monitoring the voltage on both CCs, a host or device can figure out which orientation the cable is in and route the other wires appropriately.

Legacy cables and adapters
CC works great when you have all Type-C cables and ports, but Type-A hosts and Type-B devices will still exist. Type-A and Type-B ports and plugs do not have the new CC line, but what happens when you try to connect a Type-A host or Type-B device to a Type-C host/device?

The cables and adapters themselves must provide the proper CC pullup or pulldown in lieu of the Type-A or Type-B port that is missing the CC pin. Here are the two classes of cables :

* Legacy Host Port Adapter - Standard-A plug or Micro-B receptacle on one end - Requires a 56kΩ pullup from CC to Vbus
* Legacy Device Port Adapter - Micro-B plug, or Standard-A receptacle, or Standard B plug on one end - Requires a 5.1kΩ pulldown from CC to Gnd.

Many people ask me if “OTG” adapters are allowed in USB Type-C, and the answer I always give is that “OTG”, an older USB standard that allowed for devices to swap roles, doesn’t apply to USB Type-C, and that the adapter they are probably looking for is the Legacy Device Port adapter above that goes to a Standard-A receptacle for a USB flash drive, for example.

An example of a Legacy Host Port adapter for sale is this A-to-C cable from Google:
An example of a Legacy Device Port adapter for sale is this A-port-to-C adapter from Google:
So, the Type-C legacy cables that you can buy on the market today have (or at least are supposed to have) the correct resistor such that their roles are always fixed.

*On Legacy Host Port Adapters, power and data always flow toward the Type-C plug.
*On Legacy Device Port Adapters, power and data always flow from the Type-C plug.

This also answers the question that some have asked why they can’t simply chain together a clever series of adapters and non-compliant cables and hope it will charge their phone.

This leads to the topic that I’ve been quite vocal about in my Amazon reviews, which is power. The original USB port provided 500mA at 5V, or 2.5W of power. Ever since USB micro-B became the near universal standard for cell phone and other handheld device charging (thanks, Europe!) there’s been an arms race to increase the power that a USB charger or port can provide over the same wire to a device.

In the past decade, the USB-IF and other 3rd parties (most notably Apple) have responded by creating protocols that allow for chargers to deliver higher currents over the same wire to supported devices. They do this by signaling over USB’s data lines (D+ and D-). Chargers that support USB’s Battery Charging 1.2 specification may support up to 1.5A, while Apple’s protocols allow for 1A, 2A, and 2.4A levels.

With the USB Type-C specification, the requirements are beefed up so that every cable must be able to support 3A, however, that doesn’t mean that 3A is possible in every situation : the charger or power source must still be able to provide it, which is where CC comes in.

Remember before that every DFP (Downstream Facing Port or Host port) must use an Rp to identify itself as a DFP. The USB Type-C specification actually uses different values of resistance of Rp in order to allow the DFP to advertise its supply capabilities:

* Default USB Power - 56kΩ pullup
* 1.5A - 22kΩ pullup
* 3.0A - 10kΩ pullup

The bottom two modes are only allowed on non-legacy USB Type-C ports and cables, and only if the power supply has satisfied the electrical requirements to meet a 1.5A or 3.0A load. Under no circumstances may Legacy cables use 1.5A or 3.0A advertisements.

Legacy cables must use “Default USB Power” which at a minimum, means that it restricts it to 500mA for USB 2.0 or 900mA for USB 3.1. However, “Default USB Power” still allows for the negotiation on USB’s data lines D+ and D- using all of the protocols that would have worked on USB A-to-Micro-B cables, meaning that a Default USB Power legacy cable should be able to provide from 500mA to 2.4A of charging.

The specification allows a Type-C DFP power source to actually modify the Rp value in response to changing conditions.

For example, a 3A charger may be built with two USB Type-C ports. When one device is plugged in, it should advertise to that device a 10kΩ pullup to tell it that it can draw 3A. When a second Type-C device arrives, the charger can change the Rp on the first port to 22kΩ to tell it that it can only draw 1.5A. The second port may also be given a 22kΩ Rp, balancing the loads evenly across both ports.

When one of the devices is detached, the charger could even recognize that it's back down to 1 consumer, and give that port back its 10kΩ pullup, allowing it to draw 3A again.

Conclusion and Much More
USB Type-C’s configuration channel provides a ton of functionality. To summarize :
* Determines role, Host Vs. Device
* Determines when devices are attached to host
* Determines orientation, allowing for Type-C’s “flipability”
* Negotiates up to 3A power between charger and device.

There’s actually MUCH more that CC does, specifically, the configuration channel is integral for USB Power Delivery, a protocol that allows for much more robust, flexible and complex communication between both sides, and for Alternate Mode too…

Just as a preview for next time, CC, PD, and Alt Mode allow for :
 *Negotiated higher voltage and current, up to 20V, 5A for 100W of power
 * Power role switching, so your hub powers your laptop, instead of the other way around
 * Data role switching
 * Alt mode, so you can use your USB cable to display video, or much much more.

See you next time!

#USB   #TypeC   #USBC
46 comments on original post
Selvaraj V's profile photoIgor Grinberg's profile photoSrikant Patnaik's profile photoMark Shroyer's profile photo
Informative writing, thanks.
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
Anyone interested in a release engineer position?

The Linux Foundation is currently looking for a talented individual to join our IT team supporting a (yet unannounced) incoming project that will develop software for networking and virtualization (alongside, but not quite the same as OPNFV and OpenDaylight). Core responsibilities:

- Gerrit
- Jenkins/Nexus/SonarQube/etc
- OpenStack for CI builders
- Strong networking skills (vlans, firewalls, routing, tcp)
- Puppet

We can hire anywhere in US, Canada or Australia, starting ASAP. This is a full-time remote worker position with a full bouquet of benefits.

Please send your resume to if that's something you're interested in, or please reshare with someone who you think will be a great fit.

View original post
Rui Seabra's profile photoDavid Nystrom's profile photoPeter Senna Tschudin's profile photoReihmon “mongkoy” Estremos's profile photo
Openstack network virtualization at the linux foundation.  Only thing I can think of outside of core neutron would be plumgrid (they are using BPF)...
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
People wanted me to post when I set up a machine based on the recommendations I got last time I asked what processor to get, so here it is, an Intel i7-6700K with an ASRock motherboard, picked because of all of the type-C USB connectors it provides (2, 1 in front and 1 in the back), as well as 2 different USB 3 host controllers (one on the chipset, another on a strange adapter card that somehow goes through the SATA interfaces).

Problem is, it doesn't like to boot. No, what I mean is it really likes to boot, so much so that when booting Linux, it likes to just reboot after a second or two, just because it enjoyed rebooting so much last time...

I think it's happening when initializing the graphics, and seems happens both with 4.2.5 (Arch Linux's latest install image) and the Fedora 23 install image (don't know what kernel that is). Will run memtest overnight to see if anything "obvious" shows up, otherwise it's time to dig and get a newer kernel (4.3) on the install image to see if that solves the issue.

Hm, in typing this out, I guess I should have tried single-user-mode, I'll do that tomorrow when memtest is over, gotta love rubber ducky debugging...

Cédric Bonhomme's profile photoJeeth Pais's profile photoWolfgang Walter's profile photoZeno Davatz's profile photo
Nope, spoke too soon, still likes to reboot for no apparent reason, but I can get a custom kernel on here easier, so I now have a chance...
Add a comment...

Greg Kroah-Hartman

Shared publicly  - 
Yes, you should get one.
So yesterday, the 10th of November, was the official launch day of the Steam Machines. The hardware are meant to be dedicated game machines for the living room taking advantage of the Steam ecosystem, to take on the Xbox One and PS4. But for us in the Linux community these machines are more than ...
1 comment on original post
Jasna Benčić's profile photoBernhard Ferlemann's profile photoBernhard Friedreich (friesoft)'s profile photoCameron Wood's profile photo
I plan on purchasing a steam controller soon. Maybe I'll get a steam machine in the future.
Add a comment...
  • Linux
Basic Information