Contents
設定手順
必要パッケージのインストール
Ubuntuを入れただけだとまだいくつか足りないものがあるので、
端末を開いてインストールを試みます。
この辺は handbook にも書いてあるんですが、
執筆当時と現在でカーネルの設定が一部違うため、一部修正が必要な部分があります
(これに苦戦したので時間がかかった。。。)
CAN-utils
まずはCAN通信に必要なパッケージをインストールします。
これは本に書いてあるとおりそのまま下記を端末に打ち込めばインストールできました。
net-tools
CAN通信のネットワークを構成したり、各ネットワークの情報を確認したりするのに
net-toolsも入れておく必要があります。Ubuntuのデフォルトだと入っていないので。
とはいえこれもインストールは難しくなく、下記のように打てばすぐにできます。
Socketcand Daemon
後に紹介するKayakというアプリを使うために必要なデーモンらしいのですが、
これのインストールに結構苦戦しました。。
Handbook記載のリンクだとv0.4.2が最新になってますが、
当該ページの案内をもとに辿っていくと、最新版は下記にあるようです。
あとはこれをダウンロードして解凍し(右クリックメニューでやるのが楽)、
Readme に記載してあるとおりに端末を開いてコンパイルするだけ…と思いきや
./configure を試した際に下記のメッセージが出て失敗します。
(autoconfの前にautoupdateやれって言われたり、そもそもmakeとかgccをインストールしないといけなかったりというのもあるんですが、その辺の手順は端末上で教えてくれるのでここでは割愛します)
とりあえずテストに失敗したらしいのはわかるんですが要因がわからないので
一旦スルーするために
と打ち込んでから make でコンパイルを試みると、今度は下記のエラーが出て止まります。
“SIOCGSTAMP” が未定義であるというエラーなんですが、
どうやらこれはcソースに不備がある(ヘッダファイルの定義が足りていない)ようで、
state_bcm.c と state_isotp.c の両方のファイルに下記を書き足してやれば解決できます。
場所的に24行目ぐらいに付け加えるのがよいかと。
これでコンパイルし直して一見落着…と思いきや、今度は別のエラーが出ます。
いくつかの変数が複数回定義されているというもの。
別々のcファイルの中で定義されているからローカル変数扱いじゃないの?
と思ったんですが、コンパイル時は別のファイルでも同じ変数は1回しか定義してはいけないらしく(久しく触れてなかったからこの辺のルール忘れてた)、
エラーを避けるには別々の変数として定義し直してやる必要があります。
しかし厄介なのは、定義の重複がどのファイルで起きているかわからないこと。。
仕方ないのでgrepをかけて探して見ると、下記5つのファイルに絞り込めました。
- socketcand.c
- socketcandcl.c
- state_bcm.c
- state_isotp.c
- state_raw.c
あとはこれらのファイルを開いて、重複している変数を、
ifr -> ifr0, tv -> tv0 のように置き換えていくだけ。
作業自体はそう大したことではないんですが、これでいいのかなあと思いながら
ソースコードを修正。
その後、再度 make をかけると無事にコンパイルが通りました。
あとは
を実行すれば晴れてインストール完了です。
起動時のエラー “Error in Beacon send()”
Handbook 通りの手順で 仮想のCANネットワークとして vcan0 をセットアップしたので
(詳しくはChapter3参照)、早速 socketcand を接続しようと
を実行してみたのですが、 “Error in Beacon send()” というメッセージが出て一向に進まず。
どうやらデフォルトのインターフェースが ’eth0’ になっているようで、
このPCにイーサネットの口はないのでそのせいかな?とも思ったのですが
とデフォルト接続先を変更してみても特に変わらず。
困っていろいろググって見たんですが、下記のスレッドが参考になりそうでした。
どうやらKayakを使うとエラーが治まるとのこと。Kayak内で接続するからかな?
どのみちKayakを使うつもりではあるので、
ここは一旦無視してKayakのインストールを実施します。
Kayak
CANネットワークを通して信号の計測やGPS情報との紐付けなどができるアプリケーションらしいです。
紹介ページはこちらですが、実際はgithubから直接落としたほうが早そう。
まだ開発中とのことですが、2024年現在で最新版は2019のものみたいです。
ダウンロードしてきたファイルを展開し、中に入っているBUILD.mdを読むと
インストールのためには JDK と maven2 が必要とのこと。
を実行してmavenをインストールした後、
を実行したところ、最終的に下記のエラーが。。
どうやら java のバージョンが非対応っぽいです。
下記のものをインストールすることで解決しました。
上記のJavaをインストール後、再度 “mvn clean install” を実行することで
Kayakのビルドが完了します。
BUILD.mdの方にも記載がありますが、アプリは /application/target/kayak/bin の中にある
”Kayak” というファイルを実行することで起動できます。
起動するとこんな感じ。
これで最低限の準備は整いました。
次ページ:いよいよネットワークに接続
コメント