2017-07-31 6 views
0

のVirtualBoxでUbuntuの16.04で、Beagleboneブラックは、次のコードを実行すると、エラーが返され、USBポートに接続して:Pyserial:ポートを設定できませんでした:(22、 '無効な引数')

import serial 

ser = serial.Serial() 
ser.port = '/dev/sdb' 
ser.baudrate = 9600 
ser.open() 

エラー:

Could not configure port: (22, 'Invalid argument') 

私はターミナルでblkidを使用してBBBのパスを取得しました。 BBBは通常、仮想マシンのSSHを使用してアクセスできます。

エラーの原因は、なぜPythonがポートを開くことができないのですか?


編集

blkidの出力は次のとおりです。/dev/sdbはBBBのパスと/dev/sdc1 USBスティックのパスです

/dev/sr0: UUID="2017-07-17-16-26-18-00" LABEL="VBOXADDITIONS_5.1.24_117012" TYPE="iso9660" 
/dev/sda1: UUID="58957263-a785-44f1-89a0-a66efd56623f" TYPE="ext4" PARTUUID="306fada4-01" 
/dev/sda5: UUID="2e8ad169-1527-4336-9169-e189688038cd" TYPE="swap" PARTUUID="306fada4-05" 
/dev/sdb: SEC_TYPE="msdos" LABEL="boot" UUID="0CD5-4AE7" TYPE="vfat" 
/dev/sdc1: LABEL="WATTO" UUID="BAF1-8FE6" TYPE="vfat" PARTUUID="1299f9fa-01" 


ls -l /dev/sd*リターン:

brw-rw---- 1 root disk 8, 0 jul 31 11:14 /dev/sda 
brw-rw---- 1 root disk 8, 1 jul 31 11:14 /dev/sda1 
brw-rw---- 1 root disk 8, 2 jul 31 11:14 /dev/sda2 
brw-rw---- 1 root disk 8, 5 jul 31 11:14 /dev/sda5 
brw-rw-rw- 1 666 disk 8, 16 jul 31 16:32 /dev/sdb 
brw------- 1 root root 8, 32 jul 31 16:52 /dev/sdc 
brw------- 1 root root 8, 33 jul 31 16:52 /dev/sdc1 


lsblkリターン:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
sda  8:0 0 12G 0 disk 
├─sda1 8:1 0 10G 0 part/
├─sda2 8:2 0 1K 0 part 
└─sda5 8:5 0 2G 0 part [SWAP] 
sdb  8:16 1 96M 0 disk /media/alexander/boot 
sdc  8:32 1 7,5G 0 disk 
└─sdc1 8:33 1 7,5G 0 part /media/alexander/WATTO 
sr0  11:0 1 56,8M 0 rom /media/alexander/VBOXADDITIONS_5.1.24_117
+1

'は/ dev/sdb'シリアルポートではありません - それは通常いくつかの種類のファイル・ストレージ・ドライブです。シリアルポートは、通常、 '/ dev/ttyS0'や'/dev/ttyUSB0'などのように見えます。 – jszakmeister

+0

USBスティックを接続すると、パスは '/ dev/sdc /'になります。この動作はVirtualBoxによるものでしょうか? – Alexander

+0

@jszakmeisterが書いた/ dev/sdbは通常ハードドライブにマップされているので、blkidの出力を共有します – Vinny

答えて

2

あなたはおそらく間違ったデバイス名を持っています。この中で最後にリンクを読みますケース、 VirtualBoxは、ホストのUSBシリアルデバイスを正しく誤解している可能性があり、したがって、間違ったデバイス(/ dev)名が割り当てられている可能性があります。

「/ dev/sdb」はおそらくハードドライブなどのブロックデバイスです。これは一部として設定されますが、これは単なる情報のためである -

$ ls -l /dev/sd* 
brw-rw---- 1 root disk 8, 0 Jul 31 13:59 /dev/sda 
brw-rw---- 1 root disk 8, 1 Jul 31 13:59 /dev/sda1 
brw-rw---- 1 root disk 8, 2 Jul 31 13:59 /dev/sda2 
brw-rw---- 1 root disk 8, 5 Jul 31 13:59 /dev/sda5 
^ 
Note 'b' for block device 

シリアルポートは、多くの場合、グループは「ダイヤルアウト」に設定されているように

$ ls -l /dev/ttyUSB0 
crw-rw---- 1 root dialout 188, 0 Jul 31 14:34 /dev/ttyUSB0 
^ 
Note 'c' for character device 

シリアルポート「は/ dev/ttyUSB0」のようになります。それがシリアルポートであることの認識。

あなたはまた、VirtualBoxの下にホストのシリアルUSBデバイスを使用して、この項目を読みたいことがあります。https://techtooltip.wordpress.com/2008/09/12/using-host-serial-port-from-guest-in-virtual-box/

+0

自分自身をダイヤルアウトグループに追加しましたが、それでもエラーは解決しません。元の質問に出力を追加しました。上記を参照してください。 – Alexander

+0

私が投稿したアイテムを読む - あなたのダイヤルアウトのメンバーシップは問題に関係しません。 – MikeW

+0

答えをありがとう、それはVirtualBoxeのシリアルポートの設定に問題があるようです。私は上記のチュートリアルに従いましたが、ゲストマシンを実行しようとすると別のエラーが発生します。私は[エラーに関する新しい質問]を投稿しました(https://stackoverflow.com/questions/45439160/virtualbox-failed-to-open-host-device-com1-verr-file-not-found) – Alexander

0

BeagleboneのみUSB接続を介してそのファイルシステムを示しているようだ:あなたはそれに接続する場合は/ dev/sdbと シリアル接続を介して、USB to TTYコンバータが必要です。 (例えば、PL2303HX、2 $ -10 $)。 また、このチュートリアルに従って、PCをシリアルポートに接続することもできます。

http://www.dummies.com/computers/beaglebone/how-to-connect-the-beaglebone-black-via-serial-over-usb/

関連する問題