| GETTING STARTED WITH LINUX ON ADS SINGLE BOARD COMPUTERS
This post describes what you'll need to get started developing on ADS boards with the Linux Operating System.
To get started you should have an evaluation system that includes a single board computer mounted on a plexiglas frame with a display and touch screen. The system should also include a power supply and serial cables.
You should attach the serial cable to the debug serial port of the board and the other end should be attached to a PC running a terminal emulation program (such as minicom or picocom). The serial port on the PC should be set to 38400bps, 8bits, no parity, and no flow control. By default the serial port is the linux console and you will see messages from the bootloader, the kernel and the init process respectively as the board boots up.
Once the board has booted up completely, you can login as 'root' with the password 'rootme'. Use 'halt' or 'shutdown' to stop the system before powering it off.
- On-board Flash. Pre-installed in the on-board flash is GNU/Linux software including: the bootloader, the linux kernel, and a JFFS2 linux root file system. The root file system includes X windows with some demonstration software accessible from the display and the touch screen. When bootable cards are not present in the CF/PCMCIA slot, the software from the on-board flash will be loaded by the bootloader. When bootable cards are present in the CF/PCMCIA slot, the software from those cards will be booted instead.
- CF/PCMCIA Card. GNU/Linux is also pre-installed on a CF/PCMCIA flash memory card. This card includes, the linux kernel and a ramdisk root file system. The ramdisk root file system includes micro-windows/nanox and some demonstration software accessible from the display and the touch screen. When powered up with this card inserted, the bootloader will automatically boot from the software on the card.
- Microdrive. An option you may have also received is a Microdrive (a CF/PCMCIA hard drive) with the linux kernel and an ext3 root file system. This root file system is a full Debian root file system (like the root file system found on PCs and servers running Debian). This file system includes compilers, editors and other development tools that you can use to develop your applications just as you would develop your applications on a PC or server. When powered up with this card inserted, the bootloader will automatically boot from the software on the card.
Note that the JFFS2 and the Ramdisk root file systems present in on-board flash and the CF/PCMCIA card respectively are intended as examples. Development is typically performed on the full root file system as described below. However, in simple cases the JFFS2 and Ramdisk root file systems can be manually modified for production use with the addition of your application program and any required system administration changes.
Installing the Full root file system yourself
If you did not order the Microdrive option, then you should download and install the full debian root file system. You can install this on a USB hard drive, NFS root file system, or a Microdrive.
Once you have the full debian root file system you can use development tools provided by debian, which of course, includes C and C++ compilers and a large array of other development tools.
With the full debian root file system, you can also use the apt-get command to download and install any of over 10,000 debian packages available over the internet. For example, to download, configure and install the debian package for minicom, you would enter the command:
apt-get install minicomSource code is easily downloaded for any debian package.
When compiling programs, you would use your development system just as you would use a PC. However, one fundamental difference between your development system and a PC is the size of the screen. Your development system will typically have a small (6.4") VGA screen which is too small for serious development. Instead, you can use a window on the the screen of your PC running Linux to login your development system and develop there - see this topic for more information.
When developing large applications with multiple programmers, it may make sense to do the initial development and unit testing on PCs running Linux. Then for integration and testing on the actual hardware, you can copy the source code to your development system and rebuild for ARM.
Although we do not recommend it, you could instead develop your application using a cross compiler.
Kernel development (including kernel modules)
Under most circumstances no kernel development is required since you can use our standard prebuilt kernels. But when special features or non-standard devices are required you may need to build your own kernel. For kernel development, unlike application development, we recommend using cross compilers to build the kernel (and to build kernel modules) on a PC running Linux. For more information about building your kernel see this topic.
Linux is highly configurable with many options for displays, storage, networking, etc. You can use regular linux system administration techniques and features once you have made decisions about how to best configure your system.
After you have completed development and have configured the operating system as you want it to be, you can use our root builder script to deploy your linux software. Typically, this means extracting only those parts necessary from the full root file system and putting them in a much smaller, ramdisk, JFFS2, or CRAMFS root file system residing in on board flash.