Closed geerlingguy closed 3 years ago
The only technical reason I can think of is to get the correct block alignment for drives that have a 4k native sector size and a 512b logical block size (and SSDs where you want to align to the erase block size). But this isn't a requirement, it'll just slow the drives down a little bit if they're not aligned.
Because the wasted space due to alignment is usually greater than that of partitioning, and partitioning has other advantages, you might as well partition them.
@elFarto - It seemed like that was the most compelling universal reason—though the note about some motherboards (and chipsets, I presume) having trouble with unpartitioned block devices made me nervous enough to recommend always partitioning before RAIDing.
disk block i/o sizes have been verified to play a part in slowdowns, especially (but not only) with SSD's. A proper pre-partition just means the start of each partition is on whatever the block size boundry is the minimum offered by the device. (Apparently windows can not properly align the first partition, other partitions are fine).
FYI: Here are my configuration options for Samba to make it faster interacting with a macOS client. It has been a while since I researched this topic, but I remember that plain Samba performance was abysmal, esp. with large directories. The xattr
stuff seems to help a lot.
[global]
min protocol = SMB2
ea support = yes
vfs objects = catia fruit streams_xattr acl_xattr shadow_copy2
fruit:metadata = stream
fruit:model = MacPro
fruit:posix_rename = yes
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
[TimeMachine]
path = <path>
browseable = yes
writeable = yes
read only = no
create mask = 0600
directory mask = 0700
spotlight = yes
vfs objects = catia fruit streams_xattr
fruit:time machine = yes
fruit:time machine max size = <size in TB> T
valid users = <usernames>
Video is here: I built the fastest Raspberry Pi SATA RAID NAS!.
Closing issues where testing is at least mostly complete, to keep the issue queue tidy.
Hey Jeff this is not working for me. I compiled the latest kernel, copied it over and booted it fine without the card. When I decompiled the device tree blob to do the bar patch, I get these errors
root@buster:/mnt/pi-fat32# dtc -I dtb -O dts bcm2711-rpi-cm4.dtb -o test.dts test.dts: Warning (unit_address_vs_reg): /soc: node has a reg or ranges property, but no unit name test.dts: Warning (unit_address_vs_reg): /soc/axiperf: node has a reg or ranges property, but no unit name test.dts: Warning (unit_address_vs_reg): /soc/gpiomem: node has a reg or ranges property, but no unit name test.dts: Warning (unit_address_vs_reg): /emmc2bus: node has a reg or ranges property, but no unit name test.dts: Warning (unit_address_vs_reg): /scb: node has a reg or ranges property, but no unit name test.dts: Warning (unit_address_vs_reg): /v3dbus: node has a reg or ranges property, but no unit name test.dts: Warning (pci_device_reg): /scb/pcie@7d500000/pci@1,0: PCI unit address format error, expected "0,0" test.dts: Warning (avoid_unnecessary_addr_size): /soc/firmware: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property test.dts: Warning (unique_unit_address): /soc/mmc@7e300000: duplicate unit-address (also used in node /soc/mmcnr@7e300000) test.dts: Warning (unique_unit_address): /soc/firmwarekms@7e600000: duplicate unit-address (also used in node /soc/smi@7e600000) test.dts: Warning (clocks_property): /symbols:clocks: property size (21) is invalid, expected multiple of 4 test.dts: Warning (gpios_property): /aliases:gpio: property size (19) is invalid, expected multiple of 4 test.dts: Warning (gpios_property): /symbols:gpio: property size (19) is invalid, expected multiple of 4
root@buster:/mnt/pi-fat32# dtc -I dts -O dtb test.dts -o test.dtb test.dtb: Warning (unit_address_vs_reg): /soc: node has a reg or ranges property, but no unit name test.dtb: Warning (unit_address_vs_reg): /soc/axiperf: node has a reg or ranges property, but no unit name test.dtb: Warning (unit_address_vs_reg): /soc/gpiomem: node has a reg or ranges property, but no unit name test.dtb: Warning (unit_address_vs_reg): /emmc2bus: node has a reg or ranges property, but no unit name test.dtb: Warning (unit_address_vs_reg): /scb: node has a reg or ranges property, but no unit name test.dtb: Warning (unit_address_vs_reg): /v3dbus: node has a reg or ranges property, but no unit name test.dtb: Warning (pci_device_reg): /scb/pcie@7d500000/pci@1,0: PCI unit address format error, expected "0,0" test.dtb: Warning (avoid_unnecessary_addr_size): /soc/firmware: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property test.dtb: Warning (unique_unit_address): /soc/mmc@7e300000: duplicate unit-address (also used in node /soc/mmcnr@7e300000) test.dtb: Warning (unique_unit_address): /soc/firmwarekms@7e600000: duplicate unit-address (also used in node /soc/smi@7e600000) test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 1 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 3 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 5 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 7 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 9 is not a phandle reference test.dtb: Warning (clocks_property): /soc/cprman@7e101000:clocks: cell 11 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/mmc@7e202000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2s@7e203000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e204000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e205000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dpi@7e208000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dpi@7e208000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e209000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e209000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e209000:clocks: cell 4 is not a phandle reference test.dtb: Warning (clocks_property): /soc/aux@7e215000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e215040:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e215080:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e2150c0:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/pwm@7e20c000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hvs@7e400000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e700000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e700000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/dsi@7e700000:clocks: cell 4 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e804000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/vec@7e806000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/usb@7e980000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/watchdog@7e100000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/watchdog@7e100000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/watchdog@7e100000:clocks: cell 4 is not a phandle reference test.dtb: Warning (clocks_property): /soc/watchdog@7e100000:clocks: cell 6 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201400:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201400:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201600:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201600:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201800:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201800:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201a00:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/serial@7e201a00:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e204600:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e204800:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e204a00:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/spi@7e204c00:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e205600:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e205800:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e205a00:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/i2c@7e205c00:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/pwm@7e20c800:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/clock@7ef00000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef00700:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef00700:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef00700:clocks: cell 4 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef00700:clocks: cell 6 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef05700:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef05700:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef05700:clocks: cell 4 is not a phandle reference test.dtb: Warning (clocks_property): /soc/hdmi@7ef05700:clocks: cell 6 is not a phandle reference test.dtb: Warning (clocks_property): /soc/mmc@7e300000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/mmcnr@7e300000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/smi@7e600000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/csi@7e800000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/csi@7e800000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /soc/csi@7e801000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /soc/csi@7e801000:clocks: cell 2 is not a phandle reference test.dtb: Warning (clocks_property): /emmc2bus/emmc2@7e340000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /v3dbus/v3d@7ec04000:clocks: cell 0 is not a phandle reference test.dtb: Warning (clocks_property): /symbols:clocks: property size (21) is invalid, expected multiple of 4 test.dtb: Warning (dmas_property): /soc/mmc@7e202000:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/i2s@7e203000:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/i2s@7e203000:dmas: cell 2 is not a phandle reference test.dtb: Warning (dmas_property): /soc/spi@7e204000:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/spi@7e204000:dmas: cell 2 is not a phandle reference test.dtb: Warning (dmas_property): /soc/hdmi@7ef00700:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/hdmi@7ef05700:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/mmc@7e300000:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/mmcnr@7e300000:dmas: cell 0 is not a phandle reference test.dtb: Warning (dmas_property): /soc/smi@7e600000:dmas: cell 0 is not a phandle reference test.dtb: Warning (mboxes_property): /soc/firmware:mboxes: cell 0 is not a phandle reference test.dtb: Warning (msi_parent_property): /scb/pcie@7d500000:msi-parent: cell 0 is not a phandle reference test.dtb: Warning (phys_property): /soc/usb@7e980000:phys: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/dsi@7e209000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/dsi@7e700000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/vec@7e806000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/usb@7e980000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/csi@7e800000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /soc/csi@7e801000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /scb/xhci@7e9c0000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (power_domains_property): /v3dbus/v3d@7ec04000:power-domains: cell 0 is not a phandle reference test.dtb: Warning (resets_property): /soc/hdmi@7ef00700:resets: cell 0 is not a phandle reference test.dtb: Warning (resets_property): /soc/hdmi@7ef05700:resets: cell 0 is not a phandle reference test.dtb: Warning (resets_property): /scb/pcie@7d500000/pci@1,0/usb@1,0:resets: cell 0 is not a phandle reference test.dtb: Warning (resets_property): /v3dbus/v3d@7ec04000:resets: cell 0 is not a phandle reference test.dtb: Warning (thermal_sensors_property): /thermal-zones/cpu-thermal:thermal-sensors: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /aliases:gpio: property size (19) is invalid, expected multiple of 4 test.dtb: Warning (gpios_property): /soc/serial@7e201000/bluetooth:shutdown-gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /soc/spi@7e204000:cs-gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /soc/spi@7e204000:cs-gpios: cell 3 is not a phandle reference test.dtb: Warning (gpios_property): /soc/serial@7e215040/bluetooth:shutdown-gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /leds/act:gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /leds/pwr:gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /sd_io_1v8_reg:gpios: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /sd_vcc_reg:gpio: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /cam1_reg:gpio: cell 0 is not a phandle reference test.dtb: Warning (gpios_property): /symbols:gpio: property size (19) is invalid, expected multiple of 4
I tried the compiled dtb and it instantly errored out, giving me an kernal panic because of asynchronous serror interrupt. With the original dtb, it boots fine, but I get the asynchronous serror interrupt if no sata drives are plugged in. WIth drive plugged in, the card does not work either presumably because of bar space. Here is the entries in dmesg
[ 1.247086] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges: [ 1.249747] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff] [ 1.252416] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x063fffffff -> 0x00c0000000 [ 1.255082] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x00ffffffff -> 0x0400000000 [ 1.577589] brcm-pcie fd500000.pcie: link down
What should I do?
@geerlingguy Thanks for a detailed writeup...
I am trying to recompile to the kernel to enable SATA Support on IO Crest 4 Port MARVELL 9215 to use it with Raspberry Pi CM4 using UBUNTU 20.04 .
I tried the exact same steps mentioned; however the disks are not detected.... I am giving the try again now as I missed the steps mentioned for increasing the BAR Address(i did see the BAR Address spaces errors in dmesg) space for PCIe.... wanted to check with you(I am a novice in linux) if the steps that you shared applicable for Ubuntu 20.04 or are they specific to Raspbian OS (Buster)... if they are specific to BUSTER can you please share the changes in the above steps for Ubuntu OS 20.4 .... additional details are mentioned below.
output of uname -a: Linux cvbkpgtw 5.4.0-1035-raspi #38-Ubuntu SMP PREEMPT Tue Apr 20 21:37:03 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
output of lspci -vv
00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2711 (rev 20) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
01:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11) (prog-if 01 [AHCI 1.0])
Subsystem: Marvell Technology Group Ltd. Device 9215
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
output of os-release: cvadmin@cvbkpgtw:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.2 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.2 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
Raspberry Pi CM4 - 4GB RAM and 32GB eMMC with IO Board
Connected 4 SATA Drives - 1 SSD 240GB(Seagate) & 3 HDDx2TB(Seagate)
Booting from eMMC
Please let me know if further details are need, thanks for your help in advance....
Hey , i didnt get this par while config the SATA: "nano .config
I got in nano .config at line : "CONFIG_LOCALVERSION="-v7l""
but where to add the commands: below? Thanks for your he;lp
"make -j4 zImage modules dtbs # 'Image' on 64-bit
sudo make modules_install
sudo cp arch/arm/boot/dts/.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img"
Appreciate your help.
Save yourself the time and effort, the latest Kernel includes SATA straight out of the box:
https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/176#issuecomment-889848314 Read near the bottom
Since google might land you here, like it did me on a search for "cm4 ubuntu sata", the latest development version Ubuntu Impish Indri has SATA support. Simply "sudo apt install linux-modules-extra-raspi" and then "modprobe ahci" or reboot.
Since google might land you here, like it did me on a search for "cm4 ubuntu sata", the latest development version Ubuntu Impish Indri has SATA support. Simply "sudo apt install linux-modules-extra-raspi" and then "modprobe ahci" or reboot.
Thanks. I saw that the required kernel configs were enabled in the kernel config file, but didn't find them in the modules directory. I thought an issue with the distribution and was going to compile the kernel. I didn't know that the extra modules are delivered as a separate package. fortunately I found your comment.
Thanks @BeauSlim for the inputs, today i tested the card with Ubuntu Impish Indri and got all the 4 drives detected; however i see repeated errors mentioned below and troubleshooting them now;
[ 788.484701] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 788.484925] sd 0:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK [ 788.484954] sd 0:0:0:0: [sda] Stopping disk [ 788.485013] sd 0:0:0:0: [sda] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK [ 788.879084] ata2.15: SATA link down (SStatus 0 SControl 320) [ 790.521329] ata2.15: failed to read PMP GSCR[0] (Emask=0x100) [ 790.521374] ata2.15: PMP revalidation failed (errno=-5)
If you know anything about the errors and suggest what to look at would be of great help...
[ 788.484701] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 788.484925] sd 0:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK [ 788.484954] sd 0:0:0:0: [sda] Stopping disk [ 788.485013] sd 0:0:0:0: [sda] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK [ 788.879084] ata2.15: SATA link down (SStatus 0 SControl 320) [ 790.521329] ata2.15: failed to read PMP GSCR[0] (Emask=0x100) [ 790.521374] ata2.15: PMP revalidation failed (errno=-5)
Yeah, this Pi SATA stuff is definitely a bit tricky. Googling errors will get you a lot of people saying "your drive is dead", but I bet if you plug that card into a PC, everything will work perfectly even under heavy load.
I don't have a 9215. I have a Marvell 9230 and a JMicron 585. The 9230 card runs well aside from a lack of any way to change the RAID config.
PMP seems to be referring to a port multiplier? Are your 4 drives in an external enclosure? If so, I'd try connecting drives directly. If not, definitely try different cables.
If I push my JMB585 with 4 or 5 drives in a stripe or software RAID 10, it gives me a bunch of errors, but they are mostly "failed command: READ FPDMA QUEUED" which is different from yours. Adding "extraargs=libata.force=noncq" to my cmdline.txt solves that but hurts SATA performance. For other libata.force options to try (like using SATA I speeds), see https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
You might also try adding "extraargs=pcie_aspm=off" to your cmdline.txt to turn off PCIe power management.
There is probably a firmware update for your card that you could try.
Thanks @BeauSlim for your inputs; yes i have 4 drives in an IOCRest external enclosure. Definitely drives are not dead as i have tested them with RADXA QUADSATA HAT and they work fine in it will try turning off PCIe power management option & also try different set of cables and update with results.
"You might also try adding "extraargs=pcie_aspm=off" to your cmdline.txt to turn off PCIe power management."
I may also try this, my 9215 works absolutely fine with 3x SATA 8TB Drives, the only issue I get occasionally is the drive power down/up sound and a couple of the disks change from say SDA/SDC to SDD/SDE, it does however break OMV when that happens.
The 9230 card runs well aside from a lack of any way to change the RAID config.
Does this mean, there is no CLI to enable/change hardware RAID modes?
The 9230 card runs well aside from a lack of any way to change the RAID config.
Does this mean, there is no CLI to enable/change hardware RAID modes?
That is correct. The Marvell hardware RAID config (MRU) is available only for x86/x64 processors.
You can put the card into a Windows or Linux PC, connect the disks you plan to use, configure RAID, and then move the card to your Pi setup. You might even be able to have a 9230-based card in the PC and just move the disks since the RAID config is stored on the drives themselves, not on the card.
This is probably fine if you just wanted to use striping or Hyperduo SSD caching, but if you want redundancy you will have no indication that a mirror has failed.
I'm testing an ASM1061R based controller basically identical with these Setup is identical to your description below
put the card into a Windows or Linux PC, connect the disks you plan to use, configure RAID, and then move the card to your Pi setup. You might even be able to have a 9230-based card in the PC and just move the disks since the RAID config is stored on the drives themselves, not on the card.
Issue:
if you want redundancy you will have no indication that a mirror has failed.
is affecting my controller too and was even confirmed by distributor's technical support in this FAQ "Question: I did not find a way to get a alert if a disk in a raid-1 set fails. the controller does not even stop the POST processes when a disk failed. I would expected that some RED blinking WARNING comes up or something and the PC only continues the POST if the degraded raid status gets committed. Documentation is very very poor..
Answer: Hello Kalle, thanks for your request. We're are sorry, that's the way this product works. Kind regrads InLine Support Team"
@geerlingguy should such severe limitations not be documented in the "Raspberry Pi PCI Express device compatibility database" ?
Testing on the Raspberry Pi 5:
pi@pi5:~ $ lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0000:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0001:01:00.0 Ethernet controller: Device 1de4:0001
pi@pi5:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 223.6G 0 disk
├─sda1 8:1 1 200M 0 part
└─sda2 8:2 1 223.4G 0 part
mmcblk0 179:0 0 119.1G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 118.8G 0 part /
At PCIe Gen 2.0, I'm getting some link errors—but otherwise the card seems to pass through clean-ish at least:
[ 47.906098] ata1: softreset failed (device not ready)
[ 48.382111] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 48.387657] ata1.00: ATA-10: KINGSTON SA400S37240G, SBFKB1D2, max UDMA/133
[ 48.390106] ata1.00: 468862128 sectors, multi 1: LBA48 NCQ (depth 32), AA
[ 48.394334] ata1.00: configured for UDMA/133
[ 48.394449] scsi 0:0:0:0: Direct-Access ATA KINGSTON SA400S3 B1D2 PQ: 0 ANSI: 5
[ 48.394861] sd 0:0:0:0: [sda] 468862128 512-byte logical blocks: (240 GB/224 GiB)
[ 48.394875] sd 0:0:0:0: [sda] Write Protect is off
[ 48.394878] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 48.394896] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 48.394920] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[ 48.425872] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 48.458218] ata1.00: exception Emask 0x10 SAct 0x600000 SErr 0x380000 action 0x6 frozen
[ 48.458227] ata1.00: irq_stat 0x08000000, interface fatal error
[ 48.458229] ata1: SError: { 10B8B Dispar BadCRC }
[ 48.458234] ata1.00: failed command: READ FPDMA QUEUED
[ 48.458237] ata1.00: cmd 60/10:a8:00:00:00/00:00:00:00:00/40 tag 21 ncq dma 8192 in
res 40/00:b0:10:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 48.458244] ata1.00: status: { DRDY }
[ 48.458246] ata1.00: failed command: READ FPDMA QUEUED
[ 48.458248] ata1.00: cmd 60/10:b0:10:00:00/00:00:00:00:00/40 tag 22 ncq dma 8192 in
res 40/00:b0:10:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 48.458253] ata1.00: status: { DRDY }
[ 48.458258] ata1: hard resetting link
[ 48.934105] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 53.982112] ata1.00: qc timeout after 5000 msecs (cmd 0xec)
[ 53.982130] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 53.982135] ata1.00: revalidation failed (errno=-5)
[ 53.982143] ata1: hard resetting link
[ 54.458109] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 54.459118] ata1.00: configured for UDMA/133
[ 54.459157] ata1: EH complete
[ 54.490108] ata1: limiting SATA link speed to 3.0 Gbps
[ 54.490113] ata1.00: exception Emask 0x10 SAct 0x6000000 SErr 0x380000 action 0x6 frozen
[ 54.490117] ata1.00: irq_stat 0x08000000, interface fatal error
[ 54.490120] ata1: SError: { 10B8B Dispar BadCRC }
[ 54.490126] ata1.00: failed command: READ FPDMA QUEUED
[ 54.490130] ata1.00: cmd 60/10:c8:00:00:00/00:00:00:00:00/40 tag 25 ncq dma 8192 in
res 40/00:d0:10:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 54.490139] ata1.00: status: { DRDY }
[ 54.490143] ata1.00: failed command: READ FPDMA QUEUED
[ 54.490146] ata1.00: cmd 60/10:d0:10:00:00/00:00:00:00:00/40 tag 26 ncq dma 8192 in
res 40/00:d0:10:00:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error)
[ 54.490154] ata1.00: status: { DRDY }
[ 54.490160] ata1: hard resetting link
[ 54.966104] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 54.966147] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x100)
[ 54.966150] ata1.00: revalidation failed (errno=-5)
[ 60.126109] ata1: hard resetting link
[ 60.602105] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 65.758102] ata1.00: qc timeout after 5000 msecs (cmd 0xec)
[ 65.758117] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[ 65.758120] ata1.00: revalidation failed (errno=-5)
[ 65.758128] ata1: limiting SATA link speed to 1.5 Gbps
[ 65.758132] ata1: hard resetting link
[ 66.234102] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 66.234338] ata1.00: configured for UDMA/133
[ 66.234363] ata1: EH complete
[ 66.278102] ata1.00: exception Emask 0x10 SAct 0x2 SErr 0x300000 action 0x6 frozen
[ 66.278106] ata1.00: irq_stat 0x08000000, interface fatal error
[ 66.278108] ata1: SError: { Dispar BadCRC }
[ 66.278112] ata1.00: failed command: READ FPDMA QUEUED
[ 66.278114] ata1.00: cmd 60/10:08:90:44:f2/00:00:1b:00:00/40 tag 1 ncq dma 8192 in
res 40/00:08:90:44:f2/00:00:1b:00:00/40 Emask 0x10 (ATA bus error)
[ 66.278121] ata1.00: status: { DRDY }
I think the PCIe issues are down to the FFC cable and PCIe interference :(
I have some questions in to Raspberry Pi surrounding SATA support, and PCIe link quality. It seems like both cards I've tested run into some errors (more so than I get with NVMe...).
Got my hands on a Pimoroni NVMe base and used a M.2 to PCIe adapter.
Please excuse the sketchy setup - just wanted to quickly test.
$ lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0000:01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries Device 2712 (rev 21)
0001:01:00.0 Ethernet controller: Device 1de4:0001
And connected 4 drives (these are old HDDs that have various partitions on):
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 698.6G 0 disk
└─sda1 8:1 1 698.6G 0 part /mnt/sda
sdb 8:16 1 698.6G 0 disk
└─sdb1 8:17 1 698.6G 0 part /mnt/sdb
sdc 8:32 1 111.8G 0 disk
├─sdc1 8:33 1 512M 0 part
├─sdc2 8:34 1 513M 0 part
├─sdc3 8:35 1 1K 0 part
└─sdc5 8:37 1 110.8G 0 part /mnt/sdc
sdd 8:48 1 465.8G 0 disk
└─sdd1 8:49 1 465.8G 0 part
mmcblk0 179:0 0 58.9G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 58.4G 0 part /
And successfully mounted all except sdd
which seems to be a dead HDD (although looking at the pic in retrospect the SATA cable doesn't look to be fully seated 🤷 )
$ dmesg
...
[ 778.260800] ata4.00: exception Emask 0x0 SAct 0x20 SErr 0x0 action 0x0
[ 778.260807] ata4.00: irq_stat 0x40000008
[ 778.260811] ata4.00: failed command: READ FPDMA QUEUED
[ 778.260813] ata4.00: cmd 60/20:28:00:08:00/00:00:00:00:00/40 tag 5 ncq dma 16384 in
res 51/40:20:00:08:00/00:00:00:00:00/40 Emask 0x409 (media error) <F>
[ 778.260822] ata4.00: status: { DRDY ERR }
[ 778.260825] ata4.00: error: { UNC }
[ 778.263264] ata4.00: configured for UDMA/133
[ 778.263278] sd 3:0:0:0: [sdd] tag#5 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=DRIVER_OK cmd_age=3s
[ 778.263283] sd 3:0:0:0: [sdd] tag#5 Sense Key : 0x3 [current]
[ 778.263286] sd 3:0:0:0: [sdd] tag#5 ASC=0x11 ASCQ=0x4
[ 778.263290] sd 3:0:0:0: [sdd] tag#5 CDB: opcode=0x28 28 00 00 00 08 00 00 00 20 00
[ 778.263294] I/O error, dev sdd, sector 2048 op 0x0:(READ) flags 0x0 phys_seg 2 prio class 2
[ 778.263299] Buffer I/O error on dev sdd, logical block 128, async page read
[ 778.263303] Buffer I/O error on dev sdd, logical block 129, async page read
[ 778.263347] ata4: EH complete
[ 781.644815] ata4.00: exception Emask 0x0 SAct 0x800 SErr 0x0 action 0x0
[ 781.644822] ata4.00: irq_stat 0x40000008
...
Running pibenchmark yields the following in hardware identification:
...
Drives:
Local Storage: total: 1.99 TiB used: 447.45 GiB (22.0%)
ID-1: /dev/mmcblk0 model: USD00 size: 58.94 GiB
ID-2: /dev/sda vendor: Western Digital model: WD7500BPKT-80PK4T0 size: 698.64 GiB
ID-3: /dev/sdb vendor: Western Digital model: WD7500BPVT-22HXZT1 size: 698.64 GiB
ID-4: /dev/sdc vendor: Samsung model: SSD 850 EVO 120GB size: 111.79 GiB
ID-5: /dev/sdd vendor: Hitachi model: HTS725050A9A362 size: 465.76 GiB
Message: No optical or floppy data found.
...
sda results: https://pibenchmarks.com/benchmark/76956/ sdb results: https://pibenchmarks.com/benchmark/76955/ sdc results: https://pibenchmarks.com/benchmark/76957/ sdd results: DNQ
I then ran two benchmarks in parallel on sda and sdc which both completed (didn't submit results).
All this to say that I think this card now works as expected. I was using the default PCIe link speed.
For anyone looking to use this card on a CM4IO, I designed a bracket for it that keeps in in place, so it doesn't get loose and cause a system lockup.
https://www.printables.com/model/789947-cm4-si-pex40064-bracket/related
Hi everyone!
I just installed a ASMedia ASM1064 4 Port SATA III Card onto a P02 PCIe Adapter Board and it was detected immediately upon boot:
pi@NAS-Pi:~ $ lspci 0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0000:01:00.0 SATA controller: ASMedia Technology Inc. ASM1064 Serial ATA Controller (rev 02) 0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0001:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
However, I can't seem to get the Pi to see the drive that I have plugged into it. Should I recompile the kernel or am I having a different problem?
[EDIT]
checking my logs, I see messages for the AHCI controller being unavailable:
pi@NAS-Pi:~ $ journalctl -p 0..3 -r Sep 09 18:07:45 NAS-Pi bluetoothd[811]: sap-server: Operation not permitted (1) Sep 09 18:07:45 NAS-Pi bluetoothd[811]: profiles/sap/server.c:sap_server_register() Sap driver initialization failed. Sep 09 18:07:45 NAS-Pi wpa_supplicant[819]: nl80211: kernel reports: Registration to specific type not supported Sep 09 18:07:44 NAS-Pi bluetoothd[811]: src/plugin.c:plugin_init() Failed to init bap plugin Sep 09 18:07:44 NAS-Pi bluetoothd[811]: src/plugin.c:plugin_init() Failed to init mcp plugin Sep 09 18:07:44 NAS-Pi bluetoothd[811]: src/plugin.c:plugin_init() Failed to init vcp plugin Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable! Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable! Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable! Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable! Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable! Sep 09 18:07:43 NAS-Pi kernel: ahci 0000:01:00.0: AHCI controller unavailable!
pi@NAS-Pi:~ $ dmesg | grep -iC 3 "sata" [ 3.274371] ahci 0000:01:00.0: enabling device (0000 -> 0002) [ 3.285683] ahci 0000:01:00.0: SSS flag set, parallel bus scan disabled [ 3.296822] input: pwr_button as /devices/platform/pwr_button/input/input1 [ 3.305594] ahci 0000:01:00.0: AHCI 0001.0301 32 slots 24 ports 6 Gbps 0xffff0f impl SATA mode [ 3.316329] ahci 0000:01:00.0: flags: 64bit ncq sntf stag pm led only pio slum part deso sadm sds apst [ 3.333651] scsi host0: ahci [ 3.336915] scsi host1: ahci [ 3.439277] scsi host23: ahci [ 3.439597] ata1: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082100 irq 166 [ 3.481783] ata2: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082180 irq 166 [ 3.489888] ata3: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082200 irq 166 [ 3.497997] ata4: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082280 irq 166 [ 3.506108] ata5: DUMMY [ 3.508687] ata6: DUMMY [ 3.511266] ata7: DUMMY [ 3.513841] ata8: DUMMY [ 3.516433] ata9: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082500 irq 166 [ 3.524587] ata10: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082580 irq 166 [ 3.532858] ata11: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082600 irq 166
........... repeated entries cut ..................
[ 7.022355] ata1: found unknown device (class 0) [ 7.027240] ata1: SATA link down (SStatus 0 SControl 300) [ 7.344795] ata2: SATA link down (SStatus 0 SControl 300) [ 8.048127] ata3: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 8.312022] ahci 0000:01:00.0: AHCI controller unavailable! [ 8.607207] ahci 0000:01:00.0: AHCI controller unavailable! [ 15.715690] ata4: failed to resume link (SControl FFFFFFFF) [ 20.351100] ata4: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 22.093865] ahci 0000:01:00.0: AHCI controller unavailable! [ 22.678491] ahci 0000:01:00.0: AHCI controller unavailable! [ 30.655706] ata9: failed to resume link (SControl FFFFFFFF) [ 35.291184] ata9: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 37.035697] ahci 0000:01:00.0: AHCI controller unavailable! [ 37.620200] ahci 0000:01:00.0: AHCI controller unavailable! [ 45.599690] ata10: failed to resume link (SControl FFFFFFFF) [ 50.235158] ata10: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 51.977983] ahci 0000:01:00.0: AHCI controller unavailable! [ 52.562453] ahci 0000:01:00.0: AHCI controller unavailable! [ 60.539690] ata11: failed to resume link (SControl FFFFFFFF) [ 65.175161] ata11: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 66.918030] ahci 0000:01:00.0: AHCI controller unavailable! [ 67.502519] ahci 0000:01:00.0: AHCI controller unavailable! [ 75.479691] ata12: failed to resume link (SControl FFFFFFFF) [ 80.115143] ata12: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 81.857942] ahci 0000:01:00.0: AHCI controller unavailable!
........... repeated entries cut ..................
[ 146.630318] EXT4-fs (mmcblk0p2): mounted filesystem 56f80fa2-e005-4cca-86e6-19da1069914d ro with ordered data mode. Quota mode: none. [ 147.524517] Segment Routing with IPv6 [ 147.528371] In-situ OAM (IOAM) with IPv6 [ 150.183706] ata17: failed to resume link (SControl FFFFFFFF) [ 154.819196] ata17: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 156.562033] ahci 0000:01:00.0: AHCI controller unavailable! [ 157.146544] ahci 0000:01:00.0: AHCI controller unavailable! [ 165.123702] ata18: failed to resume link (SControl FFFFFFFF) [ 169.759219] ata18: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 171.502060] ahci 0000:01:00.0: AHCI controller unavailable! [ 172.086531] ahci 0000:01:00.0: AHCI controller unavailable! [ 180.063689] ata19: failed to resume link (SControl FFFFFFFF) [ 184.699163] ata19: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF) [ 186.441985] ahci 0000:01:00.0: AHCI controller unavailable!
........... repeated entries cut ..................
[ 261.141938] ahci 0000:01:00.0: AHCI controller unavailable! [ 261.173976] systemd[1]: systemd 252.30-1~deb12u2 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified) [ 261.207586] systemd[1]: Detected architecture arm64.
@zogthegreat
SATA link down
I wonder if that might be the drive having trouble powering on? Is it being powered from an external PSU?
Yes, but I used an SSD, so I can't really tell if the drive is powering up. I'll use a normal SATA drive tomorrow, and try again with a different PSU and buck converters. I'll post my results.
I retried today with an ATX PSU to power the drive. I used a normal SATA HDD so that I could feel if it was spinning. The drive was sort of seen:
3.864156] ata24: SATA max UDMA/133 abar m8192@0x1b00082000 port 0x1b00082c80 irq 168 [ 7.002270] ata1: found unknown device (class 0) [ 7.007153] ata1: SATA link down (SStatus 0 SControl 300)
But I think that my problem is here:
pi@NAS-Pi:~ $ dmesg | grep -iC 3 "sata" [ 3.584292] ahci 0000:01:00.0: version 3.0 [ 3.584315] ahci 0000:01:00.0: enabling device (0000 -> 0002) [ 3.590658] ahci 0000:01:00.0: SSS flag set, parallel bus scan disabled [ 3.597727] ahci 0000:01:00.0: AHCI 0001.0301 32 slots 24 ports 6 Gbps 0xffff0f impl SATA mode [ 3.606772] ahci 0000:01:00.0: flags: 64bit ncq sntf stag pm led only pio slum part deso sadm sds
The card that I am using only has 4 ports, yet for some reason the Pi is seeing 24 ports. I'm going to see if there are any drivers or maybe a source code available.
> # Build the kernel and copy everything into place
> make -j4 zImage modules dtbs # 'Image' on 64-bit
> sudo make modules_install
> sudo cp arch/arm/boot/dts/*.dtb /boot/
> sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
> sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
> sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
@geerlingguy I'm trying to compile the kernel as you described. However, when I get to "sudo cp arch/arm/boot/dts/*.dtb /boot/" I get an error:
pi@NAS-Pi:~/linux $ sudo cp arch/arm/boot/dts/*.dtb /boot/
cp: cannot stat 'arch/arm/boot/dts/*.dtb': No such file or directory
Any suggestions?
[EDIT]
Here is what's in my arch/arm/boot/dts directory after compiling:
pi@NAS-Pi:~/linux $ ls arch/arm/boot/dts
actions arm cirrus hisilicon microchip overlays sigmastar tps6507x.dtsi xilinx
airoha armv7-m.dtsi cnxt hpe moxa qcom socionext tps65217.dtsi
allwinner aspeed cros-adc-thermistors.dtsi intel nspire realtek st tps65910.dtsi
alphascale axis cros-ec-keyboard.dtsi Makefile nuvoton renesas sunplus unisoc
amazon broadcom cros-ec-sbs.dtsi marvell nvidia rockchip synaptics vt8500
amlogic calxeda gemini mediatek nxp samsung ti xen
> # Build the kernel and copy everything into place > make -j4 zImage modules dtbs # 'Image' on 64-bit > sudo make modules_install > sudo cp arch/arm/boot/dts/*.dtb /boot/ > sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ > sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ > sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
@geerlingguy I'm trying to compile the kernel as you described. However, when I get to "sudo cp arch/arm/boot/dts/*.dtb /boot/" I get an error:
pi@NAS-Pi:~/linux $ sudo cp arch/arm/boot/dts/*.dtb /boot/ cp: cannot stat 'arch/arm/boot/dts/*.dtb': No such file or directory
Any suggestions?
Docs from Raspberry Pi on building the kernel are at https://www.raspberrypi.com/documentation/computers/linux_kernel.html#native-build Between 6.1 and 6.6 all the Broadcom DT files for arm32 moved into arch/arm/boot/dts/broadcom. The copy command has to be updated to match, and is in the Pi docs. (arm64 DT files have always been in arch/arm/64/boot/dts/broadcom).
I'm fairly certain that the relevant modules for the Marvell SATA cards are enabled in the default Pi kernels, so there is no need to rebuild the kernel yourself for that reason.
6by9 on the Pi Forums mentioned:
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:
Relevant Links: