Ubuntu Hardware: Debugging Hard Problems

Some of the work done to enable Sandybridge Suspend (S3) and Hibernate(S4) showed how painful it can be to get hardware to do what it oughts to do! The problem arises when you find yourself with not many tools to debug what is going on, since your console and half of the OS functionality has already gone to sleep.

BIOS Vendors rely on the use of expensive JTAG debugging tools. While this is ok, it does not really allow for the community to participate and considerably increases the cost of enabling a system to work with Ubuntu.

Faced with this problem, the Hardware Enablement team at Canonical has set themselves the goal in Oneiric to create a “tool to analyze and suggest where suspend/resume is failing to help guide people through debug phase” i.e an automated version of Colin King.

The basic idea is going back to debugging basics: “Have you hit that print statement before dying?”. The problem is that you are trying to instrument a fairly complex part of the systems and you do not have a screen to print stuff to.

For the first problem, the team is trying an ready available open source solution: System tap. For the second problem, they are going old school: Audio and Light signals. Today most systems have speakers and a few LEDs to let you know one thousand irrelevant things that you can do with your keyboard. So why not put them to good use?

The blueprint goes beyond a simple “BEEP” when you hit your breakpoint :

We would need some hardware to record the lights/sound at a sensible speed:

  • Have another PC record the audio and interpret it
  • Leverage ham radio code already done to interpret sound

With some initial prototypes already floating around, I can’t wait to see what they deliver!

3 thoughts on “Ubuntu Hardware: Debugging Hard Problems

  1. Hi Victor

    I don’t know how can this help, but I’ll tell you anyway. I spoke with Jono Bacon once, and he told me a story about a broken netbook – it’s screen was not turning on after the boot. So a couple of guys from Ubuntu (I’m sure Jono will remember who they are) programmed a special kernel model, which used a NumLock led to morse-code the console output with blinking, and then they used a webcam to catch the blinking and output it to the separate screen.

    I’m sure there are a lot of crazy stuff you can do 🙂

  2. Several laptop vendors (such as Dell) have start selling laptops that don’t have any led at all, I hope that the Hardware Enablement Team will take this issue into account.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s