Hallo zusammen,
ich hab gerade eine Aufgabe zu lösen und komme nicht weiter bzw. ergibt sich daraus ein Sammelsurium an Anfängerfragen. Bin relativ neu im Thema.
Wir haben "ein Gerät" gebaut auf Basis des Raspberry Compute Modul 3 und Raspberry Pi OS Lite (Buster) als Betriebssystem. An der SPI Schnittstelle (über GPIO 8-10) ist eine Real-Time Clock angeschlossen von Microchip (MCP7951)
https://ww1.microchip.com/downloads/en/ ... 02300C.pdf
Für diesen Chip gibt es auch ein Treibermodul, siehe https://www.kernelconfig.io/config_rtc_ ... arch=arm64.
Allerdings ist dieser Treiber nicht in Kernel 5.10.63-v7 enthalten (welcher unser Buster-Image nutzt)
Was habe ich jetzt für Möglichkeiten ?
-- das angesprochene Treiber-Modul nachträglich in Kernel integrieren ? Nach längerer Suche finde ich für dieses Modul allerdings keine Möglichkeiten bzw. liegt mir lediglich der Treiber als C-Datei vor.
-- gesamten Kernel aktualisieren bzw. auf eine Version wechseln in welcher das Modul enthalten ist ?
Sobald die RTC (über diesen Treiber) angesprochen werden kann, sollte es ja möglich sein diese über ein Python Script anzusprechen bzw. die Zeit zu setzen (manuell oder sofern NTP Server erreichbar) und eben zu lesen.
Über jeden Tipp dankbar
RTC Modul/Treiber fehlt in Kernel, Möglichkeiten ?
-
- Beiträge: 6
- Registriert: 15.12.2021 08:23:36
Re: RTC Modul/Treiber fehlt in Kernel, Möglichkeiten ?
Die schnellste Lösung zum Ausprobieren, aber bei Updates mit der meisten Handarbeit: Einfach das Modul bauen:Kollisionskurs hat geschrieben:08.03.2022 13:33:08Was habe ich jetzt für Möglichkeiten?¹
-- das angesprochene Treiber-Modul nachträglich in Kernel integrieren? Nach längerer Suche finde ich für dieses Modul allerdings keine Möglichkeiten bzw. liegt mir lediglich der Treiber als C-Datei vor.
- Kernelquellen installieren: linux-source oder ein versionsspezifisches Paket (wenn das Paket bei Raspberry OS auch so verfügbar ist)
- Kernelquellen aus /usr/src/linux-source-*.tar.* irgendwohin entpacken
- In den entpackten Quellen nach drivers/rtc/ wechseln
- Modul bauen:
Code: Alles auswählen
make -C /lib/modules/$(uname -r)/build M=$PWD CONFIG_RTC_DRV_MCP795=m
- Gebautes Modul rtc-mcp795.ko aus drivers/rtc/ nach /lib/modules/$(uname -r)/kernel/drivers/rtc kopieren
- Abschließend:
Code: Alles auswählen
depmod -a
Die Alternative zu obigem wäre, den gesamten Kernel mit gesetzter CONFIG_RTC_DRV_MCP795 neu zu bauen. Das ist von der Wartung her wohl eleganter. Einen fertig gebauten Kernel mit zufällig zusätzlich genau diesem Modul wirst du wahrscheinlich nirgendwo finden.Kollisionskurs hat geschrieben:08.03.2022 13:33:08-- gesamten Kernel aktualisieren bzw. auf eine Version wechseln in welcher das Modul enthalten ist?
¹ Stellvertretend für niemand entplenkt.
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 6
- Registriert: 15.12.2021 08:23:36
Re: RTC Modul/Treiber fehlt in Kernel, Möglichkeiten ?
danke für Deine schnelle Antwort. Ich versuche gerade das Modul zu bauen (zum testen auf einem Pi mit Raspbian Bullseye) - renne mir beim bauen allerdings gerade die Nase an:JTH hat geschrieben:08.03.2022 13:53:21[*] Modul bauen:Code: Alles auswählen
make -C /lib/modules/$(uname -r)/build M=$PWD CONFIG_RTC_DRV_MCP795=m
Code: Alles auswählen
pi@raspberrypi:~/linux_src/linux-5.16.11/drivers/rtc $ find . -name rtc-mcp795.c
./rtc-mcp795.c
pi@raspberrypi:~/linux_src/linux-5.16.11/drivers/rtc $ make -C /lib/modules/$(uname -r)/build M=$PWD CONFIG_RTC_DRV_MCP795=m
make: *** /lib/modules/5.10.92-v7+/build: No such file or directory. Stop.
thx..
Re: RTC Modul/Treiber fehlt in Kernel, Möglichkeiten ?
Mein Fehler. Der build-Ordner liegt in den linux-headers-ARCH-Paketen. Das müsstest du zusätzlich installieren.Kollisionskurs hat geschrieben:09.03.2022 11:52:40Code: Alles auswählen
make: *** /lib/modules/5.10.92-v7+/build: No such file or directory. Stop.
Nein, kein Denkfehler. Aber um Probleme beim Bauen und späteren Benutzen durch veränderte Symbole im Kernel auszuschließen, solltest – oder je nach dem sogar: musst – du die Quellen der Kernelversion benutzen, die bei dir läuft. Ist das die 5.16.11? Edit: Ach nein, steht ja durch uname dort: Du benutzt die 5.10.92.Kollisionskurs hat geschrieben:09.03.2022 11:52:40Ich habe davor allerdings nichts installiert (weil Du geschrieben hast "Kernelquellen installieren"), sondern die Datei (Quelle: http://deb.debian.org/debian/pool/main/ ... rig.tar.xz) heruntergeladen und entpackt. Denkfehler?
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 6
- Registriert: 15.12.2021 08:23:36
Re: RTC Modul/Treiber fehlt in Kernel, Möglichkeiten ?
So, ich hab mal wieder Zeit mich um mein RTC Problem zu kümmern. Kernelmodul wurde erfolgreich gebaut und geladen:
Somit (sofern ich es richtig verstehe) hat das System jetzt einen passenden Treiber - allerdings zeigt:
immer noch das selbe und via
ls -l /dev/rtc* wird auch nix aufgelistet.
Wie kann ich dem System die RTC jetzt bekannt machen ?
thx!
Code: Alles auswählen
pi@raspberrypi:~ $ lsmod
Module Size Used by
rtc_mcp795 16384 0
Code: Alles auswählen
sudo hwclock --verbose -r
hwclock from util-linux 2.36.1
System Time: 1647526508.149500
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.
ls -l /dev/rtc* wird auch nix aufgelistet.
Wie kann ich dem System die RTC jetzt bekannt machen ?
thx!