Each target platform will need to fulfill all of the following requirements in order to be used for Project Trailblazer designs:
PBR-1 The target board will use Linux kernel 2.4 or greater. Running the same kernel version across all target platforms would be nice, but it is not necessary. The engineers discovered that the i386, ARM and PowerPC kernel development occurs at different paces. ARM and PowerPC kernel patches don't always exist for the most recent version of the kernel.
PBR-2 The target board will execute the bash shell. Exiting from the bash shell causes the bash shell to re-execute.
Defining boot requirements and evaluating target boards forms a development system baseline. Having a bash prompt on all your targets means Linux is running. This simplifies porting code and scripts from one architecture to another.
PBR-3 The target board will execute the bash shell without security authentication. This reduces development time but leaves open a future security hole. Later, the engineers will add security, such as the login process.
PBR-4 The target board will boot, initialize the Ethernet hardware, set a static IP address, and be configured to use the Domain Name Service (DNS).
PBR-5 The target board will contain the ping program to debug network programs.
PBR-6 The target board will be capable of executing the cross-compiled version of helloworld.
PBR-7 The target board will use a current version of GNU glibc. The selected target platforms contain sufficient RAM and storage resources to use GNU glibc. Projects such as BusyBox, sglibc, uClibc, dietlibc, newlib, and libc5 will not be considered.
Awaiting hardware and armed with these seven target PBRs, the engineers proceeded to learn about the Linux boot process, the root filesystem, whether to compile or download the root filesystem binaries, target platform similarities and differences, kernel compilation, and some i386 hard disk booting specifics. We'll come back to these boot requirements later in this chapter.