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.

Mounting root filesystem on NFS

Having followed the instructions in section A.5 of the getting started guide (extracting dm355_flash_image.....tar to /tmp/filesys and setting bootargs to 'console=ttys0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw nfsroot=192.168.124.130:/tmp/filesys,nolock mem=116M') I am still not booting. Below is as far as the console shows:

DM355 EVM # boot

Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1585252 Bytes =  1.5 MB
   Load Address: 80008000
   Entry Point:  80008000
## Booting image at 80700000 ...
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1585252 Bytes =  1.5 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................
............................................. done, booting thek

I know the IP addresses are correct, and I can mount the NFS share on the host linux machine; I can also see NFS traffic by running a tcpdump on the host linux machine, yet it hangs.

My current suspicion is that there are files missing in my dm355_flash_image_1_30_00_23.tar file - is there a location I can download this from, or possibly could someone gzip up the root of a fresh dev board for me?

 Cheers

  • Is this the entire boot log?  If so, it does not appear you got far enough for the system to even attempt an NFS mount; this may be due to corrupt Linux kernel or incompatible software.  What version of DVSDK are you using?  I assume you are running this on a TI EVM?

  • Entire boot capture follows:

    Chip initialization passed!
    TI UBL Version: 1.20, Flash type: NAND
    Booting Catalog Boot Loader
    BootMode = NAND
    Starting NAND Copy...
    Valid MagicNum found.
       DONE

    U-Boot 1.2.0 (Oct 17 2007 - 15:38:02)

    DRAM:  128 MB
    NAND:  NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
    Bad block table found at page 524224, version 0x01
    Bad block table found at page 524160, version 0x01
    nand_read_bbt: Bad block at 0x0b480000
    nand_read_bbt: Bad block at 0x0f940000
    nand_read_bbt: Bad block at 0x220c0000
    nand_read_bbt: Bad block at 0x28020000
    nand_read_bbt: Bad block at 0x29e20000
    nand_read_bbt: Bad block at 0x2f4c0000
    nand_read_bbt: Bad block at 0x300a0000
    nand_read_bbt: Bad block at 0x30fa0000
    nand_read_bbt: Bad block at 0x338a0000
    nand_read_bbt: Bad block at 0x34ec0000
    nand_read_bbt: Bad block at 0x3b6e0000
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
    Bad block table found at page 524224, version 0x01
    Bad block table found at page 524160, version 0x01
    nand_read_bbt: Bad block at 0x049e0000
    nand_read_bbt: Bad block at 0x0efa0000
    nand_read_bbt: Bad block at 0x0f220000
    nand_read_bbt: Bad block at 0x0fda0000
    nand_read_bbt: Bad block at 0x11020000
    nand_read_bbt: Bad block at 0x11b20000
    nand_read_bbt: Bad block at 0x12ca0000
    nand_read_bbt: Bad block at 0x13ba0000
    nand_read_bbt: Bad block at 0x141e0000
    nand_read_bbt: Bad block at 0x14660000
    nand_read_bbt: Bad block at 0x149e0000
    nand_read_bbt: Bad block at 0x16ca0000
    nand_read_bbt: Bad block at 0x16e60000
    nand_read_bbt: Bad block at 0x16ea0000
    nand_read_bbt: Bad block at 0x17120000
    nand_read_bbt: Bad block at 0x176a0000
    nand_read_bbt: Bad block at 0x179e0000
    nand_read_bbt: Bad block at 0x17a20000
    nand_read_bbt: Bad block at 0x188e0000
    nand_read_bbt: Bad block at 0x18d20000
    nand_read_bbt: Bad block at 0x18f60000
    nand_read_bbt: Bad block at 0x1a420000
    nand_read_bbt: Bad block at 0x1a460000
    nand_read_bbt: Bad block at 0x1a7e0000
    nand_read_bbt: Bad block at 0x1cbe0000
    nand_read_bbt: Bad block at 0x1cd20000
    nand_read_bbt: Bad block at 0x1cf40000
    nand_read_bbt: Bad block at 0x1d2e0000
    nand_read_bbt: Bad block at 0x1db60000
    nand_read_bbt: Bad block at 0x1e220000
    nand_read_bbt: Bad block at 0x1eba0000
    nand_read_bbt: Bad block at 0x1f960000
    nand_read_bbt: Bad block at 0x1ff00000
    nand_read_bbt: Bad block at 0x37380000
    nand_read_bbt: Bad block at 0x3fb40000
    2048 MiB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 216MHz
    DDR Clock :- 171MHz
    Hit any key to stop autoboot:  3  0
    DM355 EVM # printenv

    bootdelay=3
    baudrate=115200
    serverip=192.168.124.129
    bootfile=uImage
    bootcmd=nboot 0x80700000 0 0x400000; bootm
    bootargs=console=ttys0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw nfsroot=192.168.124.130:/tmp/filesys,nolock mem=116M
    stdin=serial
    stdout=serial
    stderr=serial
    videostd=pal

    Environment size: 285/16380 bytes
    DM355 EVM # boot


    Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000
       Image Name:   Linux-2.6.10_mvl401
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1585252 Bytes =  1.5 MB
       Load Address: 80008000
       Entry Point:  80008000
    ## Booting image at 80700000 ...
       Image Name:   Linux-2.6.10_mvl401
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1585252 Bytes =  1.5 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    OK

    Starting kernel ...

    Uncompressing Linux.......................................................................................................... done, booting thek

    Yes, this is running on a DM355 EVM board. All the flash has been wiped and started from scratch, uploading UBL and u-boot using the UART flashing utility and transfered the kernel uImage-dm355 over tftp.

    The host linux system does show a mounted NFS shared from the device also:

    $ showmount -a
    All mount points on hostname:
    192.168.124.131:/tmp/filesys
    $

  • I think the error is in your bootargs, you have console=ttys0,115200n8 whereas it should be console=ttyS0,115200n8, I believe having that capital wrong will make the kernel confused when it tries to find your output console, so all you see is the boot loader preparing the kernel and as soon as the boot arguments are passed and the kernel starts the console will go dead.

  • How blind of me - now getting some more messages, but its not yet given my a login prompt.

    Messages follow:

    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci DM355 EVM
    Memory policy: ECC disabled, Data cache writeback
    DM0350
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw nfsroot=192.168.124.130:/tmp/filesys,nolock mem=116M
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 116MB = 116MB total
    Memory: 114176KB available (2762K code, 585K data, 164K init)
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    spawn_desched_task(00000000)
    desched cpu_callback 3/00000000
    ksoftirqd started up.
    desched cpu_callback 2/00000000
    desched thread 0 started up.
    NET: Registered protocol family 16
    Registering platform device 'serial8250.0'. Parent at platform
    Registering platform device 'nand_davinci.0'. Parent at platform
    Registering platform device 'dm9000.0'. Parent at platform
    Registering platform device 'mmc.0'. Parent at platform
    Registering platform device 'mmc.1'. Parent at platform
    DaVinci I2C DEBUG: 09:55:22 Aug 27 2008
    Registering platform device 'i2c'. Parent at platform
    SCSI subsystem initialized
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    musb_hdrc: version 2.2a/db-0.4.8 [pio] [host] [debug=0]
    Registering platform device 'musb_hdrc'. Parent at platform
    musb_hdrc: USB Host mode controller at c7800000 using PIO, IRQ 12
    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
    arch/arm/mach-davinci/spi_platform_init.c:dm355_spi_board_init:123 dm355_spi_board_init
    arch/arm/mach-davinci/spi_platform_init.c:dm355_spi_board_init:129 REG BOARD ret 0
    Registering platform device 'dm_spi.0'. Parent at platform
    arch/arm/mach-davinci/spi_platform_init.c:dm355_spi_board_init:136 REGISTER DEVICE ret 0
    NetWinder Floating Point Emulator V0.97 (double precision)
    JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
    yaffs Oct 18 2007 12:52:27 Installing.
    Initializing Cryptographic API
    Registering platform device 'dm355fb.0'. Parent at platform
    Console: switching to colour frame buffer device 90x30
    watchdog: TI DaVinci Watchdog Timer: timer margin 64 sec
    Registering platform device 'davinci_pwm0.0'. Parent at platform
    Registering platform device 'davinci_pwm1.1'. Parent at platform
    Registering platform device 'davinci_pwm2.2'. Parent at platform
    Registering platform device 'davinci_pwm3.3'. Parent at platform
    Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
    Registering platform device 'serial8250'. Parent at platform
    ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
    ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A
    ttyS2 at MMIO 0x1e06000 (irq = 14) is a 16550A
    io scheduler noop registered
    io scheduler anticipatory registered
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    loop: loaded (max 8 devices)
    dm9000 Ethernet Driver
    eth0: dm9000 at c7862000,c7864002 IRQ 45 MAC: 00:0e:99:02:c0:a0
    i2c /dev entries driver
    Linux video capture interface: v1.00
    Registering platform device 'vpfe.1'. Parent at platform
    vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
    ipipe major#: 253, minor# 0
    Registering platform device 'dm355_ipipe.2'. Parent at platform
    ipipe driver registered
    af major#: 252, minor# 0
    Registering platform device 'dm355_af.2'. Parent at platform
    aew major#: 251, minor# 0
    Registering platform device 'dm355_aew.2'. Parent at platform
    elevator: using anticipatory as default io scheduler
    at25xxA_spi_eeprom init
    nand_davinci nand_davinci.0: Using 4-bit hardware ECC
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
    2 NAND chips detected
    nand_bbt: ECC error while reading bad block table
    nand_bbt: ECC error while reading bad block table
    Creating 5 MTD partitions on "nand_davinci.0":
    0x00000000-0x003c0000 : "bootloader"
    0x003c0000-0x00400000 : "params"
    0x00400000-0x00800000 : "kernel"
    0x00800000-0x20800000 : "filesystem1"
    0x20800000-0x80000000 : "filesystem2"
    nand_davinci nand_davinci.0: hardware revision: 2.3
    scan_boardinfo:<NULL>:-1067858964
    modias <NULL> irq 2000000 max_speed 65535 bus_num 0 chip_select 0 mode -1068867824
    drivers/spi/spi.cat25xxA_spi_eeprom device register Succeeded
    dm_spi.0: dm355 SPI Controller driver at 0xc7866000 (irq = 42)
    Initializing USB Mass Storage driver...
    usbcore: registered new driver usb-storage
    USB Mass Storage support registered.
    usbcore: registered new driver usbhid
    drivers/usb/input/hid-core.c: v2.0:USB HID core driver
    mice: PS/2 mouse device common for all mice
    mmc mmc.0: Supporting 4-bit mode
    mmc mmc.0: Using DMA mode
    mmc mmc.1: Supporting 4-bit mode
    mmc mmc.1: Using DMA mode
    Registering platform device 'davinci-audio.0'. Parent at platform
    NET: Registered protocol family 2
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 8192 bind 16384)
    Initializing XFRM netlink socket
    NET: Registered protocol family 1
    NET: Registered protocol family 10
    IPv6 over IPv4 tunneling driver
    NET: Registered protocol family 17
    eth0: link down
    Sending DHCP requests .<6>eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    , OK
    IP-Config: Got DHCP answer from 192.168.124.254, my address is 192.168.124.131
    IP-Config: Complete:
    device=eth0, addr=192.168.124.131, mask=255.255.255.0, gw=255.255.255.255,
    host=192.168.124.131, domain=localdomain, nis-domain=(none),
    bootserver=192.168.124.254, rootserver=192.168.124.130, rootpath=
    Looking up port of RPC 100003/2 on 192.168.124.130
    Looking up port of RPC 100005/1 on 192.168.124.130
    VFS: Mounted root (nfs filesystem).
    Freeing init memory: 164K

     

  • Bernie,

    Good catch, a capital letter would certainly make a difference and this specific typo would explain why you do not see anymore output on the serial terminal.

  • So is there a reason why the kernel isn't going on to load init from the (apparently successful) NFS mounted filesystem?

  • I don't see any init errors in the log you posted, but normally if you are having an init failure (it asks you to try a init= option in the bootargs) that means that either

    1. Your filesystem is not in place, such as if you are mounting a folder that does not contain the filesystem files, or that is at least missing some of the critical filesystem files.

    2. Your filesystem was damaged moving it into place, if symbolic links were not preserved when copying files into the filesystem folder than you can end up with a init failure. This could be remedied by untaring the file system directly into the NFS mount folder, or by copying it in with the -r option using cp. Note that you probably want to be logged in as root when extracting a filesystem on the host.

  • As far as I know all the symbolic links are in place, although /linuxrc was pointing to /bin/busybox which I updated to bin/busybox (this may just have been a bad link on the host system). As you say, it's not kicking an error up saying init cannot be found, and it does exist in /sbin/init as one would expect.

    Are there files that are not in the tarball flash image that would be needed possibly?

     

    [edit] I haven't been logged in as root as this is very bad practise - none of the file operations have failed due to lack of priviledges though

  • Found the problem - I had a physical file called 'console' in /dev/ after removing this, some further comments get echoed to the screen:

    /bin/sh: error while loading shared libraries: libncurses.so.5: cannot open shared o

    If I hit enter the following messages then come up:

    Entering runlevel: 3
    /bin/sh: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

    MontaVista(R) Linux(R) Professional Edition 4.0.1 (0600980)

    192.168.124.128 login:

    However, I cannot login - first attempt, root:

    /bin/login: error while loading shared libraries: libproc-3.2.5.so: cannot open
    shared object file: No such file or directory

    MontaVista(R) Linux(R) Professional Edition 4.0.1 (0600980)

    192.168.124.128 login:

     

    Where might I find these missing library files?

  • I am glad to hear you found the problem, but I am curious where you got this filesystem? The filesystem you get from following the getting started guide in /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/target should have everything you need (it works for me via NFS and seems to for most). The first place I would guess to look for such files would be here.

  • Ah, it could be possible that not all the files were extracted then - I swiftly ran out of disk space when extracting to my virtual machine, which had about 2GB spare - I thought this would be plenty!

    I shall find some space on a network server, create a new virtual drive and extract again

  • Okay, I'm pretty convinced I must have a corrupt install DVD, getting messages such as:

    grep: invalid predicate `-qs'

    and

    rm: invalid predicate `-f'

    and the recurring one:

    sleep: 10: No such file or directory

     

    Therefore, is there a link available to re-download the install files?

  • You can download the files from www.ti.com/davinciregistration once you have registered your board, those are some strange messages hopefully downloading it will help, and that it is not some incompatibility with your host Linux distribution.

  • I tried following that link before, but the https://www-a.ti.com/extranet/cm/product/dvevmsw/dspswext/general/homepage.shtml link will not load for me - is the TI extranet working?

  • That page is working from me, of course I am inside the TI network, but I have not heard of any other issues with it today so far.

  • Did you register your board?  Please note that you must use the same e-mail/password you setup during the EVM registration process.

    I just clicked on the link in your post and logged-in without any issues.

  • It fowarded me to the login page, which I logged in successfully, but when I went to follow the link again, the actual page would not load

  • So you logged-in once successfully and saw the software update site but subsequent log-ins have been unsuccessful?  If so, can you try loggin-in from a different machine (just curious)?

     

  • Okay, having come in this morning, and set up a TI-Pass PIN, it all appears to be working and I am downloading the files.

    My suspicion is that the error message page is broken that should have been telling me the account I was logging in with wasn't set up with the TI-Pass PIN.

    I did however manage to get the board to boot and run the demos etc - my suspicion is that I extracted files in a wrong order or something like that.

    Also, regarding Juan's last question - when I followed the link before, it forwarded me to the TI login page, I logged in and it then gave me the my TI page (not the DaVinci one). Following the link subsequent times just gave a network timeout (i.e. no page was served)

  • It sounds like you are all set (e.g. were able to download files and run demos).

    With regards to the errors loggin-in, I believe you will be taken to the my TI login page; however, if you do not use the correct username/password (set up during registration of EVM), you will get a mostly blank page suggesting errors.  If you believe you are seeing something more than this, please let us know and we will be happy to look into this.

  • Your experience is expected, unfortunately the way the updates site is constructed, if your my.ti login is not flagged for access to the updates site you do not get an error saying you need to get your EVM registered, it just returns a blank (no) page which leads many to believe that the site is down when it really just means that you need to complete the registration. After you go through that PIN process it should work properly and allow you to get in. If you have trouble beyond that there should be an email link on the registration page to a list for help on registration issues, for example dvevm_regform@list.ti.com for the DM6446 DVEVM registration.