Company Products/Technology Services News/Events Support Spacer Contact Partners Customers
English    日本語
Products Photo

Product Documentation for
Devicescape Universal Wireless Platform

Documentation Home for Devicescape Universal Wireless Platform | Developer Guide

Developer GuidePreviousNextIndex

 


Creating Root File System Images for the Reference Designs

The Devicescape Universal Wireless Platform provides reference designs for an IEEE 802.11 standard based access point, wireless client, and client bridge. An easy way to get familiar with the platform is to walk through the process of creating a root file system (RFS) image for one of the reference designs (access point, client, or client bridge) and loading it onto the target device.

The following topics describe the runtime system architecture of each reference design and guide you through the steps of creating each type of system.

(If you already understand the device architectures, know the build process, and just want a quick reference to package lists for each type of device, see Access Point Package List, Wireless Client Package List, and Client Bridge Package List.)

Access Point

The Devicescape Access Point (AP) reference design uses an Atheros radio and driver. The Host Access Point daemon (HostAPd) manages user-space 802.11 functions such as authentication, encryption, initializing network interface, beacon intervals, extended authorization protocol (EAP) keys, and so on.

Each component in the AP reference design architecture is described in detail in the Devicescape Package Guide:

  • For information on the reference design Atheros driver, see the "atheros-drv package" topic.
  • For information on the DataPath driver, see "ieee80211 package" topic.
  • For information on HostAPd (including configuration and external APIs for control, status, and monitoring), see the "hostapd package" topic.

(Other drivers can be used in place of the Atheros driver, but these are not part of the AP reference design. For information on supported Broadcom and Conexant drivers, refer to the Broadcom and Conexant driver topics in the Devicescape Package Guide.)

Reference Access Point Features

The Devicescape Reference Access Point (AP) provides the following features:

  • Access point software (hostapd package)
  • Wireless drivers
  • BusyBox (lightweight implementation of shell and other common Linux utilities combined into a single executable and optimized for embedded systems)
  • Ethernet bridging support
  • Filtering (provided by iptables and ebtables packages)
  • Factory reset button and LED sample applications
  • Web server (via the busybox package)
  • Telnet (busybox)
  • Secure Shell daemon (SSHD) (provided by the dropbear package)
  • Console login support (getty package)
  • DHCP client support (busybox)
  • Package management (lightweight system for installing, uninstalling and upgrading packages provided by ipkg, the Itsy Package Manager)
  • Network Time Protocol (NTP) client (ntp package)
  • JFFS2/cramFS file system support
  • Wireless tools (including wireless sniffer, virtual client simulator, WPA testing tool, and arbitrary frame generator as described in the "ieee80211 package" topic in the Devicescape Package Guide)
  • GDB server (Remote server for the GNU Debugger on the runtime side)

The following section describes how to build a reference AP. For a complete list of packages needed for the Reference AP, see Access Point Package List (step 12 in the procedure below).

Creating an RFS Image for the Reference Access Point

The high-level tasks for creating a root file system (RFS) image for the Reference Access Point (AP) are:

  • Create a new project for the access point root file system (RFS).
  • Configure the RFS image options
  • Create and configure journaling flash file system (JFFS) for the appropriate target device

To create the RFS image for the Reference AP using Devicescape Studio, do the following:

  1. Create a new system configuration project for the access point root file system. From the Devicescape Studio menus, choose File > New > Project.
  2. This brings up the New Project dialog, which provides a list of project-creation wizards.

  3. Under "System Configuration" directory, select the "System Configuration Project" wizard and click Next

  4. For "Create a new System Configuration Project", provide the project name (for example, "access-point-system") and click Next.

  5. For "Import Packages into New Project", select "RPM Files" as the type of packages to import, and click Next..

  6. For "Import package files from directory", use the file Browser or type a pathname to point at the directory where the RPM files for the selected target are installed.
  7. The RPMs are installed in:
    /opt/devicescape/linux/2.0/<Architecture>-bbdyn-uclibc/packages/core/RPMS.

    Where <Architecture> is one of the following depending on the type of target board you are using:

    • armv5b
    • mips
    • mipsel
    • i686
    • Also on this dialog, select "Link to package files".

  8. Select all the packages. and click Finish.
  9. (Alternatively, you can select only the packages for the appropriate target architecture, which in this case is "armv5b-uclibc". However, we recommend selecting all packages here to ensure that all necessary packages get included. The build tool will filter out un-needed packages in a later step.)

    The project file (in this example, "access-point-system") is displayed in the Navigator view on the Workbench window.

  10. Open the new project to see the initial content. (In this example, expand the tree under "access-point-system" in the Navigator.)

  11. Double click on the access-point-system.rfs file to open the RFS configuration tool.

  12. Configure the "RFS image Options" as shown (see table following screen snap for details on settings).

    Option
    Setting
    Create RFS Image
    Enable. (Check the box to create an RFS image.)
    Image Size
    Enter the maximum image size in KB. In this case 14848 (the size of the root file system partition on the IXDPG425 board).
    Journaling Flash Filesystem
    All boards except the x86pc require JFFS parameters. For these you must enter the "Image Size" (maximum image size in KB), "Erase Block Size", and "Extra Arguments". Note that for all boards that require JFFS parameters, "Extra Arguments" must include the "--devtable" option to specify the file containing the device nodes needed. For big-endian targets, such as the IXDPG425, the -b (or --big-endian) option should also be given. In cases where multiple options are being added, enclose the whole string in double quotes (as shown in this example)
    The JFFS parameters required for each board type are described below:
    AR531x (Atheros SoC/D-Link DWL-2210AP)
    • Image Size: 2880
    • Erase Block Size: 65536
    • Extra Arguments:
      "-b --devtable=dev.jffs2.txt"
    BCM9471x (Broadcom SoC)
    • Image Size: 3008
    • Erase Block Size: 65536
    • Extra Arguments:
      "-b --devtable=dev.jffs2.txt"
    IXDPG425 (Monte Jade)
    • Image Size: 14848
    • Erase Block Size: 131072
    • Extra Arguments:
      "-b --devtable=dev.jffs2.txt"
  13. Create a new file in the project called "dev.jffs2.txt".
  14. To create the file, choose menu option File > New > File, make sure the file will be located in the parent folder for your project (access-point-system, in this example), enter the file name (dev.jffs2.txt) and click Finish.

  15. Add the required device node descriptions to the new file.
  16. (You can find an example of a device node description file under /opt/devicescape/toolchains/<Architecture>/examples on the toolchain CD-ROM for the architecture you are using.)

  17. Select the packages required for the Devicescape Access Point (AP).
  18. Return to the "access-point-system.rfs" configuration panel, and click the "Package Selection" tab.

    Check the boxes for each package needed for the Access Point (AP) reference design. To build the reference AP, include (select) the following packages.

    Table 1 Access Point Package List
    Package
    Description
    atheros-drv
    Devicescape proprietary Atheros driver used by the IEEE80211 package. Only needed for systems using Atheros radios.
    Note: If you are using atheros-drv, you must also include rate-control-atheros package.
    bcm947xx-eth
    Broadcom ethernet driver module.
    Only needed for BCM9471x boards.
    bridge-utils
    Linux bridging utilities
    broadcom-wl-drv
    Devicescape proprietary Broadcom monolithic driver required by the IEEE80211 package.
    Only needed for systems using Broadcom 430x radios.
    broadcom-wl
    Wireless tools to support the Broadcom driver (broadcom-drv).
    Only needed for systems using Broadcom 430x radios.
    busybox
    The busybox multicall binary that provides UNIX environment.
    dropbear
    Small footprint SSH server and client.
    ds-config-ar531x
    Devicescape AR531X-specific configuration files.
    Only needed for Atheros SoC systems (D-Link DWL-2210AP).
    ds-config-bcm947xx
    Devicescape BCM947xx-specific configuration files.
    Only needed for Broadcom SoC systems (BCM9471x)
    ds-config-ixdpg425
    Devicescape IXDPG425-specific configuration files.
    Only needed for IXP4xx systems (IXDPG425).
    ds-config-x86pc
    Devicescape X86PC-specific configuration files.
    Only needed for X86PC.
    ds-filesystem
    Devicescape skeleton filesystem
    ds-init
    Devicescape core initialization scripts
    ds-init-dropbear
    Devicescape initialization script for dropbear
    ds-init-httpd
    Devicescape initialization script for httpd
    ds-init-telnetd
    Devicescape initialization script for telnetd
    ds-sample-webui
    Devicescape sample web pages for httpd
    ds-setup
    Devicescape core system files.
    ds-wireless-ap
    Devicescape wireless access point profile.
    ebtables
    A filtering tool for a bridging firewall
    gdbserver
    Remote server for the GNU Debugger on the runtime side
    hello
    Example application package.
    hostapd
    Access Point daemon.
    ieee80211
    Devicescape 802.11 stack.
    Only needed for systems using Atheros radios.
    ieee80211-tools
    Wireless test and manufacturing tools.
    Only needed for systems using Atheros radios.
    ipkg
    The Itsy Package Manager, a lightweight package manager for installing, uninstalling, and upgrading packages
    iptables
    Linux IP packet filtering tools
    ixp425
    IXP4xx access library and Ethernet driver to support Intel IXP4xx chip package. Only needed for IXP4xx systems (IXDPG425).
    mtd
    Linux memory technology device utilities (flash management tools)
    ntpclient
    A Network Time Protocol client (RFC-1305)
    rate-control-<Driver>
    Rate control functionality for the driver.
    Note: The rate-control-atheros package is required when the Atheros driver package, atheros-drv, is used.
    timesys-fixup-busybox-dynamic-uclibc
    Wireless Tools for Linux
    uClibc
    Small footprint C library
    wireless-tools
     
    zlib
    Compression library

  19. Return to the "RFS Image Options" tab and make sure that the used space is not greater than the image size. If it is, then you will need to remove some of the packages from the list to reduce the overall size of the flash image.

  20. Right click on the project name (access-point-system) and choose the "Create RFS" option to actually generate the RFS image. When it is complete you should see a jffs2.image file in the list of files for the project. This is the root file system image that can be programmed into the flash on the target system.

Wireless Client

The Devicescape Wireless Client Reference Design consists of the following key runtime components:

  • wpa_cli - Client interface configuring the client or retrieving status and monitoring information.
  • wpa_supplicant - Wireless client software module
  • DataPath driver - Devicescape 802.11 stack.
  • Atheros driver - Devicescape proprietary reference platform Atheros driver used by the DataPath driver.


Each component in the Wireless Client reference design architecture is described in detail in the Devicescape Package Guide:

  • For information on the Atheros, Broadcom and Conexant drivers, see the related driver topics.
  • For information on the DataPath driver, see "ieee80211 package" topic.
  • For information on the Client software, see the "wpa_supplicant package" topic.

Reference Wireless Client Features

The Devicescape Reference Wireless Client provides the following features:

  • Atheros, Broadcom and Conexant wireless client software (relevant driver packages for each)
  • BusyBox (lightweight implementation of shell and other common Linux utilities combined into a single executable and optimized for embedded systems)
  • Factory reset button and LED sample applications
  • Telnet (busybox)
  • Console login support (getty package)
  • DHCP client support (busybox)
  • Package management (lightweight system for installing, uninstalling and upgrading packages provided by ipkg, the Itsy Package Manager)
  • Network Time Protocol (NTP) client (ntp package)
  • JFFS2/cramFS file system support
  • OpenSSL, crypto library
  • Wireless tools (including wireless sniffer, virtual client simulator, WPA testing tool, and arbitrary frame generator as described in the "ieee80211 package" and "ieee80211-tools package" topics in the Devicescape Package Guide)
  • GDB server (Remote server for the GNU Debugger on the runtime side)

The following section describes how to build a reference wireless client. For a complete list of packages needed for the Reference client, see Wireless Client Package List in the next section.

Creating an RFS Image for the Reference Wireless Client

The process of creating a root file system (RFS) image for the reference wireless client is almost the same as for the reference AP, except that you name the project differently ("client" instead of "access point") and include the set of packages required for the client (rather than those for the AP).

So, to build the reference wireless client, follow the same steps described in the previous section on Creating an RFS Image for the Reference Access Point but with the following key differences:

  • When creating the wireless Client system configuration project (covered in step 3 in the previous procedure), name the project "wireless-client-project" or something similarly appropriate.
  • When you get to the package selection step (step 12 in the previous procedure), check the boxes for each package needed for the Wireless Client reference design. To build the reference wireless client, include (select) the following packages.
    Table 2 Wireless Client Package List
    Package
    Description
    atheros-drv
    Devicescape proprietary Atheros driver used by the IEEE80211 package.
    Only needed for systems using Atheros radios.
    Note: If you are using atheros-drv, you must also include rate-control-atheros package.
    bcm947xx-eth
    Broadcom ethernet driver module.
    Only needed for BCM9471x boards.
    broadcom-cdc
    Broadcom CDC driver (4320).
    Only needed for BCM9471x boards.
    broadcom-wl-drv
    Devicescape proprietary Broadcom monolithic driver required by the IEEE80211 package. Only needed for systems using Broadcom 430x radios.
    broadcom-wl
    Wireless tools to support the Broadcom driver (broadcom-drv)
    Only needed for systems using Broadcom 430x radios.
    busybox
    The busybox multicall binary that provides UNIX environment.
    conexant-drv
    Conexant monolithic driver.
    Only needed for client systems using Conexant radios.
    ds-config-ar531x
    Devicescape AR531X-specific configuration files.
    Only needed for Atheros SoC systems (D-Link DWL-2210AP).
    ds-config-bcm947xx
    Devicescape BCM947xx-specific configuration files.
    Only needed for Broadcom SoC systems (BCM9471x).
    ds-config-ixdpg425
    Devicescape IXDPG425-specific configuration files.
    Only needed for IXP4xx systems (IXDPG425).
    ds-config-X86pc
    Devicescape X86PC-specific configuration files.
    Only needed for X86PC.
    ds-filesystem
    Devicescape skeleton filesystem
    ds-init
    Devicescape core initialization scripts
    ds-init-httpd
    Devicescape initialization script for httpd
    ds-init-telnetd
    Devicescape initialization script for telnetd
    ds-sample-webui
    Devicescape sample web pages for httpd
    ds-setup
    Devicescape core system files
    ds-wireless-client
    Devicescape wireless client profile.
    ebtables
    A filtering tool for a bridging firewall
    gdbserver
    Remote server for the GNU Debugger on the runtime side
    ieee80211
    Devicescape 802.11 stack.
    Only needed for systems using Atheros radios.
    ieee80211-tools
    Wireless test and manufacturing tools.
    Only needed for systems using Atheros radios.
    ipkg
    The Itsy Package Manager, a lightweight package manager for installing, uninstalling, and upgrading packages
    ixp425
    IXP4xx access library and Ethernet driver to support Intel IXP4xx chip package. Only needed for IXP4xx systems (IXDPG425)
    libusb
    Userspace USB library.
    Only needed for systems using Broadcom 4320 radios.
    mtd
    Linux memory technology device utilities (flash management tools)
    ntpclient
    A Network Time Protocol client (RFC-1305)
    rate-control-<Driver>
    Rate control functionality for the driver.
    Note: The rate-control-atheros package is required when the Atheros driver package, atheros-drv, is used.
    timesys-fixup-busybox-dynamic-uclibc
    Wireless Tools for Linux
    uClibc
    Small footprint C library
    wpa_supplicant
    WPA supplicant and wireless client daemon
    zlib
    Compression library

Client Bridge

A Wireless LAN Client Bridge is a device used to connect one or more wired "clients" to a WLAN interface, often operating in supplicant or "client" mode. Likely uses of a client bridge are to connect a network of devices to an infrastructure network or to provide a connection to an isolated peripheral. Bridge functions can be included in access points, print servers, and other features, but bridges can also be stand-alone devices.

The Devicescape Client Bridge Reference Design consists of the same runtime components as the wireless client, with the addition of a client_bridge module and utilities for Ethernet bridging.

Each component in the Wireless Client reference design architecture is described in detail in the Devicescape Package Guide:

  • For information on the Atheros, Broadcom and Conexant drivers, see the related driver topics.
  • For information on the DataPath driver, see "ieee80211 package" topic.
  • For information on the Client software, see the "wpa_supplicant package" topic.

Reference Client Bridge Features

The Devicescape Reference Client Bridge provides all the same features as does the Wireless client (described in Reference Wireless Client Features) and additional feature to enable it to act as a client bridge:

  • Client bridging module
  • Ethernet bridging support

The following section describes how to build a reference wireless client bridge. For a complete list of packages needed for the Reference client, see Client Bridge Package List in the next section.

Creating an RFS Image for the Reference Wireless Client

The process of creating a root file system (RFS) the reference client bridge is almost the same as for the reference wireless client, except that you name the project differently (for example, "client_bridge") and include the set of packages required for the wireless client along with two extra packages: the client_bridge and bridge-utils packages.

So to build the reference wireless client bridge, follow all the same steps described in the section on Creating an RFS Image for the Reference Access Point but with the following key differences:

  • When creating the wireless Client system configuration project (covered in step 3 in the build procedure), name the project "client_bridge" or something similarly appropriate.
  • When you get to the package selection step (step 12 in the build procedure), check the boxes for each package needed for the Wireless Client reference design (see Wireless Client Package List) and add one extra package (client_bridge) to make it a client bridge.
  • Following is the complete list of packages for the reference Client Bridge.

    Table 3 Client Bridge Package List
    Package
    Description
    All packages for Wireless Client Package List with the exception of:
    ds-wireless-client (which gets replaced by ds-wireless-client-bridge)
    Add all packages listed for the client except for ds-wireless-client.
    bridge-utils
    Linux bridging utilities
    client_bridge
    Devicescape client bridge module.
    ds-wireless-client-bridge
    Devicescape wireless client bridge profile.
    (Replaces ds-wireless-client.)

Using Command Line Tools to Create RFS Images (ipkg)

IPKG, or the Itsy(*) Package Management System, is a lightweight package management system designed specifically for use in Linux devices with limited storage. It is similar to RPMs and DPKGs. In fact, the iPKG file format is based on the Debian package management system (DPKG). IPKG allows for addition, update or removal of packages on a running system. It supports versioning, dependency tracking and conflict management.

In cases where you prefer to use a command line interface rather than the Devicescape Studio, you can use ipkg to create root file system (RFS) images from the command line. The following sections describe how to create RFS images from the command line using ipkg.

  1. Create an ipkg configuration file that indicates where to find the ipkgs to put in the rootfs, the target architecture, and the location where the rootfs should be created. For example:
  2. cat > ipkg.conf << EOF
    arch armv5b 1
    option offline_root rfs
    src core \
    	file://opt/devicescape/linux/2.0/armv5b-bbdyn-uclibc/packages/core/IPKG/
    src contrib \
    	file://opt/devicescape/linux/2.0/armv5b-bbdyn-uclibc/packages/contributed/IPKG/
    EOF
  3. Update the ipkg index.
  4. ipkg -V 0 -f ipkg.conf update
  5. Install the desired packages.
  6. ipkg -V 0 -f ipkg.conf install \
    	ds-config-ixdpg425 ds-filesystem \
    	ds-init ds-init-dropbear ds-init-httpd ds-init-telnetd \
    	ds-sample-webui ds-setup ds-wireless-ap gdbserver hostapd \
    	hostapd-atheros-config ieee80211 ieee80211-tools ipkg \
    	ixp425 uClibc wireless-tools zlib
  7. Create a root filesystem image, specifying the metafile, eraseblock size and rootfs partition size:
  8. mkfs.jffs2 --devtable=metafile.txt \
    	--eraseblock=0x20000 \
    	--pad=0xe80000 \
    	-b -d rfs -o rootfs.jffs2
Developer GuidePreviousNextIndex