User Tools

Site Tools


klipper_faq:can:neue_can_konfiguration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
klipper_faq:can:neue_can_konfiguration [2025/09/03 12:20] – [ifupdown (legacy / alt)] dominikklipper_faq:can:neue_can_konfiguration [2025/09/03 22:11] (current) – [YouTube Video #141] dominik
Line 2: Line 2:
 Dieses Dokument zeigt die Netzwerk-Änderungen in Debian Bookworm / Trixie (also auch dem Raspberry Pi OS) im Bezug auf CAN. Es behandelt die Umstellung von **ifupdown** zu **systemd-networkd**, und zeigt wie man Probleme analysiert, Konfigurationen erstellt und Konflikte löst.  Dieses Dokument zeigt die Netzwerk-Änderungen in Debian Bookworm / Trixie (also auch dem Raspberry Pi OS) im Bezug auf CAN. Es behandelt die Umstellung von **ifupdown** zu **systemd-networkd**, und zeigt wie man Probleme analysiert, Konfigurationen erstellt und Konflikte löst. 
 ===== YouTube Video #141 ===== ===== YouTube Video #141 =====
-{{youtube>XXX?half}}+{{youtube>Qw1DAFXEQ80?half}}
  
 \\  \\ 
Line 17: Line 17:
   * **ifupdown**: Ein klassisches, script-basiertes Tool aus den 1990er Jahren, das über Textdateien wie ''/etc/network/interfaces'' arbeitet. Es ist einfach für statische Konfigurationen (z. B. feste IPs, CAN-Queues), aber imperativ (Schritt-für-Schritt) und veraltet. In Bookworm nicht mehr Standard, muss manuell installiert werden (''apt install ifupdown''). Geeignet für Legacy, aber fehlt an Integration in systemd, was zu langsameren Boots und Fehlern führen kann [[https://wiki.debian.org/NetworkConfiguration#The_.2BAC8-ifupdown_way|Debian Network Config]] [[https://manpages.debian.org/bookworm/ifupdown/interfaces.5.en.html|ifupdown Docs]].   * **ifupdown**: Ein klassisches, script-basiertes Tool aus den 1990er Jahren, das über Textdateien wie ''/etc/network/interfaces'' arbeitet. Es ist einfach für statische Konfigurationen (z. B. feste IPs, CAN-Queues), aber imperativ (Schritt-für-Schritt) und veraltet. In Bookworm nicht mehr Standard, muss manuell installiert werden (''apt install ifupdown''). Geeignet für Legacy, aber fehlt an Integration in systemd, was zu langsameren Boots und Fehlern führen kann [[https://wiki.debian.org/NetworkConfiguration#The_.2BAC8-ifupdown_way|Debian Network Config]] [[https://manpages.debian.org/bookworm/ifupdown/interfaces.5.en.html|ifupdown Docs]].
   * **NetworkManager (NM)**: Ein dynamisches Tool für Desktops/Laptops, ideal für WiFi, VPNs, Hotplugging. Verwendet Verbindungen (via ''nmcli'' oder GUI wie ''nm-applet''). Auf Raspberry Pi Bookworm Standard für WLAN/Ethernet, besonders mit GUI. Stark für dynamische Setups, aber ressourcenintensiv und kann mit systemd-networkd kollidieren [[https://networkmanager.dev/docs/|NetworkManager Docs]] [[https://wiki.debian.org/NetworkManager|Debian NM Wiki]].   * **NetworkManager (NM)**: Ein dynamisches Tool für Desktops/Laptops, ideal für WiFi, VPNs, Hotplugging. Verwendet Verbindungen (via ''nmcli'' oder GUI wie ''nm-applet''). Auf Raspberry Pi Bookworm Standard für WLAN/Ethernet, besonders mit GUI. Stark für dynamische Setups, aber ressourcenintensiv und kann mit systemd-networkd kollidieren [[https://networkmanager.dev/docs/|NetworkManager Docs]] [[https://wiki.debian.org/NetworkManager|Debian NM Wiki]].
-  * **systemd-networkd**: Moderner, deklarativer Manager, integriert in systemd. Konfiguriert über ''.network''- und ''.link''-Dateien in ''/etc/systemd/network/''. Leichtgewichtig, schnell, stabil für Server/IoT, Default in Bookworm für headless Setups. Ideal für CAN (Bitrate, Restarts direkt setzbar), aber ohne GUI [[https://wiki.debian.org/SystemdNetworkd|Debian systemd-networkd]] [[https://www.freedesktop.org/software/systemd/man/systemd.network.html|systemd Docs]].+  * **systemd-networkd**: Moderner, deklarativer Manager, integriert in systemd. Konfiguriert über ''.network''- und ''.link''-Dateien in ''/etc/systemd/network/''. Leichtgewichtig, schnell, stabil für Server/IoT, Default in Bookworm für headless Setups. Ideal für CAN (Bitrate, Restarts direkt setzbar), aber ohne GUI \\ //Systemd ist ein Init-System und System-Manager für Linux-Betriebssysteme. Es ist dafür verantwortlich, den Boot-Prozess zu steuern, Dienste zu verwalten und Systemressourcen zu koordinieren.// 
 +[[https://wiki.debian.org/SystemdNetworkd|Debian systemd-networkd]] [[https://www.freedesktop.org/software/systemd/man/systemd.network.html|systemd Docs]].
  
 **Vergleichstabelle**: **Vergleichstabelle**:
Line 107: Line 108:
   * Dienst aktivieren \\ ''sudo systemctl enable %%--%%now systemd-networkd''   * Dienst aktivieren \\ ''sudo systemctl enable %%--%%now systemd-networkd''
   * ''sudo udevadm control %%--%%reload-rules && sudo udevadm trigger''   * ''sudo udevadm control %%--%%reload-rules && sudo udevadm trigger''
-  * Reboot erforderlich \\ ''sudo reboot''+  * Reboot nicht zwingend erforderlich \\ ''sudo reboot''
   * Prüfen   * Prüfen
     * ''ip link show can0'' -> Zeigt qlen 1024     * ''ip link show can0'' -> Zeigt qlen 1024
Line 119: Line 120:
   * Ein (oder vermutlich DAS) Hauptproblem warum diese Version in neuren Systemen nicht mehr funktioniert ist das fehlende Paket ''ifupdown''. \\ Wenn man also diese Version der CAN Konfiguration nutzen möchte, dann muss es nachinstalliert werden: \\ ''sudo apt install ifupdown''   * Ein (oder vermutlich DAS) Hauptproblem warum diese Version in neuren Systemen nicht mehr funktioniert ist das fehlende Paket ''ifupdown''. \\ Wenn man also diese Version der CAN Konfiguration nutzen möchte, dann muss es nachinstalliert werden: \\ ''sudo apt install ifupdown''
   * Dann die übliche Konfig anlegen \\ ''sudo nano /etc/network/interfaces.d/can0'' \\ <code>   * Dann die übliche Konfig anlegen \\ ''sudo nano /etc/network/interfaces.d/can0'' \\ <code>
-     auto can0 +allow-hotplug can0  
-     iface can0 inet manual +iface can0 can static  
-     pre-up /sbin/ip link set can0 type can bitrate 1000000 +    bitrate 1000000  
-     up /sbin/ifconfig can0 up +    up ifconfig $IFACE txqueuelen 1024
-     post-up /sbin/ip link set can0 txqueuelen 1024 +
-     down /sbin/ifconfig can0 down+
 </code> </code>
   * Testweise aktivieren falls es down ist geht mittels \\ ''sudo ifup can0''   * Testweise aktivieren falls es down ist geht mittels \\ ''sudo ifup can0''
Line 131: Line 130:
 **Nachteil**: Weniger integriert, potenziell langsamere Boots [[https://canbus.esoterical.online/Getting_Started.html|CANbus Guide]]. **Nachteil**: Weniger integriert, potenziell langsamere Boots [[https://canbus.esoterical.online/Getting_Started.html|CANbus Guide]].
  
-==== Migrationstipps ==== +==== Migration ==== 
-<color #ed1c24>TBD</color> +Bei Upgrades von Bullseye auf eine höhere Debian Version ... 
-Bei Upgrades von BullseyeEntferne alte ''/etc/network/interfaces''-Dateien, migriere zu ''.network''-Format. Teste in einer VM, um Netzwerkbrüche zu vermeiden [[https://medium.com/@life-is-short-so-enjoy-it/story-one-issue-in-raspberry-pi-os-brought-me-to-know-about-lennart-poettering-and-systemd-e5d8aad8c3f7|Medium Migration Story]].+ 
 +  * Entferne alte ''/etc/network/interfaces''-Dateien 
 +  * LAN / WLAN mittels Network Manager einrichten (''nmtui''
 +  * CAN mittels systemd-networkd einrichten 
  
  
Line 139: Line 141:
 Hier sind die wichtigsten Tools für Diagnose und Management, mit Beispielen und Anwendungsfällen: Hier sind die wichtigsten Tools für Diagnose und Management, mit Beispielen und Anwendungsfällen:
  
-  * **Für systemd-networkd**: +**systemd-networkd**: 
-    ''networkctl list'': Übersicht aller Interfaces (z. B. can0 configured). +  ''networkctl list'': Übersicht aller Interfaces (z. B. can0 configured). 
-    ''networkctl status <iface>'': Details zu Bitrate/Status (z. B. can0 Bitrate). +  ''networkctl status <iface>'': Details zu Bitrate/Status (z. B. can0 Bitrate). 
-    ''systemd-analyze'': Boot-Zeiten-Analyse für Netzwerk-Verzögerungen. +  ''systemd-analyze'': Boot-Zeiten-Analyse für Netzwerk-Verzögerungen. 
-  **Für NetworkManager**: + 
-    ''nmcli device'': Geräte-Status (z. B. wlan0 connected). +**NetworkManager**: 
-    ''nmcli connection show'': Verbindungs-Details (IPs, DNS). +  ''nmcli device'': Geräte-Status (z. B. wlan0 connected). 
-    ''nmtui'': Text-UI für headless Setups. +  ''nmcli connection show'': Verbindungs-Details (IPs, DNS). 
-    ''nm-connection-editor'': GUI für Desktop. +  ''nmtui'': Text-UI für headless Setups. 
-  **Allgemein**: +  ''nm-connection-editor'': GUI für Desktop (wenn nicht vorhanden -> ''sudo apt install network-manager-gnome''
-    ''ip link show <iface>'': Low-Level-Status, Queues. + 
-    ''ip addr show <iface>'': IPs und Adressen. +**Allgemein**: 
-    ''ls /etc/systemd/network/'': Configs anzeigen [[https://www.freedesktop.org/software/systemd/man/networkctl.html|networkctl Docs]] [[https://networkmanager.dev/docs/|NM Docs]] [[https://wiki.archlinux.org/title/Systemd-networkd|Arch Wiki]].+  ''ip link show <iface>'': Low-Level-Status, Queues. 
 +  ''ip addr show <iface>'': IPs und Adressen. 
 +  ''ls /etc/systemd/network/'': Configs anzeigen  
 + 
 +[[https://www.freedesktop.org/software/systemd/man/networkctl.html|networkctl Docs]] [[https://networkmanager.dev/docs/|NM Docs]] [[https://wiki.archlinux.org/title/Systemd-networkd|Arch Wiki]].
 ===== journalctl / dmesg ===== ===== journalctl / dmesg =====
 Debugging ist essenziell für Netzwerkprobleme. Hier die wichtigsten Log-Tools: Debugging ist essenziell für Netzwerkprobleme. Hier die wichtigsten Log-Tools:
  
-  * **journalctl**: Systemd-Logs. Nutze: +**journalctl**: Systemd-Logs. Nutze: 
-    ''journalctl -u systemd-networkd'': Logs für //systemd-networkd// (suche "Link UP", Errors wie "Failed to bring up"). +  ''journalctl -u systemd-networkd'': Logs für //systemd-networkd// (suche "Link UP", Errors wie "Failed to bring up"). 
-    ''journalctl -u NetworkManager'': Logs für NM. +  ''journalctl -u NetworkManager'': Logs für NM. 
-    **Achten auf**: Timestamps (''-S "5 minutes ago"''), Prioritäten (''-p err'' für Errors), Units (''-u''). Live-Monitoring mit ''--follow''+  **Achten auf**: Timestamps (''-S "5 minutes ago"''), Prioritäten (''-p err'' für Errors), Units (''-u''). Live-Monitoring mit ''%%--%%follow''.
-  * **dmesg**: Kernel-Logs. Nutze: +
-    - ''dmesg | grep can'': CAN-Treiber-Init (z. B. "MCP2515 initialized" oder "No carrier"). +
-    - **Achten auf**: Zeitstempel (seit Boot), Level (''-l err'' für Errors). +
-  * **Andere Stellen**: +
-    - ''/var/log/syslog'': Allgemeine Logs. +
-    - ''/var/log/kern.log'': Kernel-Logs. +
-    - ''systemctl status <dienst>'': Kurze Übersicht. +
-    - ''journalctl -b'': Logs seit letztem Boot [[https://www.freedesktop.org/software/systemd/man/journalctl.html|journalctl Docs]] [[https://manpages.debian.org/bookworm/systemd/dmesg.1.en.html|dmesg Docs]] [[https://wiki.debian.org/Systemd#Journal|Debian Journal]].+
  
-**Demo**: Simuliere einen Error (z. B. falsche Bitrate), zeige Logs: +**dmesg**: Kernel-Logs. Nutze: 
-''code +  * ''dmesg | grep can'': CAN-Treiber-Init (z. B. "MCP2515 initialized" oder "No carrier"). 
-journalctl -u systemd-networkd -p err +  * **Achten auf**: Zeitstempel (seit Boot), Level (''-err'' für Errors).
-dmesg | grep can +
-''+
  
-**Tipp**: ''journalctl --vacuum-time=2weeks'' zum Log-Aufräumen.+**Andere Stellen**: 
 +  * ''/var/log/syslog'': Allgemeine Logs. 
 +  * ''/var/log/kern.log'': Kernel-Logs. 
 +  * ''systemctl status <dienst>'': Kurze Übersicht. 
 +  * ''journalctl -b'': Logs seit letztem Boot  
 + 
 +[[https://www.freedesktop.org/software/systemd/man/journalctl.html|journalctl Docs]] [[https://manpages.debian.org/bookworm/systemd/dmesg.1.en.html|dmesg Docs]] [[https://wiki.debian.org/Systemd#Journal|Debian Journal]]. 
 + 
 +**Tipp**: ''journalctl %%--%%vacuum-time=2weeks'' zum Log-Aufräumen.
 ===== Parallelbetrieb NM & systemd-networkd ===== ===== Parallelbetrieb NM & systemd-networkd =====
 In Bookworm laufen **NetworkManager** (WLAN/Ethernet) und **systemd-networkd** (headless/CAN) oft parallel, was Konflikte verursachen kann. Häufige Probleme: In Bookworm laufen **NetworkManager** (WLAN/Ethernet) und **systemd-networkd** (headless/CAN) oft parallel, was Konflikte verursachen kann. Häufige Probleme:
Line 202: Line 206:
 ===== CAN mit NM? ===== ===== CAN mit NM? =====
  
-Kurz: Möglich, aber **nicht empfohlen**. **NetworkManager** ist für IP-basierte Netzwerke (WiFi, Ethernet, VPN) optimiert und unterstützt CAN nicht nativ (keine Bitrate/Queue-Optionen). Workaround: Custom-Skripte in ''/etc/NetworkManager/dispatcher.d/'' (z. B. für ''ip link set can0 type can bitrate 1M''), aber das ist kompliziert und unstabil. Community empfiehlt **systemd-networkd** für CAN, da es low-level-Protokolle besser handhabt. NM sollte CAN als //unmanaged// markieren [[https://unix.stackexchange.com/questions/629484/how-to-set-txqueuelen-permanently-on-linux|Stack Exchange]] [[https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html|NM Config Docs]]. +Kurz: Möglich, aber **nicht empfohlen**. **NetworkManager** ist für IP-basierte Netzwerke (WiFi, Ethernet, VPN) optimiert und unterstützt CAN nicht nativ (keine Bitrate/Queue-Optionen). Workaround: Custom-Skripte in ''/etc/NetworkManager/dispatcher.d/'' (z. B. für ''ip link set can0 type can bitrate 1M''), aber das ist kompliziert und unstabil. Community empfiehlt **systemd-networkd** für CAN, da es low-level-Protokolle besser handhabt. NM sollte CAN als //unmanaged// markieren 
- +
-**Demo**: Zeige Fehlversuch mit ''nmcli'' (kein CAN-Support), dann Workaround: +
-''code +
-sudo ip link set can0 up type can bitrate 1000000 +
-''+
  
-**Tipp**Bleib bei //systemd-networkd// für CAN-Stabilität.+[[https://unix.stackexchange.com/questions/629484/how-to-set-txqueuelen-permanently-on-linux|Stack Exchange]] [[https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html|NM Config Docs]].
 ===== Befehlsreferenz ===== ===== Befehlsreferenz =====
  
klipper_faq/can/neue_can_konfiguration.1756894842.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki