2016/05/21

[bbg]usb peripheralを別のドライバにする

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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。