Raspberry Pi 3 B+ OpenWrt/LEDE Image

The Raspberry Pi folks have released an updated Raspberry Pi, the 3 B+. It has a 1.4 GHz processor, dual band WiFi (up to 802.11ac) and 3x faster Ethernet (up to 300Mbps). There's a PoE "Hat" coming soon for it too.

I'm curious what the typical timeframes have been between past releases of new RPi hardware and the availability of an OpenWRT or LEDE image for it?

1 Like

There are following problems with Raspberry Pi devices:

  1. Upstream support still isn't completed
  2. Downstream kernel repository contains a lot of patches LEDE/OpenWrt doesn't need
  3. Target brcm2708 isn't that actively maintained
  4. They have some many uses & HATs it's something hard to tell which downstream changes we need

If you take a look at the content of target/linux/brcm2708/patches-4.9/ there are a lot of patches. Maintaining that is quite some problem.

Ideally, I think, we should use as much upstream code as possible & pick only these downstream patches that are really needed. That would simplify maintenance including support for new devices.

from https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=197689

Maybe it makes sense to switch to Linux 4.14 first. But I'm sure this will be a lot of work, too. I don't know how complete the Raspberry pi support is in 4.14.

No it is not. The device is still using the same single USB 2.0 controller for all the USB ports AND the gigabit ethernet controller (which is capped at the max speed of USB 2.0).

Have you done some testing of your own that refutes the specifications listed on the raspberrypi.org website?

I was just passing along a few of the specifications for the purposes of trying to get a question answered about the typical wait between the release of a new RPi and the availability of LEDE/OpenWRT for it.

Here's the link if you'd like to check the specs and performance testing for yourself:

Cheers.

Yes, even with the older Raspberry Pi units if you used a gigabit Ethernet adapter you could get a little over 200 Mbps. "Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)" isn't GigE and isn't any better than what you could do with a USB GigE dongle. That's "maximum" not "sustained". It's always been a bottleneck for the Raspberry Pi units. It was just better hidden by a 100 Mbps phy. 200-300 Mbps is a snoozer, worse than my aging Archer C7s.

Exactly right. It's just a nice plus (or B+ if you will :slight_smile:) to have that extra Ethernet performance built-in rather than requiring a dongle.

The Raspberry Pi is by no means right for everybody as a router, but I'm using one to great effect in a mobile environment. It's a PoE powered outdoor setup, closely coupled to a cellular MIMO directional antenna array, utilizing a modem capable of Carrier Aggregation.

Anyway, back to my original question on this post:

Does anyone have a bead on what the typical historical timing has been on LEDE/OpenWRT images for new Raspberry Pi models? Just curious if it's usually been days, weeks, months, quarters, a year?

Depends on hardware availability, desire on one or more individual's parts, and how different the hardware is from what already works. If I were to guess, "months" as it's got a Broadcom wireless chip that was released a couple months ago, even though there are "open source" drivers out there for it.

Thanks Jeff. I appreciate the response -- that's helpful for rough planning purposes.

As usual in opensource, there is no time frame at all.

Once someone who cares gets one on their desk, it's probably a matter of a of hours (new videocore image, new device tree, some minor massaging of image build instructions), but that doesn't mean anyone of the developers feels an urge to go out and buy an RPi3 b+ now-, next week-, this year or 'ever'. Especially as the RPi3 b+ doesn't really offer any feature that warrants replacing a potentially existing RPi 3 b (or even RPi 2 b, rev 1.2) - sure, while it's obviously the prime candidate if you do want to go shopping.

Due to the nature of single board computers/ devboards with replacable primary storage (which makes the hardware, contrary to many routers, totally unbrickable), this could however be a perfect guinea pig if you wanted to get your feet wet with LEDE development yourself, as I don't expect there to be anything complicated. Even basic linux on ARM knowledge and some familiarity with shell and make should be enough for this endeavour; this is really different (easier) from porting LEDE to a new router (where vendors tend to re-invent the world each time from scratch).

Disclaimer, I'm neither a LEDE developer nor have I worked with any RPi before.

Nevermind, I'm wrong on that. I thought the older Raspis had a gigabit controller too. Then yeah it's up to 3 times faster than 100Mbit speed assuming you don't have anything else on the USB ports.

I just knew it had garbage speed for my needs, was fuzzy on actual specs.

For those that want some benchmarks, phoronix did them, and yeah their statement is correct. https://www.phoronix.com/scan.php?page=article&item=raspberrypi-3-bplus&num=1

Raspi 3+ just a minor revision, it's basically a Raspi B with higher CPU frequency, a different wifi chip and a different USB gigabit controller.

This should be very easy to do for anyone that has a basic understanding of the OpenWrt build system, as it boils down to some copy-paste from the Raspi 3 and changing the driver selection of the default image. Assuming the drivers are opensource and available for the wifi (if they aren't then the wifi will not work but the rest of the system will work fine).

Looking at the commits about Raspberry here (which will also answer your question about timing if you just look at the dates) https://github.com/openwrt/openwrt/search?q=raspberry+&type=Commits
it seems that Noltari contributor is the guy that added support for the Raspi 3 and the Zero.

I'm now trying to summon him in this thread with @Noltari so he can tell us what are his plans with this new Raspi 3, if any.

If he does not show up you can PM him or click on any commit title above can see his email in the commit message if you want to contact him.

You can also look at what he did in his commits and try adding support on your own, as this is a low-hanging fruit, good for getting your feet wet in OpenWrt.

1 Like

Thanks very much for this right-on-point response! I'll definitely take a look at @Noltari's work on recent RPi's.

Just to let people know - it is possible to build a full working image for the Pi 3B+ by checking out the latest firmware source code and adding kernel support for the lan78xx USB driver to support the Ethernet adapter (via make kernel_menuconfig). The current snapshot appears to have a conflict with the odhcpd-ipv6only package so it needs to deselected in make menuconfig. To support the WiFi adapter the firmware (brcmfmac43455-sdio.bin) needs to be copied from the Raspbian distribution, and to get the system to boot you need to replace, in the msdos partition of the resulting .img file, start.elf and bootcode.bin from Raspbian (as mentioned in this thread: https://forum.openwrt.org/viewtopic.php?id=73564).

Cool -- thanks for the step-by-step! Do you think it would be possible to build from the current stable release too, following these same steps?

I think I'm clear on replacing start.elf and bootcode.bin in the .img, but where does the extracted WiFi adapter firmware (brcmfmac43455-sdio.bin) go?

I couldn't get the stable release build to work on the Pi 3B+ - I didn't spent too much time looking into it as the only images from openwrt.org I could boot initially were the snapshots. Curiously the other thread reported successfully booting the 17.0.1.2 image.

The brcmfmac43455-sdio.bin file needs to be copied into the OpenWRT root filesystem to: /lib/firmware/brcm/ The easiest way to do this is to boot the Pi using the new firmware image and then just copy the files over from a memory stick then reboot. I'm not that familiar with buildroot but presumably it can be included at build time (I did enable Broadcom network adapter in the config but it seems there's another option required).

Also it seems that the conflict I mentioned with odhcpd-ipv6only that it's probably down to old config on my system see this post: https://lists.infradead.org/pipermail/lede-dev/2017-December/010192.html

A further note: Whilst my approach generates a running system - it seems that the current setup only enables one of the 4 CPU cores on the Pi. So some more work is required - It seems that the device trees need updating to start with...

I'm using the ROOter build of LEDE, but also from the latest snapshot -- and if I'm interpreting this correctly, it looks like all 4 cores are enabled in the System Log:

Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.003812] CPU1: Booted secondary processor [410fd034]
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004183] Detected VIPT I-cache on CPU2
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004218] CPU2: Booted secondary processor [410fd034]
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004582] Detected VIPT I-cache on CPU3
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004616] CPU3: Booted secondary processor [410fd034]
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004692] Brought up 4 CPUs
Sun Apr 15 08:22:02 2018 kern.info kernel: [ 0.004924] SMP: Total of 4 processors activated.

However I'm having an issue with the wireless chip, there's an error message in the log about brcmfmac43455-sdio.txt -- do I need that file as well from Raspian? Any others required?

Ah ok - How/where does one get the ROOter build? I noticed that the Pi 3 builds are using the 64-bit aarch64 which may be different in the ROOter build?

Yes - I forgot to mention that I copied all files with the prefix brcmfmac43455-sdio - which included the brcmfmac43455-sdio.txt

ROOter is essentially LEDE but oriented towards people who use cellular modems. The most active folks are Australian and Canadian, with others scattered around the globe. I'm a full-time mobile user, so it's an awesome version for me. The main guy at their forum @dairyman did a snapshot build for me with the changes you mentioned in your first post on this thread. Here's a link (on the Whirlpool forum) to the post where you can download that build:

http://whrl.pl/Re8v9F

You still need to replace/add the files from Raspbian to the above build.

Their website, where you can get other versions can be found at:

https://www.ofmodemsandmen.com/index.html