Puncte:0

Construirea nucleului pentru Raspberry Pi Compute Module 4 cu suport SATA eșuează

drapel cn

Încerc să compilez un kernel cu SATA_AHCI și suport MARVELL pentru Ubuntu 20.04lts pentru a rula pe un Raspberry Pi Compute Module 4. Am reușit să fac asta folosind RaspiOS. Cardul meu PCI SATA cu un pool ZFS RaidZ2 cu 4 discuri funcționează bine.

**lsblk**
NUME MAJ:MIN RM DIMENSIUNE RO TIP PUNCT DE MONTARE
sda 8:0 1 1.8T 0 disc 
ââsda1 8:1 1 1.8T 0 parte 
ââsda9 8:9 1 8M 0 part 
sdb 8:16 1 1.8T 0 disc 
ââsdb1 8:17 1 1.8T 0 parte 
ââsdb9 8:25 1 8M 0 parte 
sdc 8:32 1 1.8T 0 disc 
ââsdc1 8:33 1 1.8T 0 parte 
ââsdc9 8:41 1 8M 0 parte 
sdd 8:48 1 1.8T 0 disc 
ââsdd1 8:49 1 1.8T 0 parte 
ââsdd9 8:57 1 8M 0 part 
mmcblk0 179:0 0 29G 0 disc 
ââmmcblk0p1 179:1 0 256M 0 parte /boot
ââmmcblk0p2 179:2 0 28.7G 0 parte /

Folosesc Gentoo de 20 de ani, așa că sunt foarte familiarizat cu construirea Kernel-urilor. am urmărit acest plan excelent. Am activat CONFIG_ATA_GENERIC, CONFIG_SATA_AHCI, CONFIG_SATA_MV în configurație. Construirea eșuează cu un modul libahci lipsă:

Depanare: module-check-raspi
II: Verificarea modulelor pentru raspi...
   citind module noi...citește 4271 module.
   citind module vechi...
      DOAMNA: libahci
      citește 4272 module: nou(0) lipsesc(1)
EE: Module lipsă (începeți să cereți milă)
make: *** [debian/rules.d/4-checks.mk:10: module-check-raspi] Eroare 1

Nu pot găsi de ce acest lucru a eșuat. Șoferii par să fie acolo, după cum arată acest lucru:

**găsește ~/kbuild/ -iname libahci***

    /root/kbuild/focal/debian/linux-modules-5.4.0-1041-raspi/lib/modules/5.4.0-1041-raspi/kernel/drivers/ata/libahci_platform.ko
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci_platform.mod
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci_platform.ko
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci_platform.mod.c
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci_platform.o
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci_platform.mod.o
    /root/kbuild/focal/debian/build/build-raspi/drivers/ata/libahci.o
    /root/kbuild/focal/drivers/ata/libahci_platform.c
    /root/kbuild/focal/drivers/ata/libahci.c

Orice idei mult apreciate.

----------------------------- EDITAȚI | × -------------------- -------------

Din întâmplare, am descoperit că cel mai recent RaspiOS pe 64 de biți are suport SATA încorporat. Aceasta este imaginea 2021-05-07-raspios-buster-arm64-lite. Prin urmare, pot să-mi salvez pool-ul ZFS și să pornesc fără să mă încurc în încercarea de a compila nuclee!

Puncte:0
drapel cn

I had this same problem and after a lot of trial and error I think I know what fixed it for me. I was following the ubuntu Build Your Own Kernel wiki that made use of the fakeroot debian/rules editconfigs command which brings up a GUI for editing the config. I used this to enable CONFIG_SATA_AHCI but what I didn't know was that there are different methods for "enabling" it. I initially picked Y to "include" the module and during compile I had the same error: MISS: libahci.

When I compared my config changes to the PR that enabled SATA in the raspberry pi kernel I noticed that they used M to "modularize" include it. I started over and picked M in the GUI and then my kernel compiled without errors.

I believe it's possible to edit the configs without using the editconfigs GUI and if that's the case just make sure you use m instead of y.

I noticed the OP didn't mention what value they picked for their configs, just that they "have enabled ... CONFIG_SATA_AHCI ... in the config" so maybe this was also the issue.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.