Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Forum

  Home arrow Linux For Devices Articles arrow Installing Debian Linux on a Pentium-M mini-ITX SBC

Installing Debian Linux on a Pentium-M mini-ITX SBC
By Linux Devices

Rate This Article: Add This Article To:

This article explains how to install Debian Linux on a Lippert Thunderbird mini-ITX motherboard based on a Pentium-M processor. Though not specifically an embedded project, it does involve a form-factor -- mini-ITX -- that's increasingly popular with embedded device and system developers.

And, it involves an operating system -- Debian Linux -- that is the third-most popular source of Linux among embedded developers. Additionally, the project presented obstacles similar in nature to those faced by embedded Linux developers working with any board with relatively new chipsets. Thus, the techniques used -- and lessons learned -- in this process may be useful to many developers of embedded systems.


Lippert's Thunderbird mini-ITX motherboard


The Thunderbird is available in an actively cooled version with a 1.6GHz Pentium M processor, and a passively cooled version with a 1.3GHz processor. Both support Linux, but do not come with a Linux board support packages. This article discusses the former, but should apply mostly to both.

The Thunderbird's architecture is similar to that of Centrino laptops, with an 82855GME Northbridge and an ICH4 Southbridge. Despite its low clock speed, the Mobile Pentium is a very fast chip, on par with P4's clocked much higher. Like Centrino laptops, the board integrates a mini-PCI slot "compatible with any mini-PCI card," according to Lippert, including WLAN cards, modem cards, and several mini-PCI bridge cards from Lippert, including firewire, serial hubs, and, for true embedded projects, disk-on-chip.

Initially, I hoped to use the Thunderbird with an LCD module -- the board features a single/dual-channel LVDS supporting LCDs up to UXGA resolution (1600 x 1200) with 18/24-bit color, according to the specification sheet. However, I soon learned that setting up an LCD is something of a black art, with very little standardization of interfaces, cables, or components, and very little information available about recent LCDs from Asian manufacturers. I am forced to conclude that LCDs are not the domain of hobbyists. (Little wonder that VIA does not offer its LVDS-equipped mini-ITX board to the general public).

Lippert offers the Thunderbird standalone or in a kit with a low-profile PC2700 512MB SDRAM module from Siemens and a CPU. The board supports up to 1GB of SDRAM, although I found I had to manually set the BIOS memory speed to 266MHz in order to get a 1GB module from GigaRAM to work.

Other parts I used include:
  • Inexpensive 2.5 x 10.5 x 11.5 in. Morex mini-ITX case with 55w external power brick and DC-DC converter -- $30 on eBay
  • Toshiba MK5024GAY -- claimed to be the first 7200rpm laptop (2.5-inch) drive. 50GB, ATA100, 16MB cache... $220 or so. Check Pricewatch.com.
  • desktop floppy drive borrowed from an old Pentium 120 -- used only for initial install
  • neat floppy ribbon connector cable supplied by Lippert
  • desktop to laptop hard drive adapter
  • round blue ATA/133 cable -- the nice yellow ribbon cables supplied by Lippert had 39-hole connectors, and my adapter needed 40.
  • DVD/CD-R combo drive, $120 on eBay, with adapter

The cheap non-DMA cable didn't work (later replaced with stylish round blue one)
(Click for larger view)

Installing Debian

The most recent kernel available in Debian's bootfloppies series is the 2.4.18 kernel found in the bf24 image series. I downloaded the rescue, root, and driver disks and copied them to floppies by typing dd if=rescue.bin of=/dev/fd0 bs=1024 conv=sync; sync (on another Linux system).


Temporary desktop floppy drive


Lippert provided a nifty ribbon cable that interfaces with a pinch clamp on the underside of the board and with a desktop floppy drive. I used this cable to temporarily attach a desktop floppy drive. The Thunderbird's BIOS also provides the option of booting from a USB floppy drive.

I partioned as follows:

Device Boot Start End Blocks Id System
/dev/hda1 * 1 3 24066 83 Linux (/boot)
/dev/hda2 4 368 2931862+ 83 Linux (/)
/dev/hda3 369 430 498015 82 Linux swap (swap)
/dev/hda4 431 6081 45391657+ 5 Extended (logical)
/dev/hda5 431 1159 5855661 83 Linux (/usr)
/dev/hda6 1160 6081 39535933+ 83 Linux (/home)
The install proceeded uneventfully, except that neither of the Lippert's two Intel ethernet controllers are supported by the 2.4.18 kernel. I needed the e100 driver, added in kernel 2.4.20 or so, or the e1000, added sometime later. I poked around the 'Net until I found someone who'd run across the same issue. I wrote to him, and within minutes received a driver someone had sent him, an e100 driver backported to 2.4.18. This worked fine, and enabled me to proceed with a network install.

After the base system had been installed, I rebooted the system from the hard drive. At this point, I edited /etc/apt/sources.list, changing all the Debian mirror references to point to the unstable branch of Debian, which I've generally found to be stable enough for use on a desktop system, where you want to closely track the rapid pace of Linux application development.

Next, I typed apt-get update and apt-get dist-upgrade to update all the software in the minimal base system to the latest versions. I then used apt-get to install some development tools and some basic utilities.

The next order of business was installing and setting up XFree86.

The X Window system

Naturally, the 855GME graphics chip was too new to be supported by the 4.2.1 release of X in the latest Debian. I saw a few random debs in various places that seemed like they might work, but I decided to build X from source. X has really become quite easy to build of late, although it still takes as long to compile as several kernels.

I got the latest source from CVS, and X built fine on the first try, using the defaults in the INSTALL-X.org file. It worked okay using the vesa driver (I didn't try the 810 driver), although not at the UXGA resolution supposedly supported by the GME855. Also, the speed was quite poor, with xterms frequently unable to smoothly scroll the output of verbose tar extracts and that kind of thing. This all changed dramatically for the better when I build a 2.6.0-series kernel with support for MTRR, AGP, DRI, and several options specific to the 855GM chip series.

With the custom kernel, the system video can only be described as stellar. You can, for example, use mplayer to decode MPEGs of Lance Armstrong winning his fifth Tour de France scaled to full-screen resolution, while compiling kernels in the background, without any jerkiness to speak of at all. UXGA resolution (1600 x 1200) is supported with 24-bit color, and looks great.

Here's another example of how fast this graphics chip is: a file that takes 18 seconds to cat on a vesa framebuffer console takes just 1.4 seconds to cat in an xterm at the same resolution. In fact, xterms are not that much slower than a VGA console running in real mode: 1.12 versus 0.394 seconds.

As for 3D performance, glxgears runs just under 12 frames per second at UXGA resolution (1600x1200), and much faster at more normal gaming resolutions -- about 60fps on a lightly loaded system at 800x600.

Note: when using a custom X build on Debian, you have to let the package management system know X is present or it won't let you install any nice programs like Mozilla that depend on it. This should be accomplished with the equivs package. Another approach is to simply run make install again from your X source directory any time that the package manager installs X-related packages. (After re-installing your custom X build, remember to edit /etc/X11/xinit/xinitrc unless you really do prefer twm over, say WindowMaker.)

Special 2.6 filesystems

In order to take advantage of kernel 2.6's sysfs, usbfs, and ramfs filesystems, I added the following lines to /etc/fstab:

sysfs /sys sysfs defaults 0 0
none /proc/bus/usb usbfs defaults 0 0
none /mnt/ramfs tmpfs defaults 0 0
IDE drivers

At least one other thing improved dramatically with the new kernel: buffered disk reads. Out of the box, with the 2.4-series kernel from the bf24 boot floppies, I was only getting about 3MB/sec for buffered disk reads, according to hdparm -t -T /dev/hda.

After building a kernel with specific IDE chipset support for the ICH4, and adding "idebus=66" to the append line in my lilo.conf and re-running lilo, I got a ten-fold improvement, about 35MB/sec for buffered disk reads and upwards of 1GB/sec on buffer-cache reads. It is probably possible to improve performance further using the hdparm utility, since both board and drive support ATA100.

Sound

At first, I was very pleased with my initial 2.6.0 kernel, in part because it was built on New Year's Day. However, the 2.6.1 kernel brought major ALSA bug fixes for the 810 audio chipset (which is what the Thunderbird has onboard), so I upgraded to that. Both OSS and ALSA drivers for sound now work fine (before, the ALSA drivers produced scratchy sound).

It's important to build ALSA drivers as loadable modules, rather than building them into the kernel, for various reasons. I got them to load at boot time by adding this line to /etc/modutils/alsa: alias snd-card-0 snd-intel8x0, then running update-modules.

PCI slot

The Thunderbird has a PCI slot, but it supports only 3.3V PCI cards. I could not get the board to boot with any of my stray PCI cards installed -- perhaps they are all older 5V cards. Lippert says it will release in February several riser cards, one of which provides two 3.3V slots, and the other of which supports two 5V cards through voltage scaling circuitry.

Power Management

The 2.6-series kernel provides several frequency scaling modules for the Pentium M processor and for ICH4-based systems, but I could not get any of these to work, so far. The kernel modules produce errors when loaded, requesting that /proc/cpuinfo data be sent to the module maintainer.

Other random notes

The BIOS supports ACPI S1 & S3. Typing echo 1 /proc/acpi/sleep powers down the drive, and the system wakes up just fine. However, doing the same with a "3" results in a system lockup. Possibly, I need to load some ACPI module(s) first.

S4 is supported by the SWSUSP feature in the 2.6 kernel, and this works fine. Since the system boots in 29 seconds (22 from the boot prompt), though, there isn't much incentive to use it.

USB works great, although, I don't have any USB 2.0 devices to try. Serial, parallel, and IrDA remain untested, although the drivers load without complaint.

The board has a 10-pin serial connector, and Lippert supplies a ribbon cable with a second serial connector (the first is attached to the board).


The final (tiny, barely audible, fast) system


Conclusion

The Lippert Thunderbird is the fastest system board I personally have ever used. It can compile the 2.6.1 kernel and 493 modules in 20 minutes. How it can be so small, and so fast, draw so little power (55W power supply!), and still basically be a normal x86 system is wondrous to me.

There's plenty of tweaking left to do, but the installation has been painless considering the newness of the chips.

It's great to see the new Linux kernel working so well on bleeding edge hardware, and it's great to see a really fast system available in the increasingly popular mini-ITX format.

Finally, in the grand tradition of "I installed Linux on an XYZ system" Web pages, here are links to my kernel .config and XFree86Config files. Please let me know if you do better. Also, let me know if you get an LCD/LCD wiring kit/inverter working with this board!



About the author: Henry Kingman has used Debian at home and work since the days of "Hamm." His previous desktop system was a 2U SuperMicro server with cheerful popcorn SCSI disks, a Pentium-II 450, and many large, screaming-fast cooling fans. Affectionately known as "the airplane" for its impressive noise and draft, this imposing black machine was bought at Be, Inc.'s dotcom auction for $150, and formerly hosted the Tracker development Website.



Talk back!
If you have questions or comments about this article, post them here.



Related Stories:


Discuss Installing Debian Linux on a Pentium-M mini-ITX SBC
 
>>> Be the FIRST to comment on this article!
 
 
 
>>> More Linux For Devices Articles Articles          >>> More By Linux Devices
 



FUEL Database on MontaVista Linux
Whether building a mobile handset, a car navigation system, a package tracking device, or a home entertainment console, developers need capable software systems, including an operating system, development tools, and supporting libraries, to gain maximum benefit from their hardware platform and to meet aggressive time-to-market goals.

Breaking New Ground: The Evolution of Linux Clustering
With a platform comprising a complete Linux distribution, enhanced for clustering, and tailored for HPC, Penguin Computing¿s Scyld Software provides the building blocks for organizations from enterprises to workgroups to deploy, manage, and maintain Linux clusters, regardless of their size.

Data Monitoring with NightStar LX
Unlike ordinary debuggers, NightStar LX doesn¿t leave you stranded in the dark. It¿s more than just a debugger, it¿s a whole suite of integrated diagnostic tools designed for time-critical Linux applications to reduce test time, increase productivity and lower costs. You can debug, monitor, analyze and tune with minimal intrusion, so you see real execution behavior. And that¿s positively illuminating.

Virtualizing Service Provider Networks with Vyatta
This paper highlights Vyatta's unique ability to virtualize networking functions using Vyatta's secure routing software in service provider environments.

High Availability Messaging Solution Using AXIGEN, Heartbeat and DRBD
This white paper discusses a high-availability messaging solution relying on the AXIGEN Mail Server, Heartbeat and DRBD. Solution architecture and implementation, as well as benefits of using AXIGEN for this setup are all presented in detail.

Understanding the Financial Benefits of Open Source
Will open source pay off? Open source is becoming standard within enterprises, often because of cost savings. Find out how much of a financial impact it can have on your organization. Get this methodology and calculator now, compliments of JBoss.

Embedded Hardware and OS Technology Empower PC-Based Platforms
The modern embedded computer is the jack of all trades appearing in many forms.

Data Management for Real-Time Distributed Systems
This paper provides an overview of the network-centric computing model, data distribution services, and distributed data management. It then describes how the SkyBoard integration and synchronization service, coupled with an implementation of the OMG¿s Data Distribution Service (DDS) standard, can be used to create an efficient data distribution, storage, and retrieval system.

7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click for a profile of each sponsor:
SUPER-PLATINUM SPONSOR
MOBLIN NEWS & LINKS
Moblin Official Blog
Aigo to Go
Wind River's Moblin stack
Adobe AIR for devices
FEATURED VIDEO

Moblin v2 "Fastboot"
PLATINUM SPONSORS
GOLD SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)

Check out the latest Linux powered...

Mobile phones!

MIDs, UMPCs
& tablets

Mobile devices

Other cool
gadgets

Resource Library

• Unix, Linux Uptime and Reliability Increase: Patch Management Woes Plague Windows Yankee Group survey finds IBM AIX Unix is highest in ...
• Scalable, Fault-Tolerant NAS for Oracle - The Next Generation For several years NAS has been evolving as a storage ...
• Managing Software Intellectual Property in an Open Source World This whitepaper draws on the experiences of the Black Duck ...
• Open Source Security Myths Dispelled Is it risky to trust mission-critical infrastructure to open source ...
• Bringing IT Operations Management to Open Source & Beyond Download this IDC analyst report to learn how open source ...


BREAKING NEWS

• NAS system houses 2.5-inch drives for up to 6TB
• Atom SBC boasts special low-power mode
• Android leaps to rugged handheld, and more phones
• Simulator runs Android apps on Ubuntu
• Fanless industrial PC taps Atom
• Router platform runs OpenWRT Linux
• Feature-packed UMPC survives four-foot drops
• UMPC pioneer gives up the ghost
• Biodegradable, solar-powered netbook runs Linux
• Hypervisor rev'd for higher reliability
• Eurotech spins Atom development kits
• Home media server to demo on Intel Atom platform
• Atom boards feature fanless DC operation
• Low-cost pluggable NAS adds Linux support
• Taiwan open source conference sets agenda


Most popular stories -- past 90 days:
• Linux boots in 2.97 seconds
• Tiniest Linux system, yet?
• Linux powers "cloud" gaming console
• Report: T-Mobile sells out first 1.5 million G1s
• Open set-top box ships
• E17 adapted to Linux devices, demo'd on Treo650
• Android debuts
• First ALP Linux smartphone?
• Cortex-A8 gaming handheld runs Linux
• Ubuntu announces ARM port


DesktopLinux headlines:
• Simulator runs Android apps on Ubuntu
• Hypervisor rev'd for higher reliability
• Pluggable NAS now supports Linux desktops
• Moblin v2 beta targets netbooks
• Linux-ready netbook touted as "Student rugged"
• USB display technology heading for Linux
• Ubuntu One takes baby step to the cloud
• Game over for Linux netbooks?
• Linux Foundation relaunches Linux web site
• Dell spins lower-cost netbook


Also visit our sister site:


Sign up for LinuxForDevices.com's...

news feed


Or, follow us on Twitter...