News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

A developer’s review of MontaVista’s Hard Hat Linux SDK (Part 3)

Oct 11, 1997 — by Rick Lehrbaum — from the LinuxDevices Archive — 3 views

Cross-development

So unless you are willing to go to considerable trouble, realistic software development under Hard Hat consists of using the cross-development model from beginning to end. This process is fairly well documented for supported SBCs, though it involves quite a few steps.

For the Ampro board (my one supported board), this consisted of . . .

  • Create a boot floppy disk by dd'ing a prebuilt boot image specific to the board onto a floppy disk.

  • Installing xinitd and dhcp onto my cross-development host from the Red Hat distribution disks. Other distributions require other packages.

  • Set up the DHCP daemon on the host to respond to a BOOTP request from the target and download its boot image. This is well documented if somewhat tedious, involving typing in the entire /etc/dhcpd.conf file and running chkconfig to get the daemon started on every bootup. (Handling this detail automatically for the user on installing the LSP would be an easy and welcome enhancement for MontaVista to add to the installation process.)

  • Similarly for setting up NFS. You edit /etc/exports and run chkconfig. (Again, I see no reason this tediousness could not be performed by the installation process.)
At this point, the target can be booted from the floppy created in the first step, after connecting the host and target with an Ethernet connection. The target boots from the kernel on the boot floppy, then mounts the root filesystem on your development host over NFS.

Booting and configuring the target

Target deployment is perhaps the weakest area of Hard Hat, having the poorest documentation. Support for target deployment consists of the following statement in the manual: “You can now use fdisk, mke2fs, and lilo to format and install the target environment on a hard disk attached to the target.” Clear enough for an experienced Linux user, perhaps, but a novice will need a bit more detail. And no mention is made of alternative means of deployment, such as creating an ISO image of the system for booting from CD-ROM, or creating a set of floppy disks to be loaded onto the target system.

Like deployment, target configuration under Hard Hat is simple enough if you are already experienced with Linux. Otherwise you will have to crack open some Linux system administration books, because Hard Hat provides scant help for you. The init system is the arcane SysVinit familiar to most desktop Linux users, complete with multiple runlevels, though these are seldom needed in embedded systems. BusyBox, which provides a simple init system as well as replacements for a multitude of Unix-oriented utilities, is available but barely documented and not enabled by default. This is surprising, since BusyBox has become nearly a standard for use in embedded Linux systems.

The rest of configuration is in a similar vein. If you are already well familiar with Linux, you should have no problem. But then, old-timers may not have much need for a commercial toolkit in the first place — building and using the GNU tools and the Linux kernel is not that difficult for them. But for Linux non-specialists looking for a toolkit to handle the environment so they can concentrate on their applications, Hard Hat may prove to be more effort than they bargained for.

The help provided for configuring and building LSPs for non-supported SBCs is similarly sparse. Experienced Linux users can probably guess that they should start with a kernel for a similar but supported board, reconfigure it for the board's peripherals, build it, and load it onto a floppy as in the earlier described procedure. This procedure worked fine for building LSPs for the other two boards I used for this review, namely the Jumptec/Adastra VNS-786L and the WinSystems EBC-TXPlus. Both booted, connected to my DHCP server, mounted the proper filesystem over NFS, and functioned perfectly after I configured their respective kernels with the proper Ethernet driver. But one could not gather any of this from Hard Hat's documentation.

Continued



Story navigation . . .

 
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.



Comments are closed.