Raspberry Pi 4 released

So, the Pi 4 has just been released. It's an immense upgrade over the 3/3+

  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 1GB, 2GB or 4GB LPDDR4-2400 SDRAM (depending on model)
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE
  • Gigabit Ethernet
  • 2 USB 3.0 ports; 2 USB 2.0 ports.
  • Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)
  • 2 × micro-HDMI ports (up to 4kp60 supported)
  • 2-lane MIPI DSI display port
  • 2-lane MIPI CSI camera port
  • 4-pole stereo audio and composite video port
  • H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
  • OpenGL ES 3.0 graphics
  • Micro-SD card slot for loading operating system and data storage
  • 5V DC via USB-C connector (minimum 3A*)
  • 5V DC via GPIO header (minimum 3A*)
  • Power over Ethernet (PoE) enabled (requires separate PoE HAT)
  • Operating temperature: 0 – 50 degrees C ambient

From this link:

The Ethernet controller on the main SoC is connected to an external Broadcom PHY over a dedicated RGMII link, providing full throughput. USB is provided via an external VLI controller, connected over a single PCI Express Gen 2 lane, and providing a total of 4Gbps of bandwidth, shared between the four ports.

All of the bottlenecks that made the 3/3+ a bad idea for router/NAS/etc usage are gone. No more shared LAN/USB bus, no more hamstrung LAN throughput. Lovely.

We now have a completely capable gigabit LAN port out of the box and two USB3 ports that could each use a gigabit LAN USB adapter... That's three ports right off the bat, and we're not even considering a vlan capable switch yet. Plenty of storage thanks to the microSD card and the remaining USB2 ports, plenty of RAM (and we're no longer limited to only 1GB, too).

I believe this little beast could be a pretty serious router with OpenWRT. I mean, quad A72 @ 1.5GHz puts any IPQ hardware to shame on the brute force aspect of it... it should have no issues with most home connections, neither doing gigabit speeds without any offloading tricks... It could also be a pretty good NAS, too. It's not too power hungry either.

What do you think? Assuming it gets supported in the future as the previous RPIs did, I think this is the perfect upgrade for any of us stuck with puny, weak single core MIPS hardware. Say, Archer C7 and the like. Such devices could now make for great APs while doing all the heavy lifting on the RPI4.

At $35 for the 1GB model, it won't break the bank either.

The only thing that bothers me is the possibility of the SD card getting corrupted due to a power cut/brownout/bad shutdown, but oh well. That's not much of a downside considering the rest...


edit 23/06/20

Some performance results from @dlakelan. The Pi4 turned out to be as impressive as it looked on paper during launch day for these duties.

It's insane what this little thing can do, with the correct LAN USB adapter.


edit 22/10/20

Some more performance results:


edit 18/09/21

Pretty nice thread detailing dos and don'ts if you intend to get the most out of the Pi4.

tl;dr:

  • Avoid ASIX based dongles, use realtek based ones (go-to is TP-Link UE300, rtl8153 based, uses kmod-usb-net-rtl8152), much lower CPU usage and interrupts
  • Packet steering and irqbalance help and are pretty much required when pushing for gigabit speeds
  • Instantiate SQM on the WAN physical interface as per the documentation, for best results

Interesting discussion on modern USB3.0 dongles:

tl;dr: you can rely on them.

5 Likes

Back-ordered from newark, will check it out :wink:
Still so far behind GX-424CC on all aspects except for power...
I'm watching this board.. ideal for router build but SO expensive...

First of all you should wait 2-3 weeks for experiences from real people, putting it to real world tests rather than believing the marketing blurb; theoretical and real world figures often do differ.

Yes, this new design finally improves upon the biggest flaws and weaknesses of its predecessors. But it's already apparent that cooling will remain quite an issue, if you want to push it to maximum without the CPU scaling down. There will be many use cases which will considerably profit from these changes, so would using it as a router - but it's still not really an ideal target for these things (single WLAN card, SDIO connected (so not the fastest of the bunch, additional USB WLAN cards are not ideal for AP purposes), single ethernet port (yes, you can add USB cards, but at >20 bucks a pop, it gets expensive pretty soon)). Will it be better than its predecessors, without a doubt - can it compete with ipq806x/ ipq807x, from the processing point of view, yes - from a routing I/O point of view, probably not so much (neither if you'll look at the final cost of all required components, which do add up very quickly).

2 Likes

@slh

It's already been reviewed.


Tom's isn't what it used to be, sure, but it's what we have on launch day. I just cited the maketing blurb because it's easy to read and to point out the performance improvements over the previous generation.

We'll just have to wait for more reviews and real world experiences as you point out.


Of course, as a router the Pi4 won't be as good an overall package as an IPQ8xxx based device can be, neither can it come close to what x86 can do, that's obvious, but the potential is there. As always, when it comes to the value proposition, it depends. There are markets where IPQ based devices (or decent x86 thin clients) are hard to get or are outrageously expensive (my country, Argentina, for example), where otherwise unremarkable hardware like the Archer C7 is readily available... and so are Pis.

In such cases, this little board can do its fair share to help. Leave the wireless part to the AP, let it do the rest. As for the final cost, again, it depends. We now have another possibility to consider going forward, and that's great (for a home setting, that is).

Cooling isn't really a problem. You can always attach a heatsink on the CPU. If more cooling is needed, a little 40mm fan @ 5v (silent) off GPIO pins 4,6 providing airflow is more than enough. You can easily cut a hole in a case...

Pre-release reviews are always a bit fishy, by the mere selection of who's going to be invited for signing the NDA and the time they get for their testing ahead of publishing. Don't get me wrong, I'm not blaming anyone here, nor suspect foul play (especially as there are also coming in early experiences from parties who got their device (quickly) through normal retail channels), but they've been provided with the top-end (4 GB RAM) device and pre-release software shortly(?) before the release and mostly concentrated on synthetic benchmarking, which isn't the whole story. But looking at your links to tomshardware, you'll see figures of up to 114 MBit/s throughput in the 5 GHz band - that is slow for any decent 802.11ac AP (more like what you might get from a 10 year old 802.11n router), even a very quick and dirty test with IPQ40xx is significantly above 300 MBit/s over the (indoor) range (one storey, three internal walls) in iperf on a 5 year old smartphone as client. The 2.4 GHz figure is just about what you might get from an older 802.11n design and things like channel bandwidth, range, (Mu-)MIMO and number of rx/ tx chains aren't even mentioned (and you still only have a single radio/ a single band at the same time). And while you might be able to draw some conclusions (halve the figures) from the USB storage benchmarks for your WAN <--> LAN throughput (before NAT/ firewalling), no one seems to have actually tested this yet. Given that there are no 64 Bit distributions supporting it yet, it's also not clear if AES crypto acceleration is available yet.

Do not get me wrong, this could be (depending on real-world feedback[1] coming in over the next couple of weeks and how my budget for things I don't strictly need turns out) ARM SBC I might consider buying (not as a router though), but if you still need a dedicated AP on top - you might end up cheaper (and faster) with a low-end Atom m-ITX board and your AP/ switch, etc.

Edit: What I'd like to emphasize here is just, give someone (you?) a chance to actually test this new device in a router capacity, before actually recommending it to others. It might very well turn out to be a reasonable option for some use cases - or it might not, only time and real-world testing will tell.

--
[1]:

  • what's up with the cooling, how does reasonable cooling affect the figures?
  • crypto support?
  • what are the results with a pure64 distro?
  • kvm capable (bootloader coming up in HYP mode)?
1 Like

To put things in perspective, it helps to keep in mind that the Raspberry Pi isn't designed to be a router. It has high computing power (for its size), dual display ports etc., but as far as connectivity is concerned, it's intended to be a client that handles only it's own connection.

It can possibly, however, be a good option for temporary cases such as a travel router for example. So you could have it as a media player at home, and then when you get to travel you just swap the SD card, and viola it becomes a router.

But for a permanent solution, using it as a router would be like having a pie for lunch.

1 Like

I will buy one after openwrt support completed.

TIP1: RPI4 + VLAN enable switch and you have a versatile router
TIP2: USB3 + GbE = decent NAS

1 Like

I still don't see any real advantage above the underestimated Odroid C2, which happens to support eMMC as well.

2 Likes

Well, as a NAS, agreed. but for a router, if you actually calculate the total cost for a PI plus accessories plus proper switch, then you may just get a a router, especially that the RPI 4 is still BCM. Don't forget that if using it as a router you would be paying for things you don't need such as 4K display for example. The big advantage of course that it can be re-purposed with just changing the SD card, plus the multiple USB ports and the expandable storage.

A Raspberry Pi 4 probably has better crypto speed than most of the US$75-class all-on-one routers, making it interesting for VPN use.

I agree that the ODROID C2 is a great little unit, especially at its price point. For me, its two drawbacks are a non-standard header connector and that I have to build Debian myself for it (Ubuntu has gotten to "helpful" over the years for my tastes).

1 Like

FYI DietPi is Debian based and available for a lot of SBC's, including the Odroid C2.

2 Likes

The main benefit is that the RPI4 has substantially more CPU power & RAM than 95% of routers.
Been using RPI4 ($35) with a TL-SG108E VLAN switch ($30) works a charm.
Port 8 -> Access Port Vlan 8 - WAN
Port 7 -> RPI4 trunk port with vlan tagging
Port 1-6 -> Access Ports Vlan 1 - Internal
Not using WiFi (yet)

3 Likes

Just to give my 2 cents, for my specific project, the RPi4 simply has the best price to performance that we've been able to find so far. For $35 it hits almost 500Mbit over the encrypted yggdrasil mesh networking protocol, meanwhile the espressobin for more money only does ~300. Combine that with the smaller form factor of the Pi, the availability of cases (espressobin has a pricey bundle with the case but otherwise needs to be independently sourced / 3d printed), and the ubiquitous nature of the Pi (can be picked up same day at microcenter) makes it a great sell for mesh networking projects where a single port is fine for some configurations (relay node when combined with radios that have an aux ethernet, non-exit node, plus the flexibility to expand later with a USB3 eth adapter). In addition, the built in AC wifi makes it useful in an AP configuration. We are waiting with bated breath for openwrt support so we can include it in our automatic builds instead of having manually configured raspbian-based prototypes that lack a lot of the openwrt features because we don't want to reinvent the wheel if openwrt support is coming soon.

2 Likes

OpenWrt does support Raspberry pi 4 b, I'm using it as a vpn client with average speeds of 80 mbps ,great speed for a $35 device.
OpenSSL speed benchmark on OpenWrt:

root@OpenWrt:~# ubus call system board
{
        "kernel": "4.19.57",
        "hostname": "OpenWrt",
        "system": "ARMv7 Processor rev 3 (v7l)",
        "model": "Raspberry Pi 4 Model B Rev 1.1",
        "board_name": "raspberrypi,4-model-b",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r10622-e09da0169a",
                "target": "brcm2708/bcm2709",
                "description": "OpenWrt SNAPSHOT r10622-e09da0169a"
        }
}
root@OpenWrt:~# openssl speed
Doing md4 for 3s on 16 size blocks: 3121842 md4's in 2.99s
............
OpenSSL 1.1.1c  28 May 2019
built on: Mon Jul 29 08:13:45 2019 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: arm-openwrt-linux-muslgnueabi-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
md2                  0.00         0.00         0.00         0.00         0.00         0.00 
mdc2                 0.00         0.00         0.00         0.00         0.00         0.00 
md4              16705.51k    60229.65k   174903.81k   344357.21k   472470.87k   484418.44k
md5              39781.38k   103644.10k   201775.96k   264625.15k   290736.81k   291897.34k
hmac(md5)        14862.84k    53759.72k   138745.94k   226699.17k   283596.12k   287555.58k
sha1             39244.18k   101676.69k   197682.00k   258336.77k   283257.51k   284813.99k
rmd160           12648.92k    38548.47k    87865.86k   130038.10k   150765.57k   152464.04k
rc4             146242.21k   161480.84k   164204.03k   165571.55k   166436.86k   166242.99k
des cbc          30569.85k    31565.63k    31813.69k    31910.91k    31959.76k    31905.11k
des ede3         11472.44k    11647.45k    11692.71k    11698.18k    11709.90k    11703.64k
idea cbc             0.00         0.00         0.00         0.00         0.00         0.00 
seed cbc             0.00         0.00         0.00         0.00         0.00         0.00 
rc2 cbc          21013.84k    21486.63k    21687.55k    21717.67k    21749.76k    21747.03k
rc5-32/12 cbc        0.00         0.00         0.00         0.00         0.00         0.00 
blowfish cbc     52266.09k    56036.20k    56841.73k    57342.97k    57319.42k    57218.39k
cast cbc         50242.81k    53528.00k    54395.38k    54388.44k    54834.34k    54379.54k
aes-128 cbc      81303.91k    91043.99k    93121.84k    94192.64k    94639.45k    94333.61k
aes-192 cbc      70867.96k    76297.08k    79553.19k    80441.34k    80519.17k    80434.52k
aes-256 cbc      62744.51k    66822.42k    69417.81k    70040.23k    70246.40k    70107.14k
camellia-128 cbc        0.00         0.00         0.00         0.00         0.00         0.00 
camellia-192 cbc        0.00         0.00         0.00         0.00         0.00         0.00 
camellia-256 cbc        0.00         0.00         0.00         0.00         0.00         0.00 
sha256           27665.74k    66055.36k   121110.69k   151879.75k   164083.03k   165167.10k
sha512           10105.03k    40514.22k    60127.12k    82336.09k    93487.10k    94851.26k
whirlpool            0.00         0.00         0.00         0.00         0.00         0.00 
aes-128 ige      75997.69k    86769.28k    89634.47k    91054.83k    90819.24k    90204.84k
aes-192 ige      66765.34k    73794.92k    76878.42k    77629.44k    77824.00k    77425.32k
aes-256 ige      59403.92k    65007.51k    67467.35k    68065.62k    68141.06k    67753.30k
ghash           170551.80k   188023.85k   191572.48k   191956.31k   192525.65k   192708.61k
rand              1894.51k     6997.84k    21122.56k    41174.83k    57059.90k    59031.72k
                  sign    verify    sign/s verify/s
rsa  512 bits 0.000299s 0.000020s   3342.6  49587.0
rsa 1024 bits 0.001253s 0.000050s    798.2  20050.6
rsa 2048 bits 0.006901s 0.000154s    144.9   6495.9
rsa 3072 bits 0.018992s 0.000315s     52.7   3174.3
rsa 4096 bits 0.040323s 0.000536s     24.8   1867.3
rsa 7680 bits 0.222222s 0.001753s      4.5    570.6
rsa 15360 bits 1.571429s 0.006750s      0.6    148.1
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000378s 0.000250s   2646.1   4007.1
dsa 1024 bits 0.000762s 0.000595s   1311.9   1680.8
dsa 2048 bits 0.002058s 0.001771s    486.0    564.5
                              sign    verify    sign/s verify/s
 160 bits ecdsa (secp160r1)   0.0011s   0.0008s    944.9   1189.8
 192 bits ecdsa (nistp192)   0.0015s   0.0012s    658.5    869.3
 224 bits ecdsa (nistp224)   0.0022s   0.0016s    453.9    607.1
 256 bits ecdsa (nistp256)   0.0002s   0.0006s   4216.2   1613.7
 384 bits ecdsa (nistp384)   0.0080s   0.0055s    124.8    182.2
 521 bits ecdsa (nistp521)   0.0201s   0.0136s     49.7     73.8
 163 bits ecdsa (nistk163)   0.0012s   0.0023s    841.7    432.0
 233 bits ecdsa (nistk233)   0.0019s   0.0037s    525.3    272.7
 283 bits ecdsa (nistk283)   0.0034s   0.0067s    291.1    148.8
 409 bits ecdsa (nistk409)   0.0072s   0.0140s    139.3     71.6
 571 bits ecdsa (nistk571)   0.0167s   0.0325s     59.8     30.8
 163 bits ecdsa (nistb163)   0.0013s   0.0024s    797.1    409.4
 233 bits ecdsa (nistb233)   0.0020s   0.0040s    489.0    249.9
 283 bits ecdsa (nistb283)   0.0038s   0.0074s    265.5    135.2
 409 bits ecdsa (nistb409)   0.0080s   0.0156s    125.2     64.0
 571 bits ecdsa (nistb571)   0.0189s   0.0366s     52.9     27.3
 256 bits ecdsa (brainpoolP256r1)   0.0028s   0.0022s    357.5    448.4
 256 bits ecdsa (brainpoolP256t1)   0.0028s   0.0021s    358.1    485.6
 384 bits ecdsa (brainpoolP384r1)   0.0080s   0.0060s    124.8    165.5
 384 bits ecdsa (brainpoolP384t1)   0.0080s   0.0055s    125.2    181.7
 512 bits ecdsa (brainpoolP512r1)   0.0113s   0.0084s     88.3    118.7
 512 bits ecdsa (brainpoolP512t1)   0.0113s   0.0078s     88.8    128.8
                              op      op/s
 160 bits ecdh (secp160r1)   0.0010s    999.1
 192 bits ecdh (nistp192)   0.0014s    692.1
 224 bits ecdh (nistp224)   0.0021s    476.5
 256 bits ecdh (nistp256)   0.0004s   2347.7
 384 bits ecdh (nistp384)   0.0077s    130.7
 521 bits ecdh (nistp521)   0.0192s     52.2
 163 bits ecdh (nistk163)   0.0011s    894.3
 233 bits ecdh (nistk233)   0.0018s    560.2
 283 bits ecdh (nistk283)   0.0032s    307.7
 409 bits ecdh (nistk409)   0.0067s    148.7
 571 bits ecdh (nistk571)   0.0157s     63.7
 163 bits ecdh (nistb163)   0.0012s    840.2
 233 bits ecdh (nistb233)   0.0019s    517.9
 283 bits ecdh (nistb283)   0.0036s    278.7
 409 bits ecdh (nistb409)   0.0076s    132.1
 571 bits ecdh (nistb571)   0.0178s     56.3
 256 bits ecdh (brainpoolP256r1)   0.0027s    375.0
 256 bits ecdh (brainpoolP256t1)   0.0027s    375.4
 384 bits ecdh (brainpoolP384r1)   0.0077s    130.7
 384 bits ecdh (brainpoolP384t1)   0.0076s    131.2
 512 bits ecdh (brainpoolP512r1)   0.0108s     92.3
 512 bits ecdh (brainpoolP512t1)   0.0108s     92.8
 253 bits ecdh (X25519)   0.0005s   2036.5
 448 bits ecdh (X448)   0.0020s    506.4
                              sign    verify    sign/s verify/s
 253 bits EdDSA (Ed25519)   0.0002s   0.0006s   5494.8   1813.0
 456 bits EdDSA (Ed448)   0.0006s   0.0022s   1648.3    460.0
root@OpenWrt:~# uptime
 12:43:01 up 17:48,  load average: 0.00, 0.19, 0.47

Is that the rpi2 build? I wasn't aware that the builds were compatible across versions. I was looking out for a rpi4 image, since the openwrt wiki (last I checked) has no mention of the 4 or what image to use.

It's still missing from snapshots ¯\_(ツ)_/¯

https://downloads.openwrt.org/snapshots/targets/brcm2708/bcm2709/

Also is that 32 bit only support? The commit message suggests the 64 bit build isn't fully functional.

What's the profile name btw? Might as well start adding it to our project if it builds.

You could build it if you wish.

I don't own the device and therefore I don't know. You may ask @tmomas.

There is not an image specific for the Raspberry Pi 4 ,snapshots bcm2709 32 bits images can be used on Raspberry Pi 2B,3B,3B+,4B