09-01-2014 06:11 AM
I am using a microZed board with Linux kernel 3.8.
Generally it works quite well but sometimes I can't access the board over the ethernet link although the serial link is always 100% OK.
When it happens nothing works: the SDK can't get to it, it does not respond to ping commands in both directions. Its as if it has completely locked up.
That is odd because when I observe the board's boot up sequence through the serial link I can't see the slightest bit of difference between a boot sequence after which everything works and one where it does not. I definitely get the "xemacps e000b000.ps7-ethernet: link up (1000/FULL)" message in each and every case.
It can't be a router problem because there is not one. The link between the Windows machine and the booard is a plain vanilla cable running directly from the PC to the board. On the PC side there is a dedicated network adapter used solely for the PC <=> board connection.
When it happens the solution is to make the MicroZed board reboot. Usually rebooting once is enough but it can take several times. Then things get going again (without rebooting the windows machine), everything works well and keeps on doing so.
Has anyone ever observed this sort of behaviour or better still found a reason/solution for it ?
Any help much appreciated.
09-02-2014 04:25 AM
09-01-2014 09:30 AM
09-02-2014 02:58 AM
Ok, looking at the info at the various links it seems likely a newer kernel would solve the problem.
So: I started by trying to compile kernel version 3.14.
For starters the first command I was able to use in 3.8 "make distclean" did not work because it did not recognise distclean.
Moving the whole setup to to a directory "xilinx-xlnx" cured that one.
Then I managed to successfully use "make ARCH=arm xilinx_zynq_defconfig".
When I want to execute "make ARCH=arm" I get an error I can't explain:
It happily starts to build a ton of things and all of a sudden it reports:
*** No rule to make target 'kernel/hrtimer.o', needed by kernel/builtin.o. Stop.
I haven't found a reason for it yet so I am searching for it. Any suggestions though would be most welcome.
09-02-2014 04:25 AM
09-02-2014 05:32 AM
09-02-2014 08:18 AM
Don't use windows for such things. It can't handle symlinks properly - and other things probably too.
09-03-2014 04:59 AM
I finally cracked and it turns out the reason for the problems was that the archive manager on the virtual Linux Centos machine did not unpack everything.
What put me on the wrong foot was that I also unpacked the kernel source on my windows machine using 7-zip (not to build it but just to see what was in the package). 7-zip neatly unpacked everything so I thought the same was true on my virtual Linux machine.
Why the archive manger missed a few beats is a mystery, maybe I inadvertently stopped it too early.
Once I unpacked everything again and let it run to the end all was well and I effortlessly built the kernel on the virtual Linux machine.
09-03-2014 05:05 AM
Thanks for the info. I finally managed to build the kernel, compiled the appropriate device tree and got the MicroZed board to boot from the new SD card content.
I have tested it quite thoroughly and it seems that the update ethernet driver in version 3.14 of the linux-xlnx kernel cured the problem.
At least each time the board boots I can ping to it from the Windows machine, something I could not be sure of when I booted version 3.8.
I will post a separate message on what I had to do to get things to work.