[oe] udev problems on angstrom-2008.1

Denys Dmytriyenko denis at denix.org
Tue Sep 29 03:01:52 UTC 2009


On Mon, Sep 28, 2009 at 05:52:05PM +0300, Vasily Khoruzhick wrote:
> Hi, I'm experiencing problems with image for rx1950 PDA (s3c2442-based PDA 
> with 32M of RAM) built by openembedded.
> For some reason, udev doesn't work, and complains about lack of free space on 
> /dev (which is tmpfs) like this:
> 
> udevd-event[1918]: mknod(/dev/vcS, 020660, (7,0) failed: No space left on 
> device.

Been there, done that.
Short answer - you have too many requested devnodes for udev to handle within 
32MB of RAM. If you absolutely need all the devices enabled in the kernel 
(try disabling/reducing LEGACY_PTY), consider replacing udev with mdev (or 
static devnodes). Or try moving udev's database from tmpfs into another 
partition, maybe on flash.

Long answer - udev besides creating the actual devnodes also keeps its 
database in the same tmpfs filesystem. It consists of an internal directory 
structure with symlinks (a la sysfs) and is stored in /dev/.udev
Keeping all that in tmpfs is not efficient, as it wastes inodes and apparently 
inodes in tmpfs/ramfs are the size of a memory page (4KB). By default tmpfs is 
limited to half the RAM, which in your case is 16MB. That would allow roughly 
4000 inodes. You definitely need more, because of the above messages. Even if 
you fit all of them, using half of your available RAM just for udev is a total 
waste. So, consider suggestions above.

-- 
Denys




More information about the Openembedded-devel mailing list