I need to create /dev/shm on an embedded ARM system. From "Installed The Latest Changes to Current and......".

I see that it can be created with mkdir /lib/udev/devices/shm, but I'm wondering what is supposed to be at that location? The only directory I have at that location is /lib/modules/, there's no devices/ or anything.

So I went ahead and just created them, empty directories. I then added:

tmpfs                   /dev/shm                tmpfs   defaults       0 0

to my /etc/fstab and I didn't add an mtab entry, since I don't have an /etc/mtab. I then rebooted and now, there's still no /dev/shm device.

Any ideas how I get that device?


Oh, and a mount -a (after a reboot) results in:

# mount -a
mount: mounting tmpfs on /dev/shm failed: No such file or directory`

An embedded system may have a static /dev, rather than use udev to populate it. If you don't have /lib/udev, then presumably your system isn't running udev. In that case, you need to create /dev/shm on the root filesystem.

If the root filesystem is an initramfs, rebuild your initramfs with an extra line in the initramfs description file:

dir /dev 755 0 0
dir /dev/shm 755 0 0

If the root filesystem is an on-disk filesystem, just create the directory.

# mkdir /dev/shm

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.