
Ubuntu日本語フォーラム

ログインしていません。
http://dl.dropbox.com/u/1516525/sb2/Rules.make
に従って記述された
http://dl.dropbox.com/u/1516525/sb2/Makefile
があります。
該当フォルダに移動して
$ make
すると、
gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/3.5.0-25-generic/build/include -D__SMP__ -DSMP -DMODVERSIONS -include /lib/modules/3.5.0-25-generic/build/include/linux/modversions.h -I/usr/src/linux-3.5.0-25-generic/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c cc1: 致命的エラー: /lib/modules/3.5.0-25-generic/build/include/linux/modversions.h: そのようなファイルやディレクトリはありません コンパイルを停止しました。 make: *** [ftdi_sio.o] エラー 1
というエラーになってドライバー・インストールができません。
恐らくどこかを書き換えれば、成功するのでしょうが、その方法がわかりません。
ご教示を。
Ubuntu: Quantal Quetzal
Kernel: 3.5.0-25-generic
該当フォルダには上記の Rules.make, Makefile, ftdi_sio.o, ftdi_sio.c があるだけです。
オフライン
エラーが出ているのはRules.makeの、
CFLAGS += -DMODVERSIONS -include $(KERNELDIR)/include/linux/modversions.h
この行のようですね。
Ubuntu 12.10ではmodversions.hの場所が変更されているので、
/include/linux/modversions.h
の部分を、
/include/config/modversions.h
に書き換えて下さい。
オフライン
回答有り難うございます。
デフォルトをコメントアウトして書き換えたのですが、今度は
$ make
gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/3.5.0-25-generic/build/include -D__SMP__ -DSMP -DMODVERSIONS -include /lib/modules/3.5.0-25-generic/build/include/config/modversions.h -I/usr/src/linux-3.5.0-25-generic/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c
In file included from /lib/modules/3.5.0-25-generic/build/include/linux/kernel.h:15:0,
from ftdi_sio.c:251:
/lib/modules/3.5.0-25-generic/build/include/linux/linkage.h:5:25: 致命的エラー: asm/linkage.h: そのようなファイルやディレクトリはありません
コンパイルを停止しました。
make: *** [ftdi_sio.o] エラー 1になってしまいました。
アップロードファイル(参考になれば)
http://dl.dropbox.com/u/1516525/sb2/ftdi_sio.c
http://dl.dropbox.com/u/1516525/sb2/ftdi_sio.h
厄介なものを持ち込んですみません。
オフライン
表面だけ見れば、提示されたことに答えればいいのでしょうが、
1.動作させたいハードウェアの名称がない。
ものによっては標準でドライバが含まれています。
2.UbuntuのVersionが不明。
UbuntuのVersionによって、ハードウェアドライバを持っていたり、新しいからといって、変更によって動作しなくなるケースもあります。
3.そもそもの目的。
プログラムを学ぶために、コンパイルを通したいだけなのか、使いたいのか。
同じチップを使った製品が定義されていれば、ベンダIDなどの定義など最低限の作業で動くようになることもありえますし、バイナリは提供されるソースから作られますので、標準で持っているドライバならコンパイルが通る形のソースも存在するはずです。
ファイル名からは、需要を考えればFT232Rとかそのあたりでも使いたいのかと思うのですが、
http://debugitos.main.jp/index.php?Ubuntu%2FBluetooth%A5%B7%A5%EA%A5%A2%A5%EB%A5%DD%A1%BC%A5%C8#v0e01d7b
http://kondo-robot.com/sys/archives/2443
Kernel2.4.32では既にサポートされているという話や、
フォーラムには、
https://forums.ubuntulinux.jp/viewtopic.php?id=5753
こんな記事もありました。
ただ、これらの記事は簡単にみつかり、それでもコンパイルを通したいということは、このドライバのそれではない何かを動作させたいという可能性も出てきます。
実機を持っていないので、なんともいえませんが、これらの記事は参考にならないでしょうか?
大事なことは「どの国で作られたか」ではなく「何を動かしたいか」で、タイトルでは製品名やチップの名前を明記したほうが「知っている人」の目には止まります。
同じドライバでもハードウェアが違えば、手を入れる必要があったり、その中身が違ったりするケースもありますから、これは「動作を目的としているなら」必要なことだと思われます。
とりあえず、標準ドライバで対応していないのかを確認し、それで駄目なら、素性と、対応しそうなドライバ、実際に返している値なんかを確認することころから始めたらいいような気がするのですがどうでしょうか?
オフライン
Crush さん、ありがとうございました。
すみません、 https://forums.ubuntulinux.jp/viewtopic.php?id=5753
と同一若しくは同種の機器だったようです。ナルホド、Jackalope の頃から問題があったようですね。
PC の USB ポートに接続してサウンドカードとアマチュア無線機を結ぶインターフェイスでして、ディジタル通信に利用するものという説明を加えておきます。
「ftdi_sio」というキーワードには到っていませんでした。 Sorry。
無論「動作する」が目的で動作しないことには「ムダな買い物」になってしまいます。
ubuntu は先にも記載した Quantal Quetzal 番号で言えば、 12.10 です、汲み取っていただけるものと思っていました。
私の場合には
$ dmesg [ 14.815330] usbcore: registered new interface driver ftdi_sio [ 14.815348] USB Serial support registered for FTDI USB Serial Device [ 14.815441] ftdi_sio 5-2:1.0: FTDI USB Serial Device converter detected [ 14.815490] usb 5-2: Detected FT232RL [ 14.815492] usb 5-2: Number of endpoints 2 [ 14.815495] usb 5-2: Endpoint 1 MaxPacketSize 64 [ 14.815497] usb 5-2: Endpoint 2 MaxPacketSize 64 [ 14.815499] usb 5-2: Setting MaxPacketSize 64 [ 14.818162] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB0 [ 14.818195] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
と表示されますが、
$ lsusb Bus 003 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 005 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC Bus 007 Device 002: ID 099a:2515 Zippy Technology Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 004: ID 046d:c31d Logitech, Inc. Bus 010 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 011 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
となるのですが、
$ lsusb -v
を打つと、Bus 005 Device 002: が出て来ません。
先のエラーは「未接続」状態だったので、さもありなんだったのですが、接続後、今度は ftdi_sio.c:251: はクリアされて新たに
/lib/modules/3.5.0-25-generic/build/include/linux/linkage.h:5:25: 致命的エラー: asm/linkage.h: そのようなファイルやディレクトリはありません コンパイルを停止しました。 make: *** [ftdi_sio.o] エラー 1
となりました。
オフライン
一応、例を挙げただけなので、カーネルや、UbuntuのVersionが違えば、話は変わります。
それは、Versionナンバーでかかれていなかったので自分が見落としたので、「過去のケースも含め、ドライバをコンパイル/インストールすることが必要なケースではこういうこともあったようだ」と示したわけで「必要がある」とは言ってないのです。
なぜコンパイルを通さないといけないのかわからないのですが、標準のドライバでは「動作しないのでしょうか?」
標準でドライバを持っているのなら、余計なことをせず動作を試してみたらいいと思うのですが。
コンパイルが通らないこと自体は、ディレクトリ構成が違うなどの理由ですが、少なくても標準でドライバをチップに対しては持っているはずなので、本当に必要なのかを確認すべきではないでしょうか?
一応標準で入ってるドライバは、Ubuntu側でも面倒は見ているはずなので、基本的には「余計なことをしないほうが」まともに動くと思いますし、中途半端にコンパイルやインストールを通してしまうとそれらを壊すこともありえます。
http://kondo-robot.com/sys/archives/2443
ここに限らず、「カーネルに含まれている」という話のほうが使われているかたの記事には多いです。
だとすれば、ドライバより先の作業にミスがある可能性はありませんか?
というか、このデバイス自体が、UART-USBの変換チップですから、直接その対象を見てるわけではなく、シリアル経由で制御するものになっているはずです。
ドライバが直接相手をするのは「シリアル」であって、アプリケーションなどが、その先の通信内容によって、その先のハードウェアを制御しているはずです。
動作しないという根拠も明示されていませんし、そう判断した理由も明示されていません。
「本当にその作業はもともと必要なのですか?」
そもそもの前提となるデバイスが「このようなもの」と商品が明示されていないので、商品固有の欠陥やバグ、仕様によるイレギュラーな実装があって「それを運よく知っている人がいても」手を貸してくれることがない状態が作られています。
型番や、機種名を隠蔽する必然性のあるデバイスや、何らかの回路図から起こされたものなのでしょうか?
動作確認や、ドライバ以外の作業は間違っていませんか?
システムが直接見るシリアルチップしか情報として見えないので、多分気がつく人が来ても、気がつくことすらなく、そのまま素通りする可能性が高そうなのですが。
オフライン
尚、エラー自体は、ファイルの場所が想定と異なっているからで、シンボリックリンクを張ってやるなどすればコンパイルは通るとは思いますが…。
オフライン
【解決】
http://kondo-robot.com/sys/archives/2443
の記述通り
[ 14.818162] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB0
があることで、「使える状態」であることが確認できました。
そのページを紹介されなかったら、きっと確信が持てなかったでしょう。
ドライバーが添付されているってことで「必要なんだ」という「固定概念」に取り憑かれてしまった結果になるんですね。
HAM 歴の割りにはディジタル通信に於いてはまるっきりの一年生なので、動作に付いての判断はこれからやってみます。
大変お手数かけました。
今更ながら ubuntu ってスゴイなという感を深めました。
オフライン
「商品名を明記する」のは大事だと思われます。
ドキュメントが公開されていれば、テストしてもらうという提案を出来る人も要るでしょうし、同じものを持っている人もいるかもしれません。
動作の前提として満たすべきものが「商品が不明ではわからない」んです。
メッセージからすれば、「認識はしていそう」ですが、複数の例を明示したのは、「動かなければ、再構築の必要があるケースもあるから」待っていなくても自ら考えるための資料として提示しただけです。
実際、既存のドライバでもプログラムとしては動作するが、ソースに加筆しないと有効にならないケースはよくあります。
ですから「サポートされているのではないか?」と最初の返信にも書いてあるのは、持っているドライバでそれが使えそうならまずそれで動作を確認してはどうか?といってたわけです。
このチップ自体は、USB-UARTの比較的メジャーなチップですから、シリアルポートへの変換ドングルなど、用途は多々あります。
ですから「含まれていることはおかしくない」ですし、Ubuntuというより、カーネルとドライバのメンテナのおかげではないかと。
含まれているドライバが最適ではないこともありますし、再構築したり、設定を追加する必要があることも多々あります。
しかしそれもまた「商品名が明記され仕様が明確にならないと」無理ですし、チップの先に何が繋がっているかわからない上、マニュアルの類が無いので、確認も出来ないんです。
実際にはシリアルの先と通信しないといけないのですが「PC殻直接見えるデバイスはシリアルだ」ということしか書かれている質問からは読み取れません。
マニュアルなどがあれば、反応が得られるコマンドを投げてみるなど、「テストの手順を示せる人」も出る可能性があります。
が、情報の隠蔽はそれを妨げます。今後見る人が参考にするためにも、差しさわりの無い情報はあらかじめ開示していただけるといいんじゃないかと思います。
…きちんと動くと…いいんですけどね。
オフライン
Crush さん、ありがとうございます。
同種の問題での解決の糸口として遅ればせながら、商品を提示しておきます。
製品はメーカーが CG Antenna という SB-2000 です。
http://www.cgantenna.be/sb2000.html
輸入代理店ページ
http://www.edcjp.jp/CG/cg-main03.html
しかし、機能面でもう少し拡張性の優れた
メーカー West Mountain Radio 社の RIGBlaster Pro
http://www.westmountainradio.com/product_info.php?products_id=pro_comp_usb
これも上記輸入代理店扱いで、こちらに乗り換える予定です。 cp210x という独自ドライバーのようですが。
せっかくお手数かけていただいたのに、済みません。
オフライン
どちらもシリアルポートで制御する機器のようですね。
USBは、RS-232Cとは違うので、その差異を吸収するために、仮想シリアルポートを作って、シリアルポートと同じように動作させているということです。
cp2101とか、cp2102は、FT232R等よりも古くから使われているはずなので、ハードウェアとしてはかれているかと思います。
こちらも「独自ドライバ」などでは「無く」「汎用のUSB-シリアル変換のチップ」です。
ですので、USBのシリアルケーブルなども視野に入れると、情報は集めやすいと思われます。
裏を返せば、ドライバレベルでは「機器固有の物」は無いですので、正常な動作かどうかは、実際に信号を機器に合わせて流してやらないとわかりません。
とはいえ、通信の設定さえきちんとしてしまえば、きちんと動くとは思います。
それらが難しければ、RS-232C経由でつないだり、動作実績のあるUSB-シリアル変換ケーブルなどを使って接続するといいかもしれません。
もし手にするのに時間がかかるようなら、基本的には設定はおなじだと思われますので、今回の危機も参考にはなるのではないかと思います。
実際に見えるハードウェアは仮想シリアルポートですから、そういうハードウェアの場合は、その先の制御まで試みないと、切り分けは難しいです。
オフライン