Не удалось собрать ядро ​​для вычислительного модуля Raspberry Pi 4 с поддержкой SATA

Я пытаюсь скомпилировать ядро ​​с поддержкой SATA_AHCI и MARVELL для Ubuntu 20.04lts для работы на вычислительном модуле Raspberry Pi 4. Мне удалось это сделать, используя RaspiOS. Моя карта SATA PCI с 4 дисковым пулом ZFS RaidZ2 работает нормально.

**lsblk**
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1  1.8T  0 disk 
├─sda1        8:1    1  1.8T  0 part 
└─sda9        8:9    1    8M  0 part 
sdb           8:16   1  1.8T  0 disk 
├─sdb1        8:17   1  1.8T  0 part 
└─sdb9        8:25   1    8M  0 part 
sdc           8:32   1  1.8T  0 disk 
├─sdc1        8:33   1  1.8T  0 part 
└─sdc9        8:41   1    8M  0 part 
sdd           8:48   1  1.8T  0 disk 
├─sdd1        8:49   1  1.8T  0 part 
└─sdd9        8:57   1    8M  0 part 
mmcblk0     179:0    0   29G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 28.7G  0 part /

Я использую Gentoo в течение добрых 20 лет, поэтому хорошо знаком с построением ядер. Я следовал этому отличному плану. Я включил CONFIG_ATA_GENERIC, CONFIG_SATA_AHCI, CONFIG_SATA_MV в конфиге. Сборка не удалась из-за отсутствия модуля libahci:

Debug: module-check-raspi
II: Checking modules for raspi...
   reading new modules...read 4271 modules.
   reading old modules...
      MISS: libahci
      read 4272 modules : new(0)  missing(1)
EE: Missing modules (start begging for mercy)
make: *** [debian/rules.d/4-checks.mk:10: module-check-raspi] Error 1

Я не могу понять, почему это не удалось. Кажется, что драйверы присутствуют, как видно из этого:

**find ~/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

Любые идеи приветствуются.

----------------------------- РЕДАКТИРОВАТЬ ----------------- ----------------

Случайно я обнаружил, что последняя 64-битная RaspiOS имеет встроенную поддержку SATA. Это образ 2021-05-07-raspios-buster-arm64-lite. Таким образом, я могу спасти свой пул ZFS и начать работу, не беспокоясь о попытках скомпилировать ядра!

0
задан 6 August 2021 в 11:09

1 ответ

У меня была такая же проблема, и после долгих проб и ошибок я думаю, что знаю, что помогло мне ее решить. Я следовал ubuntu Build Your Own Kernel wiki, в которой использовалась команда fakeroot debian/rules editconfigs, вызывающая графический интерфейс для редактирования конфигурации. Я использовал его для включения CONFIG_SATA_AHCI, но я не знал, что существуют различные методы его "включения". Сначала я выбрал Y, чтобы "включить" модуль, и во время компиляции у меня возникла та же ошибка: MISS: libahci.

Когда я сравнил свои изменения в конфигурации с PR, который включил SATA в ядро raspberry pi, я заметил, что они использовали M для "модульного" включения. Я начал сначала и выбрал M в графическом интерфейсе, после чего мое ядро скомпилировалось без ошибок.

Я считаю, что можно редактировать конфиги без использования editconfigs GUI, и если это так, просто убедитесь, что вы используете m вместо y.

Я заметил, что ОП не упомянул, какое значение они выбрали для своих конфигураций, только то, что они "включили ... CONFIG_SATA_AHCI ... в конфигурации", так что, возможно, проблема была и в этом.

0
ответ дан 20 August 2021 в 10:29

Другие вопросы по тегам:

Похожие вопросы: