Computer / Informatik

Openembedded (OE) – Image hangs on INIT

Hi everybody,

on my current work with openembedded i found a problem with the resulting image.

I built a console-image for a „qemuarm“ machine to test it in qemu. The image itself built just fine. Starting the resulting kernel and image in qemu was fine too. But the boot process hangs after INIT is called. It just hangs, no login-shell, no error message, nothing…

A little conversation with a guy from a mailing list i found via google showed that it was an issue with the starting order of the init scripts.

The solution is that udev has to be started after checkroot. Currently the files are /etc/rcS.d/S03udev and /etc/rcS.d/S03checkroot.

My current fix is to do:

sudo mount -o loop <yourimage> <yourmountpoint>
sudo mv <yourmountpoint>/etc/rcS.d/S03udev <yourmountpoint>/etc/rcS.d/S15udev
sudo umount <yourmountpoint>

This way, udev is started after checkroot and everything run’s just fine up to the login prompt 🙂

Another way is to change the corresponding bb file. Here you have two options:

  1. Change the bb file directly
  2. Use your local overlay

The file we’re talking about is „recipes/udev/udev_<version>.bb“. For me it’s udev_141.bb.

You need to change INITSCRIPT_PARAMS from „start 03 S .“ to „start 15 S .“.

Now recompile, that should do the trick 🙂

Hopefully i could help… 🙂

Gr33tz Goddchen

Computer / Informatik

Building avr32 linux with openembedded (oe)

Hey everybody,

currently i’m trying to build a rootfs for an avr32 with openembedded (oe). There are some hints on the avr32linux website.

They say that you should add

TARGET_OS = „linux-uclibc“
MACHINE = „atngw100“
DISTRO = „angstrom-2008.1“
ANGSTROM_MODE = „uclibc“

to your local.conf. But that isn’t correct anymore! ANGSTROM_MODE was renamed to ANGSTROMLIBC!

So now you will have to set

TARGET_OS = „linux-uclibc“
MACHINE = „atngw100“
DISTRO = „angstrom-2008.1“

in your local.conf.

So, if you are getting errors like:

  • Nothing provides „uclibc“
  • Errors regarding glibc while you are building with uclibc
  • Information not available for target ‚avr32-linux‘

Just rename that config variable.

Gr33tz Goddchen