Hallo zusammen,
ich habe ein Problem mit meinem PCAN-miniPCIe Zweikanal Modul (IPEH-003049) und Ubuntu 14.04 LTS. Eventuell könnt Ihr mir weiterhelfen. Wie erwähnt hatte ich bei mir auf dem Rechner Ubuntu 14.04 LTS installiert und möchte CAN über das NETDEV Interface benutzen. Ich habe folgende Befehle ausgeführt:
- $ modprobe can
- $ modprobe can_raw
- $ modprobe can-dev
- Install libpopt-dev: sudo apt-get install libpopt-dev
- Install g++: sudo apt-get install g++
Anschließend habe ich die SocketCAN Tools installiert über:
- Install git:
sudo apt-get install git
- Get the SocketCAN Tools:
git clone https://github.com/linux-can/can-utils
- build and install the tools:
cd can-utils
make
sudo make install
und danach die Bitrate eingestellt und das Netzwerk gestartet:
sudo ip link set can0 type can bitrate 125000
sudo ifconfig can0 up
Wenn ich nun über cansend eine CAN-Nachricht verschicke, wird diese auch auf den Bus gelegt. Wenn ich danach noch eine schicken möchte passiert nichts. Sobald ich eine Nachricht oft genug verschicke, wird mir gemeldet das der Write Buffer voll ist. Erst wenn ich die Befehle:
sudo ifconfig can0 down
sudo ifconfig can0 up
wieder ausführe, kann ich eine Nachricht auf den Bus legen. Nachrichten über den Bus empfange ich keine. Ausprobiert habe ich das ganze über candump can0. Ich kann mir nicht vorstellen, das ich immer das Netzwerk an und ausschalten muss um Nachrichten verschicken zu können. Vielleicht könnt Ihr mir helfen und sagen wo der Fehler liegt?
Mit freundlichen Grüßen
Matthias
PCAN Probleme mit Ubuntu 14.04 LTS
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo,
haben Sie ein terminiertes CAN Kabel, und einen weiteren Knoten mit 125k angeschlossen? Sie koennen zu Testzwecken auch den peak-linux-driver als chardev installieren anstatt dem SocketCAN Treiber aus dem Kernel. Damit laesst sich ueber cat /proc/pcan dann der Status der Hardware ablesen, und damit auch die Fehler die vorhanden sind.
Mit freundlichen Gruessen
Michael
haben Sie ein terminiertes CAN Kabel, und einen weiteren Knoten mit 125k angeschlossen? Sie koennen zu Testzwecken auch den peak-linux-driver als chardev installieren anstatt dem SocketCAN Treiber aus dem Kernel. Damit laesst sich ueber cat /proc/pcan dann der Status der Hardware ablesen, und damit auch die Fehler die vorhanden sind.
Mit freundlichen Gruessen
Michael
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo Michael,
ja ich habe ein terminiertes CAN Kabel verwendet und den weiteren Knoten auf 125k eingestellt.
Nachdem ich, wie Sie vorgeschlagen haben den peak-linux-driver als chardev installierte, habe ich über cat /proc/pcan den Status auslesen lassen. Folgendes wurde mir angezeigt:
*------------- PEAK-System CAN interfaces (http://www.peak-system.com) -------------
*------------- Release_20141219_n (7.14.0) Feb 16 2015 14:26:25 --------------
*---------------- [mod] [isa] [pci] [dng] [par] [usb] [pcc] -----------------
*--------------------- 2 interfaces @ major 248 found -----------------------
*n -type- -ndev- --base-- irq --btr- --read-- --write- --irqs-- -errors- status
0 pci -NA- f7e00000 016 0x001c 00000000 00000000 00000000 00000000 0x0000
1 pci -NA- f7e00400 016 0x001c 00000000 00000000 00000000 00000000 0x0000
Passen die Werten so? Ich wollte nun noch die Baudrate einstellen, diese lässt sich aber weder über ip link set can0 up type can bitrate 125000 ändern noch über echo "i 0x031C e">/dev/pcan.
Mit freundlichen Grüßen
Matthias
ja ich habe ein terminiertes CAN Kabel verwendet und den weiteren Knoten auf 125k eingestellt.
Nachdem ich, wie Sie vorgeschlagen haben den peak-linux-driver als chardev installierte, habe ich über cat /proc/pcan den Status auslesen lassen. Folgendes wurde mir angezeigt:
*------------- PEAK-System CAN interfaces (http://www.peak-system.com) -------------
*------------- Release_20141219_n (7.14.0) Feb 16 2015 14:26:25 --------------
*---------------- [mod] [isa] [pci] [dng] [par] [usb] [pcc] -----------------
*--------------------- 2 interfaces @ major 248 found -----------------------
*n -type- -ndev- --base-- irq --btr- --read-- --write- --irqs-- -errors- status
0 pci -NA- f7e00000 016 0x001c 00000000 00000000 00000000 00000000 0x0000
1 pci -NA- f7e00400 016 0x001c 00000000 00000000 00000000 00000000 0x0000
Passen die Werten so? Ich wollte nun noch die Baudrate einstellen, diese lässt sich aber weder über ip link set can0 up type can bitrate 125000 ändern noch über echo "i 0x031C e">/dev/pcan.
Mit freundlichen Grüßen
Matthias
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo,
ja passt, die Baudrate aendert man mit:
echo "i 0x031C e">/dev/pcan0 oder echo "i 0x031C e">/dev/pcan1 je nach Kanal
bitte mal mit transmittest testen, ob die Kommunikation funktioniert.
Mit freundlichen Gruessen
Michael Maidhof
ja passt, die Baudrate aendert man mit:
echo "i 0x031C e">/dev/pcan0 oder echo "i 0x031C e">/dev/pcan1 je nach Kanal
bitte mal mit transmittest testen, ob die Kommunikation funktioniert.
Mit freundlichen Gruessen
Michael Maidhof
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo,
nachdem ich nun über echo "i 0x031C e">/dev/pcan0 die Baudrate eingestellt hatte, habe ich den transmitest ausgeführt. Als Datei habe ich transmit.txt gewählt. Jedoch bestand das Problem immer noch. Nachdem das Interface die erste Nachricht "" mit dem Identifier 0x7FF auf den Bus gelegt hat, passierte nichts mehr. Es wurde keine weitere Nachricht gesendet und es kam auch keine Fehlermeldung im Terminal. Erst als ich mit Strg. + C das Ganze abgebrochen habe, kam eine Auflistung von Statusmeldungen. Mit zum Beispiel last CAN status = 0x00a0; last error = 0; open paths = 1;
Mit freundlichen Grüßen
Matthias Hisung
nachdem ich nun über echo "i 0x031C e">/dev/pcan0 die Baudrate eingestellt hatte, habe ich den transmitest ausgeführt. Als Datei habe ich transmit.txt gewählt. Jedoch bestand das Problem immer noch. Nachdem das Interface die erste Nachricht "" mit dem Identifier 0x7FF auf den Bus gelegt hat, passierte nichts mehr. Es wurde keine weitere Nachricht gesendet und es kam auch keine Fehlermeldung im Terminal. Erst als ich mit Strg. + C das Ganze abgebrochen habe, kam eine Auflistung von Statusmeldungen. Mit zum Beispiel last CAN status = 0x00a0; last error = 0; open paths = 1;
Mit freundlichen Grüßen
Matthias Hisung
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo,
das Problem mit dem nicht richtig Senden der Nachricht und das Empfangen der Nachricht konnte ich nun beheben. Nachdem ich das Modul in einen anderen freien PCIe Platz gesteckt habe und es somit eine andere IRQ Nummer (18 anstatt 16) bekommen hat, funktioniert nun der Transmitest und Receivetest ohne Problem. Somit gab es da wohl Probleme mit meinem USB-Controller der ebenfalls die IRQ Nummer 16 zugewiesen bekam.
Nun möchte ich gerne wieder auf den Native Treiber aus dem Kernel zurück gehen. Wie geh ich da am besten vor? Einfach über rmmod pcan und dann make uninstall?
Mit freundlichen Grüßen
Matthias
das Problem mit dem nicht richtig Senden der Nachricht und das Empfangen der Nachricht konnte ich nun beheben. Nachdem ich das Modul in einen anderen freien PCIe Platz gesteckt habe und es somit eine andere IRQ Nummer (18 anstatt 16) bekommen hat, funktioniert nun der Transmitest und Receivetest ohne Problem. Somit gab es da wohl Probleme mit meinem USB-Controller der ebenfalls die IRQ Nummer 16 zugewiesen bekam.
Nun möchte ich gerne wieder auf den Native Treiber aus dem Kernel zurück gehen. Wie geh ich da am besten vor? Einfach über rmmod pcan und dann make uninstall?
Mit freundlichen Grüßen
Matthias
Re: PCAN Probleme mit Ubuntu 14.04 LTS
Hallo,
ein PCI hardware Problem ist aber sehr ungewoehnlich, da sollten Sie mal nach einer neueren BIOS Version Ausschau halten.
Um wieder den kernel Treiber zu nutzen, gehen Sie wie folgt vor:
- sudo rmmod pcan
- sudo make uninstall (im peak-linux-driver-7xx Verzeichnis)
danach am besten einaml neu booten, damit der peak_usb Treiber wieder automatisch geladen wird, oder eben manuell mit sudo modprobe peak_usb den kernel Treiber wieder starten.
Mit freundlichen Gruessen
Michael Maidhof
ein PCI hardware Problem ist aber sehr ungewoehnlich, da sollten Sie mal nach einer neueren BIOS Version Ausschau halten.
Um wieder den kernel Treiber zu nutzen, gehen Sie wie folgt vor:
- sudo rmmod pcan
- sudo make uninstall (im peak-linux-driver-7xx Verzeichnis)
danach am besten einaml neu booten, damit der peak_usb Treiber wieder automatisch geladen wird, oder eben manuell mit sudo modprobe peak_usb den kernel Treiber wieder starten.
Mit freundlichen Gruessen
Michael Maidhof