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.

Can't communicate beyond internet gateway

Other Parts Discussed in Thread: AM3354

Hello

I am continuing to test a new target using the AM3354 and AR8031 PHY which will allow me to access machines on the same subnet with ping, ssh, scp, etc. but won't perform DNS lookups or allow me to ping IP addresses on the internet.  As part of the Linux initialisation process it runs the commands:

ifconfig eth0 up

dhcpcd eth0

Which gets a valid IP address and populates /etc/resolv.conf with the correct IP addresses for the nameservers.

 The results of ifconfig and route are as follows:

"# ifconfig

eth0      Link encap:Ethernet  HWaddr 90:59:AF:91:4C:3F 

          inet addr:192.168.10.217  Bcast:192.168.10.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:22 errors:0 dropped:1 overruns:0 frame:0

          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2140 (2.0 KiB)  TX bytes:786 (786.0 B)

          Interrupt:56

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 # route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         192.168.10.1    0.0.0.0         UG    202    0        0 eth0

192.168.10.0    *               255.255.255.0   U     202    0        0 eth0

192.168.10.217  localhost.local 255.255.255.255 UGH   202    0        0 lo"

The network is configured as follows:

Target <--> 10/100Mbps hub <--> 10/100/1000Mbps hub <--> gateway <--> modem

The internal network side of the gateway is 192.168.10.1 and the internet side is xxx.xxx.xxx.xxx and the target can ping both of these IP addresses but nothing further.  nslookup returns the IP address of the first nameserver and then gives up with the message:


nslookup: can't resolve 'www.google.com': Name or service not known

The issue is somewhere within the Linux configuration as on the same hardware platform I can give the same IP address to U-Boot and can ping IP address 74.125.71.103 which is the first A record returned when performing an nslookup on Google.  All other machines, both Linux and Windows on the 192.168.10.xxx subnet which get the same information from the DHCP server can resolve names and ping external addresses correctly.

I have tried both the Timesys Linux and also the kernel from the SDK 7.00 (albeit with my Timesys generated root file system) and see the same issue on both my custom hardware and the Starter Kit I have.

My next step is to recreate the SD card that came with the Starter Kit and see if that works but in the mean time if anyone can spot what I have missed it would be much appreciated!

Thanks,

Andy.

  • Hi Andy,

    I will ask the SW people to look at this.

  • Just to confirm, I have downloaded the sitara_linux_sdk_image_am335x.img.zip file, written it to an SD card using ImageWriter and it too shows the same problem accessing beyond the internet gateway both with nslookup/ping and with the QT Demo Browser application.

    Regards,

    Andy
  • Does the gateway require a proxy to cross?
    I tried nslookup and I could not cross the firewall from a command on my linux box or one of the EVMs. Though the browser worked on the linux box.
    I plugged the board into a port outside the firewall and nslookup works on the EVM and the Linux box command line.
    I am guessing but perhaps you might need a proxy interaction with the gateway to cross it.
  • The gateway runs IPCop (v2.17) which is acting as a transparent proxy. I have tried disabling this but the problem persists.

    It is my intention to capture the traffic data on the gateway this afternoon and analyse it using Wireshark to see if it gives any clues as to where the packets are getting lost.

    Thanks,

    Andy.
  • Hello Schuyler,

    I have done some more testing with my hardware platform and have got to the following point...

    If I boot the board over the network using TFTP to download the kernel image and device tree binary with the root file system mounted using NFS, so U-Boot sets the bootargs environment variable to:

    console=ttyO0,115200 earlyprintk consoleblank=0 ip=dhcp root=/dev/nfs rw nfsroot=192.168.10.20:/tftpboot/rootfs/test

    Then the networking is configured in the kernel and all works as expected. I can use nslookup and ping to get access to devices on the internet.

    If I boot the same files with the kernel and device tree binary in an SPI flash device and the root file system on an eMMC device with bootargs set as:

    console=ttyO0,115200 earlyprintk consoleblank=0 root=/dev/mmcblk0p1 rootfstype=ext4 rw rootwait

    I need to execute "ifconfig eth0 up" and "udhcpc eth0" to configure the networking but in this circumstance I can't resolve names or ping IP addresses on the internet despite the output from the "route" command looking OK and the /etc/resolv.conf files being identical.

    Any idea what is being done differently in the two circumstances?

    Thanks,

    Andy.
  • Hello,

    I have done some more testing by patching and building many versions of kernel to run on the AM335x Starter Kit platform and have found:

    • The issue shows itself with both the 3.12.10 kernel in the SDK and also the one provided by Timesys as part of their Linux distribution.
    • Applying the incremental patches from 3.12.10 to 3.12.36 (yes, I built and tested each one in turn) does't fix the issue
    • All of the mainline kernels from 3.13-rc1 onwards (the last I tested was 3.18.3), built as omap2plus_defconfig, have the problem resolved.

    Unfortunately, none of these later kernel versions seem to be able to drive the LCD display on the Starter Kit.  As we need to use the framebuffer and LCD to display a boot logo as early as possible I have made sure that they are all set to built-in rather than being built as kernel modules but the screen remains blank. When I check the filesystem it appears that the /dev/fb0 device file isn't being created.

    Are there plans to create an updated version of the Linux SDK based on a later kernel version?  If so, is the LCD working and is it possible to have access to the necessary patches to make it work?

    Regards,

    Andy.