*_-=Banana=-_* hat geschrieben: 12.11.2022 22:13:39
Wo genau hast du das gefunden wenn es in meiner Quelle ersichtlich ist?
Nun, dort steht:
Code: Alles auswählen
Ver Source Config By ID By Class
2.6.20 - 6.0 drivers/ata/ahci.c CONFIG_ATA CONFIG_SATA_AHCI * 010601
und darunter lauter grün hinterlegte Einträge mit
working.
Dazu muss man wissen, der AHCI-Modus ist ein offener Standard, der keine angepassten Treibermodule von Herstellern benötigt. Daher gibt es auch nur ein generisches Modul für alle SATA-Chips. Sofern der SATA-Chip das Protokoll beherrscht, sollte er unterstützt werden und daher funktioniert es auch bei dir, indem du dem Modul die PCI-ID nachträglich unterschiebst.
Was mich nun wundert sind die ganzen Einträge mit
working in deiner verlinkten Datenbank. Wenn man sich nun aber den Quellcode näher anschaut, findet man für die genannte ID keinen Eintrag:
https://github.com/torvalds/linux/blob/e08466a7c00733a501d3c5328d29ec974478d717/drivers/ata/ahci.c#L558-L587 hat geschrieben:Code: Alles auswählen
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a2), /* 88se91a2 */
.driver_data = board_ahci_yes_fbs },
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
.driver_data = board_ahci_yes_fbs },
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
.driver_data = board_ahci_yes_fbs },
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
.driver_data = board_ahci_no_debounce_delay },
Wie du siehst, fehlt die ID deines Controllers (9215). Demnach sind die Einträge der Datenbank mit
working entweder durch manuelles Hinzufügen der ID zustande gekommen (wie du es gemacht hast) oder aber die Anwender haben die Funktion nicht getestet und pauschal als "wird schon funktionieren" eingetragen. Einige Einträge haben auch als Status
failed, das würde eher Sinn ergeben.
Vielleicht reicht aber auch schon eine Anpassung wie du das Modul lädst, denn das Modul kennt noch den Parameter
marvell_enable. Dazu legst du mittels
echo options ahci marvell_enable=1 > /etc/modprobe.d/z_ahci.conf eine Datei an und startest das System neu. Sollte nach dem anschließenden Neustart der Controller nicht erkannt werden kannst du die Datei mit
rm /etc/modprobe.d/z_ahci.conf wieder entfernen.
*_-=Banana=-_* hat geschrieben: 12.11.2022 22:13:39
Ein Problem habe ich noch. Wie mache ich dies persistent? Die /etc/sysconfig/modules/marvell.modules Datei bzw. schon /etc/sysconfig gibt es bei mir nicht.
Das liegt daran, dass im Beispiel dort kein Debian verwendet wurde. Bei Debian gibt's die Datei
/etc/rc.local, dort kannst du den Befehl
vor dem
exit 0 eintragen. Nachteil davon: Booten von dem Controller wird nicht möglich sein, dazu braucht's eine kleine Anpassung im Kernelmodul.
Wenn du den Generationen nach dir etwas gutes tun und das Problem dauerhaft lösen willst, könntest du mit
reportbug einen Bugreport gegen den Kernel schreiben. Alterativ kannst du (sofern Vorkenntnisse vorhanden) auch direkt upstream den Bug melden. Der Bugreport bei Debian hat den Vorteil, dass man keine Vorkenntnisse braucht und sich trotzdem an der Weiterentwicklung von Debian beteiligen kann. Hier geht's nur im das Hinzufügen einer ID, das sollte also keine große Sache sein. Anschließend wäre auch das Booten von dem SATA-Controller möglich.