The University of Adelaide                                                                                                                                                                                                                                                                                            Home | School EEE





Project Background

WLAN Background

Linux and WLAN

Network Optimisations

Current Development

Further Development

Project Management


Useful Links


Related Link

School EEE




























Linux and WLAN

Linux is open source operating system created by Linus Torvalds with the assistance of developers around the world. Linux is getting more and more popular because of its functionality, adaptability, robustness and users benefit from the collective enhancements of the worldwide community [5]. Linux is now widely used in embedded systems and wireless networking, WLAN specifically. As there are many well-documented resources on the internet, the information adhere is to provide briefly fundamental concepts WLAN development area only (the least developers must know).


 Bootloader is the first piece of program that runs when devices starts up. It is used to boot the system without diskette [6]. Bootloader program consists of boot sector program, second stage bootloader and bootloader installer.


Figure 1.5 – State Diagram of Bootloading Process

With the size restriction to the boot sector program, it is written in assembly language for size optimisation [6]. Boot sector used to load the second stage bootloader by sector number which is at a specific memory location. This sector number has to put in the boot sector by the boot loader installer. It will initialise DRAM settings and enable serial port on the target in order to communicate with the host[3] programs so that the host can transfer files or second stage bootloader to the target. Second stage boot loader is the actual boot program which contains operating system loader. Operating system loader used to load the operating system into memory and runs it, thus the system is running. 


Kernel is the heart of Linux operating system and all Linux embedded systems. As discussed in section 1.3.1, kernel was loaded into memory at the boot time. It makes sure that all other processes in the system work together coherently. It remains present until the power down. There are many different versions of kernel available at The latest stable version of kernel is (at the time report was written).  When choosing a kernel to the project, developers must ensure that kernel version is compatible for the target system. It is very important that all patches needed to the system must be applied. For example, kernel 2.4.x series were used in this project.

Loadable Kernel Module (LKM) is one of the parts of kernel. LKM is extra code that is added to the kernel base for a specific task. For example, optimisation code implemented as a LKM would make the implementation more efficient and reliable.

Build Environment and Toolchain

In order to develop a firmware for embedded systems, a development environment must be established. Development environment includes all essential tools such as compilers, cross compilers, debuggers, libraries, kernel and applications source code.

Normally, firmware development is done on Linux system. Firstly, the native GNU toolchain and other applications must be installed then building the GNU Toolchain for cross compiling. Noticed that different toolchain was used for different target systems, the toolchain normally comes with the software development kit (SDK) for specific embedded system. One of the common toolchain which is widely used and adopted is buildroot at Buildroot is a set of Makefile and patches that make it easy to generate a cross-compilation toolchain and root filesystem for the target linux system using uClibc C library [7].

Common Filesystem in Embedded System

Filesystem is method for storing and organising system files and data easier to find and retrieve. Ramdisk is mechanism for creating and mounting filesystems using computer’s RAM as a device and it is usually used in diskless systems like access points or routers. Type of File systems is chosen for embedded systems based on the need of reliability or robustness [8]. In this project, filesytems, are used, are the second extended filesystem (ext2fs), Journaling Flash FileSystem version 2(JFFS2) and squashfs.

Wireless Extension and Wireless Tools

The Linux Wireless Extensions and Wireless Tools are open source project sponsored by Hewlett Packard since 1996 and maintained by Jean Tourrilhes [9]. The wireless extension and wireless tools are used to manipulate the basic wireless parameters like the link quality, threshold, tx-power and others. It also provides the wireless statistics and configurations of interface. Wireless tools include iwconfig, iwpriv and iwspy.

By making use of this tool, the optimisation on performance of WLAN could be implemented.

Useful Link for more information





Copyright © The University of Adelaide 2006

Copyright | Disclaimer | Privacy