This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

udev error message when booting OMAP L138 EVM

Other Parts Discussed in Thread: OMAPL138, OMAP-L138, DA8XX, PMP

I am using NFS and an OMAPL138 EVM.  Sometimes (not always), I get a "udevd inotify" error (please see below) during the kernel init.  I am using the 'stock' prebuilt kernel from the psp and arago file system.

I saw a post suggesting that I add something like 'omapfb.vram=2M' to the bootargs.  That did not help - in fact, sometimes instead of the warning message below, I would get NFS timeout errors and the system would not boot.  Due to the intermittent nature of this, I can't say for certain if it had anything to do with the vram statement, but in any case that did not help.

Everything appears to run OK after this; is it something I should be worried about?

 

 

TFTP from server 192.168.0.101; our IP address is 192.168.0.100
Filename 'uImage'.
Load address: 0xc0700000
Loading: #################################################################
         #################################################################
         ##############
done
Bytes transferred = 2113752 (2040d8 hex)
## Booting kernel from Legacy Image at c0700000 ...
   Image Name:   Linux-2.6.33-rc4
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2113688 Bytes =  2 MB
   Load Address: c0008000
   Entry Point:  c0008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.33-rc4 (x0029463@psplinux051) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 PREEMPT Mon May 3 16:01:39 IST 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA850/OMAP-L138/AM18xx EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci da850/omap-l138 variant 0x0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: console=ttyS2,115200n8 noinitrd rw ip=192.168.0.100 root=/dev/nfs nfsroot=192.168.0.101:/home/cd/local-omap/nfsboot,nolock mem=32M
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 27972KB available (4012K code, 315K data, 148K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:245
Console: colour dummy device 80x30
Calibrating delay loop... 149.50 BogoMIPS (lpj=747520)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 144 gpio irqs
regulator: core version 0.5
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
regulator: VDCDC1: 3200 <--> 3300 mV at 3300 mV
regulator: VDCDC2: 1750 <--> 3300 mV at 3300 mV
regulator: VDCDC3: 950 <--> 1375 mV at 1200 mV
regulator: LDO1: 1800 mV
regulator: LDO2: 1150 <--> 1300 mV at 1200 mV
pca953x 1-0020: failed reading register
i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
Switching to clocksource timer0_1
musb_hdrc: version 6.0, cppi4.1-dma, host, debug=0
Waiting for USB PHY clock good...
musb_hdrc: USB Host mode controller at fee00000 using DMA, IRQ 58
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
EMAC: MII PHY configured, RMII PHY will not be functional
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 54
io scheduler noop registered (default)
da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01 panel
Console: switching to colour frame buffer device 60x34
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
console [ttyS2] enabled
brd: module loaded
ahci ahci: forcing PORTS_IMPL to 0x1
ahci ahci: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
ahci ahci: flags: ncq sntf pm led clo only pmp pio slum part ccc
scsi0 : ahci
ata1: SATA max UDMA/133 irq 67
spi_davinci spi_davinci.1: DaVinci SPI driver in EDMA mode
Using RX channel = 18 , TX channel = 19 and event queue = 1
m25p80 spi1.0: m25p64 (8192 Kbytes)
Creating 4 MTD partitions on "m25p80":
0x000000000000-0x000000040000 : "U-Boot"
0x000000040000-0x000000050000 : "U-Boot Environment"
0x000000050000-0x0000007f0000 : "Linux"
0x0000007f0000-0x000000800000 : "MAC Address"
Read MAC addr from EEPROM: ff:ff:ff:ff:ff:ff
spi_davinci spi_davinci.1: Controller at 0xfef0e000
console [netcon0] enabled
netconsole: network logging started
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci ohci.0: DA8xx OHCI
ohci ohci.0: new USB bus registered, assigned bus number 2
ohci ohci.0: irq 59, io mem 0x01e25000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
input: TPS6507x Touchscreen as /devices/platform/i2c-gpio.1/i2c-1/1-0048/input/input0
omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
omap_rtc: RTC power up reset detected
omap_rtc: already running
i2c /dev entries driver
Linux video capture interface: v2.00
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
watchdog watchdog: heartbeat 60 sec
cpuidle: using governor ladder
cpuidle: using governor menu
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.21.
usbcore: registered new interface driver snd-usb-audio
No device for DAI tlv320aic3x
asoc: tlv320aic3x <-> davinci-i2s mapping ok
ALSA device list:
  #0: DA850/OMAP-L138 EVM (tlv320aic3x)
TCP cubic registered
NET: Registered protocol family 17
Clocks: disable unused i2c1
Clocks: disable unused emac
Clocks: disable unused aemif
Clocks: disable unused spi0
Clocks: disable unused mcbsp0
Clocks: disable unused mcbsp1
Clocks: disable unused vpif
ata1: SATA link down (SStatus 0 SControl 300)
regulator_init_complete: incomplete constraints, leaving LDO2 on
regulator_init_complete: incomplete constraints, leaving LDO1 on
regulator_init_complete: incomplete constraints, leaving VDCDC3 on
regulator_init_complete: incomplete constraints, leaving VDCDC2 on
regulator_init_complete: incomplete constraints, leaving VDCDC1 on
davinci_emac_probe: using random MAC addr: 1a:b4:16:82:2b:db
emac-mii: probed
omap_rtc omap_rtc: setting system clock to 2000-01-01 00:02:50 UTC (946684970)
eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=1:00, id=7c0f1)
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
     device=eth0, addr=192.168.0.100, mask=255.255.255.0, gw=255.255.255.255,
     host=192.168.0.100, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=192.168.0.101, rootpath=
Looking up port of RPC 100003/2 on 192.168.0.101
PHY: 1:00 - Link is Up - 100/Full
Looking up port of RPC 100005/1 on 192.168.0.101
VFS: Mounted root (nfs filesystem) on device 0:13.
Freeing init memory: 148K
INIT: version 2.86 booting
Please wait: booting...
Starting udev
udev: starting version 141
udevd[523]: inotify_add_watch(3, (null), 10) failed: Bad address

Remounting root file system...
root: mount: mounting rootfs on / failed: No such file or directory
root: mount: mounting usbfs on /proc/bus/usb failed: No such file or directory
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces... done.
Fri Dec 11 13:58:00 UTC 2009
INIT: Entering runlevel: 5
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpdNET: Registered protocol family 10
.

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project http://arago-project.org da850-omapl138-evm ttyS2

Arago 2009.11 da850-omapl138-evm ttyS2

da850-omapl138-evm login: root
root@da850-omapl138-evm:~#

 

  • I was wondering about those error too.   Enabling udev's debug log, I got something like this around that error:

    ...

    udevd[441]: reading '/etc/udev/rules.d/udev.rules' as rules file
    udevd[441]: rules use 17640 bytes tokens (1470 * 12 bytes), 8700 bytes buffer
    udevd[441]: temporary index used 9940 bytes (497 * 20 bytes)
    udevd[443]: device 0x35aa8 has devpath '/devices/virtual/block/ram0'
    udevd[443]: device 0x35aa8 filled with db file data
    udevd[443]: restoring old watch on '(null)'
    udevd[443]: adding watch on '(null)'
    udevd[443]: inotify_add_watch(3, (null), 10) failed: Bad address
    udevd[443]: device 0x35aa8 has devpath '/devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0'
    udevd[443]: device 0x35aa8 filled with db file data
    udevd[443]: restoring old watch on '(null)'
    udevd[443]: adding watch on '(null)'
    udevd[443]: inotify_add_watch(3, (null), 10) failed: Bad address
    udevd[443]: device 0x35e80 has devpath '/devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0/mmcblk0p3'
    udevd[443]: device 0x35e80 filled with db file data
    udevd[443]: restoring old watch on '(null)'
    udevd[443]: adding watch on '(null)'
    udevd[443]: inotify_add_watch(3, (null), 10) failed: Bad address

    Looking at udev source, it is trying to restore old watch from /dev/.udev/watch, where I have:

    # ls -l /dev/.udev/watch
    lrwxrwxrwx    1 root     root           79 Jan  1 00:00 -1 -> /devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0/mmcblk0p1
    lrwxrwxrwx    1 root     root           27 Jan  1 00:00 3 -> /devices/virtual/block/ram0
    lrwxrwxrwx    1 root     root           69 Jan  1 00:00 4 -> /devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0
    lrwxrwxrwx    1 root     root           79 Jan  1 00:00 5 -> /devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0/mmcblk0p2
    lrwxrwxrwx    1 root     root           79 Jan  1 00:00 6 -> /devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0/mmcblk0p1
    lrwxrwxrwx    1 root     root           79 Jan  1 00:00 7 -> /devices/platform/davinci_mmc.1/mmc_host/mmc1/mmc1:0002/block/mmcblk0/mmcblk0p3

    Seems to be device node lookup for some of those are failing.  Looking into device db in /dev/.udev/db, I see:

    -rw-r--r--    1 root     root            0 Jan  1 00:00 \x2fdevices\x2fplatform\x2fdavinci_mmc.1\x2fmmc_host\x2fmmc1\x2fmmc1:0002\x2fblock\x2fmmcblk0
    -rw-r--r--    1 root     root            0 Jan  1 00:00 \x2fdevices\x2fplatform\x2fdavinci_mmc.1\x2fmmc_host\x2fmmc1\x2fmmc1:0002\x2fblock\x2fmmcblk0\x2fmmcblk0p1
    -rw-r--r--    1 root     root            0 Jan  1 00:00 \x2fdevices\x2fplatform\x2fdavinci_mmc.1\x2fmmc_host\x2fmmc1\x2fmmc1:0002\x2fblock\x2fmmcblk0\x2fmmcblk0p2
    -rw-r--r--    1 root     root            0 Jan  1 00:00 \x2fdevices\x2fplatform\x2fdavinci_mmc.1\x2fmmc_host\x2fmmc1\x2fmmc1:0002\x2fblock\x2fmmcblk0\x2fmmcblk0p3
    -rw-r--r--    1 root     root            0 Jan  1 00:00 \x2fdevices\x2fvirtual\x2fblock\x2fram0

    Those file are 0 size file.  I think those are supposed to be symbolic link pointing to device node information, i.e:

    lrwxrwxrwx    1 root     root           26 Jan  1 00:00 \x2fdevices\x2fplatform\x2fmusb_hdrc\x2fusb1 -> bus/usb/001/001 char/189:0

    Don't know enough yet to dig further.

  • Interesting, thanks for the response. How were you able to enable udev's debug log?

    By the way, I do not see 0 size files in my /dev/.udev/db folder.

  • > How were you able to enable udev's debug log?

     

    In /etc/udev/udev.conf,

    udev_log="debug"

     

  • Thanks, that allowed me to generate a ton of debug data too.  Like you, I am seeing the links in /dev/.udev/db being of zero length now, and these are corresonding to the inotify warnings I am getting.

    I also don't know enough yet to know what it means.

  • I'm not  a udev expert by my understanding is that this usually revolves around a driver not providing a specific inotify mechanism for udev through the device node they create.  This issue does not seem to prevent booting as udev is basically just letting you know that it was trying to add a watch to get notified when a device appears but that the device doesn't support that.  If possible can you include your entire log file with all the errors?  This may help us identify which drivers are not supporting the inotify mechanism correctly.  For now though you should be able to safely ignore these messages, but let us know if this is causing you issues or preventing you from being able to boot.

  • Is there any way you can try a newer kernel version for OMAPL1? This might have been caused by the unstable nature of RC kernel and may have been already resolved...

    While I currently cannot try it on this particular platform, I checked other platforms, that use the same linux-davinci kernel tree, but different kernel versions. All running new and old versions of Arago filesystem with the same version of udev 141. All of them behave properly - there are no warning messages and device files in the udev database are not empty:

    root@dm355-evm:~# ls -l /dev/.udev/watch/
    lrwxrwxrwx    1 root     root           27 Jan  1  1970 2 -> /devices/virtual/block/ram0
    lrwxrwxrwx    1 root     root           69 Sep  3 21:37 3 -> /devices/platform/davinci_mmc.0/mmc_host/mmc0/mmc0:0007/block/mmcblk0

    root@dm355-evm:~# cat /dev/.udev/db/\\x2fdevices\\x2fvirtual\\x2fblock\\x2fram0
    N:ram0
    S:block/1:0
    W:2
    E:ID_FS_USAGE=filesystem
    E:ID_FS_TYPE=ext2
    E:ID_FS_VERSION=0.0

    root@dm355-evm:~# cat /dev/.udev/db/\\x2fdevices\\x2fplatform\\x2fdavinci_mmc.0\\x2fmmc_host\\x2fmmc0\\x2fmmc0\:0007\\x2fblock\\x2fmmcblk0
    N:mmcblk0
    S:block/179:0
    S:disk/by-id/mmc-SD02G_0xe5300e52
    S:disk/by-path/platform-mmc0:0007
    W:3
    E:ID_NAME=SD02G
    E:ID_SERIAL=0xe5300e52
    E:ID_PATH=platform-mmc0:0007

  • Yes, I can try rebuilding a new version of the kernel.  Which version of the kernel are you using, and where is it available?