web-dev-qa-db-ja.com

WINEのシリアルポートアクセスエラー

USBシリアルアダプターと、そのシリアルUSBを使用してデータを送受信するアプリケーションを使用するセットアップがあります。ただし、Windows、またはVMWare仮想ウィンドウでさえ機能するこのセットアップは、WINEでは機能しません。 ITはデータを送信しますが、データを受信できません。ケーブルとアプリケーションは、動作中および非動作中のシナリオと同じです。/dev/ttyUSBをcomポートにマッピングすることにより、仮想Windows(Linuxで実行されているVMware)でもアプリケーションがUSBシリアルケーブルを介して正常に動作するという事実は、外部ソフトウェア/ DLLが不要であることを意味し、特定のものは必要ありません。運転者。 (この仮定では、アプリケーションにドライバーは必要ないというのは正しいですか?)

(私も別のセットアップで試しました(WINEでは別のUSBシリアルアダプター+別のアプリケーションですが、それでもWINEでは機能しませんが、Windows /仮想Windowsでは問題なく機能します)

WINEで動作させるにはどうすればよいですか?

どんなポインタでもありがたいです。

4
goldenmean

私はこの質問が古く、goldenmeanがおそらくそれを解決したか、先に進んだことを知っていますが、他の誰かが答えを探してこの質問に出くわすかもしれません。

WineはLinuxシリアルポートをWindowsプログラムのCOMポートに自動的に割り当てませんが、単純なシンボリックリンクで行うことができます。 Wineの場合、コマンドターミナルで次の操作を行います。

$ ln -s /dev/ttyS0 ~/.wine/dosdevices/com1
$ ln -s /dev/ttyS1 ~/.wine/dosdevices/com2

必要に応じて繰り返し、COMxポートに割り当てる必要のあるすべてのttySxシリアルポートを取得します。

Crossover Linuxと呼ばれる商用バージョンのWineは、このためのGUIツールを提供するか、自動的に実行する場合がありますが、私はこれを使用したことがありません。

4
concertedrxn

WINEはエミュレーターでもバーチャライザーでもありません。WINEはLinuxにWindowsAPIを実装するだけです。 WINEでプログラムを実行すると、プログラムはシリアルポートを想定しますが、WINEはシリアルポートを提供しないため、エラーが発生します。一方、VMWareは、ポートを含む完全なPCを仮想化し、プログラムがポートアクセスを要求すると、その要求をホストPCのポートに渡すため、正常に動作します。

要約すると、AFAIKでは、ポートを要求するプログラムをWINEで正しく実行することはできません。

1
Sathyajith Bhat