PWC (Logitech WebCam) Support


Forum: Other Help Topics
Topic: PWC (Logitech WebCam) Support
started by: latta46

Posted by latta46 on Nov. 22 2006,19:09
I am new to DSL and am planning to use DSL3.0 as the basis of a LAMP stack. I have everything working except the drivers portion. I am planning to use the parallel port for some hardware control, and a Logitech 4000 USB webcam for monitoring through "motion." The camera will be stationary mounted.

Once I have this completed, I intend to upload the drivers for use by the DSL Users Group, as well as write a book covering the procedures and process' involved.

I am reading the Kernel Modules HowTo documentation, but need to know the specifics of setting up DSL for development activities and recommndations for file locations, etc. How do I set up the DSL system so that I can compile drivers (kernel and userspace) from local sources (*.tar.gz).

Mitch :-)

Posted by Winter Knight on Nov. 28 2006,15:33
You will almost definintely need gcc1.dsl from the repositories. Or gcc1-with-libs.dsl. Most sources you download on the internet will have instructions on how to compile, and these instructions will assume that you have gcc installed.

The following may also help:
gnu-utils.unc or gnu-utils.dsl (recommended)
kernelsource.dsl (most drivers will require this to compile)
linux-kernel-headers.dsl (also a good idea for drivers)
libc6.dsl
libc6-dev.dsl

These extensions can be found in system repository. Some of them may have newer versions in testing. I've included them here in order of likeliness that you will need them. Good luck.

Also, if you need help installing extensions, there are instructions in the wiki.

Posted by latta46 on Nov. 29 2006,18:38
Hi Winter Knight;

I did have the recommended files downloaded, and tested them previous to the original posting.  I do appreciate the insite given as to the use of the header and the lib6 files, as I was not sure whether these would interfere with the files in the kernel source tree install.

I guess I should have been more specific in my questions. I had done some C coding, but it's been about 25 years ago. I now have a IO port driver *.c file, but when I do compile it as a kernel module, I need to find an acceptable location for my persistent object file(s) and scripts to reside, as DSL "Frugal" has modified the file structure enough that I am having trouble deciding where object file(s) and scripts should reside on the final system.

I am toying with /mount/myfiles/ or /home/dsl. I would have to modify the path statement for the first, and the later will become cluttered with application scripts and driver files.

Are there better locations for these file types?

Mitch
:)

Posted by Winter Knight on Nov. 30 2006,15:55
Quote (latta46 @ Nov. 29 2006,10:38)
I do appreciate the insite given as to the use of the header and the lib6 files, as I was not sure whether these would interfere with the files in the kernel source tree install.

To be honest, I'm not positive they won't. I suspected beforehand that kernel-headers and kernel-sources might overlap. I'm not sure whether they do or not, but I don't think it would cause any problems. I think libc6 is somewhat unrelated, but it's helped me compile some sources.

As for a persistent place to put your files, I think you might not understand the idea behind frugal or myDSL. Frugal resets itself every boot. Only home and opt can be saved. If you want to save kernel modules, we usually put them in .unc files. You can also put them in .dsl, but I think .dsl is becoming obsoleted. It also requires more RAM.

Basically, you would be putting your kernel modules in the regular place, but instead of the regular place, you would put it in a file which is designed to place it in it's regular place.

The wiki has information on using and creating myDSL extensions. I would look there if you need to learn how to create them. That way, you can share your work with the rest of us, too.

I might be a little confused. Did I misunderstand something?

Posted by ^thehatsrule^ on Nov. 30 2006,17:31
You should be able to just use kernel-sources.dsl - which isn't the kernel sources at all, but the correct kernel headers for 2.4.26.  kernel-headers.dsl is the wrong version for DSL, though it's probably not much different.

I've haven't yet needed to load libc6* - dsl contains some version of glibc, and I believe one of the gcc* packages provide the dev stuff.

Posted by latta46 on Nov. 30 2006,19:45
Howdy;

I loaded all of the recommended files, and after some debugging of my *.c module source, the thing compiled, and I am able to insert it without complaint!! All of the files that it is supposed to create and install are there, with the correct permissions!!

The next thing that I need to accomplish is to finish the hardware prototype that I had to quit work on last April (the real world was knocking), so that I can test it's operation with the hardware.

I was aware that /home/dsl could be backed up automatically (which I do), but was unaware that the whole /home subdirectory was automatically saved, or of /opt being saved by default.

As to creating the *.dsl or *.unc, I will have to check the WIKI, as earlier last month, I did review the information there, and found two articles; "How To Create A Simple MyDSL Application," and "Creating A Make MyDSL CD". Are these the subject that you have recommended?

Thanks again for all of your help

Mitch
:)

Posted by roberts on Nov. 30 2006,23:06
All of /home and all of /opt are not automatically included in the backup. See the contents of .filetool.lst for that which is in the backup and .xfiletool.lst for the exculsions.

Some user use a hybrid install where /home/dsl and /opt are mounted on actual physcial devices. See the boot codes for this type of install.

I have also created a modules directory system much like the mydsl directory so that if you only have modules that need to be loaded at boot time you can do this without having to create a formal extension.
Just place the modules directory at level 1 for any persistent store and use the boot code modules or specify it with modules=hdxy
The modules boot option does insmods so if order/dependenacy is important you may need to prefix them so they load in the proper order.

Alternately, again, if you are only need modules loaded, and you are using a newer DSL with unionfs then the use ot /opt/bootlocal.sh could copy the modules to the proper /lib/modules directory followed by depmod -a, followed by a more normal modprobe. In fact this is how I test new modules for frugal live CD.

Much flexibility with regard to loading additional modules.

Posted by latta46 on Dec. 02 2006,20:33
Howdy;

After reading the Kernel Module HowTo, and the recommendations on the DSL Wiki, I think that the best method is to KISS it (Keep It Simple Stupid) and utilize the bootlocal.sh and .xinirtrc methods therein outlined for my application. I should also be able to place additional wrapper files in the /mydsl subdirectory, to get things fired up.

Since DSL is intrisicly small, and therefore suitable for dedicated application usage (my intent), some compromises are in order. System adminitration should be kept as simple and as straightforward as possible, as the user will be the person doing the maintenance.

For my application, I only have two or three *.o device drivers to load, that I could put in subdirectories off of /myfiles (which is located on hda2 (my persistent storage)), along with their docs, sources, etc. I do not plan to be unmounting the modules once installed, as I have half a gig of ram on the target system. Once I have the application fully functional, this might be downsized. It will depend on the size of the database files generated by the application.

Most of the application frontend is planned to be Dillo, Monkey, PHP, SQLite, some bash files, and possibly some perl or TCL/TK. I intend to issue the application with a book and accompanying CD-ROM.

The only real question that I now have is, how to package up the *.o, *.c, and the usage docs (txt or PDF), including schematics for the IO module hardware (where required), for each of the new device drivers, that I wish to share on the DSL repository. As you can see, some tailoring of a standard *.dsl, (etc.) install is required.

Mitch
:)

Posted by latta46 on Dec. 09 2006,20:27
Howdy;

I have my paraport_IO hardware up and running, and have tested it against the device driver. It all works as planned.

Mitch :-)

Posted by latta46 on Jan. 24 2007,18:02
I now have the parallel port and IRQ7 drivers and hardware prototyped and tested. I went with the plan to keep it simple and just added a couple of lines to the bootlocal.sh file, and this worked "right out of the box".

I will be putting together the documentation package this spring, then on to the Phillips 4000 webcam.

I am also trying to get my Fuji Finepix 1300 working with DSL 30. Both USBview and lsusb find the thing, but I cannot get it to create a mount point. Ths is not unique to DSL, as I need to manually make an entry in the fstab for it as well as a mount point. It is recognized as a usb 1.0 mass stroage device at /dev/sda1 and mounted as mnt/flash.

The problem is, that in order to get it to work on DSL, I would need a peresistent fstab and a persistent mount point for it, as the device only works on the other system that I have tried it on (Debian Sarge), if you boot the system with the camera powered up and plugged into the usb port, with the appropriate entries in fstab and an existing mount point.

I am toying with the idea of editing the fstab, and mnt subdirectory, and then saving these with lines added to the filetool.lst file.

Any suggestions would be appreciated.

Mitch :-)

Posted by ^thehatsrule^ on Jan. 24 2007,23:53
Quote
I am also trying to get my Fuji Finepix 1300 working with DSL 30. Both USBview and lsusb find the thing, but I cannot get it to create a mount point. Ths is not unique to DSL, as I need to manually make an entry in the fstab for it as well as a mount point. It is recognized as a usb 1.0 mass stroage device at /dev/sda1 and mounted as mnt/flash.
Wouldn't dsl on start do that for you, the mountpoint should be /mnt/sda1

If not, It'll be probably easier to just use the mount command manually than specifying using a persistent fstab (or just add a line to it), since you'll still have hardware detection for your other drives. (if you don't agree, you can boot with nofstab).

Posted by latta46 on Feb. 08 2007,03:19
I tried to install the Fuji camera on another machine with a Debian Sarge install, and had nearly the same results. However, this time, the thing did mount, as again shown by USBview. By accident, I mounted one of the flash drives, and there it was! This encouraged me enough to try this on DSL 3.0 again. Still no joy. I then added a mount point to the bootlocal.sh script, and tried again. The camera mounted to this mount point (sda1)!

The key points to remember are:
1. have a mount point defined, and
2. have the camera in transmit mode and fired up before the USB scan during OS boot time.

This seems to work no matter the distro (Linux).

Mitch :-)

Posted by lucky13 on Feb. 08 2007,20:00
Quote (latta46 @ Feb. 07 2007,22:19)
I tried to install the Fuji camera on another machine with a Debian Sarge install, and had nearly the same results. However, this time, the thing did mount, as again shown by USBview.


That's not USBview's function. USBview shows you everything plugged in and detectable in your USB ports irrespective of whether it's mounted. As long as the vendor and item info is identifiable, something will show up in USBview without it being mounted.

Quote
By accident, I mounted one of the flash drives, and there it was! This encouraged me enough to try this on DSL 3.0 again. Still no joy. I then added a mount point to the bootlocal.sh script, and tried again. The camera mounted to this mount point (sda1)!


Actually, hotplug should (and does) set mount points for USB devices when they're plugged in; /mnt/sda1 is the first default (followed by /mnt/sdb1, etc.). Accordingly, you could run into some problems if you intend to simply set mount points like /mnt/camera and /mnt/thumbdrive and /mnt/mp3player because hotplug sets mount points sequentially according to the order you plug in any kind of USB media -- so if you inserted your thumbdrive or any other USB media like an mp3player before your camera, the thumbdrive or other device would mount at /mnt/camera if /mnt/camera was set to /dev/sda, etc. You'll have to edit usb.usermap to get around that. You can find guides through Google. < Here's one > that discusses the issue for kernel 2.4 (2.6 is easier to "fix" in this regard).

Quote
The key points to remember are:
1. have a mount point defined, and
2. have the camera in transmit mode and fired up before the USB scan during OS boot time.  


Hotplug should set a mount point for you even if you don't pre-set one. Like I wrote above, you'll have to make your mount points specific via an edited usb.usermap if you intend to use various USB devices unless you plug them in in a specific sequence according to your pre-set mount points. If the cam is the only one you'll use, /mnt/sda1 will suffice (but hotplug should already do that for you).

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.