Linuxでドライバうんぬんは、よくわかってない。
BeagleBone Greenを前回の設定でビルドすると、USB microBでPCにつないだ場合にはネットワークアダプターとして見えていた。
これはBeagleBoardでやったときもそう。
しかし、あちらは「どれをアクティブにするか」というのがmenuconfigの設定にあったので、それをCDCにすると、g_serialが読まれていた。
BeagleBone Greenで使ったカーネルでは、どれが選択されるかというのがぱっと見てわからなかった。
それに、ドライバというかモジュールとしてはビルドされているようなので、後からなんとかなるんじゃないかと思ったのだ。
まず立ち上げると、PCからはネットワークアダプターとして見えた。
lsmodすると、g_etherが読まれている。dmesgもそうだった。
このまま
$ sudo modprobe g_serial
としても、「そんなのはない」とけんもほろろだ。
マルチファンクションだから、うまいことやってくれるのかと思ったが、そういう意味ではないということか。
$ sudo modprobe -r g_ether
$ sudo modprobe g_serial
これで開けた。
PCの方も、「Linux USB Ether/RNDIS Gadget」から「Gadget Serial」になった。
まあ、同じところをEthernetとSerialと同時に見せかけるというのは無理だよな。
こういう、少しわかって先に進むと、また理解できそうだけどちょっとわからない、という疑問が出てくるところが、Linuxの深いところにはまり込む人を生み出すところなのかも。
こんだけリソースがあると楽だろうなぁ、と思いつつも、あるならあるで実装量が多くなって大変そうだ、とも思う。
まあ、どこも大変だってことだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。