質問: コマンドラインからusbデバイスをリセットするにはどうすればよいですか? pcから物理的に切断/接続せずに、usbデバイスの接続をリセットすることは可能ですか?具体的には、私のデバイスはデジタルカメラです。 gphoto2を使用していますが、最近「デバイスの読み取りエラー」が発生するため、接続のソフトウェアリセットを実行したいと思います。私の知る限り、カメラ用にカーネルモジュールがロードされていません。関連するように見える唯一のものはusbhidです。
回答: デバイス名がわかっている場合は、このpythonスクリプトが機能します。#!/usr/bin/python """ usb reset call as "usbreset.py <device_file_path>" with device_file_path like "/dev/bus/usb/bus_number/device_number" """ import fcntl, sys, os usbdevfs_reset = ord('u') << (4*2) | 20 def main(): fd = os.open(sys.argv[1], os.o_wronly) if fd < 0: sys.exit(1) fcntl.ioctl(fd, usbdevfs_reset, 0) os.close(fd) sys.exit(0) # end main if __== '__main__': main()