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.

Linux/AM3358: NFS boot error

Part Number: AM3358

Tool/software: Linux

I have been googling but my knowledge about linux is limited and cannot find anything about this issue (even on TI forum). I attach environment variables from uboot and UART0 console output. 

This is little overview steps I have done.

  • My dev kit is BBBW.
  • I set up a virtual machine (Ubuntu 12.04) under virtualbox where I want to set all tools needed for development.
  • I followed the TI official wiki pages about building U-boot and Linux.
  • All servers (DHCP, TFTP, NFS) are running and I am able to mount the rootpath and read and write from/to it.
  • ufw inactive.
  • /etc/exports
  • /export/rootfs/ *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
  • U-boot has static IP 192.168.2.3 and this IP is also passed to kernel.
  • I had to add USB-Ether gadget driver into kernel so it can mount NSF FS.
  • I didn't add initramfs into kernel due to mounting FS via NFS.
  • As a filesystem I'm using original tarball from sdk (tisdk-rootfs-image-am335x-evm.tar.xz). If I create a SD with this filesystem it boots properly!
  • I installed modules from kernel to filesystem.
  • BBBW loads successfully u-boot, zImage and dtb via TFTP. It also mounts filesystem via NFS (at first place).

And these are my results and observation.

  • It freezes in boot process with this message: [   25.922728] nfs: server 192.168.2.1 not responding, still trying
  • The kernel stuck right after message [  OK  ] Started Network Service.
  • Targets heartbeat led is blinking aprox 2 times faster.
  • Some files and folders required by BBBW over NFS are not placed in rootpath. (Ex.: /etc/ld.so.preload, /etc/inird-release, /proc/self, /proc/vz, /etc/adjtime, /systemd/system.conf.d,... )
  • If i tried to use initramfs as NFS filesystem, target booted properly.

Could it be caused by using virtual machine as a host? I would appreciate any help including tutorials how to get deeper into embedded Linux development.

Many thanks

console-output.txt
U-Boot 2017.01-00444-g4e7f4689e5-dirty (Jan 18 2018 - 15:10:52 +0100)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM:  512 MiB
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
MMC: no card present
** Bad device mmc 0 **
Using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Hit any key to stop autoboot:  0 
Booting from network ...
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 50:65:83:d5:08:dc
HOST MAC de:ad:be:af:00:00
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
Using usb_ether device
TFTP from server 192.168.2.1; our IP address is 192.168.2.3
Filename 'zImage'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         ###########################################################
         881.8 KiB/s
done
Bytes transferred = 3728160 (38e320 hex)
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 50:65:83:d5:08:dc
HOST MAC de:ad:be:af:00:00
RNDIS ready
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
Using usb_ether device
TFTP from server 192.168.2.1; our IP address is 192.168.2.3
Filename 'am335x-boneblack.dtb'.
Load address: 0x88000000
Loading: ###
         821.3 KiB/s
done
Bytes transferred = 37857 (93e1 hex)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff3000, end 8ffff3e0 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.59-ga75d8e9305 (root@host-VirtualBox) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #8 PREEMPT Mon Jan 22 15:57:07 CET 2018
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: TI AM335x BeagleBone Black
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x9d000000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (sgx neon)
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyO0,115200n8 g_ether.dev_addr=50:65:83:d5:08:dc nfsrootdebug root=/dev/nfs nfsroot=192.168.2.1:/export/rootfs,nolock rw ip=192.168.2.3:192.168.2.1::255.255.25f
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 456940K/524288K available (8192K kernel code, 288K rwdata, 2444K rodata, 1024K init, 281K bss, 18196K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0d48310   ( 289 kB)
[    0.000000]        .bss : 0xc0d48310 - 0xc0d8eab4   ( 282 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000031] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000040] OMAP clocksource: timer1 at 24000000 Hz
[    0.000189] clocksource_probe: no matching clocksources found
[    0.000342] Console: colour dummy device 80x30
[    0.000368] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.000373] This ensures that you still see kernel messages. Please
[    0.000378] update your kernel commandline.
[    0.000399] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.089240] pid_max: default: 32768 minimum: 301
[    0.089357] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.089367] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090075] CPU: Testing write buffer coherency: ok
[    0.090412] Setting up static identity map for 0x80100000 - 0x80100060
[    0.091158] EFI services will not be available.
[    0.092307] devtmpfs: initialized
[    0.102732] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.103058] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.103082] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.106351] pinctrl core: initialized pinctrl subsystem
[    0.107475] NET: Registered protocol family 16
[    0.109161] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.122151] omap_hwmod: debugss: _wait_target_disable failed
[    0.199231] cpuidle: using governor ladder
[    0.229221] cpuidle: using governor menu
[    0.234654] OMAP GPIO hardware version 0.1
[    0.247959] No ATAGs?
[    0.247984] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.286439] edma 49000000.edma: TI EDMA DMA engine driver
[    0.289204] usbcore: registered new interface driver usbfs
[    0.289431] usbcore: registered new interface driver hub
[    0.289527] usbcore: registered new device driver usb
[    0.289880] omap_i2c 44e0b000.i2c: could not find pctldev for node /0000/pinmux@800/pinmux_i2c0_pins, deferring probe
[    0.289928] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c2_pins, deferring probe
[    0.290025] media: Linux media interface: v0.10
[    0.290072] Linux video capture interface: v2.00
[    0.290111] pps_core: LinuxPPS API ver. 1 registered
[    0.290117] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.290138] PTP clock support registered
[    0.290171] EDAC MC: Ver: 3.0.0
[    0.291137] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.291441] Advanced Linux Sound Architecture Driver Initialized.
[    0.292606] clocksource: Switched to clocksource timer1
[    0.301696] NET: Registered protocol family 2
[    0.302383] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.302427] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.302465] TCP: Hash tables configured (established 4096 bind 4096)
[    0.302526] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.302542] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.302721] NET: Registered protocol family 1
[    0.303109] RPC: Registered named UNIX socket transport module.
[    0.303120] RPC: Registered udp transport module.
[    0.303126] RPC: Registered tcp transport module.
[    0.303131] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.303992] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.306085] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.312871] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.313708] NFS: Registering the id_resolver key type
[    0.313747] Key type id_resolver registered
[    0.313755] Key type id_legacy registered
[    0.313796] ntfs: driver 2.1.32 [Flags: R/O].
[    0.315487] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.315505] io scheduler noop registered
[    0.315512] io scheduler deadline registered
[    0.315652] io scheduler cfq registered (default)
[    0.316845] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.371483] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.374914] ial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
[    0.994611] console [ttyS0] enabled
[    0.999692] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    1.006510] [drm] Initialized
[    1.021719] brd: module loaded
[    1.030522] loop: module loaded
[    1.035729] libphy: Fixed MDIO Bus: probed
[    1.043580] 47401300.usb-phy supply vcc not found, using dummy regulator
[    1.055036] 47401b00.usb-phy supply vcc not found, using dummy regulator
[    1.070739] using random self ethernet address
[    1.075296] using random host ethernet address
[    1.079767] using self ethernet address: 50:65:83:d5:08:dc[    1.085755] usb0: HOST MAC aa:08:38:2f:51:be
[    1.090140] usb0: MAC 50:65:83:d5:08:dc
[    1.094053] using random self ethernet address
[    1.098515] using random host ethernet address
[    1.103155] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[    1.109797] g_ether gadget: g_ether ready
[    1.114354] mousedev: PS/2 mouse device common for all mice
[    1.120438] i2c /dev entries driver
[    1.125739] cpuidle: enable-method property 'ti,am3352' found operations
[    1.133495] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.253865] ledtrig-cpu: registered to indicate activity on CPUs
[    1.266115] NET: Registered protocol family 10
[    1.271824] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.278795] NET: Registered protocol family 17
[    1.283654] Key type dns_resolver registered
[    1.288286] omap_voltage_late_init: Voltage driver support not added
[    1.338294] random: fast init done
[    1.344199] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    1.350167] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    1.358457] mmc1: new high speed MMC card at address 0001
[    1.364683] mmcblk1: mmc1:0001 S10004 3.56 GiB 
[    1.369520] mmcblk1boot0: mmc1:0001 S10004 partition 1 4.00 MiB
[    1.375746] mmcblk1boot1: mmc1:0001 S10004 partition 2 4.00 MiB
[    1.382959]  mmcblk1: p1
[    1.504936] tda998x 0-0070: found TDA19988
[    1.510260] tilcdc 4830e000.lcdc: bound 0-0070 (ops tda998x_ops)
[    1.516358] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.523012] [drm] No driver support for vblank timestamp query.
[    1.529268] tilcdc 4830e000.lcdc: No connectors reported connected with modes
[    1.536477] [drm] Cannot find any crtc or sizes - going 1024x768
[    1.550460] Console: switching to colour frame buffer device 128x48
[    1.561615] tilcdc 4830e000.lcdc: fb0:  frame buffer device
[    1.590456] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
[    1.597842] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.723427] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[    1.731015] hctosys: unable to open rtc device (rtc0)
[    1.762756] IP-Config: Complete:
[    1.766016]      device=usb0, hwaddr=50:65:83:d5:08:dc, ipaddr=192.168.2.3, mask=255.255.255.0, gw=255.255.255.255
[    1.776432]      host=192.168.2.3, domain=, nis-domain=(none)
[    1.782203]      bootserver=192.168.2.1, rootserver=192.168.2.1, rootpath=
[    1.789434] ALSA device list:
[    1.792419]   No soundcards found.
[    7.289874] VFS: Mounted root (nfs filesystem) on device 0:15.
[    7.297031] devtmpfs: mounted
[    7.303978] Freeing unused kernel memory: 1024K
[    7.946828] systemd[1]: System time before build time, advancing clock.
[    8.050755] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[    8.069625] systemd[1]: Detected architecture arm.

Welcome to Arago 2017.10!

[    8.107209] systemd[1]: Set hostname to <am335x-evm>.
[    8.848771] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    8.883391] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[    8.923184] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    9.005321] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    9.034551] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    9.063250] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[    9.102884] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[  OK  ] Created slice System Slice.
[  OK  ] Created slice system-getty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Reached target Slices.
[  OK  ] Listening on Journal Socket.
         Starting Setup Virtual Console...
         Starting Load Kernel Modules...
         Starting Create list of required st... nodes for the current kernel...
         Mounting Temporary Directory...
[  OK  ] Listening on Network Service Netlink Socket.
[    9.563107] cryptodev: loading out-of-tree module taints kernel.
[    9.587726] cryptodev: driver 1.8 loaded.
[  OK  ] Listening on udev Kernel Socket.
         Starting Remount Root and Kernel File Systems...
[  OK  ] Reached target Remote File Systems.
[  OK  ] Listening on Journal Socket (/dev/log).
         Starting Journal Service...
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target Paths.
         Mounting Debug File System...
[    9.788394] random: crng init done
         Mounting POSIX Message Queue File System...
[  OK  ] Mounted Temporary Directory.
[  OK  ] Started Setup Virtual Console.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Create list of required sta...ce nodes for the current kernel.
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Mounted Debug File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
         Starting udev Coldplug all Devices...
         Starting Create Static Device Nodes in /dev...
         Mounting Configuration File System...
         Starting Apply Kernel Variables...
[  OK  ] Mounted Configuration File System.
[   10.677053] systemd-journald[100]: Received request to flush runtime journal from PID 1
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /media/ram...
         Mounting /var/volatile...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /var/volatile.
[  OK  ] Mounted /media/ram.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Synchronized.
[   13.002105] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[  OK  ] Started udev Coldplug all Devices.
[   13.105475] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on RPCbind Server Activation Socket.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting telnetd.service...
[  OK  ] Started System Logging Service.
         Starting Print notice about GPLv3 packages...
         Starting Login Service...
[  OK  ] Started D-Bus System Message Bus.
[   15.259999] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[   15.484199] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[   15.496096] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   15.514550] remoteproc remoteproc0: wkup_m3 is available
[   15.532999] omap-aes 53500000.aes: will run requests pump with realtime priority
         Starting Network Service...
[   15.797578] asoc-simple-card sound: hdmi-hifi.0 <-> 48038000.mcasp mapping ok
[   15.839295] remoteproc remoteproc0: powering up wkup_m3
[  OK  ] Started Kernel Logging Service.
[   15.978616] PM: Cannot get wkup_m3_ipc handle
[   16.017251] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224268
[   16.017529] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   16.017553] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
         Starting Save/Restore Sound Card State...
[  OK  ] Started telnetd.service.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Started Network Service.
[   25.922684] nfs: server 192.168.2.1 not responding, still trying
uboot-printenv.txt
arch=arm
args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
baudrate=115200
board=prusa_pro
board_name=A335BNLT
board_rev=BWA5
board_serial=1650BBWG0826
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_fdt=try
boot_fit=0
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=mmc0 legacy_mmc0 mmc1 legacy_mmc1 nand0 pxe dhcp 
bootcmd=echo Booting from network ...; setenv autoload no;  	run netloadimage; run findfdt; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile;
bootcmd_legacy_mmc0=setenv mmcdev 0; setenv bootpart 0:2 ; run mmcboot
bootcmd_legacy_mmc1=setenv mmcdev 1; setenv bootpart 1:2 ; run mmcboot
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_nand=run nandboot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcount=1
bootdelay=2
bootdir=/boot
bootenvfile=uEnv.txt
bootfile=zImage
bootm_size=0x10000000
bootpart=0:2
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
console=ttyO0,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc raw 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 01
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x400t in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run import;
eth1addr=50:65:83:d5:08:de
ethact=cpsw
ethaddr=50:65:83:d5:08:dc
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtcontroladdr=9df294f8
fdtfile=undefined
findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi; if test $board_name = BBBW; then setenv fdtfi 
finduuid=part uuid mmc ${bootpart} uuid
fit_bootfile=fitImage
fit_loadaddr=0x87000000
importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
init_console=if test $board_name = A335_ICE; then setenv console ttyO3,115200n8;else setenv console ttyO0,115200n8;fi;
ipaddr=192.168.2.3
kernel_addr_r=0x82000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x82000000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
loadfit=run args_mmc; bootm ${loadaddr}#${fdtfile};
loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else r;
mmcdev=0
mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot lo;
mmcrootfstype=ext4 rootwait
mtdids=nand0=nand.0
mtdparts=mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m)
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype}
nandboot=echo Booting from nand ...; run nandargs; nand read ${fdtaddr} NAND.u-boot-spl-os; nand read ${loadaddr} NAND.kernel; bootz ${loadaddr} - ${fdtaddr}
nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,2048
nandrootfstype=ubifs rootwait=1
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
netloadfdt=tftp ${fdtaddr} ${fdtfile}
netloadimage=tftp ${loadaddr} ${bootfile}
netmask=255.255.255.0
nfsopts=nolock
optargs=g_ether.dev_addr=50:65:83:d5:08:dc nfsrootdebug
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
pxefile_addr_r=0x80100000
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype}
ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
ramdisk_addr_r=0x88080000
ramroot=/dev/ram0 rw
ramrootfstype=ext2
rdaddr=0x88080000
rootpath=/export/rootfs
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart}e
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtye
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuingi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIe
scriptaddr=0x80000000
serverip=192.168.2.1
soc=am33xx
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootz ${loadaddr}
spibusno=0
spiimgsize=0x362000
spiroot=/dev/mtdblock4 rw
spirootfstype=jffs2
spisrcaddr=0xe0000
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial@44e09000
stdin=serial@44e09000
stdout=serial@44e09000
update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
usbnet_devaddr=50:65:83:d5:08:dc
vendor=ti
ver=U-Boot 2017.01-00444-g4e7f4689e5-dirty (Jan 18 2018 - 15:10:52 +0100)

  • Hi Filip,

    Once the AM335x TI PSDK 4.02 has been installed on the host, run the setup.sh script on your host to guide you through the remaining development environment configuration.

    NOTE
    If using a virtual machine as your Linux host, you will likely need to import the target board into the virtual machine as a mass storage device.

    Check also:

    processors.wiki.ti.com/.../Processor_SDK_Linux_Training:_Hands_on_with_the_Linux_SDK

    processors.wiki.ti.com/.../Processor_SDK_Linux_Setup_Script

    Regards,
    Pavel
  • Dear Pavel,

    thanks for the quick response. I already ran the setup.sh. It doesn't recognize BBB and it is stuck in minicom. BUT! Please note according to TI wiki pages I'm able to boot uboot and kernel via TFTP. I can also see the NFS communication in Wirewshark (check the console-output.txt file I attached before).

    The main question is why the kernel wants some files which are not present in filesystem? These files are also listed in my original post ( /etc/ld.so.preload, /etc/inird-release, /proc/self, /proc/vz, /etc/adjtime, /systemd/system.conf.d,... ).

    If I boot the BBB from sdcard it boots OK. From that point I can check from BBB all services running on host PC (DHCP, TFTP, NFS) and as far as I can tell all works properly.

     

  • Filip Kotoucek said:
    thanks for the quick response. I already ran the setup.sh. It doesn't recognize BBB and it is stuck in minicom.

    This is strange. Could you please attach the full console log of your setup.sh script execution. I am attaching mine for reference, I am using AM335x SK (StarterKit).

    setup_script_log

    Filip Kotoucek said:
    The main question is why the kernel wants some files which are not present in filesystem? These files are also listed in my original post ( /etc/ld.so.preload, /etc/inird-release, /proc/self, /proc/vz, /etc/adjtime, /systemd/system.conf.d,... ).

    Which kernel exactly you are using? The pre-built one that comes by default with AM335x TI PSDK 4.02 or custom one?

    I am testing with the pre-built one, it boots from NFS successfully, and I also do not have these files in my filesystem (targetNFS).

    ti-processor-sdk-linux-am335x-evm-04.02.00.09/board-support/prebuilt-images/zImage-am335x-evm.bin

    Regards,
    Pavel

  • here is the log from setup.sh 

    setup-log.txt
    root@host-VirtualBox:/home/host/ti-sdk# ./setup.sh 
    -------------------------------------------------------------------------------
    TISDK setup script
    This script will set up your development host for SDK development.
    Parts of this script require administrator priviliges (sudo access).
    -------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    Verifying Linux host distribution
    Ubuntu 12.04 LTS, Ubuntu 14.04, or Ubuntu 14.04 LTS is being used, continuing..
    --------------------------------------------------------------------------------
    
    Starting with Ubuntu 12.04 serial devices are only accessible by members of the 'dialout' group.
    A user must be apart of this group to have the proper permissions to access a serial device.
    
    Are you running this script using sudo? The detected username is 'root'.
    Verify and enter your Linux username below
    [ root ] 
    
    User 'root' is already apart of the 'dialout' group
    
    -------------------------------------------------------------------------------
    setup package script
    This script will make sure you have the proper host support packages installed
    This script requires administrator priviliges (sudo access) if packages are to be installed.
    -------------------------------------------------------------------------------
    System has required packages!
    --------------------------------------------------------------------------------
    Package verification and installation successfully completed
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    In which directory do you want to install the target filesystem?(if this directory does not exist it will be created)
    [ /home/host/ti-sdk/targetNFS ] /export/rootfs
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    This step will extract the target filesystem to /export/rootfs
    
    Note! This command requires you to have administrator priviliges (sudo access) 
    on your host.
    Press return to continue
    /export/rootfs already exists
    (r) rename existing filesystem (o) overwrite existing filesystem (s) skip filesystem extraction
    [r] o
    Old /export/rootfs removed
    
    Successfully extracted tisdk-rootfs-image-am335x-evm.tar.xz to /export/rootfs
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    This step will set up the SDK to install binaries in to:
        /export/rootfs/home/root/am335x-evm
    
    The files will be available from /home/root/am335x-evm on the target.
    
    This setting can be changed later by editing Rules.make and changing the
    EXEC_DIR or DESTDIR variable (depending on your SDK).
    
    Press return to continue
    Rules.make edited successfully..
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    This step will export your target filesystem for NFS access.
    
    Note! This command requires you to have administrator priviliges (sudo access) 
    on your host.
    Press return to continue
    /export/rootfs already NFS exported, skipping..
    
     * Stopping NFS kernel daemon                                            [ OK ] 
     * Unexporting directories for NFS kernel daemon...                      [ OK ] 
     * Exporting directories for NFS kernel daemon...                        [ OK ] 
     * Starting NFS kernel daemon                                            [ OK ] 
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you)
    [ /tftpboot ] 
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    This step will set up the tftp server in the /tftpboot directory.
    
    Note! This command requires you to have administrator priviliges (sudo access) 
    on your host.
    Press return to continue
    
    /tftpboot already exists, not creating..
    
    /tftpboot/zImage-am335x-evm.bin already exists. The existing installed file can be renamed and saved under the new name.
    (r) rename (o) overwrite (s) skip copy 
    [r] o
    
    Successfully overwritten zImage-am335x-evm.bin in tftp root directory /tftpboot
    
    /tftpboot/am335x-boneblack.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-boneblack.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-bone.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-bone.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-bonegreen.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-bonegreen.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-evm.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-evm.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-evmsk.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-evmsk.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-icev2.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-icev2.dtb in tftp root directory /tftpboot
    
    /tftpboot/am335x-icev2-pru-excl-uio.dtb already exists. The existing installed file can be renamed and saved under the new name.
    (o) overwrite (s) skip copy 
    [o] 
    
    Successfully overwritten am335x-icev2-pru-excl-uio.dtb in tftp root directory /tftpboot
    
    /etc/xinetd.d/tftp already exists..
    /tftpboot already exported for TFTP, skipping..
    
    Restarting tftp server
    Rather than invoking init scripts through /etc/init.d, use the service(8)
    utility, e.g. service xinetd stop
    
    Since the script you are attempting to invoke has been converted to an
    Upstart job, you may also use the stop(8) utility, e.g. stop xinetd
    xinetd stop/waiting
    Rather than invoking init scripts through /etc/init.d, use the service(8)
    utility, e.g. service xinetd start
    
    Since the script you are attempting to invoke has been converted to an
    Upstart job, you may also use the start(8) utility, e.g. start xinetd
    xinetd start/running, process 7992
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------"
    This step will set up minicom (serial communication application) for
    SDK development
    
    
    For boards that contain a USB-to-Serial converter on the board such as:
    	* BeagleBone
    	* Beaglebone Black
    	* AM335x EVM-SK
    	* AM57xx EVM
    	* K2H, K2L, and K2E EVMs
    
    the port used for minicom will be automatically detected. By default Ubuntu
    will not recognize this device. Setup will add a udev rule to
    /etc/udev/ so that from now on it will be recognized as soon as the board is
    plugged in.
    
    For other boards, the serial will defualt to /dev/ttyS0. Please update based
    on your setup.
    
    --------------------------------------------------------------------------------
    
    
    NOTE: If your using any of the above boards simply hit enter
    and the correct port will be determined automatically at a
    later step.  For all other boards select the serial port
    that the board is connected to.
    Which serial port do you want to use with minicom?
    [ /dev/ttyS0 ] 
    
    Copied existing /root/.minirc.dfl to /root/.minirc.dfl.old
    
    Configuration saved to /root/.minirc.dfl. You can change it further from inside
    minicom, see the Software Development Guide for more information.
    --------------------------------------------------------------------------------
    
    --------------------------------------------------------------------------------
    This step will set up the U-Boot variables for booting the EVM.
    
    Autodetected the following ip address of your host, correct it if necessary
    [ 10.0.211.29
    192.168.2.1
    192.168.7.1 ] 
    
    Select Linux kernel location:
     1: TFTP
     2: SD card
    
    [ 1 ] 
    
    Select root file system location:
     1: NFS
     2: SD card
    
    [ 1 ] 
    
    Available kernel images in /tftproot:
        MLO
        README.md
        am335x-bone.dtb
        am335x-boneblack.dtb
        am335x-bonegreen.dtb
        am335x-evm.dtb
        am335x-evmsk.dtb
        am335x-icev2-pru-excl-uio.dtb
        am335x-icev2.dtb
        u-boot-spl.bin
        u-boot.img
        zImage
        zImage-am335x-evm.bin
    
    Which kernel image do you want to boot from TFTP?
    [ zImage-am335x-evm.bin ] 
    --------------------------------------------------------------------------------
    Would you like to create a minicom script with the above parameters (y/n)?
    [ y ] 
    
    Successfully wrote /home/host/ti-sdk/bin/setupBoard.minicom
    
    No BeagleBone (Black) or StarterKit detected. Assuming
    general purpose evm is being used. Is this correct?
    (y/n) n
    
    Please connect the Beaglebone (Black) or StarterKit to the PC
    If your using the StarterKit board make sure it is turned on
    Press any key to try checking again.
    
    No BeagleBone (Black) or StarterKit detected. Assuming
    general purpose evm is being used. Is this correct?
    (y/n) n
    
    Please connect the Beaglebone (Black) or StarterKit to the PC
    If your using the StarterKit board make sure it is turned on
    Press any key to try checking again.
    
    No BeagleBone (Black) or StarterKit detected. Assuming
    general purpose evm is being used. Is this correct?
    (y/n) y
    
    Would you like to run the setup script now (y/n)? For the general purpose evm 
    you must now connect the RS-232 cable to your evm now. For the Beaglebone (Black)
    or StarterKit this step should of already have been done. Also connect the ethernet
    cable as described in the Quick Start Guide.
    **Important**
    Once answering 'y' on the prompt below you will have 300 seconds to turn on the
    board or if it was already on reboot the board before the setup times out
    
    After successfully executing this script, your board will be set up. You will be 
    able to connect to it by executing 'minicom -w' or if you prefer a windows host
    you can set up Tera Term as explained in the Software Developer's Guide.
    If you connect minicom or Tera Term and power cycle the board Linux will boot.
    
    [ y ] n
    You can manually run minicom in the future with this setup script using: minicom -S ./bin/setupBoard.minicom
    --------------------------------------------------------------------------------
    -------------------------------------------------------------------------------
    TISDK setup completed!
    Please continue reading the Software Developer's Guide for more information on
    how to develop software on the EVM
    -------------------------------------------------------------------------------
    root@host-VirtualBox:/home/host/ti-sdk# 
    

    I'm using custom kernel due to addition of usb-ethernet driver into kernel. The version is 4.9.59. Downloaded with SDK 04.02.00

  • Filip Kotoucek said:
    I'm using custom kernel due to addition of usb-ethernet driver into kernel. The version is 4.9.59. Downloaded with SDK 04.02.00

    Please try with the pre-built kernel and report back the result.

    Regards,
    Pavel