Git Product home page Git Product logo

raspberry-pi-pcie-devices's Introduction

Raspberry Pi PCI Express device compatibility database

This repository builds the GitHub pages site: http://pipci.jeffgeerling.com

If you would like to add a new device to the site, or correct the information about an existing device, please file a Pull Request against this repository.

Local Editing

This site uses Jekyll to build and serve pages. On a local workstation, clone the repository, make sure you have Ruby, Bundler, and Jekyll installed, then run:

bundle exec jekyll serve

Access the local site at the address Jekyll provides.

Updating Dependencies

bundle update

raspberry-pi-pcie-devices's People

Contributors

alyxw avatar apuerto11 avatar danmanners avatar fanoush avatar geerlingguy avatar hharte avatar htruong avatar jamesstocktonj1 avatar johnzong66 avatar jonnyh64 avatar maglub avatar mikegapinski avatar mpn01 avatar muse-sisay avatar neggles avatar olddroid avatar pastudan avatar punnypenguins avatar smotlaq avatar timonsku avatar tlalexander avatar tltangliang avatar tramcrazy avatar tyanbiao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspberry-pi-pcie-devices's Issues

Test Syba Dual 2.5 Gigabit Ethernet PCIe NIC SD-PEX24066

Well, if one is good (see #40), two is surely better, right?

Originally inspired by chinmaythosar's comment, then bolstered by ServeTheHome's review, and finally encouraged by the ease of testing (besides accidentally blowing the magic smoke out of the first card I bought) in #40, I've decided to buy a new Syba Dual 2.5 Gbps Ethernet PCIe NIC, which has not one but two Realtek RTL8125's. On top of that, it has a PCIe switch built-in, the ASMedia ASM1182e.

DSC_3340

So it would be neat to see if this card works out of the box with the same ease as the Rosewill card I tested without a PCIe switch and with only one port.

If it does work, it will be interesting to see how many bits I can pump through (especially testing overclock and jumbo frames)—can it match the 4.15 Gbps performance of the Intel I340-T4 + internal Gigabit interface? I'm guessing not, at least not by itself, because it seems there's a hard limit on the PCIe bus that's reached well before the 5 Gbps PCIe gen 2 x1 lane limit.

Idea: crowdfund a microATX motherboard that a Compute Module 4 plugs into

Hi Jeff,

I'm probably not the first person to have thought about this, but as far as I understand, it should be perfectly possible to develop a motherboard with a microATX form factor that offers all the typical I/O that an x86 motherboard usually provides, which you can then plug a Raspberry Pi Compute Module 4 into.

It could have an integrated PCIe multiplier, internally wired to a couple of PCIe 1x slots, as well as an M.2 slot for NVMe SSDs and an integrated USB 3.0 hub. Additionally, all the I/O that comes standard on the Compute Module (2x HDMI, ethernet, USB 2.0, audio in/out, etc) could be exposed through ports on the back of the board, with a standard ATX backplate for it included of course.

And lastly, it would of course have a standard 24-pin ATX power connector on the board, so you could use it with any regular ATX PSU.

It would enable people to finally build an affordable ARM64-based upgradable desktop PC, with the possibility to upgrade not only expansion cards, but also the Compute Module itself, once future versions of it are released.

I can't think of anything that would make something like this unfeasible, but perhaps there are some technical aspects that I haven't taken into account here?

Anyway, assuming this would indeed be a feasible product to develop, it would require people with high level electronics and board design skills to design, prototype, test and produce such a board.

Since you are a prominent vlogger about all things Raspberry Pi related, and you've been exploring with the PCIe capabilities of the Compute Module 4 in particular, perhaps you could dedicate a video to this idea and invite people with the required knowledge to start on a project like that, or at least carry out a little feasibility study on it.

I unfortunately lack the skills to work on the hardware side of such a board, but I'd definitely fund such a project! 😃

Thanks for considering this whacky idea.

Optimize kernel compile time in cross-compile environment

I think there should be a new maxim in computing:

If you want to figure out a better way to do something, share what you're currently doing in a YouTube video, and at least ten comments will provide suggestions for improvement.

A number of people have mentioned the make command to compile the kernel could be a lot faster with a couple tweaks—most notably, using -j instead of -j4 to allow the compiler to use as many jobs as it wants.

I would like to try a few different tweaks to see if I can cut the build times down on my MacBook Pro.

Test SATA adapter (I/O Crest 4 port Marvell 9215)

6by9 on the Pi Forums mentioned:

For those wanting to know about PCI-e compatibility, I have one here with a Pericom PI7C9X 1 to 3 way PCI-e bridge, and Marvell 9215 4 port SATA card connected to that. (My VL805 USB3 card is still to be delivered). With a couple of extra kernel modules enabled (mainly CONFIG_ATA, and CONFIG_SATA_AHCI) it's the basis of my next NAS.

<24W with a pair of 8TB SATA drives spinning and a 240GB SSD. <10W with the spinning rust in standby.

I bought this I/O Crest 4 Port SATA III PCIe card and would like to see if I can get a 4-drive RAID array going:

DSC_2840

Relevant Links:

higher bar

Your matrix is not challenging enough. Now try ZFS

;)

PCI-e card Mzhou-k3 M.2 B-KEY INTERFACE AND SATA SSD

I just tested on the RPi CM4 this PCI-e card

https://www.amazon.com/MZHOU-Express-Devices-Motherboard-Adapter/dp/B082D5ZRXT/ref=sr_1_12?dchild=1&keywords=Tarjeta+PCI-E+a+USB+3.0+PCI+Express+Incluye+1+Puerto+USB+C+y+2+Puertos+USB+A%2C+para+Agregar+Dispositivos+SSD+SATA+III+M.2+a+la+PC+o+la+Placa+Base+Mediante+la+Tarjeta+adaptadora+SATA+a+PCIe+3.0+M.2&qid=1609407604&sr=8-12

and it seems to work OK the USB hub with the 3 ports (USB-a and 1 USB-C), great performance indeed, however the M.2 B-KEY INTERFACE AND SATA SSD does not seems to work.
Any ideas ??? I guess that the support from RasPi OS is not ready yet ???

Great job indeed Jeff, I love your videos and your blog.

Feliz Año Nuevo.

AC/.

Test Dell Intel 942V6 X520-DA2 Dual-Port 10Gb SFP+ PCIe NIC

This is a fun one, sent to me by Jacob Hiltz:

DSC_3320

It's a Dell Intel 942V6 X520-DA2 Dual-Port 10Gb SFP+ PCIe NIC, and it's a little over a hundred bucks new. This was pulled from a Dell server and I have a couple SFP+ 10 Gbps cables (see related: #21).

From my experience with the ASUS 10G adapter (see #15), I know I'll probably not get more than about 3.2 Gbps through the card... but it would be very interesting to see if both 10G interfaces show up and could be used simultaneously.

Having better latency and a solid connection like SFP+ opens up some interesting possibilities. And it's just darn fun.

Catalog a number of PCIe cards I just received

Thanks to Jacob Hiltz' extreme generosity, I just received a number of cards in the mail today, and I want to catalog them in this issue, then I'll break them out into their own issues once I get the time to do so:

Test using netboot for faster cross-compile cycle times

From an IRC conversation on Freenode #raspberrypi today:

13:20 clever: geerlingguy: if BOOT_ORDER hits a 3, it will try to pull the files over rpiboot, instead of from /boot/
13:20 clever: geerlingguy: you can then create a directory, where kernel.img is a symlink to zImage in your kernel build dir
13:21 clever: so when the CM4 starts, it pulls a kernel directly from the build dir, so you just run make, and then whack the reset button
13:22 clever: but BOOT_ORDER 3 lacks a timeout, so if rpiboot isnt running, or you unplug the usb cable, the CM4 will just hang, and you have to re-flash the BOOT_ORDER
13:22 clever: https://hastebin.com/ilujawohis.ini
13:22 clever: however, gpio conditionals work, so you can change the BOOT_ORDER, based on the state of gpio pins
13:22 clever: in this example, it will only try rpiboot, if i jumper gpio21 and gnd
13:23 freq: is this a firmware variable?
13:23 clever: freq: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
13:24 clever: freq: all 2711 based chips have a bootconf.txt file in the spi flash, which holds the BOOT_ORDER and other config

And:

13:25 clever: geerlingguy: you could also do the same with network boot instead, then you only need to play with a tftp server
13:26 clever: the rootfs can remain on the sd/emmc, for simplicity
13:26 clever: only real problem is modules, you would either have to copy them into the rootfs as a seperate step, or just compile the things you want into the kernel
13:27 clever: any time i'm using a custom kernel build on a pi, i just do away with modules, makes the build simpler and much faster

Test Mellanox ConnectX-2 MNPA19-XTR SFP+ 10G Ethernet Adapter

Thanks to Jacob Hiltz, I have two Mellanox ConnectX-2 EN MNPA19-XTR SFP+ 10G Ethernet Adapter cards pulled from Dell servers to test with the CM4. He also sent me two Cisco SFP-H10GB-CU3M Passive Twinax cables, which means all I need to do is drop that card into my MikroTik 10G 4-port switch, plug in my MacBook Pro via my OWC 10G ThunderBolt 3 adapter, and see what happens.

DSC_3206

Mellanox links:

Related:

Test USB 3.0 Cards (A ADWITS, Inateck, and Syba)

I'm adding this issue mostly so I can reference it from elsewhere.

usb-pcie-adapter-cards

For my initial Pi CM4 review video (https://www.youtube.com/watch?v=HUamq0ey8_M) and blog post (https://www.jeffgeerling.com/blog/2020/raspberry-pi-compute-module-4-review), I reviewed these three USB 3.0 controller cards, and found:

  • The Syba worked great, always giving full 5000 mbps superspeed for USB 3 devices, and didn't require any external power
  • The Inateck worked sometimes, but not always. It would always mount devices, but sometimes a USB 3 device would mount at 480 mbps speeds.
  • The cheap A ADWITS would not work unless you provided it external power, and it would sometimes mount USB 3 devices at 480 mbps just like the Inateck

From my blog post:

(From left to right:) The first was a generic "PCI-Experss" card from A ADWITS—and no, I that's not a typo, that's how it's spelled on the box—has the VL805 chip in it, but it only mounted a couple of my USB 3.0 drives at that rate. The others, like the fastest one I've tested on a Pi 4, mounted as a USB 2.0 device, and was very slow, but worked fine otherwise.

I had higher hopes for the 2 port Inateck card, but was nervous about the Fresco Logic chip on it. As it turns out, it had similar issues, where it would mount some drives at USB 3.0 speeds sometimes, but not always.

The best USB 3.0 card I tested was the Syba SD-PEX20199, and it even includes a USB Type-C slot! It mounted all my devices at USB 3.0 speeds, and worked perfectly with the Raspberry Pi. Just be careful plugging in power-hungry devices; it can only put through a little power since it shares the 12v power supply with the IO board itself!

Raspberry PI Working as a TV Reciver (TBS6522)

I always had this idea of having a Raspberry PI Working as a Satellite/Terrestrial Reciver and Media Player.
This could finally be achieved if PCIe Tuners works.

Example of a Dual Tuner PCIe Card:

TBS6522 Dual Tuner PCIe Card DVB-S2X S2 S T2 T C2 C ISDB-T Multi Standard Digital TV Card Live TV/Window/Linux/HTPC/IPTV Server https://www.amazon.com/dp/B01MR28YAA/

Also This could be tested on a more specialized linux distro Like:

OSMC

LibreELEC

OpenPCTV

IEEE 1284 parallel port no go

We tested a couple of IEEE 1284 parallel port PCIe cards and failed. Details at worlickwerx/pi-parport#50.

It seems that this type of card only offers an IO mapped PCIe BAR and the Broadcom PCI bridge doesn't support those.
(Perhaps in retrospect that's a big DUH! but thought it might be worth documenting somewhere for others)

Test NVMe Drives and PCIe Adapters (Samsung 970 EVO Plus, NGFF, etc.)

I realized I tested some of these devices for my original review video, but I really didn't document things well in an issue on this project (which I started after I finished up that video):

NVMe Drives

PCIe NVMe M.2 adapters

I'll try to document my experiences and some benchmarks with all the drives here. I think I left some notes on the Samsung 970 EVO Plus, at least, elsewhere.

The other thing to test is how each drive (if it works as direct NVMe storage at least) compares in performance via a USB 3.0 adapter (like the KBR M.2 NVMe USB 3.1 SSD Adapter compared to directly attached. I know the 970 was a lot faster for random IO.

Test SATA RAID adapter (Teratrend 2-port SATA-III Marvell 88SE9130)

I received a Teratrend 2-port SATA-III Marvell 88SE9130 RAID card card from Jacob Hiltz (see #16), and here is the controller chip's overview from Marvell:

The Marvell® 88SE9130 host controller offer cost-effective solution of connecting Serial ATA (SATA) to a PCI Express (PCIe) 2.0 host. This host controller supports two 6 Gb/s SATA peripheral interface ports and a one-lane 5.0 Gb/s PCIe host interface. In addition, it features hardware RAID to offload host CPU, Marvell proprietary HyperDuo technology for automated SSD/HHD tiering, and AHCI interface for inbox driver support. A complete suite of RAID 0/1 and HyperDuo software is provided, including the OS device driver, BIOS/FW, and a management utility.

And a nice fancy picture:

DSC_3053

It seems there is kernel support since ca 2013, according to this answer on the Unix SE.

Test SSD

It could be cool to test if a PCI SSD can be installed, and how it affects the responsiveness of the whole system.

Test GPU (EVGA GeForce GTX 750 Ti)

I just received a used EVGA GeForce GTX 750 Ti, which was generously sent to me by @simonfrfr, and I'd like to put it through the gauntlet—plug it in, see if it powers up, see if it is visible with lspci -vvvv, compile nouveau and see if it modprobes, see if the official Nvidia ARM driver works... etc.

99.9% sure it's gonna need the expanded BAR space. It'll also need the external powered riser, since according to Tom's Hardware, it idles at 6W and peaks around 68W, which would mean 6A@12V (my barrel-plug AC adapter provides 2A@12V).

DSC_2959

Highly related: #2

Test various M.2-key NVMe SSD drives

I have on hand and would like to test the following with the Pi via an M.2 adapter, to come around full circle on the video I posted in Summer 2020: https://youtu.be/3yTyhR0Adao:

  • Samsung 970 EVO Plus NVMe M.2
  • WD Black SN750 NVMe SSD
  • XPG SX6000 Lite SSD
  • Kingston SA400 SSD

I already tested the 970 EVO Plus and the XPG SX6000 for the Raspberry Pi Compute Module 4 Review, but I'd like to go more in depth, and compare all the cards in terms of whether they work direct through a PCIe adapter, and how fast they are using the disk-benchmark.sh script.

Test GPU (Sapphire Radeon RX 550 2GB)

I just ordered the Sapphire Radeon Pulse RX 550 2GB card after this recommendation by Djhg2000, and I'd like to see if it uses UEFI, works without BIOS/IO BAR space, and might have a better chance of working on the Pi.

Because it definitely requires more power, I'm going to try it in a 1x to 16x riser with external power, which I'm still waiting to test later. Will definitely need to expand the BAR space, maybe beyond 1 GB this time :O

DSC_3094

References:

Test IBM ServeRAID BR10i / LSI SAS3082E-R SAS RAID controller

I received 2 IBM ServeRAID BR10i / LSI SAS3082E-R SAS RAID controllers from Jacob Hiltz, along with two Supermicro Internal MiniSAS to 4 SATA breakout cables, and I just purchased four refurbished WD 500GB 7200RPM SATA II 3Gb/s 3.5" Hard Drives to see if I can get them working in RAID 0 and RAID 1E (I have a few other SATA drives, but they are different sizes, speeds, etc. and I'd rather take the variable of 'drives that are not the same' out of the equation).

DSC_2841

A few helpful references:

Note that I've never set up hardware RAID before, so it'll be a little bit of a learning experience—assuming the card actually works!

Re-test Intel AX200 WiFi 6 cards - again

So... in #38 and #22 I tested the Intel AX200 Desktop Kit (via M.2 to PCIe adapter) and the EDUP Intel AX200 PCIe card, respectively. The most recent video I posted was I lied... WiFi 6 on the Raspberry Pi is NOT faster than Ethernet—but that itself might be another unintentional lie!

My testing has been all over the place, and every day I seem to be learning new (and sometimes seemingly contradictory) facts about WiFi, the AX200 chipset itself, and networking in general.

Today I've learned that it may, in fact, be possible to get more than the ~800-1100 Mbps I was getting in my most recent tests with the AX200 to my ASUS RT-AX86U router:

From Dmitri Arekhta's comment:

Jeff, Marvell Marvell is wrong. Intel AX200 max PHY rate is 2400Mbps because it's the first two chains mass-market chipset that could do 2x2 MIMO on 160MHz channel. Before AX200 2 chain chipsets were capable of either 2x2 80MHz or 1x1 160MHz, i.e 1200Mbps max PHY rate. I think you have to set 160MHz channel on your router in order to push AX200 to its limits. In ideal RF conditions you might get ~70% UDP throughput from max PHY rate. However, with MCS11 it's a bit harder, but I guess you should do 1.3-1.4Mbps w/o problems. However, the bottleneck might be elsewhere of course.

And follow-up from Tobias Mädel:

That might be a regdomain or channel issue.
Check "iw reg get" if the channel you're using is allowed 160 MHz bandwidth in your region.

I totally agree with Dmitri, I've seen 1470 MBit/s of real-world TCP performance via AX200 chips. Your first results were most likely correct.

Then ThePunkBuster chimes in:

160 MHz May be enabled, but if the channel width is not forced and selection is left on Auto, the router will set the connection by itself according to RF environment conditions, device support, or signal strength. Also, as Dimitri said, MU-MIMO should be enabled with OFDMA support for full Wi-Fi AX advantage. Marvell Marvell comment was about a single spatial stream and not about multiple ones, which is what all current innovations on Wi-Fi are about.

And after confirming I have the ASUS RT-AX86U:

So... reviewed the specs, and you should be able to achieve 2,402 Mbit/s on a 2x2 stream using a 160 MHz channel width at 1024-QAM and a 800 ns Guard Interval with your current hardware setup! Both, the intel card and the Asus router should handle the connection. Try again forcing the router and the card parameters :)

So yeah... as I think is patently obvious, I am a n00b when it comes to networking in general (but learning as much as I can as I go!), and there is more testing to be done!

Make website way more awesome-r

It's not much of a database with me having to throw a ton of data into one big web page.

I would like to have every card be a 'post' (or custom page) in Jekyll, and then aggregate those posts on the home page, using frontmatter as 'database storage fields'.

Yeah, it'd be better to use a real database and stuff, but for now I'm gonna hack it to make it work. I've been playing around with layouts and I'm happy with what I've come up with, so the first stage is to get all the boards broken out into their own pages.

PCIe power-draw issue

I was asked to post this here from youtube.

@jeff Geerling i think you need other type of PCIe extension cable. The type that support separate power source from separate PSU. Like, try "pcie riser mining" on Ebay or Aliexpress, they got up to 6 pin power supply support, you need at least 4 "molex" pins. GPU uses own 12volt to 5volt buck converter to self initialization. And yes, PCIe have 12 volt rail (pinouts.ru/visual/gen/pci_express.jpg), but on initialization it took significant amount, i'm not sure than Raspberry PC CM4 IO board is rated to 75W power consumption on PCIe lane. While i checked the datasheet: datasheets.raspberrypi.org/cm4/cm4-datasheet.pdf i'm not sure that this system could provide enough power from it's source. Even if in your testing you achieved actual positive result — GPU device drivers will crush under FUBAR circumstances, because not enough power.

for this a got a little bit of feedback from @nowrd2xpln youtube-user:

IMO this is not a PCIe cable issue. Nor do I think it is power related. I won’t rule it out but It can be possible that the carrier board isn’t supplying enough power to drive the board but it is unlikely because the gfx board is able to power up, run it’s firmware to setup the pci config space for the Linux PCIe subsystem system to read from and begin to make an attempt to run the Linux drivers init sequence (or entry point) but as the logs show, it’s clearly showing the the Linux driver is experiencing some kind of failure during the initialization process. This can be for any number of reasons. In order to figure out why it’s failing the Linux driver code should be reviewed at the point of failure possibly going as far as rebuilding the Linux driver and turning on debug print statements, increasing it’s verbosity level of debug statements, or going as far and adding custom debug statements to find out what, and why, failure is occurring.

The quick and easy answer why it’s not working is because the vendors who make the gfx card DO NOT SUPPORT their card for the raspberry pi and the reason why the won’t support it is because gfx vendors wouldn’t generate any income from it. There is no financial incentive to dedicate time and resources to support development in getting the Linux driver for the raspberry pi to work. For company to add support there would have to be some guarantee that every single person that buys a raspberry pi also buy their gfx card.

I’m a firmware and embedded systems engineer who develops firmware and Linux device drivers for Enterprise Datacenter Hardware. Btw first time watching your video and I enjoyed it a lot. I commend you for going as far as you did down the rabbit hole. It takes a lot of grit. I know cuz I do this on a daily basis for work.

I address it like this:

@nowrd2xpln there is still quite a few problems with that. First of all it's not very good idea to test something when you got obvious point of failure. Second, we got ARM CPU that consumes power from 5.1v ~3amp PSU that peak 18W, plus we got 5v to 12v back converter to provide PCIe power that is not 100% efficient, plus GPU got 12v to 5v converter to provide 5v for self initialization, plus we got GPU power phases that is also not 100% efficient and on low end boards is less efficient than on top tier, plus we got GPU silicon that is also provide resistance and low tier silicon have highest voltage requirements than top tier binding. And so on and so on. Usually GPU initialization consumes huge amount of power that why i initially wrote about "75W rated" and not just "75W required". I'm still not quite sure about possibility of using GPU with Raspberry Pi, because GPU bios is actually made to work only in x86-IBM_compatible_system and uses Message Signaled Interrupts or more advanced, but not all ARM based processors support GIC with MSI, it's introduced only in GICv3 and also required interrupt handling to work properly, but i have no idea ho deep it's integrated with GPU firmware. Technically Raspberry Pi 4 should have GICv3, because it's uses Cortex-A72, datasheet that i found wenku.baidu.com/view/9ce1f3558f9951e79b89680203d8ce2f006665e7.html?re=view

Fortunately there is one company that created own architecture, MCST — they develop own CPU and system architecture from scratch, but they use OWN linux kernel, advanced translation plus support only AMD GPU.

This is a type of riser that i'm talking about. it should be connected to a PSU, like a standard ATX or similar, to make it work you probably will need to use "paper clip trick".

Gpu on pi

Please once try gpu once again on windows on cm4
As drivers are available and recently microsoft also announced x64 emulation on arm

Document neat CM4 projects/accessories

For example, today @BG5USN sent me this prototype version of the PiTray mini: https://twitter.com/BG5USN/status/1328331941536477189 (Edit: Now it's available on DFRobot for $14.50! — and check out the main website for the board)

BG5USN_2020-Nov-16

Basically a tiny CM4 IO board. Very neat, great for just working with CM4s (but probably wouldn't be a great replacement for the Pi 4 model B itself), and it has full-size HDMI :)

There's also the Turing Pi 2: https://turingpi.com

scheme

And CM4 MATX, a micro-ATX compliant board design so you can securely install a CM4 inside an ATX case with a PCIe slot in the right place: https://github.com/TheGuyDanish/CM4_MATX

CM4_MATX_PCB

I don't know where exactly I'll document these things, but I know I'm excited to see some of the different builds people make!

Here is something I would like someone to test: a full-on south bridge.

Specifically, a A320/B350 south bridge. Those 1st generation AMD Ryzen south bridges are really just PCIe multi-downlink bridges with SATA AHCI, USB XHCI, more PCIe ports etc all packed in one chip. If a full blown south bridge is useable, it would make certain complicated projects a lot more viable as there would be a simple solution to get a lot of varied I/O.

Test SATA adapter (4-port 2-active ASM1061 chipset)

This card is a little bit funky... it seems to be a variant of the Diyeeni PCI-E Express to 4-Port Sata/ESATA Riser Adapter Card.

DSC_3055

It has two internal SATA ports on top, and two external eSATA connectors on back. It seems like, according to the jumper readout, you can switch two interfaces from the ASM1061 chipset (which only supports 2 SATA-III devices over PCIe 1x 2.0) between either the internal or external ports.

Here's a YouTube video on this adapter (or at least one of the generic revisions of it): Detailed Look At A $6 ASM1061 SATA HBA From eBay. It's basically a super-cheap 2-drive SATA-III controller.

Special thanks to Jacob Hiltz for sending this card to me! See #16 for details about that.

Test Google Coral TPU M.2 Accelerator A+E key

I just bought a Coral M.2 Accelerator A+E key after seeing a lot of buzz about this little 'IoT' TensorFlow-compatible AI accelerator.

coral-tpu

I also just received an M.2 A key to PCIe 1x slot adapter card (see #38), and I will pop the Coral board into there.

I haven't done much with AI/ML, but apparently one of the big holdups for using this board with the Pi may be overcome soon—see: google-coral/edgetpu#280

(And I don't want to step on @timonsku's toes here either—he was the original inspiration for me getting this particular card, after seeing his Piunora; just figured now is as good a time as ever to take a quick stab at TensorFlow.)

See related, in the Pi Forums: https://www.raspberrypi.org/forums/viewtopic.php?p=1772610&sid=4833ac3f714618282207affca2bcd846#p1772610

And the patch advertising MSI-X support in the Pi Kernel (currently only on 5.10.y branch): raspberrypi/linux@6bf63f7

(Note that it may be incorporated into Ubuntu for Pi too... https://twitter.com/m_wimpress/status/1345077692568367105

Test 4-interface Intel NIC I340-T4

I ordered a Intel I340-T4 PCIe x4 4-port Gigabit Network Adapter (specs, and am waiting for it to arrive. I would like to see if this adapter also requires the BAR space expansion that the GPU required (see #2), and also whether I can see all four interfaces over the PCIe x1 2.0 bus, or whether I can only see some of them.

The card itself is an x4 card, meaning it won't slot into the stock PCIe x1 slot on the Compute Module. I could hack into it with a dremel, but instead, I bought an x16 to x1 riser/adapter: PCI-e PCI Express 1X to 16X Extension Cable.

We'll see if I can get it working! I have the 1x to 16x cable already, just waiting on the GigE adapter to come in.

Edit: Here's the card plugged into the IO Board:

intel-i340-16x-1x-raspberry-pi-cm4

Test ASUS XG-C100C 10G PCIe Network Adapter

Just arrived: the ASUS XG-C100C 10G Network Adapter.

DSC_3187

For reference, I was able to coax (hehe, 'coax'... but this is RJ45!) 3.2 Gbps out of the Intel i340-T4 when testing all four 1 Gbps ports at the same time with MTU 9000 jumbo frames. And I could get 2.5 Gbps out of the Rosewill Realtek 8125b.

I'm guessing I'll be able to get 3.2 Gbps max out of this card. On the Mac side of things, I'll be using an OWC Thunderbolt 3 10G Ethernet Adapter, which I plan on using more permanently once I get my in-home 10G network set up—before that, though, I need to figure out if I'm going to stick with 'Cat6 and pray' for short runs, or buy Cat6a, Cat7, or heck maybe even go for Cat8 to replace my existing Cat5e and Cat6 runs.

I have a couple Cable Matters RJ45 Cat7 patch cables to use for testing, and I also have a MikroTik 5-port SFP+ desktop switch, into which I'll insert two FLYPROFiber 10G SFP+ to RJ45 adapters so I can stick with RJ45 for now.

I might try some SFP+ Twinax cables for some later testing, but obviously not with this card, as it's RJ45-only.

Test GPU (VisionTek Radeon 5450 1GB)

I want to see if an AMD card works out of the box with the drivers built into Linux, as everyone on the Internet seems to say. For X86 Linux, that definitely seems to be the case, but will it work on ARM32? ARM64?

I settled on the Radeon HD 5450 1GB PCIe 2.1 card, mostly because it's available at a local retailer for $35.

Phoronix did a pretty extensive article on this board, and while it's no screamer... or even that fast... it is a simple, fanless, low-power board, and that might just be perfect for the Pi CM4. Here's that article: ATI Radeon HD 5450 On Linux.

I don't expect it to be fast, or amazing, but I do expect to get it to work. Maybe.

DSC_2290

Related links:

Test PCIe switches and adapters

I need to add a new section to the site for bridges/switches/adapters... because I'm finding that at least one of the three I've purchased doesn't seem to work with the Pi at all, giving me pcie: link is down on any attempt to use it with any PCIe device (including known good ones that work when I plug them in directly or through other adapters.

Right now I'm testing these:

IO Crest 1 to 2 ports PCIe x1 adapter — seems to work fine at least for some cards. Build quality of included floppy to molex power adapter is pretty bad, though:

DSC_2962

Exacq Technologies 1 to 2 ports PCIe x1 adapter using the TI XIO3130 PCIe switch chip, which uses a 4-pin molex connector for power. This one seems like it came out of a video server of some sort. Got it on eBay:

DSC_3046

PCIe 16x to 1x adapter (generic) - Works with everything so far, as if I plugged it straight in. It should though, since it's just a dumb extension cable:

DSC_2963

Rosewill RCRC-17001 Mining Card 1x to 16x - Sometimes works, sometimes causes a kernel panic for some reason. I even bought two revisions (003, with a PCIe power connector, and 888, with a Molex 4-pin power connector), and both of them exhibit this weird behavior:

DSC_2965

PCE164P-N06 VER008S PCIe 1x to 16x riser - Haven't tested yet, but I like how it has a plethora of power options!

DSC_3049 (1)

One common annoyance is they all have different power adapter cables. I should probably just go buy a bulky PC power supply and drop it on my desk. I did by a 600W fully modular PSU.

Test GPU (Zotac Nvidia GeForce GT 710)

I'm currently testing this GPU (Zotac Nvidia GeForce GT 710), so until that's done, I wanted an issue open to track where that work is going on.

DSC_2348

Currently I have the driver installed, and everything sorta works, but I've had to do a lot to get it to that state. Right now I'm installing the CUDA tools to see if I can get some programming done on the GPU. The X window system did not seem to like the driver for some reason.

Anyways, some relevant links to follow:

Have you tried to use a PCIe adaptors for M2 wifi boards?

One question, have you tried to use these adaptors with a M2 2230 wifi device? It might be helpful to understand any drivers issues that you are having with the other boards.

Maybe it is a straight forward "this won't work". The problem is that I do not know why it should not work. If that is the case please feel free to close the issue.

CM4Ext Nano versions

Hello,

Will be multiple versions available?
For instance I'm looking for something minimalistic, with only two usb C (on only data, on for data+power), the user switch, micro sd.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.