You knocked it out of the park on this one, you didn't under-promise, but you did over-deliver (I thought the price was going to have to go up, but it didn't!).
That's what I was thinking but since I am not really an expert in this department I thought he definitely would know better, let's see if someone (or Jeff) could get it to work.
Couldn't a custom cluster IO board be designed in a way that lets you mount the CM4s at a 90 degree angle? perhaps by using a sort of riser cable for the outermost connector.
This is the first video of yours I've watched. Very good job! Thorough and informative, not just a hyped dictation of the spec. sheets, like a lot of others' videos.
Thanks, I try to put a lot of effort into giving relevant information and not just rehashing a blog post or a spec sheet. Glad some people appreciate that :)
Use a modern AMD GPU card with a 1x to 16x pcie riser often used for mining. You should then be able to get a modern gpu running on the raspberry pi 4 CM.
@@Peter_Gamerrr I mean a hacksaw is pretty extreme but some flush-trim snips would do the job. I’d be concerned about stability, though. Using a mining riser allows to lay down the GPU so it can’t damage the breakout board.
@@Peter_Gamerrr You would need the riser anyways as the PCIE sot is expected to supply power, where risers can be powered with a molex/sata power cable for that power. GPU's don't only pull power through the 6/8 pin power cables as the PCIE slot is normally rated at 75 watts.
As a person who will be buying one of these for integration in an actual device it's way more important to have every i/o possible than for the board to be smaller.
Indeed that's a development board intended to better develop the more integrated solution the compute module is meant to be used in. Kinda weird that there's no usb3 though
You are correct, I've tried both PCI-E 16x and 8x graphics card in 1x and 4x slots with risers and it works just fine, just at the lower bandwidth of the slot.
I haven't watched the video yet, but I'm pretty sure the Pi can't handle PCIe GPUs. I've had a look into this topic a while ago for the RK3399. Basically those small CPUs lack some sort of cache/memory that would allow them to operate a dedicated GPU. More precisely: This cache is too small.
PCIe is not only backwards compatible, it's also latency tolerant, as demonstrated by the guys that hacked the PS4 by making use of the the PCIe bus connected to a serial port and it worked.
I didn't know that jason statham was the brain of raspberry pi... Me: Hey you, where are the USB 3.0? Eben: SMASH, PUMM, CRACK!!, ...BOOOM! Me: aaaaarghh!
Hi, regarding the graphics cards, you can plug in a graphics card designed for "longer" PCI Express slots into a PCIe 1x slot. I did that a while ago with an external GPU solution. The card will not use it's full potential, but that affected mainly loading times, like texture loading. Basically anytime the GPU requests data from the rest of the system. Regarding drivers, have a look at AMD cards, they are open source and are included in mesa and should work.
You're right, but in this case it doesn't look like the PCI-e slot was manufactured with the back open to support that. He could open it up with a rotary tool, but it isn't something most people would be willing to do.
I think it's also worth mentioning that the new IO board is about 1/3 the price of the old one while having pretty much the same features, and that most of the power regulation is moved to the CM so rolling your own interface board should be a lot easier now.
Imagine what you could do with this. You can make a super compact computing cluster, or attach it to a custom PCB and make a cheap arm laptop that actually does something (or you could just buy the pinebook but you get the point right). The possibilities are endless!
When I saw this a few days ago the first thing I thought about was , lets go see what Jeff plans on doing with these things... So much potential, I knew clusters would be at the top of the list ! Happy to hear it
The literally explains it in the same sentence, it's "to enable the NVMe kernel module, which apparently is included in the Raspberry Pi OS kernel but not loaded by default.
@@RudyBleeker thanks for the replay, but my question is why use modprobe (that loads the kernel module in _MEMORY_ ) and then reboot? to load a kernel module at startup you need to change /etc/modules, without doing so the kernel will boot up _without_ the nvme module. My point is that the explaination does not reflect the commands he gave at the console and it's kinda wrong. But maybe i'm missing something.
@@alessiocurri82 If I had to guess, maybe the module is designed to add itself to the boot loading list once it's loaded for the first time, and then it needs a reboot for hardware reasons. No idea if that's right or not.
Just FYI, you may be able to get an PCIe x4, x8 or x16 card to work in an x1 slot using an adapter. This will of course only achieve x1 speeds but the other lanes will just remain unused, if following the PCIe spec properly. Some PCIe x1 slots even have "open back ends" to accommodate cards with more lanes. And some modders create the open back of the slot manually using a saw, file or similar :)
6:40 so you run modprobe to load the kernel module, then just unload the module again by rebooting? Of course it didn't work, it would've had a better chance of working if you did the modprobe and then _didn't_ reboot.
So... when I first wrote up that section of the video a month or so ago, nvme support was not built in, and I had also symlinked the kernel module manually, and that's why it worked after a reboot. But I had forgotten about it, and also I believe the latest version of Pi OS (nightly build or if you do a dist-upgrade) does load the kernel module by default now.
I was wondering the same thing and searched the comments for a related comment. Modprobe doesn't survive a reboot, I am not overly familiar with the boot process for RPi's in general, but do know that the kernel module must be compiled in or as apart of the initrd (INITial RamDisk) [assuming access during boot is required], so the kernel has the drivers available to connect/mount the 'final' real root device where /sbin/init is spun up as process 1 and starts up the system. The magic is getting the RPi firmware to support access to NVME to pull a kernel and initrd off of it and transferring control to the kernel. x86-64 machines basically require EFI and gpt filesystem with a special EFI (FAT32) partition and a particular file structure/naming to do this now to boot from NVME. Not sure how RPi would boot from NVME in the future as their boot process is a bit of voodoo. I don't do it often so I can't recall the exact command, after a 'modprobe nvme-core' a command to force a rescan of storage devices (often done with actual removable hotswap SCSI chassis) and the drive will show up / newer kernels seem to do this automagically hence why I've forgotten. Mind you to boot from NVME would require a supported RPi NVME boot process in their firmware (think BIOS) and initrd or kernel with NVME module built in. If the drive doesn't show up it is most likely something is unsupported or is mis-identified/mis-configured. In a day of excellent storage support, coming across storage that is unsupported is getting more and more rare and I suspect that might be the case, but not really sure. I use x86-64 hardware normally, just applying my knowledge on way the kernel works during/post initrd to the Pi here.
It's time to run discrete gpus on the Pi. You can find 30$ pcie 1x to 4 1x ports switch, usually used for crypto mining rigs, with that you can connect multiple pcie cards.
@@ethanlai1044 Don't know but maybe is possibile to use more powerfull gpu for better desktop and browser performance also kodi and plex hardware video encoding and decoding + more usb ports, nics, raid controllers, ecc...
9:14 If you compile Mesa yourself on the Pi, you theoretically get an ARM build of the nouveau and open source AMD drivers. I don't know whether they work though.
Why can't the multiprocessor capabilities of the Turing setups be automatically used for general purpose computing? Like a standard multi threaded application etc? I wonder
9:30 For the GPUs, you can use literally any GPU you want (even if it has an x16 slot) by just notching out the back of the PCIe x1 slot and sticking it in, or the cleaner solution is to get a pcie 1x riser card (e.g. www.amazon.com/dp/B076KLJR2Y/ ). Nearly any x16 card will run absolutely fine at reduced speeds if you just install it in a x1 slot, no problem. You can them use an arm build of noveau for an nvidia gpu, or an arm build of AMDGPU for an amd/radeon gpu; you can probably even find pre-compiled packages of those drivers, but those are both open-source so even if not you can compile them yourself for arm.
What I like about this is that you can take a mini ATX case, drill some mounting holes, and fit the IO board in. In fact, I wouldn't be surprised if someone makes an adapter to mount the IO board in place of an Intel board.
Wow! What a great video Jeff!! This is really fascinating what the Pi gurus came out with, and all the possibilities for connecting up all the accessrories you can now hookup! Just the PCiE alone is really really interesting, and opens up a whole new world of fast connectivity! Thanks again for this great video!!
8:30 Couldn't you either compile a custom kernel and make the nvme support built in or make a custom initramfs including the module on an sdcard and just use root=/dev/nvmeblk0p1 as a kernel command line parameter? It's how we had booting off USB before it was official. All you need a small SD card for holding the firmware, kernel, initramfs and configuration. This way you technically boot off the storage the firmware supports, but the Linux that is launched from there jumps onto the device you specified.
@@JeffGeerling You'd still get the second half of the boot process running off the SSD and thus the speed benefit, the whole userland stuff. Would be worth a try (a video?).
How much power? Any videos on how to make this a motion sensing and recording webcam? What software would I use? hardware? Never used this board before, only a pi...
20:16 hope it will with stacking bus(own board for every rpi)(money money) becouse rpi4 compute module has annoying connector lol are you sure you want 10x those on same board?
6:08 there’s a SATA power port on the back of that USB card... if you hook that up to a power supply you should have all the power you’ll ever need... right?
True, though then you have an extra power supply besides the 12V one to power the IO board. But for those integrating the CM4 into custom PCBs that is an easily achievable task! For the "PCI Experss" card it required a 4 pin power plug, which I plugged in via an external PSU, otherwise it had no power at all. At least with the Syba card, it would provide power through the PCIe bus even if not in large quantities :)
I just ordered one, thanks so much for the offer though! And while I could use another GPU I'd need a riser or to cut into the 1x connector on the IO board, and I'd rather avoid that for now :)
Nice scoop. I'm wondering how a 2.5G/5G USB-to-Ethernet adapter will perform? Using a NAS to boot and for primary I/O? I'm asking about USB because the PCIe 1x board is multi-port.
That's a good question! I haven't had a chance to test anything better than gigabit speeds. If you could get a NAS running over 1 Gbps to the Pi you'd have a pretty beastly setup! Still probably not quite as fast as direct NVMe but at least you could boot over the network (can't do it via NVMe yet!)
The official Raspberry Pi RUclips channel has posted a video about the CM4 in which, if memory serves, they said they were able to get ~3 Gbps from a 10GigE PCI-E adapter, which they said was pretty much at the theoretical limit of the PCI-E bus they're using. I'm on my phone here, so it'll probably be a huge hassle for me to find a link to the video, sorry :(
you can also mount a x16 gpu, just cut the pcie socket open in the end. some mobo have open pcie slots, so you can install x16 devices in x4 or x1 slots.
In regards to the gpus, pci-e cards do not care in what slot they are, they just run at a lower bandwith. You can literally chop the back off of a x1 slot and plop a x16 card in it..
Interesting, this I did not know. Last time I messed with a GPU at all (besides using whatever came in my laptop) was pre-2003 when I last built my own desktop... and back then I think it was AGP slots, which were entirely different :D
As for graphic cards, remember that PCIe 1x is just the same as PCIe 16x, just with one lane. A friend of mine needed to plugin a SAS controller on his old machine and had no PCIe 8x slots, so I asked him if he had a dremel. He had - just cut out the plastic covering the end and plugged in the SAS controller and it worked well. Not as ast as with PCIe 8x, though, but hell, it was temporary ;)
Not quite. It's all about sacrificing SATA with USB3. When I saw a PCIE X1 slot I immediately think about the possibility of CM4 NAS but I was intrigued by the slow speed of x1 Gen2: 0.5GB/s. This means 500 MB/s and yes it theoretically max out for a single SATA3 while real world performance should be 150MB/s RW per HDD. This means we can only have ~100MB/s for each disk in CM4 NAS counting the packet overheads/bandwidth/weak processing power. Still this is a trilemma for me to pick between a 10GB card*, 4 Gigabit LAN (btw each theoretically 125MB/s so 1 port will get starved, wrt to real life they are 95MB/s maxing out so no worries) or do this NAS project. Help me pick a choice. *Using a 10GB card to run PXE network boot and offload the system from storage through a iSCSI from my existing DIY NAS.
@@stevefan8283 well yes but a NAS with 100mb r/w performance in a low-cost scenario is still a bargain. An entry level dual disk nas with 100mb throughout is 3/400 euro (filled). Printing a case and adding disks here you can easily get a 200euro nas with 4 disks.
Someone should design a Compute Module IO board with only a few USB ports, Gigabit NIC and two or four SATA ports. Even the Pi 4 runs awesome as a NAS, I‘m able to write with 110MB/s via SAMBA to my external SSD without a problem at all.
Re "first Pi with u.fl external antenna connector": true, but the Pi Zero W has an unpopulated footprint for what looks suspiciously like a u.fl connector ;) I've not tried soldering a connector to that, and it looks like you'd have to rotate a ridiculously-small component to connect the u.fl antenna instead of the onboard one, but it looks like it should be possible! :D
Interesting, you're right, it's just a hair above the 'USB' label on the board, pads perfectly suited to a U.FL connector. So it's the first Pi to _have_ the connector, but not the first Pi to have the space on the _board_ for the connector. Posted a picture of it here: twitter.com/geerlingguy/status/1318686105378619393
@@JeffGeerling On the Pi Zero W, its only used to characterise the antenna and the WiFi circuit during prototype validation. The Pi 4 has one too but it is more disguised
@@JeffGeerling well, i mean if you wanted, to hook up a drive, where would you get SATA Power from? I guess, one drive could be powered over this breakout port, you mentioned, but more than one drive?
@@p3chv0gel22 For regular size/spinning drives, I would recommend a separate power supply since the IO board won't be able to power more than one reliably. If designing your own carrier, I would definitely recommend using separate power for any accessories.
you said cant be used to boot....i recall on the RPi3 there was an OS that you would put onto the SD card which allowed you install OSes to an external USB device and then boot those OSes (after iitially booting to the SD card and selecting which OS to use) sorta like the OS on the SD card was like another bios layer if you will or like a pre-OS.....can you do that with NVME and still put the OSes on there that way?
thanks for this review Jeff.. have you tried using a drop-in replacement for the RPI CM4 (Radxa CM3) using the same IO board? it seems the RPI CM4 are out of stock everywhere.. replacement needed. thanks!
My hope is for a Pi 5, there might be more bandwidth available for PCIe, and maybe built-in USB 3.0 instead of 2.0 (in the Soc). I don't know enough about the Broadcom lineup to know if any of their SoCs already support it, but that would be pretty cool and let us devote all the extra IO to things like NVMe!
This video is cool and you're doing crazy stuff which is awesome. The Raspberry Pi is a single-board computer that you can plug into other boards and then plug other boards into that at some point it's just going to be a CPU
hi lord geerling, what did you format nvme in,reason today its getting too be a pain to know what to do with the patent or licences getting out hand and anti client sorry for the winjing. ,to change ssd usb keys between os's. i'm thinking of going full ubuntu. when will you do more on the IO boards for cm 4. thankyou for your channel and the help you offer. andrew from france.(your giving us value, thanks)
Just use a 1x to 16x riser, you can buy one of the standard "extension" ones for $10 on amazon and use a hack saw to cut off the other 15 lanes on the male part (and desolder the ribbon)
Why the pcie 1x? Is there a limit in the ARM CPU side or module lacks pins for more? One thing to check is to try to find pcie 1x switch card or module (there may be them from the time of GPU minind times) and then you can have several pcie 1x devices connected to the board. Even better is to ask if the Rasberry people can extend the pcie capabilities with some newer io-board with the said pcie switch chip.
YES! YES! YES! I've been waiting 6 months for the CM4 launch! AND it's even better than expected! But, all it needs is a compact carrier board with Power, USB-C, HDMI (connectors along one side), M.2 (SATA or NVMe) (connector oriented to allow the SSD to mount on board), plus an optional GPIO header. That would be smaller yet more powerful than the RPi4, IOW the smallest, most versatile SBC/PC available. Having connectors along one side allows for easier packaging for weatherproof devices as well as clustering along a backplane. Yeah, I get it. The new carrier board is more like an all purpose development board, not designed for end products. But, I'm sure that many 3rd party manufacturers will fill the market's demands, so patience is a virtue, I guess. Oh well, I'm in, so sign me up. At least I can start developing 'stuff' on the CM4 platform. WooHoo!
True, true, it's an exponential increase, but still, for being a tiny triangular pancake antenna built into a PCB, that's pretty darn good for the built-in antenna.
your red t-shirt clone always gives me heart attack, he almost hack sawed the pi's i/o
You gotta watch out for that guy.
@@JeffGeerling I came all the way back here to like his comment for starting all this.
I've actually had to do this for hacking off pcb tabs from display boards
@@MarcoGPUtuber I did too
Awesome video, Jeff. Thank you. We're glad you like the Compute Module 4 as much as we do!
You knocked it out of the park on this one, you didn't under-promise, but you did over-deliver (I thought the price was going to have to go up, but it didn't!).
Is the cm4 still intended for industrial applications?
@John Chrysostom Rev 3:9 There weren't any computers in your collection of 2-3000 year old folklore, get off the net.
@John Chrysostom Rev 3:9 Your attitude is gross, homophobe
You guys have any plan for official Chrome OS image for Raspberry Pi 4?
6:50
Modprobe loads kernel modules dynamically, so doing a modprobe and reboot completly cancels each other out.
That's what I was thinking but since I am not really an expert in this department I thought he definitely would know better, let's see if someone (or Jeff) could get it to work.
The change in form factor was very well justified with a bunch of new features. Being parallel to the IO board will make your cluster wider, though.
So true the dimm is expensive when designing a board.
Yeah, I didn’t get what he meant at the end when saying it takes up less space, it seems it will take up more at least in the horizontal plane.
Couldn't a custom cluster IO board be designed in a way that lets you mount the CM4s at a 90 degree angle? perhaps by using a sort of riser cable for the outermost connector.
I believe you would be better off simply populating both sides of the mainboard with CM4. Cooling would be easy too.
I was having that in mind too.
Fantastic edited video, great fast code cuts. And the bloopers are priceless. Oh yeah, great technical info on the new board. Thanks.
This is the first video of yours I've watched. Very good job! Thorough and informative, not just a hyped dictation of the spec. sheets, like a lot of others' videos.
Thanks, I try to put a lot of effort into giving relevant information and not just rehashing a blog post or a spec sheet. Glad some people appreciate that :)
6:50 that’s your issue! Modprobe is only temporary
Yes, modprobe hot-loads kernel modules. Rebooting undoes this process.
Love these bloopers! :D you should include them in every video haha
Use a modern AMD GPU card with a 1x to 16x pcie riser often used for mining. You should then be able to get a modern gpu running on the raspberry pi 4 CM.
That works with almost any GPU. PCIe is backwards and downwards compatible and latency tolerant.
@@BrunodeSouzaLinoI specifically said AMD GPU because of the opensource drivers in the Linux kernel which should work on ARM ISA not just x86.
or just open up the back of the 1x slot with a hacksaw also works
@@Peter_Gamerrr I mean a hacksaw is pretty extreme but some flush-trim snips would do the job. I’d be concerned about stability, though. Using a mining riser allows to lay down the GPU so it can’t damage the breakout board.
@@Peter_Gamerrr You would need the riser anyways as the PCIE sot is expected to supply power, where risers can be powered with a molex/sata power cable for that power. GPU's don't only pull power through the 6/8 pin power cables as the PCIE slot is normally rated at 75 watts.
As a person who will be buying one of these for integration in an actual device it's way more important to have every i/o possible than for the board to be smaller.
Indeed that's a development board intended to better develop the more integrated solution the compute module is meant to be used in. Kinda weird that there's no usb3 though
Finally...It arrives.
finally they got pcie and emmc
Fantastic overview Jeff. We gave this video and your channel a shoutout in this weeks episode of The Electromaker Show :)
glad i found this channel as i jump into the raspberry pi world. bloopers at the end are great!
When you want to plug in a video card you can use a pcie x1 to x16 Riser and also use basicly any other pcie device
Yes, pci devices are usually able to run with less lanes. Would really like to see it tested.
You are correct, I've tried both PCI-E 16x and 8x graphics card in 1x and 4x slots with risers and it works just fine, just at the lower bandwidth of the slot.
@@dv7533 yes beacause pcie is dowardcompatible
I haven't watched the video yet, but I'm pretty sure the Pi can't handle PCIe GPUs. I've had a look into this topic a while ago for the RK3399. Basically those small CPUs lack some sort of cache/memory that would allow them to operate a dedicated GPU. More precisely: This cache is too small.
PCIe is not only backwards compatible, it's also latency tolerant, as demonstrated by the guys that hacked the PS4 by making use of the the PCIe bus connected to a serial port and it worked.
PCIe access - called it.
Next prediction - they shift the eMMC memory into a slot and cut down on production models and more flexibility.
eMMC on a board, a la Pine64?
YES
I didn't know that jason statham was the brain of raspberry pi...
Me: Hey you, where are the USB 3.0?
Eben: SMASH, PUMM, CRACK!!, ...BOOOM!
Me: aaaaarghh!
I was about to make this comment, glad I‘m not alone ... :)
Wish he'd crank up the PI to the level he does in that film. A decent vidcore would be nice.
Hi, regarding the graphics cards, you can plug in a graphics card designed for "longer" PCI Express slots into a PCIe 1x slot. I did that a while ago with an external GPU solution. The card will not use it's full potential, but that affected mainly loading times, like texture loading. Basically anytime the GPU requests data from the rest of the system. Regarding drivers, have a look at AMD cards, they are open source and are included in mesa and should work.
You're right, but in this case it doesn't look like the PCI-e slot was manufactured with the back open to support that. He could open it up with a rotary tool, but it isn't something most people would be willing to do.
Just came here after ETA Prime's video!
Tell ETA hello! 👋
Haha I will be doing the opposite and going to ETA Prime after this video 😂
@@JeffGeerling will do ;)
@@RoyalKnightinarms lol
Me to
Thanks!
Wow, I'm glad I didn't work on my project expecting the Pi4 compute module to be in a sodimm factor.
This was awesome. Well done, Jeff.
I think it's also worth mentioning that the new IO board is about 1/3 the price of the old one while having pretty much the same features, and that most of the power regulation is moved to the CM so rolling your own interface board should be a lot easier now.
Imagine what you could do with this. You can make a super compact computing cluster, or attach it to a custom PCB and make a cheap arm laptop that actually does something (or you could just buy the pinebook but you get the point right). The possibilities are endless!
If they keep the same connector, you could just swap out the module and keep the screen/keyboard/etc
Thank you for the deep dive in to it. Really looking forward to the new Turing PI Board V2
U just earned a subscriber, very nice explanation/review👌🏻
Thanks for this Jeff. Very professional presentation (like always) and useful info. It shows you are a hard working pro !
Quality content, just subbed!
Awesome video Jeff. Very informative and (at the end) humorous. Thanks.
By far one of the best review I watched. Awesome explanations
When I saw this a few days ago the first thing I thought about was , lets go see what Jeff plans on doing with these things... So much potential, I knew clusters would be at the top of the list ! Happy to hear it
@6:53 is there any reason why are you loadling a kernel module with modprobe and just reboot the pi? what's the logic in doing that?
The literally explains it in the same sentence, it's "to enable the NVMe kernel module, which apparently is included in the Raspberry Pi OS kernel but not loaded by default.
@@RudyBleeker thanks for the replay, but my question is why use modprobe (that loads the kernel module in _MEMORY_ ) and then reboot? to load a kernel module at startup you need to change /etc/modules, without doing so the kernel will boot up _without_ the nvme module. My point is that the explaination does not reflect the commands he gave at the console and it's kinda wrong. But maybe i'm missing something.
@@alessiocurri82 If I had to guess, maybe the module is designed to add itself to the boot loading list once it's loaded for the first time, and then it needs a reboot for hardware reasons. No idea if that's right or not.
@@alessiocurri82 Oh, he explains it in another comment. It's now loaded by default, and he had symlinked it off camera. It's just a video error.
Why not try running the x86 linux drivers through box86 or using an AMD card with the open source MESA drivers?
The bloopers are awesome! 😂 :)
Oh this is awesome... So glad to hear about these upgrades.
Great content as usual - thanks for the hard work
Just FYI, you may be able to get an PCIe x4, x8 or x16 card to work in an x1 slot using an adapter. This will of course only achieve x1 speeds but the other lanes will just remain unused, if following the PCIe spec properly.
Some PCIe x1 slots even have "open back ends" to accommodate cards with more lanes. And some modders create the open back of the slot manually using a saw, file or similar :)
I'm so excited for this
You had me at PCIE, I've got to buy this!
6:40 so you run modprobe to load the kernel module, then just unload the module again by rebooting? Of course it didn't work, it would've had a better chance of working if you did the modprobe and then _didn't_ reboot.
So... when I first wrote up that section of the video a month or so ago, nvme support was not built in, and I had also symlinked the kernel module manually, and that's why it worked after a reboot. But I had forgotten about it, and also I believe the latest version of Pi OS (nightly build or if you do a dist-upgrade) does load the kernel module by default now.
I was wondering the same thing and searched the comments for a related comment. Modprobe doesn't survive a reboot, I am not overly familiar with the boot process for RPi's in general, but do know that the kernel module must be compiled in or as apart of the initrd (INITial RamDisk) [assuming access during boot is required], so the kernel has the drivers available to connect/mount the 'final' real root device where /sbin/init is spun up as process 1 and starts up the system. The magic is getting the RPi firmware to support access to NVME to pull a kernel and initrd off of it and transferring control to the kernel. x86-64 machines basically require EFI and gpt filesystem with a special EFI (FAT32) partition and a particular file structure/naming to do this now to boot from NVME. Not sure how RPi would boot from NVME in the future as their boot process is a bit of voodoo.
I don't do it often so I can't recall the exact command, after a 'modprobe nvme-core' a command to force a rescan of storage devices (often done with actual removable hotswap SCSI chassis) and the drive will show up / newer kernels seem to do this automagically hence why I've forgotten. Mind you to boot from NVME would require a supported RPi NVME boot process in their firmware (think BIOS) and initrd or kernel with NVME module built in.
If the drive doesn't show up it is most likely something is unsupported or is mis-identified/mis-configured. In a day of excellent storage support, coming across storage that is unsupported is getting more and more rare and I suspect that might be the case, but not really sure. I use x86-64 hardware normally, just applying my knowledge on way the kernel works during/post initrd to the Pi here.
It's time to run discrete gpus on the Pi. You can find 30$ pcie 1x to 4 1x ports switch, usually used for crypto mining rigs, with that you can connect multiple pcie cards.
People can run a mining rig on these new compute modules. How nice, it lowers cost so much.
@@ethanlai1044 Don't know but maybe is possibile to use more powerfull gpu for better desktop and browser performance also kodi and plex hardware video encoding and decoding + more usb ports, nics, raid controllers, ecc...
Great video and excellent presentation. In depth analysis and very informative!
So hyped for that compute board!
So i’ve been using this CM4 for a couple of weeks now.. 👌🏼
9:14 If you compile Mesa yourself on the Pi, you theoretically get an ARM build of the nouveau and open source AMD drivers. I don't know whether they work though.
Why can't the multiprocessor capabilities of the Turing setups be automatically used for general purpose computing? Like a standard multi threaded application etc? I wonder
Latency, the response times would be too slow for practical use, unless you used a pcie network.
Awesome news. I need to start paying more attention to the Raspberry Pi foundation website. Thanks Jeff.
9:30 For the GPUs, you can use literally any GPU you want (even if it has an x16 slot) by just notching out the back of the PCIe x1 slot and sticking it in, or the cleaner solution is to get a pcie 1x riser card (e.g. www.amazon.com/dp/B076KLJR2Y/ ). Nearly any x16 card will run absolutely fine at reduced speeds if you just install it in a x1 slot, no problem. You can them use an arm build of noveau for an nvidia gpu, or an arm build of AMDGPU for an amd/radeon gpu; you can probably even find pre-compiled packages of those drivers, but those are both open-source so even if not you can compile them yourself for arm.
What I like about this is that you can take a mini ATX case, drill some mounting holes, and fit the IO board in. In fact, I wouldn't be surprised if someone makes an adapter to mount the IO board in place of an Intel board.
Wow! What a great video Jeff!!
This is really fascinating what the Pi gurus came out with, and all the possibilities for connecting up all the accessrories you can now hookup!
Just the PCiE alone is really really interesting, and opens up a whole new world of fast connectivity!
Thanks again for this great video!!
8:30 Couldn't you either compile a custom kernel and make the nvme support built in or make a custom initramfs including the module on an sdcard and just use root=/dev/nvmeblk0p1 as a kernel command line parameter? It's how we had booting off USB before it was official. All you need a small SD card for holding the firmware, kernel, initramfs and configuration.
This way you technically boot off the storage the firmware supports, but the Linux that is launched from there jumps onto the device you specified.
That may work. Still requires the microSD card or eMMC but at least it would allow everything to run fast.
@@JeffGeerling You'd still get the second half of the boot process running off the SSD and thus the speed benefit, the whole userland stuff. Would be worth a try (a video?).
How much power? Any videos on how to make this a motion sensing and recording webcam? What software would I use? hardware? Never used this board before, only a pi...
20:16 hope it will with stacking bus(own board for every rpi)(money money) becouse rpi4 compute module has annoying connector lol are you sure you want 10x those on same board?
Great video!! BTW the bloopers are the end are priceless!!! more bloopers! I wish everybody included their mistakes.
I'm glad you enjoy them. It takes a bit more time to add them on, but I find it's best to be able to laugh at myself too :)
Is there a 1x AMD GPU? there drivers are sepost to be open sorce so might be able to be compiled for ARM
Very well made video, subbed :)
5:43 data at slow speeds? hmm.. i remember having 56k dialup growing up.. i could download a song in less than 3 hours on that puppy!
So long as no one picked up the phone to make a call!
are there ways to connect multiple of these compute modules to one IO board?
6:08 there’s a SATA power port on the back of that USB card... if you hook that up to a power supply you should have all the power you’ll ever need... right?
Yes. In that case, you would get the Standard USB 3.X (don't know, which Gen his Card is) as you would have it on your Desktop
True, though then you have an extra power supply besides the 12V one to power the IO board. But for those integrating the CM4 into custom PCBs that is an easily achievable task!
For the "PCI Experss" card it required a 4 pin power plug, which I plugged in via an external PSU, otherwise it had no power at all. At least with the Syba card, it would provide power through the PCIe bus even if not in large quantities :)
Liking your videos, mate. Keep it up
I hope you soldered on that wireless interface with a spoon and lighter, or Raspberry need to improve their QA.
The hardware I had was pre-production; I'm sure the final boards have better finish quality since they are probably not touched by many/any hands.
GREAT VIDEO Jeff!!!!
On my old pi I would use my SD card as a boot kicker to my HDD.
Could that work with the PCI adapter?
Love this review, so powerful
Drooling over a new Touring Pi solution!
14:55 why would you do that?
PCI to USB to PCI? just why?
Jey Jeff!!...
Fantastic video btw!
I've a Zotac GT710 pcie-1X i could lend to you for your tests as you mention on the video.
Cheers!
he can use any gpu, no need for an pcie x1 gpu.
I just ordered one, thanks so much for the offer though! And while I could use another GPU I'd need a riser or to cut into the 1x connector on the IO board, and I'd rather avoid that for now :)
@@JeffGeerling waiting impatiently for your results!!!!
👏🏻👏🏻👏🏻
if you rip out the back of the pcie slot you can fit in a pcie 16x card and pcie will still work perfectly
use WoR and windows drivers, because it has most chance in my opinion, as i tried installing many x86 apps and they do work.
saw the pcie end barrier to put x16 gpu like madlads
Nice scoop. I'm wondering how a 2.5G/5G USB-to-Ethernet adapter will perform? Using a NAS to boot and for primary I/O? I'm asking about USB because the PCIe 1x board is multi-port.
That's a good question! I haven't had a chance to test anything better than gigabit speeds. If you could get a NAS running over 1 Gbps to the Pi you'd have a pretty beastly setup! Still probably not quite as fast as direct NVMe but at least you could boot over the network (can't do it via NVMe yet!)
The official Raspberry Pi RUclips channel has posted a video about the CM4 in which, if memory serves, they said they were able to get ~3 Gbps from a 10GigE PCI-E adapter, which they said was pretty much at the theoretical limit of the PCI-E bus they're using.
I'm on my phone here, so it'll probably be a huge hassle for me to find a link to the video, sorry :(
yes try the gpu, it would be really great to see an external gpu running on this device.
you can also mount a x16 gpu, just cut the pcie socket open in the end. some mobo have open pcie slots, so you can install x16 devices in x4 or x1 slots.
Ordered the Zotac, and will test it! I don't have the budget to go around ordering $200+ GPUs though, this channel ain't that big :P
@@JeffGeerling Don't get sucked down the GPU rabbit hole.
Awesome stuff, man missed the Fact that the Compute Module 4 Had PCIE!!! WOHOO!
you're good. no time-wasting, lots of research
In regards to the gpus, pci-e cards do not care in what slot they are, they just run at a lower bandwith. You can literally chop the back off of a x1 slot and plop a x16 card in it..
Interesting, this I did not know. Last time I messed with a GPU at all (besides using whatever came in my laptop) was pre-2003 when I last built my own desktop... and back then I think it was AGP slots, which were entirely different :D
@@JeffGeerling Maybe some gaming on a pi afterall :)
a x1 to x16 riser is less destructive and you can move your GPU to a more convenient position
As for graphic cards, remember that PCIe 1x is just the same as PCIe 16x, just with one lane. A friend of mine needed to plugin a SAS controller on his old machine and had no PCIe 8x slots, so I asked him if he had a dremel. He had - just cut out the plastic covering the end and plugged in the SAS controller and it worked well. Not as ast as with PCIe 8x, though, but hell, it was temporary ;)
Haha, well I am more likely to be okay dremel'ing my board now than I was before I finished this video!
@@JeffGeerling something like this en.wikipedia.org/wiki/PCI_Express#/media/File:PCIe_J1900_SoC_ITX_Mainboard_IMG_1820.JPG
Try to build a NAS! PCIE RAID would be so cool!
Finally PCIe backed SATA so awesome!
YES
Not quite. It's all about sacrificing SATA with USB3. When I saw a PCIE X1 slot I immediately think about the possibility of CM4 NAS but I was intrigued by the slow speed of x1 Gen2: 0.5GB/s. This means 500 MB/s and yes it theoretically max out for a single SATA3 while real world performance should be 150MB/s RW per HDD. This means we can only have ~100MB/s for each disk in CM4 NAS counting the packet overheads/bandwidth/weak processing power. Still this is a trilemma for me to pick between a 10GB card*, 4 Gigabit LAN (btw each theoretically 125MB/s so 1 port will get starved, wrt to real life they are 95MB/s maxing out so no worries) or do this NAS project. Help me pick a choice.
*Using a 10GB card to run PXE network boot and offload the system from storage through a iSCSI from my existing DIY NAS.
@@stevefan8283 well yes but a NAS with 100mb r/w performance in a low-cost scenario is still a bargain.
An entry level dual disk nas with 100mb throughout is 3/400 euro (filled). Printing a case and adding disks here you can easily get a 200euro nas with 4 disks.
Someone should design a Compute Module IO board with only a few USB ports, Gigabit NIC and two or four SATA ports.
Even the Pi 4 runs awesome as a NAS, I‘m able to write with 110MB/s via SAMBA to my external SSD without a problem at all.
Glad that you've got Jason Statham to confirm the PCIE extension.
HI Jeff, very informative video as I find all of yours. Did you ever put out the video around how to boot off the eMMC from the Compute 4 IO board?
Re "first Pi with u.fl external antenna connector": true, but the Pi Zero W has an unpopulated footprint for what looks suspiciously like a u.fl connector ;)
I've not tried soldering a connector to that, and it looks like you'd have to rotate a ridiculously-small component to connect the u.fl antenna instead of the onboard one, but it looks like it should be possible! :D
Interesting, you're right, it's just a hair above the 'USB' label on the board, pads perfectly suited to a U.FL connector. So it's the first Pi to _have_ the connector, but not the first Pi to have the space on the _board_ for the connector. Posted a picture of it here: twitter.com/geerlingguy/status/1318686105378619393
@@JeffGeerling On the Pi Zero W, its only used to characterise the antenna and the WiFi circuit during prototype validation. The Pi 4 has one too but it is more disguised
@@simonmartin4599 That makes sense.
Some nvidia modules have a similar connector. Does anyone know how they compare?
Is the cm4 still intended for industrial applications?
you're a legend, geerling!
With the PCIe Slot, you could even hook up a SATA III HBA to get 8 SATA ports on a Raspberry Pi
But... Could you use a Standard psu?
I still don't have an SATA board on hand to test with, but that was something I wanted to do.
@@JeffGeerling well, i mean if you wanted, to hook up a drive, where would you get SATA Power from?
I guess, one drive could be powered over this breakout port, you mentioned, but more than one drive?
@@p3chv0gel22 For regular size/spinning drives, I would recommend a separate power supply since the IO board won't be able to power more than one reliably. If designing your own carrier, I would definitely recommend using separate power for any accessories.
you said cant be used to boot....i recall on the RPi3 there was an OS that you would put onto the SD card which allowed you install OSes to an external USB device and then boot those OSes (after iitially booting to the SD card and selecting which OS to use) sorta like the OS on the SD card was like another bios layer if you will or like a pre-OS.....can you do that with NVME and still put the OSes on there that way?
thanks for this review Jeff.. have you tried using a drop-in replacement for the RPI CM4 (Radxa CM3) using the same IO board? it seems the RPI CM4 are out of stock everywhere.. replacement needed. thanks!
Absolutely fantastic! A preview of Pi 4C or 5B, I predict! Great computing days ahead! ♥️👍
My hope is for a Pi 5, there might be more bandwidth available for PCIe, and maybe built-in USB 3.0 instead of 2.0 (in the Soc). I don't know enough about the Broadcom lineup to know if any of their SoCs already support it, but that would be pretty cool and let us devote all the extra IO to things like NVMe!
@@JeffGeerling You don't predict a new CPU in the 5B? That would arguably follow the 1,2,3,4 pattern.
BTW, Greetings from Thailand, Mr. Jeff!
CM4: *exists*
Jeff Geerling: Is this free real estate?
When USB 3.1/Thunderbolt?
You call that food? 😋
Excellent, comprehensive review. Thanks!
Hello. Looking for your guidance. Where do we connect the Pi IO board to the touch connection of a waveshare touch screen display.
Interesting video I wonder if external antenna for CM4 module can have also positive effect on Bluetooth signal?
This video is cool and you're doing crazy stuff which is awesome. The Raspberry Pi is a single-board computer that you can plug into other boards and then plug other boards into that at some point it's just going to be a CPU
hi lord geerling, what did you format nvme in,reason today its getting too be a pain to know what to do with the patent or licences getting out hand and anti client sorry for the winjing. ,to change ssd usb keys between os's. i'm thinking of going full ubuntu. when will you do more on the IO boards for cm 4. thankyou for your channel and the help you offer. andrew from france.(your giving us value, thanks)
Just use a 1x to 16x riser, you can buy one of the standard "extension" ones for $10 on amazon and use a hack saw to cut off the other 15 lanes on the male part (and desolder the ribbon)
"old Mac Mini (2011)"
* watches this video on a mid-2010 Mac Mini *
Wouldn't mind if you could check the compatibility with the pcie to sata adapters thanks Jeff
Why the pcie 1x? Is there a limit in the ARM CPU side or module lacks pins for more? One thing to check is to try to find pcie 1x switch card or module (there may be them from the time of GPU minind times) and then you can have several pcie 1x devices connected to the board. Even better is to ask if the Rasberry people can extend the pcie capabilities with some newer io-board with the said pcie switch chip.
For example: www.amazon.com/Express-Switch-Multiplier-Expansion-adapter/dp/B01M64W87Q
The BCM2711 SoC only has 1x PCIe lane, so there's no hardware support for any more bandwidth on the bus.
@@JeffGeerling Then the pcie switch ship method is the way to go then.
Does the RTC on the IO board support time triggerd power on (system wake up)? This would be an important feature for battery powerd applications.
Yes it does!
YES! YES! YES! I've been waiting 6 months for the CM4 launch! AND it's even better than expected! But, all it needs is a compact carrier board with Power, USB-C, HDMI (connectors along one side), M.2 (SATA or NVMe) (connector oriented to allow the SSD to mount on board), plus an optional GPIO header. That would be smaller yet more powerful than the RPi4, IOW the smallest, most versatile SBC/PC available. Having connectors along one side allows for easier packaging for weatherproof devices as well as clustering along a backplane.
Yeah, I get it. The new carrier board is more like an all purpose development board, not designed for end products. But, I'm sure that many 3rd party manufacturers will fill the market's demands, so patience is a virtue, I guess.
Oh well, I'm in, so sign me up. At least I can start developing 'stuff' on the CM4 platform. WooHoo!
Btw, that 3dBm increase going to the external antenna is actually a doubling in received power. You went from 50 nW to 100 nW
True, true, it's an exponential increase, but still, for being a tiny triangular pancake antenna built into a PCB, that's pretty darn good for the built-in antenna.
Great vid Jeff. Turing are going to have their work cut out making that 2x100 connector work.