Frequently Asked Questions

gpio.net (1)

Yes, the ipCore firmware is OpenEmbedded based. Thus there are package feeds that can be used.

We suggest using the Yocto feeds for version 1.7.3.

To add the feeds to your system do the following:

1.) Create a new config file in /etc/opkg
vi /etc/opkg/feeds.conf

2.) Add these two lines
src all http://downloads.yoctoproject.org/releases/yocto/yocto-1.7.3/ipk/all
src armv5te http://downloads.yoctoproject.org/releases/yocto/yocto-1.7.3/ipk/armv5te

3.) Update the database
opkg update

4.) Get a list of available packages
opkg list

5.) Install the desired packet
opkg install packet_name

Misc (1)

I like to access my ext2/ext3 formatted SD-Card/USB-Stick from Microsoft Windows. Can I do that?

Yes you can. With the help of this freeware EXT2 IFS ext2 or ext3 formatted partitions can by accessed with all Microsoft Windows operating systems.
It is available for download here:
http://www.fs-driver.org/

NanosG20 (6)

The boot sequence changed some time ago. J3 is used to bypass the NAND preventing the ROM code to load at91bootstrap from that media.
Since the BCH update in March 2013 (see http://armbedded.eu/downloads/Stamp9G20), we do not consider the NAND to be the proper location for at91bootstrap. That is why we switched to the DataFlash which is equipped on all Stamp9G20 and NanosG20 boards since 2013. The DataFlash however uses a different chip select that has to be bypassed to prevent autoboot.
Please see http://armbedded.eu/node/8 to figure out which jumper is used when the DataFlash is used. In case of doubt where at91bootstrap is stored on your board, it is perfectly okay to close both jumpers during boot.

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

Related error message

debian:/# apt-get update
Ign http://security.debian.org lenny/updates Release.gpg
Ign http://security.debian.org lenny/updates Release
Ign http://security.debian.org lenny/updates/main Packages/DiffIndex
Ign http://security.debian.org lenny/updates/main Packages
Ign http://security.debian.org lenny/updates/main Packages
Err http://security.debian.org lenny/updates/main Packages
  404 Not Found [IP: 195.20.242.89 80]
Ign http://ftp.uk.debian.org lenny Release.gpg
Ign http://ftp.uk.debian.org lenny Release
Ign http://ftp.uk.debian.org lenny/main Packages/DiffIndex
Ign http://ftp.uk.debian.org lenny/main Packages
Ign http://ftp.uk.debian.org lenny/main Packages
Err http://ftp.uk.debian.org lenny/main Packages
  404 Not Found [IP: 83.142.228.128 80]
W: Failed to fetch http://security.debian.org/dists/lenny/updates/main/binary-armel/Packages  404 Not Found [IP: 195.20.242.89 80]
 
W: Failed to fetch http://ftp.uk.debian.org/debian/dists/lenny/main/binary-armel/Packages  404 Not Found [IP: 83.142.228.128 80]
 
E: Some index files failed to download, they have been ignored, or old ones used instead.

Solution

Debian support for Lenny distribution ended in 2012. There are two solutions for this problem.

First, you can select a mirror still supporting Lenny. In order to do so, exchange the content of /etc/apt/sources.list by:

deb http://ftp.de.debian.org/debian-archive/debian lenny main

As alternative, you can upgrade to Debian Squeeze. In that case substitude lenny by squeeze in the original, unmodified /etc/apt/sources.list and run the following commands:

apt-get update
apt-get dist-upgrade

After creating a new SD card from the original images the system won't boot.
Following problems are common:

  • You get a kernel panic with "no init found" message.
  • Using apt-get upgrade or similar gives you error messages like this "fopen: permission denied".

Most probably you have messed up permissions of your rootfs during copying. Please follow this Howto:
http://www.armbedded.eu/node/370

The NanosG20 uses the WAKEUP/SHUTDOWN mask of the AT91SAM9G20 microcontroller. On a regular shutdown the enable pin of the power regulator is toggeled and can be switched back by WAKEUP. WAKEUP is connected to the switch on your NanosG20. On a regular shutdown, you have to press the switch to boot your Nanos. On failure the Nanos would boot without the switch. The register settings for WAKEUP/SHUTDOWN are battery backed-up. So they persist between reboots and connecting or disconnecting the power cable, when a battery is connected.
So, when your NanosG20 does not boot:

  • First make sure, that the your power adaptor is connected with X14 between the DSUB-9 connectors. If you connect via the USB-Device port X7, J9 has to be set. Please guard not connecting both connectors at a time, when J9 is set
  • Press the switch to boot your device. If you keep the switch pressed, you will end in the boot menu.
  • The WAKEUP/SHUTDOWN mimic is locked. This can happen, if you changed the battery or battery current was interrupted. Disconnect the power adaptor. Disconnect the battery, e.g. with a slip of paper. Connect the power adaptor again and remove then the slip of paper. Your Nanos should boot now.
  • If this mimic does not fit your application, you can use J5 to disable this feature altogether. For revision 2 J5 has to be closed when using NanosG20 without backup battery.

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

After flashing a new u-boot or after replugging the card my Stamp9261 or my Panel-Card doesn't boot anymore. What should I do?

Description

The processor core of the AT91Sam9261 is operating at 1.8V. The peripherals like flash and SDRAM are operating at 3.3V. During power-up 1.8V are already stable and the processor core starts, but the peripherals aren't ready yet, so the system crashes. Actually, as the watchdog is enabled by default, the system will start after the watchdog timeout, which is 16 seconds, in a sane state.

Solution

This problem is solved by setting the reset register in the processor to user reset and insert a timeout before starting the core after the core voltage is stable. This is done before booting Linux, have a look at the setreset environment variable in u-boot. This register is battery backed-up, so it be will kept during power failures. There are three situations however, when this is not the case:

  • When the module was removed from the board
  • When the bootloader was newly flashed
  • When the battery was empty and replaced with a new one

When one of this situation occurs, you have to wait until the watchdog timeout or disconnect the battery temporarily, e.g. with a slip of paper between battery and connector.

If there is no battery the register doesn't need to be set as the settling time of the slowclock oscillator will guarantee a sane start of the board.

Caveat

If you own a revision of the Panel-Card below four, the manual reset is not needed and won't work. You find the revision number of your board on the LCD-Side of the Panel-Card, like 16.103.4 for revision four or 16.103.3 for revision three.

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

How can I program the buzzer?

The Portux-Panel-PC has an inductive buzzer, which is connected to processor pin PB06. It can be used by programming a 2KHz PWM signal on Pin PB06. How this can be done is demonstrated in this example program:
http://www.armbedded.eu/download/software/buzzer-portuxpp.tar.gz

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

On Portux920TEU and PortuxG20 the first serial port includes two USARTs: A regular USART with the signals RX/TX and RTS/CTS and a debug UART (DBGU) with it's RX/TX on the regular signals DTR/DSR. Thus the DBGU-Adapter is needed to switch the signals DTR/DSR to RX/TX on your null modem cable.
The DBGU-Adapter is part of the Starterkit, just connect it between the serial port of your Portux and the null modem cable and you will see the console output of Linux on your serial port.

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

I want to add a battery for my Portux920TEU/SW, what type of battery do I need?

You can use a CR1632FH-LF of the swiss company renata batteries with soldering tails.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

PortuxG20 (13)

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

Error code -117 means there were bit flips in the read memory region, but the ECC algorithm could correct them. So the image is read correctly. A NAND page (typically 512 bytes) will become unreadable, if more bits flip than the ECC algorithm can handle, so depending on the situation it may make sense to rewrite the corresponding block. The standard images handle 1 bit error per NAND page, but a firmware handling 4 bit errors (or with small adjustments even more) is also available: http://www.armbedded.eu/node/675.

The boot stops displaying ROMBOOT or halts in U-Boot.
The kernel crashes randomly.

If your board runs a bootstrap prior version 3.4 (bootstrap 3.4 prints version information, older versions do not), the problem should be solved by updating.

The new images can be found here:
http://www.armbedded.eu/node/629

Update procedure:
1) launch SAM-BA and choose board according to:
http://www.armbedded.eu/node/8
2) run NANDFLASH "Enable NAND flash" script
3) run from SAM-BA console: NANDFLASH::EraseBlocks 0 0x1ffff
4) run "Send Bootfile" script with the appropriate image for your board

For even newer Stamps also consider the following download:
http://www.armbedded.eu/node/675

Since a while, running "opkg update" results in the following error messages:

Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/P...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug/...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstrea...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all/Packages.gz
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl/P...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/machin...
Collected errors:
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/P.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug/.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstrea.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all/Packages.gz. 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl/P.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/machin.... 
error detail: HTTP response code said error

The problem here is that the default rootfs of the Stamp9G20 and PortuxG20 was the Ångström Distribution 2008 for a long time but this version is discontinued so all packages have been removed from the servers. Since Apr 19, 2012, both products will be delivered with version 2011.03.

Possible Solutions:

  • The best solution is to use the updated rootfs image provided in the download section which uses Ångström 2011.03. If you do not want to start from scratch, the other two options are also possible but are risky or inconvenient.
  • Replace the 2008 with 2011.03 in all config files in /etc/opkg and upgrade to this newer version (opkg update and opkg upgrade). Be aware that this is unsafe and can result in a completely unusable system as opkg is not prepared for such major updates.
  • Cherry pick packages from http://www.angstrom-distribution.org/feeds/2011.03 and install the manually (you have to resolve dependencies yourself). Either use wget to download and then install with opkg or give the direct URL to opkg. Using wget has the advantage, that you do not have to redownload a file if opkg notices missing dependencies. This option is much safer than the previous because you have complete control over what is installed and in which order.

After creating a new SD card from the original images the system won't boot.
Following problems are common:

  • You get a kernel panic with "no init found" message.
  • Using apt-get upgrade or similar gives you error messages like this "fopen: permission denied".

Most probably you have messed up permissions of your rootfs during copying. Please follow this Howto:
http://www.armbedded.eu/node/370

The toolchain comes with the package manager opkg. You can install the same packages as on the target device with it. To do so, follow these steps:

  1. Become root using su or sudo on your development computer
  2. Edit the file /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf. It should look like that:
    arch all 1
    arch any 6
    arch noarch 11
    arch arm 16
    arch armv4 21
    arch armv4t 26
    arch armv5te 31
    src/gz base http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base
    src/gz debug http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug
    src/gz gstreamer http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstreamer
    src/gz no-arch http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all
    src/gz perl http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl
    src/gz python http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python

    All other lines can be removed or commented.

  3. Execute the command source /usr/local/angstrom/arm/environment-setup
  4. You can now use the command opkg-target as on the target. So you first need to run opkg-target update and after that you can install the needed packages, most probably the -dev versions to get the header files.
  5. From now on, every time you want to install a new package, repeat steps 1, 3 and 4.

To compile bootstrap yourself the following steps have to be done:
1) You need an arm-gcc standalone compiler. The delivered arm-linux-gcc won't work for that task. Good ones are obtainable at http://www.codesourcery.com/
2) Extract the archive from your CD or from our download section (http://www.armbedded.eu/downloads) on your development PC. Change to that directory.
3) Edit the Makefile in the directory at91bootstrap to point the variable CROSS_COMPILE to your installed stand-alone cross-compiler, e.g.:

CROSS_COMPILE=/develop/arm-2008q3/bin/arm-none-eabi-

4) Now issue make in the at91bootstrap directory with the following options:

	make CHIP=at91sam9g20   BOARD=at91sam9g20-ek   ORIGIN=nandflash   DESTINATION=sdram   BIN_SIZE=0x30000   FROM_ADDR=0x20000   DEST_ADDR=0x23F00000   OP_BOOTSTRAP=on STR_DESCR=\\\"appli\\\" TRACE_LEVEL=1

5) Now you find your binary in at91bootstrap/bin directory:

boot-at91sam9g20-ek-nandflash2sdram.bin

. Bootstrap has to be flashed via SAM-BA. It cannot be flashed with u-boot or linux. To do that see this how-to: http://www.armbedded.eu/node/8

On Portux920TEU and PortuxG20 the first serial port includes two USARTs: A regular USART with the signals RX/TX and RTS/CTS and a debug UART (DBGU) with it's RX/TX on the regular signals DTR/DSR. Thus the DBGU-Adapter is needed to switch the signals DTR/DSR to RX/TX on your null modem cable.
The DBGU-Adapter is part of the Starterkit, just connect it between the serial port of your Portux and the null modem cable and you will see the console output of Linux on your serial port.

Example error messages:
ifup: can't open '/var/run/ifstate': No such file or directory
shutdown: warning: cannot open /var/run/shutdown.pid

Some files in /var are located in RAM and must be recreated on every boot. Additionally /tmp is a symlink to /var/tmp. The files in /etc/default/volatile/ describe, which files, directories or symlinks have to be created. To speed up the boot, a file called /etc/volatile.cache is created. In the event of an unclean shutdown, this file might get corrupted and the creation of these files might not work. To resolve this issue simply delete /etc/volatile.cache.

This happens because NAND flash can have bad blocks. Every program not able to handle bad blocks can trigger messages like that. This is not a real problem with the flash, just with the application.

While booting the offending application is udev. It scans each block device for partitions including the MTD partitions. If the MTD partition has a bad block in the scanning region, the read will fail and this message is printed. To work around it, you can skip the scan for mtd devices by editing the file /etc/udev/rules.d/60-persistent-storage.rules. Replace the line

KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"

with

KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|mtd*", GOTO="persistent_storage_end"

and the messages should go away.

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

Stamp9261 (4)

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

After flashing a new u-boot or after replugging the card my Stamp9261 or my Panel-Card doesn't boot anymore. What should I do?

Description

The processor core of the AT91Sam9261 is operating at 1.8V. The peripherals like flash and SDRAM are operating at 3.3V. During power-up 1.8V are already stable and the processor core starts, but the peripherals aren't ready yet, so the system crashes. Actually, as the watchdog is enabled by default, the system will start after the watchdog timeout, which is 16 seconds, in a sane state.

Solution

This problem is solved by setting the reset register in the processor to user reset and insert a timeout before starting the core after the core voltage is stable. This is done before booting Linux, have a look at the setreset environment variable in u-boot. This register is battery backed-up, so it be will kept during power failures. There are three situations however, when this is not the case:

  • When the module was removed from the board
  • When the bootloader was newly flashed
  • When the battery was empty and replaced with a new one

When one of this situation occurs, you have to wait until the watchdog timeout or disconnect the battery temporarily, e.g. with a slip of paper between battery and connector.

If there is no battery the register doesn't need to be set as the settling time of the slowclock oscillator will guarantee a sane start of the board.

Caveat

If you own a revision of the Panel-Card below four, the manual reset is not needed and won't work. You find the revision number of your board on the LCD-Side of the Panel-Card, like 16.103.4 for revision four or 16.103.3 for revision three.

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

Stamp9G20 (14)

The boot sequence changed some time ago. J3 is used to bypass the NAND preventing the ROM code to load at91bootstrap from that media.
Since the BCH update in March 2013 (see http://armbedded.eu/downloads/Stamp9G20), we do not consider the NAND to be the proper location for at91bootstrap. That is why we switched to the DataFlash which is equipped on all Stamp9G20 and NanosG20 boards since 2013. The DataFlash however uses a different chip select that has to be bypassed to prevent autoboot.
Please see http://armbedded.eu/node/8 to figure out which jumper is used when the DataFlash is used. In case of doubt where at91bootstrap is stored on your board, it is perfectly okay to close both jumpers during boot.

This can have two reasons, which both prevent the boot from DataFlash:

  1. If you just plugged in the Stamp and booted the system for the first time, this is most probably caused by some undefined value in the Reset Controller Mode register. To prevent this from happening remove the battery, switch on the system and than place the battery into the socket.
  2. The system already booted with a battery but you switched it off shortly after powering it. If you have done this while the last message of U-Boot was "WARNING: Caches not enabled", use the following update to fix the problem: http://www.armbedded.eu/node/696

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

Error code -117 means there were bit flips in the read memory region, but the ECC algorithm could correct them. So the image is read correctly. A NAND page (typically 512 bytes) will become unreadable, if more bits flip than the ECC algorithm can handle, so depending on the situation it may make sense to rewrite the corresponding block. The standard images handle 1 bit error per NAND page, but a firmware handling 4 bit errors (or with small adjustments even more) is also available: http://www.armbedded.eu/node/675.

The boot stops displaying ROMBOOT or halts in U-Boot.
The kernel crashes randomly.

If your board runs a bootstrap prior version 3.4 (bootstrap 3.4 prints version information, older versions do not), the problem should be solved by updating.

The new images can be found here:
http://www.armbedded.eu/node/629

Update procedure:
1) launch SAM-BA and choose board according to:
http://www.armbedded.eu/node/8
2) run NANDFLASH "Enable NAND flash" script
3) run from SAM-BA console: NANDFLASH::EraseBlocks 0 0x1ffff
4) run "Send Bootfile" script with the appropriate image for your board

For even newer Stamps also consider the following download:
http://www.armbedded.eu/node/675

Since a while, running "opkg update" results in the following error messages:

Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/P...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug/...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstrea...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all/Packages.gz
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl/P...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python...
Downloading http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/machin...
Collected errors:
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base/P.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug/.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstrea.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all/Packages.gz. 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl/P.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python.... 
error detail: HTTP response code said error
 * Failed to download http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/machin.... 
error detail: HTTP response code said error

The problem here is that the default rootfs of the Stamp9G20 and PortuxG20 was the Ångström Distribution 2008 for a long time but this version is discontinued so all packages have been removed from the servers. Since Apr 19, 2012, both products will be delivered with version 2011.03.

Possible Solutions:

  • The best solution is to use the updated rootfs image provided in the download section which uses Ångström 2011.03. If you do not want to start from scratch, the other two options are also possible but are risky or inconvenient.
  • Replace the 2008 with 2011.03 in all config files in /etc/opkg and upgrade to this newer version (opkg update and opkg upgrade). Be aware that this is unsafe and can result in a completely unusable system as opkg is not prepared for such major updates.
  • Cherry pick packages from http://www.angstrom-distribution.org/feeds/2011.03 and install the manually (you have to resolve dependencies yourself). Either use wget to download and then install with opkg or give the direct URL to opkg. Using wget has the advantage, that you do not have to redownload a file if opkg notices missing dependencies. This option is much safer than the previous because you have complete control over what is installed and in which order.

After creating a new SD card from the original images the system won't boot.
Following problems are common:

  • You get a kernel panic with "no init found" message.
  • Using apt-get upgrade or similar gives you error messages like this "fopen: permission denied".

Most probably you have messed up permissions of your rootfs during copying. Please follow this Howto:
http://www.armbedded.eu/node/370

The toolchain comes with the package manager opkg. You can install the same packages as on the target device with it. To do so, follow these steps:

  1. Become root using su or sudo on your development computer
  2. Edit the file /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf. It should look like that:
    arch all 1
    arch any 6
    arch noarch 11
    arch arm 16
    arch armv4 21
    arch armv4t 26
    arch armv5te 31
    src/gz base http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base
    src/gz debug http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/debug
    src/gz gstreamer http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/gstreamer
    src/gz no-arch http://www.angstrom-distribution.org/feeds/2008/ipk/glibc//all
    src/gz perl http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/perl
    src/gz python http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/python

    All other lines can be removed or commented.

  3. Execute the command source /usr/local/angstrom/arm/environment-setup
  4. You can now use the command opkg-target as on the target. So you first need to run opkg-target update and after that you can install the needed packages, most probably the -dev versions to get the header files.
  5. From now on, every time you want to install a new package, repeat steps 1, 3 and 4.

To compile bootstrap yourself the following steps have to be done:
1) You need an arm-gcc standalone compiler. The delivered arm-linux-gcc won't work for that task. Good ones are obtainable at http://www.codesourcery.com/
2) Extract the archive from your CD or from our download section (http://www.armbedded.eu/downloads) on your development PC. Change to that directory.
3) Edit the Makefile in the directory at91bootstrap to point the variable CROSS_COMPILE to your installed stand-alone cross-compiler, e.g.:

CROSS_COMPILE=/develop/arm-2008q3/bin/arm-none-eabi-

4) Now issue make in the at91bootstrap directory with the following options:

	make CHIP=at91sam9g20   BOARD=at91sam9g20-ek   ORIGIN=nandflash   DESTINATION=sdram   BIN_SIZE=0x30000   FROM_ADDR=0x20000   DEST_ADDR=0x23F00000   OP_BOOTSTRAP=on STR_DESCR=\\\"appli\\\" TRACE_LEVEL=1

5) Now you find your binary in at91bootstrap/bin directory:

boot-at91sam9g20-ek-nandflash2sdram.bin

. Bootstrap has to be flashed via SAM-BA. It cannot be flashed with u-boot or linux. To do that see this how-to: http://www.armbedded.eu/node/8

Example error messages:
ifup: can't open '/var/run/ifstate': No such file or directory
shutdown: warning: cannot open /var/run/shutdown.pid

Some files in /var are located in RAM and must be recreated on every boot. Additionally /tmp is a symlink to /var/tmp. The files in /etc/default/volatile/ describe, which files, directories or symlinks have to be created. To speed up the boot, a file called /etc/volatile.cache is created. In the event of an unclean shutdown, this file might get corrupted and the creation of these files might not work. To resolve this issue simply delete /etc/volatile.cache.

This happens because NAND flash can have bad blocks. Every program not able to handle bad blocks can trigger messages like that. This is not a real problem with the flash, just with the application.

While booting the offending application is udev. It scans each block device for partitions including the MTD partitions. If the MTD partition has a bad block in the scanning region, the read will fail and this message is printed. To work around it, you can skip the scan for mtd devices by editing the file /etc/udev/rules.d/60-persistent-storage.rules. Replace the line

KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"

with

KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|mtd*", GOTO="persistent_storage_end"

and the messages should go away.

When mounting an NFS share, the mount command hangs for some time. What is wrong?

Busybox is not capable of mounting NFS shares with locking enabled. Use the option -o nolock for NFS mounts.

How can I read/write registers and physical memory regions under Linux?

This tar archive contains a simple tool providing reading and writing at physical addresses under Linux. Source code as well as binaries for OABI and EABI are included.

Stamp9G45 (2)

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAM9 lifetime commit Mar12.pdf322.43 KB

The boot stops displaying ROMBOOT or halts in U-Boot.
The kernel crashes randomly.

If your board runs a bootstrap prior version 3.4 (bootstrap 3.4 prints version information, older versions do not), the problem should be solved by updating.

The new images can be found here:
http://www.armbedded.eu/node/629

Update procedure:
1) launch SAM-BA and choose board according to:
http://www.armbedded.eu/node/8
2) run NANDFLASH "Enable NAND flash" script
3) run from SAM-BA console: NANDFLASH::EraseBlocks 0 0x1ffff
4) run "Send Bootfile" script with the appropriate image for your board

For even newer Stamps also consider the following download:
http://www.armbedded.eu/node/675

We will try to produce products as long as possible. This means, that there will be hardware revisions and changes of the used components if necessary. Of course, the most important factor for every product is the processor itself. Please find information about how long a certain processor is planned to be produced in the PDF attached below. In case of a processor hits its EOL, we try to offer a similar product with migration support for existing customers.

AttachmentSize
SAMA5_lifetime_commit_Jul12.pdf260.1 KB