Chris, you're missing the point about libreboot entirely. Without it, there
would be *zero* viable options for systems that respect the users' freedom.
You're also dismissing the hard work that we put into the libreboot project,
every day. We've done more than your company has done, in the last 2 years,
compared to your company's entire ~6 years of existence.
About the "promotion of Lenovo" argument that ThinkPenguin puts out; this is
spin. We're not promoting Lenovo. We're providing free boot firmware. It
makes no difference which laptop we use.
Once again, I call slander on your comment that the libreboot project is
somehow undermining other efforts, or taking money away from them. That's not
what we do in the libreboot project. What ThinkPenguin is doing here is
spreading what's called "FUD" - fear, uncertainty, and doubt. They are doing
this, in order to confuse people and steer them away from the Libreboot
project.
There's something that the community should know about ThinkPenguin. They've
now motivated me to tell the story.
Chris,
Regarding point 1 that you made: I did indeed "play games with you" and
"refuse to cooperate", because you were actively opposing me and I thought
you were hypocrites. Here's the full story. When Gluglug started (company
that sells libreboot preinstalled laptops), libreboot was also founded. The
idea was (and still is) to provide users with computers that respected their
freedom, including at the BIOS level. ThinkPenguin was unhappy with this,
criticizing it at every turn because they felt that it was a bad idea to
"promote Lenovo" and that "x86 was a dead end". They had been trying to steer
people away from it, because they were worried about not being able to
continue selling their so-called "free" systems which actually had a non-free
BIOS. What did they then try to do? They wanted to *sell the Libreboot X200*
before Gluglug did, and get RYF before Gluglug did, to drive them out of
business. Gluglug was (and still is, now as Minifree Ltd) what funded the
Libreboot project. But worse than that, it was hypocritical of ThinkPenguin
to want to sell these laptops, given everything that they had said in the
past.
Some background:
I had been working with Steve Shenton, a British software developer who had
heard of the libreboot project several months before then. He wanted to port
the ThinkPad X200 to libreboot. Back then, it had coreboot support and could
be run blob-free, except for the Intel Management Engine. See
http://libreboot.org/faq/#intelme - older generations of Intel hardware can
have the Management Engine firmware removed, where the Management Engine
itself is permanently deactivated, and still work without any issues. The
Management Engine was the only obstacle preventing that laptop from being
added to libreboot. At that time, the newest laptops supported in libreboot
were the ThinkPad X60, T60 and MacBook2,1 (all using them same 2006-era
hardware: ICH7 southbridge, i945 northbridge, etc).
I worked with Steve (sgsit on freenode IRC) for months on solving the ME
issue. It wasn't as simple as just removing the ME firmware and then flashing
that, there were also other changes that you needed to make. Initially, he
found out how to disable it in hardware, by soldering a pin on the
motherboard called "GPIO33" to ground, but this also meant that the user had
to actually solder. We both decided that this was unacceptable. We wanted a
software method instead, and that's what he found. He spent weeks reverse
engineering Intel's proprietary utils for manipulating what's called a "flash
descriptor", trying to find what's called a "soft strap" that could be used
to disable the ME firmware.
On those (and newer) Intel systems, the flash chip is divided into regions.
On the X200 (without libreboot), these regions are: Descriptor (4KiB),
Management Engine / ME (2008KiB or 6100KiB), GbE (8KiB), platform data
(32KiB), BIOS (2MiB). These regions are defined in the descriptor, which the
hardware uses when booting the machine.
He wrote a proof of concept utility, called ich9deblob, that did the
following:
* Set bits in the descriptor, called "soft straps", which he found through
reverse engineering, that disable the ME and TPM.
* Disabled (removed) the ME and Platform Data regions, leaving only:
Descriptor, GbE and BIOS.
* Modified the descriptor so that it defined a GbE region just after the
descriptor, and the BIOS region to fill the rest of the space
The GbE region is non-copyrightable non-executable data for the onboard Intel
ethernet chipset, for networking. It contains everything, including MAC
address.
It sounds simple from the above summary, but it was weeks of solid work just
to find out how to do that, and to come up with a proof of concept, which
wasn't even very usable at the time. While this was in progress, I read the
same datasheets that Steve had access to, and learned everything from him.
Based in his proof of concept, I then spent *2 months* modifying the
ich9deblob utility. The first major thing that I did was reverse engineer the
format of the GbE region, writing code for ich9deblob that could generate it
from scratch.
At the time, in order to do this, you needed a dump of the original
Lenovo/Phoenix BIOS, from ich9deblob would extract the descriptor, make the
required modifications and then extract the GbE region, and create a 12KiB
Descriptor+GbE file, which you then inserted into a coreboot ROM image for
the X200 and then flash. At that point, you had a laptop where the ME was
entirely disabled, and not present at all. I should mention, that Steve made
this possible, and this was the first time that anyone had done such a thing.
However, ich9deblob in its form back then was unsuitable if we wanted RYF
endorsement, because the descriptor+GbE image that it generated was still a
"blob". However, the format of the descriptor and GbE regions were both
documented in datasheets.
Based on Steve's work, I spent *2 months* working flat out, on the following
modifications:
* reverse engineered the format of the GbE region, based on datasheets
* polished ich9deblob, made it easier to use, added the ability to change the
MAC address
* wrote a new util, from scratch, based on ich9deblob, called "ich9gen",
which could generate a fully libre descriptor+GbE file from scratch, without
an original firmware dump.
With the Descriptor and GbE fully reverse engineered, and with libreboot
flashed in the BIOS region, we then had a fully free system, upon which we
could install an ath9k wireless chipset and fully free GNU/Linux distribution
(such as Trisquel). The X200 was ready for FSF endorsement at that point.
During those 2 months, I also worked every hour of every day integrating all
of this into libreboot. This included documentation, integrating ich9gen,
testing, bug fixing, and more. I worked almost every hour of every day,
without breaks. I even worked on christmas day. Check the libreboot git logs
from around December 2014 and January 2015, and you'll see.
Chris and Bob are both incompetent when it comes to firmware development, and
would not have been able to contribute anything substantial to libreboot. Not
only that, but they were (still are) overly hostile towards the libreboot
project and the company that I had at the time (and still have, under a new
name) which funds the project. I saw it as hypocritical that ThinkPenguin
wanted to take the hard work of me and Steve, then profit from it without
giving anything back in return, at least not code wise. Chris did email me to
offer "donations" to the libreboot project, but this would have been very
little and not enough to sustain the project. I actually saw that as an even
bigger insult. It's like, they want to break your leg, and then offer help to
fix it for you.
No! I refuse to have masters. ThinkPenguin will never control me. Basically,
it was the biggest insult ever, and I wasn't about to lay down idly and
accept what they (ThinkPenguin) were proposing, which meant going out of
business and living in poverty, working for almost nothing.
ThinkPenguin was (and still is) a threat to the libreboot project. This is
why, I withheld everything X200-related, instead developing it on my own (and
working twice as hard). At the time of this development work, I was also
working with the FSF for RYF endorsement. Certification was granted, and on
January 24, 2015 I made a surprise libreboot release for the X200. 4 days
later, I went for a product launch on Gluglug (now minifree.org). On January
29, 2015 the announcement was made public. This concluded the months of hard
work that me and Steve put into it. I offered to pay Steve for his work, but
he thanked me and declined. He did it just for fun, and because he wanted to
help the libreboot project.
ThinkPenguin got everything they deserved. They tried to put me out of
business, and tried to directly undermine the work of the libreboot project.
I fought back, and won. That's all, really.
Minifree (and it's former incarnation, Gluglug) exists only to fund libreboot
development. I use it to pay for development work, infrastructure, research
and so on. It's getting to a point where the company is going to be able to
fund the very work that Chris has called for over the last few years but
hasn't done anything about (getting hardware actually manufactured). My work
on those ThinkPads is not long-term, and *will* come to an end. It's only a
stop gap, serving as a means towards an end. I don't care about Lenovo, at
all.