Getting started

This is preliminary documentation. It will be updated in the near future

To try the OpenEmbedded based root file system, it is best to install it on an external storage media such as an MMC/SD-Card or an USB drive.

Download

You first have to choose the right rootfs and kernel image according to your system:

taskit-base-image-panelcard.tar
uImage-panelcard.bin

taskit-base-image-stamp9261.tar
uImage-stamp9261.bin

taskit-base-image-portux920t.tar
uImage-portux920t.bin

taskit-base-image-portux-panelpc.tar
uImage-portux-panelpc.bin

Important: You cannot use your old kernel images, as the openembedded based system uses a different ABI than the old rootfs and toolchain.

Unpacking the root filesystem

The next steps should be done with root privileges. Before unpacking the file system onto the memory card or USB drive, it must be formatted with the ext2 file system. You can do this on either on a normal Linux-PC or on the target device with following command:

mke2fs $device

where $device has to be replaced with the device you want to format (e.g. /dev/mmcblk0p1 for MMC/SD-Cards or /dev/sda1 for USB drives on the taskit products)

Mount the device:

mount $device $mountpoint

e.g.:

mount /dev/sda1 /data

Unpack the archive:

tar -xvf $archive -C $mountpoint

e.g.:

tar -xvf taskit-base-image-panelcard.tar -C /data

Unmount the device:

umount $mountpoint

Flashing the kernel image

To flash the kernel follow the instructions in the Linux Guide or the Upgrade Guide:
LinuxGuide_v1.25.pdf
2.6.22-install.pdf

Updating U-Boot variables

To boot from the external storage enter one of the following U-Boot commands:

Panel-Card, Stamp9261

setenv sdboot run \$(ramsize)\;run setbasicargs\;setenv bootargs \$(basicargs) \$(mtdparts) root=/dev/mmcblk0p1 rootdelay=1 ro\;bootm \$(kerneladdr)
setenv usbboot run \$(ramsize)\;run setbasicargs\;setenv bootargs \$(basicargs) \$(mtdparts) root=/dev/sda1 rootdelay=5 ro\;bootm \$(kerneladdr)

Portux920T, Portux Panel-PC

setenv sdboot setenv bootargs \$(basicargs) \$(mtdparts) root=/dev/mmcblk0p1 rootdelay=1 ro\;bootm \$(kerneladdr)
setenv usbboot setenv bootargs \$(basicargs) \$(mtdparts) root=/dev/sda1 rootdelay=5 ro\;bootm \$(kerneladdr)

Save these variables with saveenv. You are now able to boot the system with with run usbboot or run sdboot.

If you want to automatically boot this system, set the boot command to either run usbboot or run sdboot before running saveenv, e.g.:

setenv bootcmd run sdboot

Using the new system

Differences to the old file system

  • It is mounted writeable directly from the device (no RAM disc), it is therefore advised to remount the device read-only (mount / -o remount,ro) or shut the system down (halt) before switching it off.
  • It contains a package manager (ipkg) to install additional software.

Using the package manager
To use the package manager you have to create the file /etc/ipkg.conf with the following content:

Panel-Card:

src all http://www.armbedded.eu/download/taskit-0.1/ipk/all
src armv5te http://www.armbedded.eu/download/taskit-0.1/ipk/armv5te
src panelcard http://www.armbedded.eu/download/taskit-0.1/ipk/panelcard

Stamp9261:

src all http://www.armbedded.eu/download/taskit-0.1/ipk/all
src armv5te http://www.armbedded.eu/download/taskit-0.1/ipk/armv5te
src stamp9261 http://www.armbedded.eu/download/taskit-0.1/ipk/stamp9261

Portux920T:

src all http://www.armbedded.eu/download/taskit-0.1/ipk/all
src armv4t http://www.armbedded.eu/download/taskit-0.1/ipk/armv4t
src portux920t http://www.armbedded.eu/download/taskit-0.1/ipk/portux920t

Portux Panel-PC:

src all http://www.armbedded.eu/download/taskit-0.1/ipk/all
src armv4t http://www.armbedded.eu/download/taskit-0.1/ipk/armv4t
src portux-panelpc http://www.armbedded.eu/download/taskit-0.1/ipk/portux-panelpc

If you are not able to download the packages directly from the internet to the device, you can mirror the needed files locally. Use this command to get all the files:

wget -r -np http://www.armbedded.eu/download/taskit-0.1/ipk

Now make the files available to the device by either copying them directly to the device if it has enough memory or mount the directory via nfs.

Example: If the contents of the downloaded directory are mounted or copied to /ipk and you have a Panel-Card, then you have to change the /etc/ipkg.conf to contain the following lines:

src all file:/ipk/all
src armv5te file:/ipk/armv5te
src panelcard file:/ipk/panelcard

You are now able to pull the list of packages with ipkg update.

To install additional packages, use the command ipkg install $package. For further instruction to use ipkg see Using the package manager.

Interesting packages might be xserver-kdrive-fbdev (needed for graphical applications), jamvm (Java virtual machine), classpath-gtk (to start awt/swing applications) and python, perl and ruby as additonal scripting languages.

Compiling programs

You have two choices when compiling software with the OpenEmbedded based system:

  • native toolchain
  • cross toolchain

Using the native toolchain means to compile your program on the target itself. To do that install the package task-native-sdk. You can now copy your source code to the target (or make it available via nfs) and compile it with make or directly with the C compiller (gcc).

To use the cross toolchain, you have to download it first from taskit-0.1-arm-linux-gnueabi-taskit.tar.bz2. You now have to unpack it to your development machine into the root directory:

tar -xvjf taskit-0.1-arm-linux-gnueabi-taskit.tar.bz2 -C /

After that, you have a new folder /usr/local/taskit containing the new toolchain. Finally you need to adapt the makefile of your program to use the prefix /usr/local/taskit/arm/bin/arm-linux-gnueabi-

Compiling the kernel

We will use the cross toolchain here. To compile the kernel follow the instructions in the Linux 2.6.22 install guide 2.6.22-install.pdf. You only have to change two things:

First, you should use

export CROSS_COMPILE=/usr/local/taskit/arm/bin/arm-linux-gnueabi-

instead of

export CROSS_COMPILE=arm-linux-3.4.2-

Second, before compiling the kernel with make zImage you have to enable EABI support in the kernel config. Therefore enter make menuconfig and enable Kernel Features --> Use the ARM EABI to compile the kernel. Now save the config and continue as described in the install guide.

Syndicate content