OpenEmbedded / Angstrom : use the demo root filesystem
Check
Load Linux with u-boot chapter in the u-boot page to know how to load a Linux kernel.
Once loaded, the Linux kernel tries to mount a root file system ; command line parameters can indicate a location of such a rootfs. This option can be specified during the build process of through a u-boot environment variable.
Here is a sample command line for booting in the proper partition of the NAND FLASH : address indicated in the
Address
text field
during the flashing process (step #6).
mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2
which leads to the following u-boot command to setup the environment :
setenv bootargs 'mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2'
saveenv
Once the Linux kernel and root filesystem loaded, you can access the Linux console through the serial line plugged on DBGU port.
Use the
root
login account without password.
While building the rootfs image
The AT91 demo policy is to bring the user more application to figure out what the capacities of the CPU are. We add then more packages at build time. The way to add packages to a base Angstrom image at building time is to add a new recipe, stating that it requires the base recipe, and to modify the
ANGSTROM_EXTRA_INSTAL
variable. Basically this is exactly the same thing as extending the
RDEPENDS
variable (Cf. x11-at91sam9-image.bb recipe):
RDEPENDS = "\
[..]
${ANGSTROM_EXTRA_INSTALL}"
Check the attached
x11-at91sam9-image.bb
file.
ANGSTROM_EXTRA_INSTALL += " \
<package_name> \
<another_package_or_task> \
<..> \
"
The complete process of how to build the rootfs is described in the
How to build Angstrom for AT91 from sources chapter.
This point is discussed in details in this acticle :
The correct way to add packages to an OpenEmbedded Image.
With pre-built packets in hands
Referring to the Angstrom Manual, you can check how to install new packages in an existing Angstrom distribution.
5. Installing Software and Package Management. So, there is always the ability to add applications to an already built distribution.
Here is different mean to add packaged applications to a running system.
Install application packages over the network
Reference chapter in the Angstrom manual.
Here is the
Opkg official website.
On the target,
/etc/opkg
,
/etc/opkg/*.conf
files points towards the servers where the device can pull packages from.
Angstrom feeds are discussed in the Angstrom Wiki.
Information on available packages are stored on particular files: the
Packages
or
Packages.gz
. This kind of file is downloaded to the target while issuing the
opkg update
command.
You can create a custom opkg feed using a web server that is configured to point to the directory where resides compiled packages (*.ipk). Those packages are created during the OpenEmbedded building process. For example generic /armv5te/ compiled packages are located in
tmp/deploy/glibc/ipk/armv5te
.
If you build additional packages, do not forget to run
bitbake package-index
to update
Packages
and
Packages.gz
files in your opkg feed.
Procedure
On the host machine :
- construct packages
- run
bitbake package-index
- collect packages in a directory (done by the OpenEmbedded system : in
path_to_deploy_dir/glibc/ipk/armv5te/
)
- configure your web server to give access to that directory
On the target
- configure your Ethernet interface
- check that you can access the web server and the feed (package directory)
- run
opkg update
- run
opkg list
to see if the package you want is in the "available packages" list
- run
opkg install
- check if the package is installed with the
opkg list_installed
command
Install application packages from local storage
Reference chapter in the Angstrom manual.
You can pick those packages in the
deploy/glibc/ipk/
directory once you built them with
bitbake
.
You can install
.ipk
packages from all mass-storage support you can connect to a board.