[Cerowrt-devel] Pointers on build setup?

dpreed at reed.com dpreed at reed.com
Mon Apr 30 15:15:44 EDT 2012

I'll see about setting a login up for you - it's a bit complicated because the cluster is not exposed at the moment, so I need to secure it and expose it.  I don't want to distract from feature completion...  so it may be a few days (given that I'm busy during the week mostly with my day job at SAP, which involves systems engineering experiments with *really big* computing systems - my personal research toy there is 400 Westmere-EX cores with 5 TB of RAM, and 30 TB of PCIe Flash, and that's on the small end.... my team runs several other, larger systems of the same sort for "production" research  :-)  It runs Linux, of course. )
My focus is related to dense mesh stuff, because scalable urban/mobile usage is the big wall for radio internetworking after IPv6 and controlled latency (bufferbloat).  But actually I'm not trying to solve the whole "decentralized mesh" problem - what I'm trying to do is do propagation monitoring and modeling in real home environments on all 2.4 and 5 GHz channels (and maybe create a tool for that).  It's my opinion that we need to understand a lot more about real-world physics *as seen by real radios*, and without that, we can't really design protocols for adaptive, cooperative use of these license-by-rule bands.
The physics problem is one that may never be addressable by academic researchers - they don't have the ability to reach into homes, apartments, businesses, etc. to do the experiments.  But an open, modern home router that anyone can buy for at most a couple hundred bucks can provide that platform.  It's my "Internet 3 experiment".  I firmly believe you need to do systems engineering experiments before designing answers.  I can't use smartphones or commercial home routers to do this.
Of course, once I've created a way to measure real-time propagation, the next step will be to create cooperation/adaptatation protocols (not just routing, but the complement of routing - where not to transmit given the physical environment, kind of "real-time radio engineering" to maximize utilization among the systems).
-----Original Message-----
From: "Dave Taht" <dave.taht at gmail.com>
Sent: Monday, April 30, 2012 11:50am
To: dpreed at reed.com
Cc: "Outback Dingo" <outbackdingo at gmail.com>, cerowrt-devel at lists.bufferbloat.net
Subject: Re: Pointers on build setup?

On Mon, Apr 30, 2012 at 8:14 AM,  <dpreed at reed.com> wrote:
> Regarding builds - can someone who is building cerowrt from source
> (including kernel) point me at the recipe for building it completely from
> scratch?

We have most of a build script that has worked at various points in time,
at the moment, I doubt it's correct. Ketan posted some mods recently...

as things stand today, it's kind of fiddly, and requires multiple attempts
at getting the .config right, there's a few tool dependencies, etc.

As soon as I hit feature complete - and had hardware that could turn
around builds fast enough - I'd planned to fix that up.

In the interim...

I can get a correct build setup for you in 10 minutes, if you give me a login.
Certainly having a script that 'just works', and is a one liner, has
been a goal, once things get more stable. Which I would hope be late
this week. Hopefully.

I note I have not checked in all the 'fixes' to the ipv6 alignment
issue (bugs 360, 371, 379) in the past week, as alternatives are being
discussed on the openwrt-devel list.

> Besides running 3.3-2 on a 3800, I've begun my project to validate that
> Cerowrt can run on my ubnt RouterStation Pro box, which is preliminary to
> doing some experimentation on dense scalability that interests me.   I

If you are talking about what I call the 'dense mesh' problem, the predecessor
project to cerowrt had it's original genesis in trying to solve the
meltdown issues olpc had with 802.11s.

"Diversity routing" seemed to be an answer.


And the routerstation pro (3 radios! ooh!) is a perfect platform to be
trying that on.
Juliusz was looking into doing experiments on that hardware...

Sadly it shares the unaligned ipv6 problem that we've been struggling to solve,
and the max thruput is less than what those 3 radios could achieve.

> verified that it runs the latest stable Backfire release of OpenWRT this
> weekend, and it does so quite well.
> My own private home build server is (essentially) a cluster of two AMD8160
> 8-core 32 GB servers connected with 40 Gb/s Infiniband and a 6-way RAID5
> storage array on one of them that gives quite nice read performance.  I'm
> not worried about how long it takes to do a build...

I will note that SSDs really rock, and seek times of ~0 do wonders for
the link step.

That said, I was proud of my new hardware, until I read that. :/

> Anyway - the recipe doesn't have to be perfected for me to use it - and I
> suspect it's similar to OpenWRT's build, so maybe pointing me to the best
> help for that and what the differences are would be great.

From a basic perspective, you have additional feeds in feeds.conf,
a specialized config, a special filesystem that does a few different
things - notably changing the device naming so you can have multiple
routed interfaces and simplified firewall rules -

So you start by checking out cerofiles. The build_cero.sh script there
is obsolete but can supply clue as to the repos required and ketan had
some patches to that.

What I do nowadays is mildly different than the script, in that after
the repos are pulled down, feeds.conf is configured, scripts/env new
whatever has been run and cerofiles imported into it, I tend to hammer
at it with

./scripts/feeds install -p cero `cat env/override.list`
./scripts/feeds install `cat env/packages.list`
./scripts/feeds install -p cero `cat env/override.list`

cp env/config-* .config
make defconfig
grep =m .config | sort -u > t1.txt
grep =m env/config* | sort -u > t2.txt

diff t1.txt t2.txt

add the packages via feeds install (I'm always adding new ones)

the script ALMOST does all that.

(or I can can get it going for you in 10 minutes)

> I promise I will write the "port" experience up and post it on the Wiki, in
> case others want to port cerowrt to other "OpenWRT platforms" of sufficient
> capabilities.
> David
> -----Original Message-----
> From: "Outback Dingo" <outbackdingo at gmail.com>
> Sent: Sunday, April 29, 2012 9:42pm
> To: "Dave Taht" <dave.taht at gmail.com>
> Cc: cerowrt-devel at lists.bufferbloat.net
> Subject: Re: [Cerowrt-devel] speeding up builds
> On Sun, Apr 29, 2012 at 8:15 PM, Dave Taht <dave.taht at gmail.com> wrote:
>> I finally acquired a machine with 32GB of ram, an intel 3930k (6
>> cores), and an SSD.
>> I put the build_dir, /tmp and /var/tmp on ramdisks, and...
>> This cut a complete cerowrt build (including toolchain) down from >
>> 3.5 hrs down to under 45 minutes.
>> Without the toolchain rebuild, but after a make clean (to rebuild the
>> packages and kernel), it's about 28 minutes.
>> I can see that it is possible to parallelize things more to maybe chop
>> another 30% of of things...
>> ...but I'm glad to have 3 hrs of my life back, per build.
>> I wanted to figure out to what extent modern hardware would enhance
>> the existing buildbot system.
>> Now I know...
> odd my laptop will do a full build with tool chain in about an
> hour..... its only a core i3 with 6gb and an ssd
>> --
>> Dave Täht
>> SKYPE: davetaht
>> US Tel: 1-239-829-5608
>> http://www.bufferbloat.net
>> _______________________________________________
>> Cerowrt-devel mailing list
>> Cerowrt-devel at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cerowrt-devel
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel

Dave Täht
SKYPE: davetaht
US Tel: 1-239-829-5608
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20120430/50dadbed/attachment-0002.html>

More information about the Cerowrt-devel mailing list