Hardware, past, present, and future.

gregkh's picture

Here's some thoughts about some hardware I was going to use, hardware I
use daily, and hardware I'll probably use someday in the future.

Thunderbolt is dead, long live Thunderbolt.

Seriously, it's dead, use it as a video interconnect and don't worry
about anything else.

Ok, some more explanation is probably in order...

Back in October of 2012, after a meeting with some very smart Intel
engineers, I ended up the proud owner of a machine with Thunderbolt
support, some hard disks with Thunderbolt interfaces, and most
importantly, access to the super-secret Thunderbolt specification on how
to make this whole thing work properly on Linux. I also had a MacBook
Pro with a Thunderbolt interface which is what I really wanted to get
working.


Thunderbolt Specification

So I settled in and read the whole spec. It was fun reading (side note,
it seems that BIOS engineers think Windows kernel developers are lower
on the evolutionary scale than they are, and for all I know, they might
be right...), and I'll summarize the whole super-secret, NDA-restricted
specification, when it comes to how an operating system is supposed to
deal with Thunderbolt, shhh, don't tell anyone that I'm doing this:

Thunderbolt is PCI Express hotplug, the BIOS handles all the hard work.

Seriously, it's that simple, at least from the kernel point of view.
So, it turns out that Linux should work just fine with Thunderbolt, no
changes needed at all, as we have been supporting PCI hotplug in one
form or another for 15+ years now (you remember CardBus, right?)

Some patches were posted to get the one known motherboard with
Thunderbolt support to work properly by the engineers at Intel (it seems
that the ACPI tables were of course wrong, so work-arounds were needed),
and that should be it, right?

Wrong.

It turns out that that Apple, in their infinite wisdom, doesn't follow
the specification, but rather, they require a kernel driver to do all of
the work that the BIOS is supposed to be doing. This works out well for
them as they can share the same code from their BIOS with their kernel,
but for any other operating system, that doesn't know how to talk
directly to the hardware at that level, you are out of luck. So, no
Thunderbolt support on Apple hardware for Linux (at least through May
2013, maybe newer models will change this, but I'm not counting on it.)

But wait, what about Thunderbolt support on other hardware? I was in
Hong Kong in early 2013, and of course found the chance to find the
local computer stores. I saw, on one wall of a shop, all of the latest
motherboards that were brand new, and would be sold all around the world
for the next 6+ months. None of them had Thunderbolt support on them.
It's almost impossible to find Thunderbolt on a motherboard these days,
and that doesn't look to change any time soon.

Then I read this interesting article that
benchmarked Thunderbolt mass-storage devices with USB ones. It turns
out that the speeds are the same. And that's with the decades-old USB
storage specification that is so slow it's not funny. Wait for
manufacturers to come out supporting the latest UAS specification (and
the USB host controller drivers to support it as well, Linux doesn't yet
because there is no hardware out there, wonderful chicken-and-egg
problem...) When that happens, USB storage speeds are going to be way
above Thunderbolt.

So Thunderbolt is dead, destined for the same future that FireWire ended
up as, a special interconnect that almost no one outside of Apple
hardware circles use, with USB ending up taking over the mass-market
instead.

Note, all of this is for Thunderbolt the PCI interconnect, not the video
connection. That works just fine on Linux as it isn't PCI Express, but
just a video pass-through. No problems there.

Present

I've been lucky to be using a Chromebook Pixel for the past few months,
thanks to some friends at Google who got it for me. It's the best
laptop I've used in a very long time, and I love the thing. I also hate
it, and curse it daily, but wouldn't give it up at all.

I'm running openSUSE Tumbleweed on it, not Chrome OS, so of course that
is the main reason I'm having the problems listed below with it. If you
stick with Chrome OS, it's wonderful, seriously great. My day-job (Linux
kernel work) means that I can't use Chrome OS as I can't change the kernel,
but almost everyone else can use Chrome OS, especially if your company uses
Google Apps for email and the like. Chrome OS is really good, I like it,
and I think it is the way forward for a large segment of laptop users.
My daughter weekly asks me if I'm willing to give the laptop to her to
reinstall Chrome OS on it, as that's her desktop of choice, and this
laptop runs it better than anything I've seen.

Here's the things that drive me crazy:

  • small disk size. It's ok for normal kernel work, but when I was
    trying to build some full-system virtual machines for testing, I
    quickly ran out of space.
  • slow disk speed. It's a "SSD", but I'm used to a real SSD speed,
    not this slow thing, where I can easily max out the I/O path doing
    kernel builds, as the processor quickly outraces it.
  • USB 2 ports, I could get around the disk size and speed if I had USB
    3.0, and I totally understand why there are only USB 2 ports in the
    laptop, but hey, I can wish, right?
  • various EC issues, the Embedded Controller in the laptop is "odd"
    and when you run a different operating system than Chrome OS, the
    quirks come out.
    I've learned to live with them, but I would love to see an update
    for the BIOS that fixes the known problems that are already resolved
    within the code trees. It's just up to Google to push that out
    publicly.

Here's the things that make me love this laptop:

  • the screen
  • the screen
  • the screen
  • seriously, the screen. It's beautiful, and is worth any problem
    I've had with this laptop.
  • wireless just works, no issues at all, great Atheros driver /
    hardware.
  • it's the best presentation laptop I've ever had. Gnome 3 works
    wonderfully with it, the external display adaptor can easily handle
    a different resolution. LibreOffice's presentation mode, with the
    speaker notes on the laptop, with it's huge screen looks wonderful,
    and the slides at a much lower resolution is just great. No
    problems at all with this, just plug the laptop into the projector
    and go.
  • very fast processors. Full kernel builds in less than 5 minutes, no
    problem.

There are some things that originally bothered me, but have been fixed,
or I'm now used to:

  • suspend / resume didn't work, that's fixed in 3.10-rc kernels.
  • resume used to throttle the CPU to only half speed, again, fixed in
    3.10-rc kernels.
  • keyboard backlights don't survive suspend/resume, there are fixes
    out there that hopefully will get into 3.11, it doesn't bother me at
    all.
  • lack of PgUp/PgDown/Home/End/Delete keys. The ever-talented
    Dirk Hohndel made a patch for the PS/2 driver (seriously, a PS/2
    keyboard?) that overloads the right Alt key and arrow keys to
    provide this fix, so this is solved, but it would be good to get it
    merged upstream, hopefully one day this will get there for others to
    use.
  • trackpad was annoying at first, but now I'm used to the three-finger
    tap for middle click. Oh, and I got a good wireless mouse to make
    it easier.

It's a great laptop, built really solid. I'd recommend it to anyone who
uses Chrome OS, and for anyone else if you like tinkering with your own
kernels (a small market, I know.) Later this year new hardware should
be coming out, with the same type of high-resolution display, and
beefier processors and bigger storage devices. When that happens, I'll
get one of them, and my daughter will greedily grab this laptop and
install Chrome OS, but until then, this is what I use to travel the world
with.

The future is glass

A few weeks ago, a friend of mine came over with a newly acquired Google
Glass device. I played with it for a few minutes, and was instantly
amazed at the possibilities it will provide. I, like probably lots of
you, have been reading books that describe different types of heads-up
or "embedded computers" for many many years, and I've always been
waiting for the day that this will become a reality.

Google Glass might not be the device described in science fiction books,
but it's the closest I've seen so far. The interface is completely
natural, the display is amazing, and the potential is huge.

And yes, you do look like a dork while wearing them, but that will
either become acceptable, or the device will shrink over time. I'm
betting on a combination of both of them.

But what I found even more amazing is what happened when the kids put
them on. The youngest put them on, and, as I explained on Google+ after
it happened, his responses went, in order:

  • "You could watch movies with this in class!"
  • "Google Glass, what is Iron Man?"
  • "Google Glass, what is 7 * 24"

So that was YouTube time waster, to to movie background information, to
homework solver in a matter of minutes. Total acceptance, no hesitation
at all, I think that's proof of just how big this will be eventually.

Later that day, we went to a neighborhood yogurt shop, and my friend
ended up stalling the checkout line for a long time as the teenagers
running the store insisted on trying them out and taking pictures of
each other and doing google searches to see just how popular their store
was (hint, it wasn't the highest ranking, which was funny.) After we
finally paid for our dessert, my friend was stuck demoing the device for
about everyone who came in the shop for the next 20 minutes. People of
all ages, kids to retirees, all instantly got the device and enjoyed
it.

So, if you've made fun of Google Glass in the past, try one out, and
consider the potential of it.

And of course, it runs Linux, which makes me happy.