USB DEVICE NOT SEEN BY usb COMMAND

Hi guys,
I am trying to build a driver for a frame grabber: AVerTV USB2.0 PLUS
I just connected it to see what happens and the usb command doesn’t detect any device attached:

usb

USB 0 (UHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 1 (UHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 2 (UHCI) v1.10, v1.01 DDK, v1.01 HCD
USB 3 (EHCI) v1.10, v1.01 DDK, v1.01 HCD

Why is “io-usb” not talking to the device? Is it the drivers that are loaded that are the problem?

I only see UHCI and EHCI so I’m guessing I need to have the OHCI module loaded…how can I do that?

Cheers

Sundance,

‘slay io-usb’
‘io-usb -dehci -dohci -duhci’

That will start io-usb with all 3 modules.

This is probably how it’s being started now. My guess is you don’t see OHCI because the motherboard doesn’t support OHCI.

As for your AVerTV device, I am not sure why it’s not being detected by io-usb. You should first unload/stop your driver and just run io-usb, then plug in the device and run the usb command and see if it gets seen.

The ‘PLUS’ after the 2.0 makes me leery that it’s using some non-standard usb commands that QNX doesn’t support.

Tim

If you plug a mouse in the same USB port, does it get detected? If it doesnt than QNX for some reason cant deal with the USB controller. If it does detect the mouse but not the AverTV then something isn`t right with that device. Make sure you use “usb -v”

Hi guys,

Thanks for the prompt replies!

Tim: Only io-usb is running and when I call “usb -v” with the device plugged in, it still doesn’t detect anything. AverMedia are giving a Windows driver for their device so how non-standard could it be? I saw on one of the forums that OHCI is a Windows thing so that’s why I was asking about it…but now you tell me that my motherboard doesn’t support OHCI.

Mario: Yes mouses get detected, also mass storage devices etc…Yes I did use the “usb -v”. When you say something isn’t right with the device do you mean like Tim said: the device uses some non-standard USB commands?

So, if I want to build a driver for this device do I need first to be able to detect it with io-usb or not? Is it worth spending time trying to make my system detect it or I should just concentrate on writing my driver?

About writing my driver I have 2 major issues:

  1. I contacted AVerMedia and they aren’t willing to give any technical info on the device
  2. I don’t have the QNX DDK…without which as I understand I cannot do anything!

Can you guys give me any advice/help with these 2 issues? :slight_smile:

Cheers,
Alex

Well if AverMedia isn`t willing to give you any info you are pretty much screw. It also mean they are probably not following the Camera standard for USB which would explain why they have to provide a driver for Windows.

If you can`t get the QNX DDK that will be a major pain…

Maybe look at some other model for camera or maybe even Ethernet camera.

Try usb -vvvvv just in case usb -v only shows devices with standard class

Mario,
I tried usb -vvvvv but still the same.
Man, I am doing more detective work than programming. Writing drivers is so difficult because nobody gives you the necessary information.
Do you have a paid QNX license that gives you the DDK as well?

Thanx,
Alex

Sundance,

OHCI is an old standard for USB 1.1. That’s why I think most Motherboards no longer use/support it because everything is USB 2.0 these days. Since your camera says it is USB 2.0+ it should not be an issue for you.

If io-usb does not detect your device, you are out of luck. io-usb is the actual driver that reads/writes to the USB bus. The “driver” you write is really nothing more than something that registers with io-usb for insertion/removal callbacks and data transfers to/from the device. With regards to the data transfers your “driver” is responsible for formatting/interpreting the data.

I have the USB DDK. It consisted of some sample USB drivers (mouse, keyboard, printer), some documentation etc. As Mario said, it would be hard to do a driver without at least seeing one sample USB code to fill out the callbacks correctly.

So bottom line is you need io-usb to recognize the device. You might try fiddling with USB settings in the BIOS and see if that makes any difference.

Tim

The device is seen by the usb command in my QNX 6.5 on VMWare Player 3.1.0 (see Jpeg attachment below)

So the device USB class is 0xff (Vendor Specific) which confirms everything you guys said before…you need to load a vendor specific driver in order to talk to it. So now I need to build this “vendor specific” driver for QNX but I am stuck because of not having the DDK :frowning:(

Anyway, it’s not clear why the device wasn’t detected by the usb command before when I tried it on an Intel Pentium 4 machine running QNX Neutrino 6.3.2???

Cheers,
Alex

Tim,
I posted my last message before I saw yours. Now it is more clear to me what I am supposed to do. Thanks for explaining!

About the usb DDK, a guy told me this on the QNX community forum [his name is Mario Charest, I don’t know if it is the same as Mario on this thread] : “The DDK contains all the header file need to build the driver. Without that you would have write everything from scratch including handling the USB chipset…”. If it is just some examples like you said why is this DDK such a big deal and why don’t they make it available?

How could I have a look at those examples? Do you think you can give them to me?

Thanx,
Alex

Yes it`s the same Mario ;-)

Well 6.3.2 is old and it might explain why it didn`t see your device, might be a bug that was fix since then.

Giving you anything from the DDK would be illegal and I`m not into that. If this is for a school project try contacting QNX. If you either you pay or choose a different OS ;-)

Sundance,

In another thread Masochen is helping you get the DDK via a student license. So just wait until you get the DDK through official channels. Note that when I said the DDK is basically just some samples I meant that’s all you see from a user perspective. As Mario mentioned, you get header files and a library to link to that contains the io-usb calls (insertion/removal/data transfers).

In the meantime, your bigger problem is going to be that the company isn’t giving you any information on the protocol used to talk to the camera. Without that you’ll never be able to talk to the Camera itself in any meaningful way.

Tim

Oh man, I did’t want to get the DDK illegally, I was just confused about the whole thing and was just asking about the examples. I thought they weren’t such a big deal to get.
I apologise for the slightly confused behaviour but I get information from all these sources and it’s difficult to get something consistent in my head. But now I think I understand where I stand. Thanks to you guys: Mario, Masochen and Tim I can still hang on my project.

I gave Masochen my contact details and I am waiting to see if he could pass them forward.

Tim, about what you were saying is my biggest problem, I send another email to the technical support team of the company explaining to them the details of my project and the fact that it will benefit the research done here in the university. I hope to get a more cooperative answer next time.

Thanx a lot for all the help so far…I know you must be bored like hell from my posts but I am a complete newbie…

S

SunDance,

I've been writing drivers for QNX for various hardware for many years and I have lots of of experience dealing with hardware companies.   The type of response I get from hardware companies falls into just a few categories.
  1. You want to open the QNX market to our product at no cost to us, wow! Sign this NDA but here’s all our tech docs, and here’s the phone number of our hardware guy and while were at it, here’s some hardware to test with.

  2. Here’s the manual and/or Linux driver, don’t call us.

  3. Go away, we don’t want to talk to you.

You seem to be dealing with a company in category 3). There is very little point in pursuing this. I would just try to find a different product. You could get your driver 99% running but run into a problem, and you would be stuck.

I look at the spec and this isnt a WEB cam, its a TV tuner. I dont beleive TV tuner have any sorts of standard as far as USB is concerned. If the company isnt giving you any details maybe you could search for some linux source code to base your driver on.

Mitchell,
Unfortunately you were right, after I contacted them a second time they replied something like: "Please notice that this is a very old and phased out project. And our engineers don’t have any realted information regarding this device anymore. Thanks for your understanding. "
Yeah it made me laugh…!!!

I will take your advice Mario, and search for some Linux code but I think there is very little chance to find that…in which case I will tell my supervisor that I have exhausted my research capabilities and will need another device to start from. This is not very ok because they are already using this tuner to connect a monochrome DDC camera to a system that measures the melting angle of certain metals at very high temperatures, and they are interested in making that system work with QNX.

Anyway, thank you guys for all the info and help. I wouldn’t have gotten this far without you people with driver writing experience. This forum is really helpful!

Cheers,
Alex

Ouch I wouldn’t buy anything from that company if they loose stuff like that…

Hahah…I think they were just lying just to get rid of me… ;)