MavEtJu's Distorted View of the World - ARM

Sawtooth on a Raspberry Pi

Back to index

Sawtooth on a Raspberry Pi

Posted on 2013-07-08 08:00:00
Tags: FreeBSD, ARM, Networking

Recently I have obtained two Raspberry Pi units, just to see what can be done with them. So far I'm impressed, this little device is pretty powerful with regarding to video. Being a network guy, this doesn't interests me very much. But as a replacement of a 150 dollar Serial-over-TCP unit it would be very handy to get a serial console on devices it is required for.

First thing, this device runs with an ARM processor, something I haven't played with before on system administration level. First I had to build a FreeBSD ARM based kernel and world and that failed dramatically on my FreeBSD 9.1 i386 based machines. So VirtualBox to the rescue, and on an 64 bit machine it compiled a 10-Current world. My first cross-build was successful!

This disk for the Raspberry Pi is just a flash card, so I had to build an boot image (that was easy), download it to the host of the VirtualBox service (that was easy) and tell somehow OSX to not mount the disk anymore but also to keep it available for me to use dd on. That was tricky, but nothing Google couldn't tell me.

Then the final moment: Boot the Raspberry Pi with FreeBSD and... It worked. How undramatic. Ping the router, ping something on the Internet. All fine.

Except that the RTT for the ICMP packets didn't make sense:

64 bytes from icmp_seq=22 ttl=64 time=1.321 ms
64 bytes from icmp_seq=23 ttl=64 time=10.312 ms
64 bytes from icmp_seq=24 ttl=64 time=9.328 ms
64 bytes from icmp_seq=25 ttl=64 time=8.335 ms
64 bytes from icmp_seq=26 ttl=64 time=7.411 ms
64 bytes from icmp_seq=27 ttl=64 time=6.448 ms
64 bytes from icmp_seq=28 ttl=64 time=5.497 ms
64 bytes from icmp_seq=29 ttl=64 time=4.508 ms
64 bytes from icmp_seq=30 ttl=64 time=3.540 ms
64 bytes from icmp_seq=31 ttl=64 time=2.588 ms
64 bytes from icmp_seq=32 ttl=64 time=1.635 ms
64 bytes from icmp_seq=33 ttl=64 time=0.738 ms
64 bytes from icmp_seq=34 ttl=64 time=9.770 ms
64 bytes from icmp_seq=35 ttl=64 time=8.805 ms
64 bytes from icmp_seq=36 ttl=64 time=7.833 ms
64 bytes from icmp_seq=37 ttl=64 time=6.843 ms
64 bytes from icmp_seq=38 ttl=64 time=5.869 ms

That is a beautiful sawtooth, but that doesn't make sense.

I tried various things, like setting the tick interval from 100 to 1000 Hz, but no luck yet. Together with Peter Jeremy we are looking for an answer, but being a non-kernel guy there is not much what I can do here except test patches.

Show comment | Share on Facebook | Share on Twitter