SocketCAN 用に少し変更した CAN プロトコルを作成しようとしています。SocketCAN のドキュメントには、これに関する短いセクションがあります。
5.3 writing own CAN protocol modules
To implement a new protocol in the protocol family PF_CAN a new
protocol has to be defined in include/linux/can.h .
The prototypes and definitions to use the SocketCAN core can be
accessed by including include/linux/can/core.h .
In addition to functions that register the CAN protocol and the
CAN device notifier chain there are functions to subscribe CAN
frames received by CAN interfaces and to send CAN frames:
can_rx_register - subscribe CAN frames from a specific interface
can_rx_unregister - unsubscribe CAN frames from a specific interface
can_send - transmit a CAN frame (optional with local loopback)
For details see the kerneldoc documentation in net/can/af_can.c or
the source code of net/can/raw.c or net/can/bcm.c .
( https://www.kernel.org/doc/Documentation/networking/can.txt )
問題は、ここで参照されているファイルの一部が見つからないことです。私は Linux カーネルにあまり詳しくないので、探している場所が間違っているかどうかわかりません。include/linux/can.h
ディレクトリは見つかりますinclude/linux/can/
が、そこにファイルはありませんcore.h
。さらに、net/
参照されているディレクトリが見つかりません。
他の情報:
生の CAN フレームを送受信できるので、SocketCAN が正しくセットアップされていると思います
ディレクトリの内容 (ある
core.h
べき場所):beaglebone:~# ls /usr/include/linux/can/ bcm.h error.h gw.h netlink.h raw.h
BeagleBone Black で Debian を使用しています (システムの組み込みが違いを生むかどうかはわかりません)
誰かがこれらのファイルを探すべき場所を教えてくれるなら、私は非常に義務があります.
どうもありがとう!