A developer’s review of MontaVista’s Hard Hat Linux SDK (Part 4)
Oct 11, 1997 — by Rick Lehrbaum — from the LinuxDevices Archive — 2 viewsGUI-based Target Configuration Tool
Hard Hat also provides a GUI-based Target Configuration Tool (TCT), intended for building the kernel and for selecting packages to be included on the target. Like much of Hard Hat, TCT is a helpful and nicely designed tool, but stops just short of the level of documentation needed to be helpful for embedded Linux beginners. TCT can be used for configuring and building the kernel, and for selecting target packages and including them into the build.
MontaVista's GUI-based Target Configuration Tool
(click here for a larger image)
Kernel configuration simply invokes 'make xconfig'. This may have been a sensible choice since it is already familiar to Linux users, and is reasonably easy to use in any case. However, this approach results in some funny behavior. For example, xconfig instructs you to run 'make dep' when finished; but TCT takes care of building the kernel for you, so it has to instruct you to ignore that comment from xconfig. The decision to use the standard kernel 'make xconfig' facility is a defensible one, but one which clearly has side effects that detract from the unified feel of the configuration tool.
The other major component of TCT is its facility for selecting packages for inclusion in a target image. This is a simple facility that groups packages by function (e.g., the “net” category contains the DHCP and minicom packages, among many others). You simply check off boxes to indicate which packages you want included. This facility works well, but some additional intelligence in its operation would certainly be welcome. For example . . .
- No facility for searching for a package is provided — you had better know (or be able to guess) that 'rsync' is a 'net' package rather than a 'utils' package or you'll have to spend time looking.
- Reasonable default values would also help. I had to find and check the box for glibc, for example, though the GNU C library is a part of almost every embedded Linux system.
- Some dependency checking within TCT would also be welcome. Unchecking the glibc box fazes TCT not in the least — it will happily attempt to build a system for you despite the dependence of virtually all userspace Linux applications on glibc.
Finally, although it seems almost unfair to point this out, TCT does no dependency checking between packages and kernel configuration options. I only bring it up because Lineo's Embedix does perform such checking.
Using TCT's output
To a novice, it is not immediately obvious what the output of TCT is. It builds the kernel for you as directed, and produces a tar file containing an image of the filesystem containing the selected packages. It may be obvious to an experienced user that you must . . .
- use the newly built kernel in place of the prebuilt one for the boot floppy;
- after the system is booted and connected to your cross-development host, untar the filesystem onto the target;
- set up and run LILO on the target;
In summary, TCT provides a nice GUI-based front end to the normal Linux build process, but adds little functionally to that process. And its documentation is not sufficiently detailed for a novice user.
Story navigation . . .
- Part 1: First impressions
- Part 2: Getting started
- Part 3: Cross-development
- Part 4: GUI-based Target Configuration Tool
- Part 5: Other observations
- Part 6: Overall assessment
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.