Stefano Zacchiroli: why there are so many debian derivatives
A while ago I've been interviewed for a forthcoming article in
the LinuxUser magazine on
the topic of why there are so many Debian
derivatives and on the potential impact, on them, of
the (potential) advent of the so called "Debian Rolling"
experiment.
Below you can find my take on those topics. Questions are by
Ferdinand Thommes, who has been involved in various Debian
derivatives, including the forthcoming Siduction.
1.) Why do you think people base distributions on Debian? Looking at how many there is, since Corel and Libranet set sail in 1999, there must be a reason why, for one, people fork Debian in the first place, and secondly, why they choose Debian to do so and not some other distribution.There are always advantages in creating a so called "derivative" distribution with respect to creating one from scratch. The main one is the possibility of reusing the packaging work which is already done in the "upstream" distro, focusing derivatives' efforts on customization, usually with clear target public in mind. Debian pushes most of those advantages (for derivatives) at their extremes.
- The Debian archive is huge (about 30'000 packages with Squeeze), meaning that the amount of packaging work that can be reused is similarly huge.
- Debian has a long history and a well established community, which reduces the risk of "betting" the efforts of derivatives on a distro that might disappear anytime soon.
- Debian is well known for its obsession with package quality, meaning that the risk of trusting pre-existing packages is greatly reduced, and that package behavior is on average very dependable as well as documented in standard documents such as the Debian Policy
- Debian is also well known for its obsession with licensing, at the point of being considered by many one of the authoritative sources for deciding what constitutes Free Software and what does not. For derivatives that implies that they do not need to worry---as long as they trust Debian, of course---neither about legal redistribution risks nor about software freedom claims on their distro.
2.) What could be the benefits for Debian and for its Derivates, if the discussions about a second Debian Release based on the Testing branch really come to be reality?We are considering the possibility of adding a new Debian suite which is "rolling" like Testing, in the sense that new software releases flow in regularly rather than only at periodic bumps corresponding to major distribution releases. There seem to be user demand for that and I personally believe that such a scheme could address the needs of both advanced desktop users and of developers, which are now strand to mix and match Debian suites ending up using package combinations which benefit, as a whole, of very little quality check. The main issues to face to get there is how to make sure that adding such a suite would not get in the way of preparing high quality Stable releases, in terms of quality control, developer focus, etc. Note that such a hypothetical "rolling" suite needs does not necessarily need to be based on Debian Testing, although that is a good starting point. The reason why it's not a good endpoint is that Testing has been created (circa 2000), and is still used, as an internal tool to prepare the forthcoming Debian Stable release. As such, it is not entirely suitable for final user consumption. For instance, during the Debian "freeze" period the flow of new software releases that reach Testing is greatly reduced up to stopping completely just before the release of a new Debian Stable. I've been told that users of testing-based (derivative) rolling releases regularly complain about this aspect during Debian freezes, which is not surprising. The main advantage for derivatives which are already offering a Debian-based "rolling" release will then be the possibility of basing their work on a suite less bound to the life cycle of Debian Stable than Testing is at present. On the converse side, that would also mean that derivatives will need to differentiate more from Debian than by just saying they are "rolling", which is a good thing: differences among distros are healthy and drive innovation. With those derivatives, on the other hand, which will recognize their goals as being aligned with Debian's goals---Debian Stable today, maybe Debian "rolling" tomorrow---we will be happy to join efforts.
Fixing the Sandbrige MacBook Air display initialization
We left our hero with Debian installed on the MacBook Air, but with
the display getting scrambled as soon as the i915 driver loaded.
As was reported to Matthew, the problem is as simple as a lack of
the right mode for the eDP panel in the machine. This mode is supposed
to come from the panel EDID data, but for some reason the driver
wasn t able to query the EDID data, and so it decided to try some
random panel timings it dug out of the VBT tables, which are generally
supposed to be used by LVDS panels. Apple helpfully stuck valid data
there, but for some other panel one that is 1280x800 pixels instead
of the 1366x768 pixel panel in the MacBook Air.
I heard rumors that some machines would get a black screen when the
i915 driver loaded. I was fortunate my machine simply displayed a
1366x768 subset of the programmed 1280x800 mode. A bit of garbage on
the right side, and a few scanlines missing at the bottom. Quite
workable, especially after I ran fbset -yres 768 to keep the console
in the visible portion of the screen.
DDC failure
Looking through the kernel logs, the Intel driver tries to access the
EDID data and times out, as if DDC is just completely broken. This is
rather unexpected; the eDP spec says that the panel is required to
support DDC and provide EDID. Now, we ve seen a lot of panels which
don t quite live up to the rigorous eDP specifications, but it s a bit
surprising from Apple, who generally do VESA stuff pretty well.
We ve heard reports about panels reporting invalid EDID data, or EDID
data which didn t actually match the panel (causing us to prefer the
VBT data on LVDS machines). But I ve not heard of an eDP panel which
didn t have anything hanging off of the DDC channel.
But X works fine?
During early debugging, I happened to start X up. Much to my surprise,
X came up at the native 1366x768 mode. Digging through the kernel logs
after that, I discovered that EDID was successfully fetched from the
eDP panel while X started up.
At this point, I knew it was all downhill the EDID data was
present, it just wasn t getting picked up during the early part of the
driver initialization when the console mode is initialized.
eDP power management
The CPU is given complete control over the power management of the eDP
panel; sequencing through various power states and waiting appropriate
amounts of time when things change. Given the goal of keeping power
usage as low as possible, this makes a huge amount of sense.
The eDP spec is quite clear though, without power, the panel will not
respond to anything over the aux channel, and that includes EDID
data. The eDP panel power hardware in the Sandybridge chip has a special
mode for dealing with this requirement. If the panel is not displaying
data, you can supply power for the aux channel stuff by setting a
magic bit in the panel power registers.
When initializing the frame buffer, the kernel driver turns off the
panel completely so that it has all of the hardware in a known state
(yeah, this is not optimal, but that s another bug). When X started,
the panel was already running with the console mode.
Given the difference between these two states EDID querying with
the panel off failed, while EDID querying with the panel on worked, it
seemed pretty clear that the panel power wasn t getting managed
correctly. So, it seemed pretty clear that the magic power the panel
bit wasn t getting turned on at the right times.
Getting the power turned on.
I stuck a check inside all of the aux channel communication functions
to see where things were broken. This pointed out several places
missing the panel power calls. This wasn t quite sufficient to get
EDID data flowing. The remaining problem was that the code wasn t
waiting long enough after turning the panel power on before starting
the aux channel communication. A few msleep calls and huzzah! EDID at
boot time and the console had the right mode.
Making it faster
However, it turns out that the driver does this a lot, and the msleeps
required were fairly long the eDP panel wants a 500ms delay from
turning the panel power off before you can turn it back on.
I fix this by simply delaying the panel power off until things were
idle for a long time. Now mode setting goes zipping through, and a
few seconds later, the bit to force panel power on gets turned off.
Getting these bits for yourself
I ve pushed out the code to my (temporary) kernel repository
git://people.freedesktop.org/~keithp/linux
in the fix-edp-vdd-power branch. I d love to hear if you ve tried this
on either a MacBook Air or any other eDP machine from Ironlake onwards.
This morning, I was one of a mere 900 or so marathoners in the second (?) annual
Two tiny bits:
I used to know guys who would take old computer hardware out in the desert
and shoot it up. I never went, and I've never gratuitously destroyed
a computer in 2 decades of working with the things. Until yesterday when
I picked one up by the monitor and introduced it to the floor.
My regret isn't that I violently destroyed a computer, but that it was my
Mom's computer, and I did it right in front of her, and without even a
story-worthy reason, just out of garden variety frustration. And perhaps
there's some regret that I was actually unsucessful in destroying anything
other than the monitor and some speakers. The computer was salvaged, and my
mom has a new monitor and a working system again.
Sorry Mom & Maggie. To make up for it, I'll humiliate myself with
this recording of "broke mom's computer blues", which will only be
available for a very limited time:
Our friend Susan was going to be in Chicago for a conference, and as we hadn't
seen Chicago yet, and it was on the list of cities we wanted to visit, we made
the semi-spur of the moment decision to have a three day weekend there last
weekend.
We got the Virgin America red-eye flight from SFO, which left on Friday at
around 5pm, and got into Chicago at around 11:30pm, local time. Zoe didn't do
as well as she has previously, and didn't sleep very well on the flight
over, despite us getting lucky and scoring an empty seat between us on an
otherwise fairly full flight. I think she's getting too big to comfortably
sleep in the Ergo baby carrier (or isn't keen on sleeping vertically any
more).
We stayed at the
Just completed watching Ireland-Australia. What could I say except "I
knew they could make it"?
This so Irish team won the fight against Australia and, of course, I'm
happy. Let's dream for IRL-FRA in final...:)
Oh, that Rugby World Cup in case you hadn't noticed and such a game is
exactly why I like rugby.

I just download this tool 

Triaging bugs is one of the easiest way to start
3. Triage bugs!
Bug triaging is all about making sure that bugs are correctly classified so that when a developer looks at the bug list, he can quickly find bugs with all the information required to be able to fix them!
3.1 Adding information to bug
Adding supplementary information is easily done just by sending a mail to XXXX@bugs.debian.org (replace XXXX with the bug number).
But often you want to reply to a message in the bug history, in that case
There's more funny business when using ccache in combination with clang.