By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

7
PC/104 Embedded Solutions – Fall 1999 – 1 The European Synchrotron Radiation Facility (E.S.R.F.) in Grenoble, France, is a multinational research institute presently associating 15 participating countries. The E.S.R.F. operates a powerful source of light in the X-ray range, for basic and applied research in physics, chemis- try, materials, and life sciences. As the first fully opera- tional third-generation worldwide synchrotron X-ray source, the E.S.R.F. is casting a brilliant light on the intrinsic properties of matter. Pushing experimental measurement to new limits, the high performance of the light source coupled with the development of novel techniques are opening up areas of research and analysis that have never been accessible before. Within the E.S.R.F. an Embedded System Software depart- ment has the responsibility to find new, alternative embed- ded system solutions for our software engineering col- leagues. One of these solutions is the use of standard PC hardware running the Linux operating system. PC hardware architecture has taken the world by storm, and industrial computers are not an exception. Also, is there a more natural environment to run Linux than a PC? Linux was born on a PC! However, there are not many industrial PCs around. Here at E.S.R.F. we have always tried to stick to standards. One standard in industrial PC technology that E.S.R.F. is focusing on is the PC/104 form factor industrial PC. In this article Petri describes how to embed Linux into a flash disk and build a Linux-based PC/104 System. The flash IDE factory for embedded Linux E.S.R.F. has successfully used a scheme where a PC/104- based master system with a disk is used to generate the clones of a Linux operating system for diskless target systems. The resulting institute-wide installation of hardware and operat- ing system-level software gives a homogeneous development and runtime environment. No matter what your needs are today for Linux regarding the PC/104, your best bet is to build a master system as the in- stallation reference. You never know when you will need the second Linux installation on a PC/104! In this article we will describe the procedure we used to create a master Linux- based PC/104 system and how to embed it onto a target sys- tem. The procedure consists of the following functions steps: Defining the hardware requirements Preparing the hardware Partitioning the hard disk Making Linux smaller Building a read-only root filesystem Booting Linux Changing the system console Cloning the installation for the target To give you a good starting point, E.S.R.F. has prepared a de- velopment package in a download area on their website (http://www.esrf.fr/computing/cs/sysadmin/rtk/pc104project/ howto/download/linux/system.htm), where all the scripts and binaries needed to achieve this methodology are available, free of charge, of course! Master system hardware requirements In this section we will describe how the Linux PC/104 mas- ter system is built and used at E.S.R.F. The PC/104/Linux master system is built with the following components: 1. superMOPSpro SBC Starter Kit from JUMPtec PC104/ISA motherboard helps a lot in connectivity and provides the open access on boards. 5x86 133 MHz 0.9 Mbytes flash 4+16 Mbytes DRAM is OK with Linux. A little more memory would do no harm, though. The network chip is CS8900 of Cirrus Logic. The kit comprises the driver for Linux; refer to the manufacturer’s site for the latest version. If you plan to use the LOADLIN boot method from the inter- nal flash disk, you should have the 2 Mbyte internal flash disk option. Our boot method is LILO and the 0.9 Mbyte standard flash disk is enough. VGA/LCD display board PC/104-VGALCD-4. It uses the VGA/LCD chipset CL-GD6235 of Cirrus Logic for laptops. You do not need a specific Linux device driver. PC power supply Floppy drive (Note special flat cable. We actually used an industrial, slim floppy drive where the cable con- nector is the same at both ends; but the one delivered with the starter kit has an adapter.) 2. The master IDE device chipDISK or another IDE-compatible flash disk with a capacity of at least 20 Mbytes For a Linux installation you might need a CD-ROM player as an alternative master. We used a Hitachi ATAPI IDE CD-ROM player. For cables we used the JUMPtec flashDISK adapter for a standard PC IDE. This allows you to remove the CD- ROM and replace it with a flashDISK later. 3. The slave IDE device Western Digital 3.1 Mbyte IDE hard disk 4. Philips 14-inch SVGA monitor (boy it’s cheap!) 5. Cherry MY-1808 industrial keyboard (it is small, but any PC keyboard will do) 6. Microsoft mouse, serial with D9 connector (not the IntelliMouse) Embedding Linux By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

Transcript of By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

Page 1: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

PC/104 Embedded Solutions – Fall 1999 – 1

The European Synchrotron Radiation Facility (E.S.R.F.) inGrenoble, France, is a multinational research institutepresently associating 15 participating countries. TheE.S.R.F. operates a powerful source of light in the X-rayrange, for basic and applied research in physics, chemis-try, materials, and life sciences. As the first fully opera-tional third-generation worldwide synchrotron X-raysource, the E.S.R.F. is casting a brilliant light on theintrinsic properties of matter. Pushing experimentalmeasurement to new limits, the high performance of thelight source coupled with the development of noveltechniques are opening up areas of research and analysisthat have never been accessible before.

Within the E.S.R.F. an Embedded System Software depart-ment has the responsibility to find new, alternative embed-ded system solutions for our software engineering col-leagues. One of these solutions is the use of standard PChardware running the Linux operating system.

PC hardware architecture has taken the world by storm,and industrial computers are not an exception. Also, isthere a more natural environment to run Linux than a PC?Linux was born on a PC! However, there are not manyindustrial PCs around. Here at E.S.R.F. we have alwaystried to stick to standards. One standard in industrial PCtechnology that E.S.R.F. is focusing on is the PC/104 formfactor industrial PC. In this article Petri describes how toembed Linux into a flash disk and build a Linux-basedPC/104 System.

The flash IDE factory for embedded LinuxE.S.R.F. has successfully used a scheme where a PC/104-based master system with a disk is used to generate the clonesof a Linux operating system for diskless target systems. Theresulting institute-wide installation of hardware and operat-ing system-level software gives a homogeneous developmentand runtime environment.

No matter what your needs are today for Linux regarding thePC/104, your best bet is to build a master system as the in-stallation reference. You never know when you will need thesecond Linux installation on a PC/104! In this article we willdescribe the procedure we used to create a master Linux-based PC/104 system and how to embed it onto a target sys-tem. The procedure consists of the following functions steps:

� Defining the hardware requirements� Preparing the hardware� Partitioning the hard disk� Making Linux smaller� Building a read-only root filesystem� Booting Linux

� Changing the system console� Cloning the installation for the target

To give you a good starting point, E.S.R.F. has prepared a de-velopment package in a download area on their website(http://www.esrf.fr/computing/cs/sysadmin/rtk/pc104project/howto/download/linux/system.htm), where all the scripts andbinaries needed to achieve this methodology are available,free of charge, of course!

Master system hardware requirementsIn this section we will describe how the Linux PC/104 mas-ter system is built and used at E.S.R.F.

The PC/104/Linux master system is built with the followingcomponents:

1. superMOPSpro SBC Starter Kit from JUMPtec– PC104/ISA motherboard helps a lot in connectivity and

provides the open access on boards.– 5x86 133 MHz 0.9 Mbytes flash 4+16 Mbytes DRAM

is OK with Linux. A little more memory would do noharm, though. The network chip is CS8900 of CirrusLogic. The kit comprises the driver for Linux; refer tothe manufacturer’s site for the latest version. If youplan to use the LOADLIN boot method from the inter-nal flash disk, you should have the 2 Mbyte internalflash disk option. Our boot method is LILO and the 0.9Mbyte standard flash disk is enough.

– VGA/LCD display board PC/104-VGALCD-4. It usesthe VGA/LCD chipset CL-GD6235 of Cirrus Logic forlaptops. You do not need a specific Linux device driver.

– PC power supply– Floppy drive (Note special flat cable. We actually used

an industrial, slim floppy drive where the cable con-nector is the same at both ends; but the one deliveredwith the starter kit has an adapter.)

2. The master IDE device– chipDISK or another IDE-compatible flash disk with

a capacity of at least 20 Mbytes– For a Linux installation you might need a CD-ROM

player as an alternative master. We used a HitachiATAPI IDE CD-ROM player.

– For cables we used the JUMPtec flashDISK adapter fora standard PC IDE. This allows you to remove the CD-ROM and replace it with a flashDISK later.

3. The slave IDE device– Western Digital 3.1 Mbyte IDE hard disk

4. Philips 14-inch SVGA monitor (boy it’s cheap!)5. Cherry MY-1808 industrial keyboard (it is small, but any

PC keyboard will do)6. Microsoft mouse, serial with D9 connector (not the

IntelliMouse)

Embedding LinuxBy Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

Page 2: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

2 – PC/104 Embedded Solutions – Fall 1999

Just put them together on a table (Figure 1),it looks like a mess but is fun to work with!

Preparation for Linux installationIn our master system we installed theLinux Version 5.3 from the S.u.S.E.(http://www.suse.com), which contained aboot floppy and CD-ROMs. Although in

E.S.R.F. it is possible to install the S.u.S.E. Linux from thenetwork by using the NFS, we decided to make the firstinstallation from the CD-ROMs. Therefore, it is a good ideato verify that all the components are there and that they canbe reached: the floppy, the CD-ROM, and the hard disk.

Integrated flash diskAlthough the 0.9 Mbyte integrated flash disk was emptywhen the starter kit is delivered, we installed a minimum setof DOS just to have something to boot on without using afloppy drive. Boot the system up with an MS-DOS 6.22bootable floppy and make the C: flash disk drive MS-DOSbootable. The space is limited, but at a minimum the follow-ing DOS files are needed in the C:\DOS directory:

� EDIT COM� QBASIC EXE� QBASIC INI� KEYBOARD SYS� KEYB COM� DOSKEY COM� MODE COM� EGA SYS� EGA INI� SETVER EXE� HIMEM SYS� COUNTRY SYS

The contents of the C:\AUTOEXEC.BAT file could be:

@ECHO OFFrem 06/08/98 PM for of new, unformatted C: of 0.9MBFlashPROMPT $p$gPATH C:\DOS;C:\SET TEMP=C:\KEYB US,,C:\DOS\KEYBOARD.SYSDOSKEY

and the contents of the C:\CONFIG.SYS file can look some-thing like this:

DEVICE=C:\DOS\EGA.SYSDEVICE=C:\DOS\SETVER.EXEDEVICE=C:\DOS\HIMEM.SYSDOS=HIGH,UMBCOUNTRY=033,850,C:\DOS\COUNTRY.SYSFILES=20

Note that after the hard disk has been installed, the integratedflash disk is not needed. Do not put too much effort into it;just get it booting to have something in your pocket wheneverything else fails.

Hard disk installationInstall the hard disk as the master on the IDE cable. The harddisk does not require any particular preparation at this pointif you accept a Linux-only installation. It might be a goodidea to format the hard disk physically and to verify it nowwith the manufacturer’s installation floppy disk.

Optional full MS-DOSinstallation on the hard diskOur master system is based on LILO boot. Supposing thatyou do not like LILO for some reason, and that you preferto use the LOADLIN boot from the DOS, you might wantto divide the hard disk now in two and install full MS-DOSon the first partition. Again, the following is not necessaryif you are willing to use the LILO boot method.

The BIOS of superMOPSpro (AmiBIOS + JUMPtec’s exten-sions) does not support hard drives bigger than 504 Mbytes.This is good for industrial format hard disks that still havethe capacity limitation of 300 Mbytes with the current tech-nology. But for Linux we need more room than that. How-ever, once the Linux is running it does not need BIOS to ac-cess the hard disk; this is just a requirement of the pre-Linuxinstallation.

Hard disk manufacturers have addressed the problem and atleast Western Digital’s installation disk contains a BIOS ex-tension (EZ-BIOS) that overcomes this problem. Just followthe instructions and divide your new hard disk into two par-titions. Install MS-DOS 6.22 again; this time you have roomfor a full installation! The BIOS extension of the hard diskmanufacturer has one drawback, though: Every time you bootyou must boot from the hard disk in order to get the BIOSextension loaded. The BIOS extension gives you the possi-bility to boot from a floppy. This is required if you want toaccess the hard disk after the floppy boot.

Note for LILO boot method: It has been reported that West-ern Digital’s EZ-BIOS is not compatible with LILO, which

Figure 1: Figure 1. An aerial view of the FlashFactory. It is a PC! Take a PC/104 development kit, add aspinning hard disk, screen, keyboard, and mouse: you caninstall Linux/PC just like on any other PC with niceenclosures.

Page 3: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

PC/104 Embedded Solutions – Fall 1999 – 3

has to be visible to BIOS. LILO does not sup-port pseudo geometry produced by EZ-BIOS. In the final product we are runningthe LILO from the flash IDE hard disk sowe do not have this problem.

Make sure that you have the hard diskmanufacturer’s BIOS loaded before you

start to install Linux!

Once the hard disk has been installed, you have to modifysettings in JUMPtec’s extension BIOS CMOS-RAM. Theinternal flash disk is set as hard disk C. Modify this for thefollowing mapping:

� SD0 -> D:� HD0 -> C:

CD-ROM drive installationYou need an ATAPI-compatible CD-ROM drive on the IDEbus. Install its device driver for MS-DOS as explained in themanufacturer’s documentation.

Now, when you reboot with the new hard disk having oneinitial partition, you would have the following disks:

� C: - The spinning hard disk� D: - Internal flash disk� E: - CD-ROM

Or, with the optional full MS-DOS installation on the harddisk (the target will use the LOADLIN-boot method):

� C: - First hard disk partition (MS-DOS FAT16 partition)� D: - Internal flash disk� E: - Second hard disk partition (the target Linux-partition)� F: - CD-ROM

PartitioningThere are many different ways to set up the hard disk parti-tions for a Linux installation. This is just another one! Butunless you have a very good reason to do things differently,stick to this scheme.

As with all Linux installations, the master system’s Linuxinstallation requires that the question “what is the systemused for?” gets answered before the partitions are set up. Inour case the answer is: “We want to miniaturize an office PC/Linux installation for an embedded system. This requiresprobably a trial-and-error approach. Then we want to be ableto clone Linux installations for embedded systems effi-ciently.”

The following approach originates from....

[email protected]

....who has written a mini how-to for RAM-disk-based Linuxsystems.

Disk Size/Partition Mount pointLogical Partition

Comment

Flash DiskIDE master23 Mbytes/dev/hda

20 Mbytes/dev/hda1

/ Target Linux boot here

3 Mbytes/dev/hda2

/home Target applications will beinstalled here

Spinning hard diskIDE slave2.2 Gbytes/dev/hdb

40 Mbytes/dev/hdb1

swap Used with the full Linux systemand during the installation

Extendedpartition/dev/hdb2(size is theremainingsectors)

300 Mytes/dev/hdb5

/ The target disk of the full-featuredLinux installation

1 Gbytes/dev/hd6

/usr

500 Mbytes/dev/hdb7

/opt

~250Mbytes/dev/hdb8

/home

500 Mbytes/dev/hdb3

/mnt/ws1 Workspace One

500 Mbytes/dev/hdb4

/mnt/ws2 Workspace Two

Table 1: Hard disk partitioning for the flash IDE cloning factory

Page 4: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

4 – PC/104 Embedded Solutions – Fall 1999

Note: As was discussed in the preparation sec-tion, you might have opted to install full MS-DOS in the first partition of the hard disk. Inthat case, apply the following only to the re-maining part of your hard disk.

The idea of the above partitioning issimple. First, a standard Linux installa-

tion is made from the Linux distribution CD on the /dev/hdb2, the extended partition. This will turn the PC/104 intoa real workstation! Then you would install a smallest pos-sible version of Linux from the distribution CD onWorkspace One. Verify that the Linux starts correctly fromit and that it contains the elements that you would like tosee in your target system. Then reboot the system as a work-station and start building the Workspace Two.

For those who would rather see the system output, Figure 2shows what our flash IDE cloning factory says when we typedf(1):

Use the rpm-utility again to see the exact contents of eachpackage. Notice that S.u.S.E. has included the documenta-tion to almost all packages. This is not necessary in anembedded system. You might know a good tool to removeindividual documents and applications from an RPM pack-age. (If you do, please let us know.) We have just built simplescripts that we call prune_<package_name> (part of devel-opment package).

Almost there!We are pretty close now. By now you should start to appre-ciate working with Workspace Two instead of WorkspaceOne!

The last effort to make a really small system is to removeS.u.S.E.’s configuration control. S.u.S.E. is using Perl 5scripts and, boy, when you remove Perl there seems to benothing left! Of course, you cannot use S.u.S.E.’s configu-ration tools such as YaST anymore, but you can still use themon Workspace One.

# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hdb5 300513 56562 228430 20% / /dev/hdb6 991000 502167 437629 53% /usr /dev/hdb7 495714 56746 413367 12% /opt /dev/hdb8 249823 398 236525 0% /home /dev/hdb3 495746 93786 376357 20% /mnt/ws1 /dev/hdb4 495746 17906 452237 4% /mnt/ws2 /dev/hda1 19841 17790 2051 90% /mnt/flash /dev/hda2 2909 153 2756 5% /mnt/flash_home

Figure 2

Shrinking the “small” S.u.S.E. LinuxThis is a very complex subject and cannot be fully explainedwithin this article. You will find only the guidelines here. Ifyou really want to make an in-depth analysis, please visit ourwebsite and download the development package mentionedat the beginning of the article for further information.

If you followed the instructions so far, you now have a full-featured workstation installed on a hard disk partition andwhat S.u.S.E. thinks is a minimal Linux installation onWorkspace One. If you take a look at the partition that hoststhe Workspace One, you will quickly realize that with itsalmost 100 Mbytes it will never fit on a 23 Mbyte flash ROM,not even compressed.

Making a working copyYou do not want to shrink the Workspace One directly,since installing S.u.S.E. on it is a time-consuming proce-dure if something goes wrong. This is why we have createdthe Workspace Two. We will make a physical copy of theWorkspace One disk partition to the Workspace Two parti-tion first. A simple cat(1) command is enough for this.

Studying packagesS.u.S.E. uses Red Hat PackageManager (RPM), whichmakes this approach usable with Red Hat’s Linux distribu-tion as well. Using the rpm-utility, first collect all the pack-age names into a directory. You can see that by removing theX11 and the Apache web server you would already have amuch smaller system.

The final touch!The final touch is to remove individual files, directory, andapplications that you know or think will never be used. Gothrough the scripts by hand and use your experience withUNIX and your judgement.

Amazingly, the final result fits into 19 Mbytes and still hasall the network components installed. And that is what wewant.

Room for improvementOf course, this method will make us suffer when S.u.S.E.comes up with a new version of their Linux distribution. Ifyou have ideas about how to improve the “prune” S.u.S.E.build-up, please first study our method (available in the de-velopment package) and send us your suggestions.

Ramdisk – Using the /initrd for read-only rootBelow we will explain only the operation principle of theread-only root filesystem. To learn about the details, down-load the development package where the LILO usage, for ex-ample, is explained in detail.

Although we are able to boot a very complete Linux in-stallation – what we call the “prune” S.u.S.E. Linux – fromthe flash IDE hard disk, it would not work very well andnot for a very long time. This is because while the flashROM technology is fast for reading, it is very slow inwriting. Worse, the flash technique does not guaranteemore than 100,000 write cycles on the device. Therefore,

Page 5: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

PC/104 Embedded Solutions – Fall 1999 – 5

it is absolutely necessary to have a read-onlyroot filesystem with flash IDE hard disk.

What is /initrd and why itallows the read-only root?The /dev/initrd device was actually devel-oped to run something else before theLinux kernel boots. This “something” is a

program called linuxrc that can be anything that turns on a PC.For example, the S.u.S.E. boot floppy has a linuxrc of its own.

As a co-product the /dev/initrd device gets automaticallymounted on /initrd, if there is one, by the kernel. So even ifthe linuxrc does not exist on the /dev/initrd, we can still usethe method to pass an initial RAM-disk to the kernel and keepit there after the system has booted.

We analyzed the “live” files and directories of Linux. We builta RAM-disk and we made a copy of those files and directo-ries in the RAM-disk. Then, in the future read-only rootfilesystem we removed those files and directories and we re-placed them with a symbolic link to the /initrd directory.

In the final target system, the read-only root filesystem wouldlook something like what is shown in Figure 3.

Almost that simpleOf course, there are a lot of details to check before it works:

� Remove any mtab and modify fstab for read-only mounts

� Check the boot-script that it never mounts the root forread/write

� Put all the configuration files, especially the network con-figuration files, from the /initrd/etc to the flash disk, wherethey can be modified (hence the /setc in the rootfilesystem)

Configuration of the LILO boot method for the /initrd, andother details are better explained by looking at the develop-ment package, available from the development packagedownload area.

Changing the system consoleUsually the target system does not have a screen or keyboard.The lack of the VGA controller has to be explained some-how to Linux.

The E.S.R.F. “prune” S.u.S.E. is available both for VGA con-sole and for the serial line console. The serial line console isby default the COM2: port of the target PC. The serial linepatch for the kernel package is the one made by Miquel vanSmoorenburg. It was retrieved from ftp://ftp.uni-mainz.de/pub/Linux/devel/serial_console.

There is a small hiccup with the S.u.S.E. Linux distribution.Their System V-style init-program is quite compatible withMiquel’s original. Unfortunately, they have removed the por-tion where the serial line inherits the settings from the ker-nel and they just set up their own values. In the originalscheme the kernel gets the initial serial line parameters from

tb002:/ # lltotal 22drwxr-xr-x 2 root root 1024 Oct 26 17:12 bindrwxr-xr-x 2 root root 1024 Oct 21 10:58 bootlrwxrwxrwx 1 root root 11 Oct 21 10:53 dev -> /initrd/devlrwxrwxrwx 1 root root 11 Oct 21 10:53 etc -> /initrd/etcdrwxr-xr-x 5 root root 1024 Oct 21 10:54 homedrwxr-xr-x 8 root root 1024 Oct 21 10:52 initrddrwxr-xr-x 3 root root 1024 Oct 21 10:49 libdrwxr-xr-x 2 root root 12288 Oct 21 10:52 lost+founddrwxr-xr-x 2 root root 1024 Oct 21 10:53 mntdrwxr-xr-x 2 root root 1024 Sep 25 12:01 optlrwxrwxrwx 1 root root 12 Oct 21 10:53 proc -> /initrd/proclrwxrwxrwx 1 root root 10 Oct 21 10:53 root -> /home/rootdrwxr-xr-x 4 root root 1024 Oct 26 16:55 sbindrwxr-xr-x 2 root root 1024 Oct 21 10:53 setclrwxrwxrwx 1 root root 11 Oct 21 10:53 tmp -> /initrd/tmpdrwxr-xr-x 12 root root 1024 Oct 21 10:52 usrlrwxrwxrwx 1 root root 11 Oct 21 10:54 var -> /initrd/var

The initial RAM-disk, the /dev/initrd mounted on /initrd would look like this:

tb002:/ # ll /initrdtotal 28drwxr-xr-x 3 root root 12288 Oct 26 17:21 devdrwxr-xr-x 2 root root 2048 Oct 26 18:20 etcdrwxr-xr-x 2 root root 12288 Oct 21 10:52 lost+founddr-xr-xr-x 5 root root 0 Oct 26 18:20 procdrwxr-xr-x 2 root root 1024 Oct 21 10:52 tmpdrwxr-xr-x 9 root root 1024 Oct 21 10:52 var

Figure 3

Page 6: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

6 – PC/104 Embedded Solutions – Fall 1999

LILO and then the init maintains these param-eters.

We have patched very slightly the S.u.S.E.init-program for the baud rate of 9600. Thepatched binary version is available in thedevelopment package download area.

Cloning the installation for the targetOnce there is a working and tested flash IDE disk that bootsand works well, there is no need to repeat all that build-upmumbo-jumbo again!

Linux has great tools for disk copying, perfect to makeclones:

� Copy the flash IDE disk contents to the hard disk� Remove the original flash IDE disk� Install the new flash IDE disk� Use S.u.S.E. YaST-tool to partition it as the original� Copy the flash IDE disk image from the hard disk to the

new disk

Details of how this is done can be found from the scriptsavailable in the development package download area.

The new disk has the IP-identity of the original disk. Sincethe S.u.S.E. YaST-tool cannot be used with the “prune”S.u.S.E. Linux installation, you will find a simple shell scriptfrom the above development distribution to do the IP-address,hostname, and other changes for you.

Moving the CPU boardwith the new flash IDE diskIf you take the master system’s CPU board to be installedwith the new flash IDE disk, remember the following set-tings:

� The master system’s BIOS CMOS is set for the second-ary disk D:, the spinning hard disk. You must remove thissetting and leave just the flash IDE disk as C:.

� JUMPtec’s BIOS extension’s CMOS settings have to beset accordingly.

� Note that the real-time clock (RTC) is running only for ashort time without the system battery. In the new system,make sure that the clock has not stopped; the BIOS ep-och is 1st of March, 1980.

Workstation support for LinuxMost of the development work you would do with the targetsystem is done on a workstation. A PC/Linux workstationrunning even a minimum set of the S.u.S.E. installation isperfectly adequate if you want to work with a PC/104 sys-tem running embedded Linux. There is no need for the crossdevelopment; but unless there is no specific hardware accessinvolved, your application will run exactly the same way onyour workstation as it will run on the target running Linux.

The typical configuration of a target running Linux has itsown built-in, solid-state hard disk booting a minimized setof the S.u.S.E. installation. It does not require any resourcesfrom your workstation but you can use it as you would useanother Linux workstation: Use telnet,ftp, NFS-file systemmount as usual.

More technical detailsAs this is written, we are still learning about workstationconfiguration as an embedded system boot-server. When weknow enough about the following subjects, we will reportthem on our website:

� Configuring for BOOTP, TFTP and NFS-mount� Installing and configuring a private, instrumentation net-

work for TacoBoxes� Program development cycle of I/O modules, device driv-

ers, and TACO Device Server for a TacoBox

Meanwhile, learn about Linux by looking at other embeddedLinux projects going on at E.S.R.F.

Petri Mäkijärvi ([email protected]) gradu-ated in 1982 with a B.Sc. in digital elec-tronics design from the Raahe Institute ofTechnology, Finland. He has worked withmedical analyzers, built industrial automa-tion systems, and designed optical qualitycontrol instruments before joining theE.S.R.F. in 1989. He is coordinating the

TacoBox project when not administering over 200 RTOS-run-ning VMEbus systems at the E.S.R.F.

Andy Götz ([email protected]) receivedM.Sc. in radio astronomy from the Univer-sity of Rhodes, South Africa, in 1984 afterfour years of undergraduate studies in com-puter science and physics. He spent threeyears working in the field of radio as-tronomy in Germany before the pull of thehigh mountains proved too strong and hemoved to Grenoble. There he got a chance

to be one of the early members of the European Synchrotron andgot involved building distributed control systems for the accel-erator and later the beamlines. He still enjoys building distrib-uted control systems and is looking forward to the next sabbati-cal year.

Paolo Mangiagalli ([email protected])holds a Ph.D. in solid state physics fromCaen University, France, where he studiedthe radiation damage properties of siliconwhile teaching thermodynamics to moder-ately bored students. Since joining E.S.R.F.in 1997, he has been setting up the instru-mentation control and data acquisition sys-

tem for a new beamline dedicated to trace element analysis onsilicon wafers.

For more information, contact the author at:

European Synchrotron Radiation FacilityB.P. 220F-38043 Grenoble CedexFRANCEtel. +33-(0)4.76.88.22.50fax. +33-(0)[email protected]

Page 7: By Petri Mäkijärvi, Andy Götz, and Paolo Mangiagalli

PC/104 Embedded Solutions – Fall 1999 – 7

In addition to the source code for the Linuxkernel being freely-distributed, a number ofcompanies including MontaVista, havedeveloped their own “distribution” of Linux.Each of these distributions has it’s own fea-ture set, and some are geared towards spe-cific types of computer systems. In somecases, they are available at no charge viaFTP and in other cases they may be pur-chased on CD for a relatively low cost.

Caldera OpenLinuxDeveloped by: CalderaWebsite: www.calderasystems.com/The Caldera OpenLinux Product line is amulti-tasking, multi-user operating systemthat gives you the power and reliability ofUNIX on a personal computer. OpenLinux isCaldera’s “distribution” or package of Linuxand is surrounded with utilities, graphicalinterfaces, installation procedures, thirdpar ty appl icat ions, and much more.OpenLinux is ideal for small, medium, andlarge companies who must optimize theirinvestment in existing systems, hardware& training. Several versions are available.

Debian GNU/LinuxDeveloped by: DebianWebsite: www.debian.org/Debian GNU/Linux is a free distribution ofthe Linux based operating system. It ismaintained and updated through the workof many users who volunteer their time andeffort. Along with its large selection of pre-packaged software is contains advancedpackage management tools that allow foreasy installation and maintenance on indi-vidual systems and workstation clusters.Extensive pre-release testing is done toensure the highest degree of reliability pos-sible, and a publicly accessible bug track-ing system provides an easy way to moni-tor customer feedback.

DLX LinuxDeveloped by: Erich BoehmWebsite: www.wu-wien.ac.at/usr/h93/h9301726/dlx.htmlDLX is a full featured, single floppy disk (3.5inch) Linux distribution for Intel-based PCs.

DOS LinuxDeveloped by: Kent RobottiWebsite: www.tux.org/pub/people/kent-robotti/index.htmlThis is a small Linux operating system thatcan be installed on an existing DOS systemi.e. msdos, pcdos, opendos, and win95 indos mode.

hal91 Floppy LinuxDeveloped by: Oyvind KolåsWebsite: home.sol.no/~okolaas/hal91.htmlhal91 is a minimalistic Linux installation

fitting on one single 1.44 Mbyte disk. It isintended for use as a rescue disk and a por-table Linux system. For Intel-based PCs.

Linux MandrakeDeveloped by: MandrakeWebsite: www.linux-mandrake.com/Linux Mandrake is based upon the full 32bits multitasking OS Linux. It actually runson all Intel and compatibles architectures(486, Pentium, Pentium Pro, Pentium MMX,Pentium II and all clones). Linux Mandrakecombines the power of UNIX-based sys-tems with the flexibility of a very powerfulGraphical Desktop: KDE. It comes with theApache Web Server, the Gnu Manipula-tion Image Program Gimp 1.0, NetscapeCommunicator and other excellent soft-ware.

LinuxPPCDeveloped by: PowerPC Linux ProjectWebsite: www.linuxppc.org/A Linux distribution for PowerPC’s.

Linux ProDeveloped by: WorkGroup SolutionsWebsite: www.wgs.com/Linux Pro Plus includes the Linux Pro 6 CDSet plus the Linux Encyclopedia; a 1600+page reference manual of information withtutorials on setup, configuration, kernel hack-ing, and more! Includes CD with much moreonline text than is possible to print on paperincluding all Linux Usenet News grouppostings and Mini-HOWTOS. There are atotal of 7 CDs in Linux Pro Plus.

LinuxWareDeveloped by: Trans-AmeritechWebsite: www.trans-am.com/This is a flexible, easy-to-install UNIX cloneoperating system geared toward those inter-ested in learning UNIX as well as technicalusers, students and home PC users. Installsthrough Windows, Windows 95 or DOS fromany CD-ROM drive that DOS supports.

MkLinuxDeveloped by: Apple Computer / TheOpen Group Research GroupWebsite: www.mklinux.apple.com/A Linux distribution for Power Macintoshplatform.

RedHat LinuxDeveloped by: RedHat SoftwareWebsite: www.redhat.com/The Red Hat Linux for Intel, Alpha, andSPARC products are built from the exactsame source packages. This ensures maxi-mum ease of software portability betweenmachines running Red Hat Linux regard-less of the underlying hardware architec-ture. Your investment in configuration ofRed Hat Linux will pay off on all three plat-forms.

Slackware LinuxDeveloped by: Walnut CreekWebsite: www.cdrom.com/Slackware Linux is compatible with most Intel

PC hardware & supports most CDROMdrives, sound, ethernet, and mice. The ad-vanced 2.0.30 kernel will provide stellar per-formance on high-end systems, includingsupport for symmetric multiprocessing (up to16 processors), PCI, and special code optimi-zations for the 486, Pentium, and Pentium Pro.

Stampede LinuxDeveloped by: Stampedewww.stampede.org/New distribution designed for the poweruser.

S.u.S.E. LinuxDeveloped by: S.u.S.E. LinuxWebsite: www.suse.com/S.u.S.E. Linux contains the full Linux OS andover 800 pre-configured software packageson five CD-ROMs, as well as a 400-page ref-erence book. The book covers both introduc-tory as well as advanced topics. Alsoincluded is the innovative utility “YaST”, plac-ing full control into the users’ hands, allow-ing them to install, configure and fine-tunetheir systems. YaST lets novices get startedeasily; it lets experts go as far as they want.S.u.S.E. also develops and supports a seriesof X Servers for newer, high-end graphicscards. A German version is also available.

tomsrtbtDeveloped by: Tom OehserWebsite: www.toms.net/rb/This is a small Linux operating system that fitson a single floppy disk. It’s useful as a root/boot/recovery disk, since it loads itself ontoa RAM disk (thus allowing you to removethe floppy once it’s fully loaded) and comeswith tools for checking and repairing mostfilesystems, including msdos and ext2fs.

TurboLinuxDeveloped by: Pacific Hi-TechWebsite: www.pht.com/TurboLinux contains a host of applications,a GUI (XFree86 3.3) with an easy-to-usedesktop, documentation, and technical sup-port. Currently available for the Intel i386platform with plans to have a DEC Alpha anda PPC port.

Yggdrasil LinuxDeveloped by: Yggdrasil ComputingWebsite: www.yggdrasil.com/Plug & Play Linux has now grown to twoCD-ROM’s. The first CD-ROM includes allsystem programs, while the second CD-ROM is source code. Like previous Plug &Play releases, the Fall 1995 edition of Plug& Play Linux can be started on supportedhardware configurations by simply pluggingin the included boot floppy and the first CD-ROM, and turning the computer on. Userswith other hardware configurations can usethe new DOS installation or the new net-work (NFS) installation. These alternativemethods work not only for the initial instal-lation, but also for installing optional soft-ware packages later.