Products and Services Support Training Documentation Partner Programs About Red
Hat
  download storecart
red hat logo
redhat.comredhat network

Red Hat Documentation

Command Line Options


Command Line Options

This chapter lists commands you can use for creating a target board application and for accessing Source-Navigator from the command line.

Embedded Target Board Commands

Source-Navigator configuration and link scripts can be used directly from a command line, if preferred.

Run application

  1. At the shell prompt, type:
    config.pl <arguments>
    For a list of the configuration arguments, see Config.pl options. You must run this script every time the build target type, Red Hat EDK Preferences, kernel image, or kernel modules change.
  2. Build the application.
  3. At the shell prompt, type:
    link.pl <arguments>
    to update the target filesystem and generate the boot image. For a list of link arguments, see Link.pl options.
  4. Reboot the target board, which causes the target board to execute the application.

Debug application

  1. At the shell prompt, type:
    config.pl <arguments>
    For a list of the configuration arguments, see Config.pl options. You must run this script every time the build target type, Red Hat EDK Preferences, kernel image, or kernel modules change.
  2. Build the application.
  3. At the shell prompt, type:
    link.pl <arguments>
    to update the target filesystem and generate the boot image. For a list of link arguments, see Link.pl options.
  4. Reboot the target board, which causes gdbserver to launch. gdbserver waits for gdb to connect and allow the application to be debugged.

Script Arguments

This section lists the arguments for the config.pl and link.pl scripts.

Config.pl options

--arch=<architecture>

This sets the target board architecture. The default is x86. ppc is also supported. See also --tool-prefix.

--bin-path=<path>

Directory where architecture binaries (gdbserver and sh) are kept. The default is ../../lib/elix relative to the launcher sources.

--boot-image=<file>

Specify the output boot image file name. This is a mandatory argument.

--debug:[gdbinit=<file>:]

[ethernet:port=<port>]

[serial:target=<device>:host=<device>:baud=<baud>]

Debug target via an ethernet or serial connection. gdbinit specifies the name of the gdb script to use to automate the connection. The default is .gdbinit.

When specifying ethernet, port is the port the debug server is listening on. The default port number is 9999. See --net for specifying the hostname for the target when using ethernet.

When specifying serial, both the target board and host serial devices must be specified. The default baud rate is 9600. Legal values are 9600, 19200, 38400, 57600, and 115200.

--elix-cfg=<file>

Specify the file in which the configuration is saved. This is a mandatory argument.

--elix-path=<path>

Specify the path to the launcher sources. This is a mandatory argument.

--help

Displays possible arguments to config.pl.

--kernel:[all-modules:][module=<name>.o[,options]:]

[path=<path>:][image=<file>]

path is the directory containing the Linux sources. This is required to find the kernel image and modules. The kernel image name is computed based on the target board architecture, but can be overridden using the image option.

Using all-modules or module options cause modules to be installed in the <root>/lib/modules directory. Unless the all-modules option is used, only explicitly mentioned modules are allowed to remain in the filesystem. All other modules are removed from the <root>/lib/modules directory. A list of modules and their arguments is saved to cfg_modules.h.

--kernel-args=<arguments>

Specifies the arguments to give the kernel at boot time. This can be necessary when including drivers in the kernel instead of as modules.

--mount:[mp=specialfile,dir,type,rwflags,data]

Adds the mount points. The specialfile, dir, and type fields are like a /etc/fstab entry. rwflags are defined in /usr/include/sys/mount.h. Use MS_MGC_VAL as the rwflags default. data is for optional filesystem arguments. Use NULL as the data default.

--net:[kernel:][dhcp:][hostname=<name>:]

[ip=<ip>:mask=<mask>:broadcast=<ip>[:gateway=<ip>]]

If kernel is specified as the network option, the Linux kernel must acquire the IP addresses. Use kernel with the nfsroot option (see --nfsroot) where the NFS Root filesystem must be mounted before the application runs.

For static IP, you must specify the IP address, mask, and broadcast numbers. Additionally, you can add the numeric gateway IP address. The target hostname can also be set. The networking options are saved to cfg_modules.h.

--nfsroot=<path>

This enables the NFS Root startup. path is the directory which the target will mount as the root of its filesystem via NFS.

--ramdisk:[template=<path>:][type=<type>:][extra=<percentage>:]

[blocks=<# blocks>:inodes=<# inodes>:]

This enables the initrd startup. template specifies the root of the directory to be packed into the RAM Disk. When selecting the Minix filesystem type, the default is to create a disk 10% larger than required. It is possible to specify how much bigger (in percentages) to make the disk size. The absolute size (by disk blocks and inode count) can also be specified.

--tool-prefix=<prefix>

The tool prefix is automatically set according to the target architecture and the type of the host system. This option allows the prefix to be overridden.

--verbose

Print out the shell commands executed by the script.

Link.pl options

--app=<file>

Specifies the application executable. This is a mandatory argument.

--debug

Instead of starting the application directly, it is started from gdbserver. Connect with gdb from the host according to configuration (ethernet/serial) to start debugging. If this argument is omitted, the application is stripped before downloaded to the target board.

--elix-cfg=<file>

Specifies the configuration file generated by config.pl. This is a mandatory argument.

--help

Displays possible arguments to link.pl.

--verbose

Print out the shell commands executed by the script.

Script Overview

This section describes the functionality of the config.pl and link.pl scripts.

Configuration

This is a short description of what occurs in the config.pl script, allowing you to diagnose and fix unforeseen problems.

Read the config.pl script for the full details, located in the /opt/redhat/edk-000221/H-i686-pc-linux-gnulibc2.1/bin directory.

Argument Parsing and Validation
  • Arguments are parsed.

  • A few sanity checks are made on the arguments. Unspecified optional arguments are assigned computed values.

  • All specified and computed arguments are saved to the config.h file.

Kernel Module Handling
  • Install all modules on the target board filesystem, using the Linux makefile.

  • Optionally remove all modules not listed by the user.

  • Go through the list of modules. Find each module's path and make cfg_module.h entry with absolute path and arguments, if any.

Mount Point Handling
  • Generate the cfg_module.h file from the list of mount points.

Network Handling
  • One of three execution branches; all output to cfg_network.h.

    • Kernel is responsible for acquiring the IP address. The config.pl script does not need to do anything for this option.

    • Dynamic IP via DHCP. Enable the DHCP support into the cfg_network.h file.

    • Static IP. Specify net interface configuration and enable code that will process it.

  • Define hostname in cfg_network.h.

Rebuild Launchers
  • Run make to get the launchers rebuilt.

Link

This is a short description of what occurs in the link.pl script, allowing you to diagnose and fix unforeseen problems.

Read the link.pl script for the full details, located in /bin.

Argument Parsing and Validation
  • Arguments are parsed.

  • A few sanity checks are made on the arguments.

  • The config file generated by config.pl is loaded.

Target /sbin/init Setup
  • One of two execution branches:

    • Debugging startup:
      gdbserver is copied to the target board filesystem (/elix_gdbserver). launcher_debug is copied to the target board filesystem (/sbin/init).
      A gdb command script is generated which allows gdb to automatically connect to the target board.

    • Application startup:
      The application is copied to the target board filesystem (/app). /elix_gdbserver is deleted from the target board filesystem. launcher is copied to the target board filesystem (/sbin/init).

RAM Disk Creation

This is optional, depending upon your configuration.

  • One of two execution branches:

    • ROMfs:
      The tool genromfs is used to create a RAM Disk image.

    • Minix:
      The script mkproto.pl is used to create a proto file for the files in the template directory. The proto file specifies the file layout in the RAM Disk.

Boot Image Creation
  • One of two execution branches:

    • x86 target:
      The tool mknbi-linux is used to create a kernel image. This may include a RAM Disk. The output is saved to the boot image, as specified by the --boot-image argument.

    • PowerPC target:
      One of two execution branches:

      • RAM Disk:
        The RAM Disk image is copied to the Linux kernel directory. The Linux makefile rule zImage.initrd is invoked. The resulting kernel image is copied to the boot image location, as specified by the --boot-image argument.

      • NFS Root:
        The kernel image is copied to the boot image location, as specified by the --boot-image argument.

Source-Navigator Commands

Source-Navigator supports the following command line options:

--batchmode

This forces batch mode to create a new project. If this is set, Source-Navigator will not launch. Instead the following command line options will be used to create a new project.

--projectname

This command creates a project in the current directory using the directory path. For example, if the current directory is /home/foo and --projectname is run, the project name becomes /home/foo/foo.proj.

--avail-options

Sets preferences for an option used in project creation.

--define <option>=<value>

Lists options that can be set using --define.

--databasedir <directory>

(synonyms: -dbdir, -database, -db)

Defines the directory for the symbol databases. Without this, the symbol databases are put in a directory called .snprj at the same level as the project file.

--import <file>

Specifies a text file with a list of all files or directories to add to the project.

--noxref

This option prevents the creation of cross-references. By default, Source-Navigator generates cross-reference information for the project.

--create

This option is used to start the Auto-Create dialog. It is not normally used with --batchmode. Source-Navigator prompts the user for information used to create a project.

Example: Creating a new project in devo-files

The following command creates a project named /home/smith/devo.proj using the files listed in devo-files in batch mode. The database files are stored in ~/db_files. Source-Navigator returns when the project has been created.

~bin/snedk --batchmode \

--import devo-files \
--databasedir ~/db_files \
--project /home/smith/devo

Example: Creating a new project in the current directory

The following command creates a project in batch mode using the current directory. It adds all of the files in the current directory and in all of the subdirectories. The current working directory is /home/smith/devo/snedk. The generated project name is /home/smith/devo/snedk/snedk.proj.

~bin/snedk --batchmode

Example: Auto-Create dialog

The following command displays the Auto-Create dialog, initialized with the current directory, with foo.proj as the project name. To view the project, you must open Red Hat EDK.

~bin/snedk --projectname foo


Contents

Previous

Next

 

 


 
© 2001 Red Hat, Inc. All rights reserved.
About Red Hat  :  Legal statement  :  Privacy statement  :  Y2K statement  :  Contact Red Hat