Hi,
I have successfully tested VirtualHere with one device on a Linux Mint 17 and I would like to run it on an already running server to share several USB devices (at least two right now). This server is using an Asterisk+PBX distro (based on CentOS v5.11 i686).
I can run the vhusbdx86 server and it starts, but then the clients cannot see any USB devices on it (?). I have tried writing explicitly "AllowedDevices" in the config.ini, but with no luck.
I am using server v2.0.6 and Windows client v2.7.0 (the latest as of today).
Any suggestions about this? this CentOS is using Kernel 2.6.18. If I do a lsusb then 5 USB devices are found. And a lspci shows an "USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)".
Many thanks for your help.
Sorry, the file is named
Sorry, the file is named "vhusbdi386" as it should be. My mistake while writing the filename.
Can you post the log when
Can you post the log when virtualhere starts up. The log is in syslog. That will show what devices it finds or errors it encounters...
Log posted
Hi Michael,
Here is /var/log/messages content (no syslog in CentOS, I think, I did not found appropriate syslog)
Feb 2 11:59:59 localhost vhusbdi386: >>> Starting v2.0.6 (Built: Jan 20 2015, 23:13:03)<<<
Feb 2 11:59:59 localhost vhusbdi386: Using default configuration /root/config.ini
Feb 2 11:59:59 localhost vhusbdi386: Serial:5404a61f2612
Feb 2 11:59:59 localhost vhusbdi386: Server licensed to=unlicensed max_devices=1
Feb 2 11:59:59 localhost vhusbdi386: Error 2 opening auto_probe to obtain the current value. Do you have usb support in your kernel?
Feb 2 11:59:59 localhost vhusbdi386: Using small URB's
Feb 2 11:59:59 localhost vhusbdi386: TCPServer bound to port 7575
Feb 2 11:59:59 localhost vhusbdi386: Error 13 opening device file '//sys/bus/usb/devices/2-1.3/uevent', Permission denied
Feb 2 11:59:59 localhost vhusbdi386: Error loading uevent for enumeration
Feb 2 11:59:59 localhost vhusbdi386: Error 13 opening device file '//sys/bus/usb/devices/2-1/uevent', Permission denied
Feb 2 11:59:59 localhost vhusbdi386: Error loading uevent for enumeration
Feb 2 11:59:59 localhost vhusbdi386: Error 13 opening device file '//sys/bus/usb/devices/1-1/uevent', Permission denied
Feb 2 11:59:59 localhost vhusbdi386: Error loading uevent for enumeration
Feb 2 11:59:59 localhost vhusbdi386: Error 13 opening device file '//sys/bus/usb/devices/usb2/uevent', Permission denied
Feb 2 11:59:59 localhost vhusbdi386: Error loading uevent for enumeration
Feb 2 11:59:59 localhost vhusbdi386: Error 13 opening device file '//sys/bus/usb/devices/usb1/uevent', Permission denied
Feb 2 11:59:59 localhost vhusbdi386: Error loading uevent for enumeration
Feb 2 12:00:00 localhost vhusbdi386: Callback: VirtualHere USB Sharing_vhusb_tcplocal Name Registered
Feb 2 12:00:03 localhost vhusbdi386: Error obtaining generated uuid
Feb 2 12:00:18 localhost vhusbdi386: Connection 1 successfully removed
Feb 2 12:00:18 localhost vhusbdi386: Error 13 opening auto_probe failed, Permission denied
Feb 2 12:00:18 localhost vhusbdi386: >>> Shutdown <<<
I see that uevent in those folders has "200" permissions (I mean, --w-------).
Thanks
It needs to be able to read
It needs to be able to read those files it says, so it must have r in the permissions. Im thinking your kernel may be too ancient...
Workaround? test?
Hi Michael,
Ok, can I try something? some workaround or test? :-)
I have tested with a chmod 777 to the uevent file (quick & dirty test) and here is the result:
Feb 2 12:53:29 localhost vhusbdi386: Error 5 loading device file '//sys/bus/usb/devices/2-1.3/uevent', I/O error
Thank you
Old Kernel...
Hi Michael,
I have read in https://www.kernel.org/doc/pending/hotplug.txt that:
- Note that in kernel versions 2.6.24 and newer, "uevent" is readable. Reading from uevent provides the set of "extra" variables associated with this event.
So as I have a 2.6.18 kernel, the uevent file is not readable. The Linux Mint I tested before has a 3.13 kernel, so its uevent can be read.
I BTW, I don't know what vhusbd is reading from uevent, but in the old kernel there are some files (like idProduct, idVendor) that aren't in the new one. Maybe they have the required information what it needs to run?
For instance, in the Linux Mint PC, cat uevent shows for a webcam device:
DEVTYPE=usb_interface
DRIVER=uvcvideo
PRODUCT=13d3/5111/917
TYPE=239/2/1
INTERFACE=14/1/0
MODALIAS=usb:v13D3p5111d0917dcEFdsc02dp01ic0Eisc01ip00in00
Where:
PRODUCT is idVendor/idProduct/bcdDevice (all these files are accessible under old kernel)
TYPE is bDeviceClass/bDeviceSubClass/bDeviceProtocol (all these files are accessible under old kernel)
If this is the information vhusbd is looking for, maybe it can run on those old kernels too... (?). Worth a try?
Many thanks
vhusbd needs to read uevent
vhusbd needs to read uevent because it needs to know what type of device it is so it can ignore it if required. So looks like the minimum version of linux would be the one where uevent is readable...
Type and Product readable in older kernels (but not from uevent)
Hi Michael,
If I am right, you can read these data from the idVendor, idProduct, bcdDevice, bDeviceClass, bDeviceSubClass and bDeviceProtocol files that are present (and readable) in older kernels. In newer kernels those files does not exist (and so I guess that all the data is inside the uevent virtual file).
I can make some tests if you want, just tell me what you want to read.
Regards :-)
Yeah but i need also Major
Yeah but i need also Major/Minor and also uuid from the kernel, i think its too much work to get it working for this old kernel...
Ok, I see
Hi Michael,
Ok, I see your point. I will try to upgrade that old Kernel at least to 2.6.24 and repeat the tests. I will keep you informed.
Best regards