Red Hat Docs  >  Manuals  >  EDK Manuals  > 

Contents

Previous

Next



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
Kernel Module Handling
Mount Point Handling
Network Handling
Rebuild Launchers

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
Target /sbin/init Setup
RAM Disk Creation

This is optional, depending upon your configuration.

Boot Image Creation

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