You are not logged in.

#1 2012-06-10 21:08:55

synthead
Member
Registered: 2006-05-09
Posts: 1,337

Ruby: Problems with ruby-usb

What am I doing wrong?

My simple script:

#!/usr/bin/env ruby

require 'usb'
require 'awesome_print'

ap USB.devices

What happens when I run it as a regular user:

$ ./hid-listener.rb
/usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:278:in `usb_close': closed USB::DevHandle (ArgumentError)
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:278:in `ensure in open'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:278:in `open'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:253:in `manufacturer'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:235:in `inspect'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:58:in `awesome_self'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:28:in `format'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:104:in `unnested'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:71:in `awesome'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:75:in `block (2 levels) in awesome_array'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:314:in `indented'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:74:in `block in awesome_array'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `each'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `inject'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `awesome_array'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:26:in `format'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:104:in `unnested'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:71:in `awesome'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/core_ext/kernel.rb:10:in `ai'
	from /home/max/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/core_ext/kernel.rb:15:in `ap'
	from ./hid-listener.rb:6:in `<main>'

What happens when I run it as root:

# ./hid-listener.rb 
/usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:412:in `usb_get_string_simple': Invalid argument - usb_get_string_simple (Errno::EINVAL)
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:412:in `get_string_simple'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:267:in `block in serial_number'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:276:in `open'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:267:in `serial_number'
	from /usr/lib/ruby/gems/1.9.1/gems/ruby-usb-0.2.1/lib/usb.rb:237:in `inspect'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:58:in `awesome_self'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:28:in `format'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:104:in `unnested'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:71:in `awesome'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:75:in `block (2 levels) in awesome_array'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:314:in `indented'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:74:in `block in awesome_array'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `each'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `inject'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:71:in `awesome_array'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/formatter.rb:26:in `format'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:104:in `unnested'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/inspector.rb:71:in `awesome'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/core_ext/kernel.rb:10:in `ai'
	from /root/.gem/ruby/1.9.1/gems/awesome_print-1.0.2/lib/awesome_print/core_ext/kernel.rb:15:in `ap'
	from ./hid-listener.rb:6:in `<main>'

Offline

#2 2012-06-11 01:35:19

synthead
Member
Registered: 2006-05-09
Posts: 1,337

Re: Ruby: Problems with ruby-usb

I ended up using libusb instead.

Offline

Board footer

Powered by FluxBB