Webcamd is a port of the Video4Linux USB webcam and DVB drivers into userspace. It’s been available as a FreeBSD port since January and comes installed with PC-BSD. When Hans Petter Selasky ported these drivers he knew there “were a lot of them, probably many hundreds”. However, it was hard to quantify exactly how many existed and exactly what hardware was supported as this information is scattered throughout thousands of src files and dozens of websites and wiki pages (possibly containing incomplete or outdated information).
It took a while to research what hardware is (in theory) supported by the various drivers; in doing so, I ended up with a spreadsheet that currently contains 1396 entries. That information was used to create 46 man pages (45 driver man pages and 1 for webcamd itself) which have now been added to the port. If you already have webcamd installed and are comfortable updating FreeBSD ports, you can upgrade to the latest version of webcamd. If you’re using PC-BSD, you can wait for next month’s 8.2 release as the latest version of webcamd will be installed with it. Or, if you’re impatient and want to check out the man pages now, you can uninstall the current version and install the new version as the superuser:
pkg_delete –x webcamd && pkg_add –rf webcamd
Once you have the latest version of webcamd, try these commands to see which man pages interest you:
apropos webcamd | more
The driver man pages contain the VendorID:ProductIDs of previously documented known devices. To determine the ID of a device, use one of the following commands on either a FreeBSD or PC-BSD system:
usbconfig dump_all_config_desc | grep vendor (if the device is an inserted USB device)
Here is an example for when I insert a USB camera:
usbconfig dump_all_config_desc | grep vendor
ugen3.3: product 0x0991 vendor 0x046d at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
I could then quickly check to see if that ID is known to be supported from the webcamd man pages:
gzcat * | grep “046d:0991″
Since I just get my prompt back, support for this particular device isn’t currently documented, so I’ll check just the VendorID:
gzcat * | grep “046d”
This will provide an ordered list of all known to be working Logitech products. From the list, the last documented ID is 046d:08dd.
I know that the information from existing resources is out-of-date. You can help to improve the man pages by letting us know the VendorID:ProductID of any cameras that work for you and which currently aren’t listed in the man pages. Also, if you come across an ID that is supposed to work but does not, please send us the details so we can update that information in the man pages.
For now, leave a comment or send me an email with the information about the device. If it turns out to be useful to do so, we’ll throw up a wiki page where needed changes can be posted and addressed.
Kris Moore has announced that the first snapshot for 8.2 is available for testing:
The first snapshot of 8-STABLE, which will eventually become 8.2 has now been uploaded to our FTP server.
This snapshot is based upon FreeBSD 8.2-PRERELEASE, and includes KDE 4.5.3. It also contains a number of bugfixes backported from the 9 series, specifically to the installer and network management GUI. You can review the backport commits on the 8.2 TODO list.
Using the “GPT” option during installation will give an error at boot, which I’m currently working on fixing.
Please feel free to give the snapshot a whirl, and report any bugs you find back to the testing list. Instructions for becoming a good beta tester can be found in this section of the Handbook.
Kris Moore has announced the availability of the next 9.0 testing snapshot:
A new snapshot of 9-CURRENT has just been released, and is now available for download from our FTP server.
Major changes since the last snapshot:
* Fixed bug relating to booting without using the “Stamp MBR” option
* Added additional window-managers to “unsupported” category
* Added ability to enable / disable the lagg network device
* Switched to the “GDM” desktop login manager
* Added ability to add/remove/create repositories of PBIs via pbi_* commands
* Added new pbid daemon, which tracks repository indexes / manages file merging in the background automatically.
* Numerous other bugfixes across the board.
For a list of major differences between 8.x and 9, take a look at our previous announcement.
As usual, please report bugs found back to the mailing list so we can work on fixing them. The more details the better. The Handbook also has instructions for how to become a good beta tester.
A new snapshot for 8-STABLE is in the works, which will become version 8.2 early next year. We’ll make an announcement when that snapshot is online and available for testing.
Does your wireless device use the iwi(4) driver? Bernhard Schmidt is working on some patches to resolve some of the known issues with this driver and is looking for testers. If you’re interested in helping out, follow the instructions on the iwi wiki. If you need help getting started, you’re always welcome to join us on #pcbsd on IRC freenode. We can help you write up your bug report or help you review your findings before sending them off to Bernhard.
The ndisgen(8) utility can be used to convert an existing Windows network driver to a FreeBSD kernel loadable module. This can allow you to access network devices for which a FreeBSD driver doesn’t currently exist (typically wireless drivers). The utility has been around for a while and typically works well on 32 bit systems. However, users on 64 bit systems often experience kernel panics or drivers that load but don’t do anything.
Paul Mahol is working on improvements to ndisgen and is looking for testers so that it can be tested on as much hardware as possible before the improvements are committed to the FreeBSD repository. If you have a network device without a FreeBSD driver, you can help (and possibly get yourself a working driver!) by doing the following:
As the superuser, use the download link on the NDISulator page to download either the .tgz or .zip file.
Update: on 9.0, use this download link instead.
Uncompress that file to /tmp, then:
Download an XP or Windows 2003 driver for your device and make note of the locations of the .inf and .sys files that came with the download. Make sure you download and use the files that match your architecture (32 or 64 bit). Run the interactive script and input the paths to those files when prompted:
Once the conversion is complete, the script will indicate the name of the kernel module (it will end in a .ko extension) which was created in your current directory. After exiting the script, try to load the driver:
cp driver_name.ko /boot/modules
If all went well, the network device should now be accessible using ndis(4) as described in the FreeBSD Handbook. When you are finished, don’t forget to:
If things went well, take a moment to double-check that your device is mentioned in Table 1 of the Wireless Testing page and add it if it is not.
If all did not go well, head over to the Ndisulator Wiki. Take a minute to read its content (it’s short and sweet), especially the Making useful bug reports page. If you don’t have a github login, you can create one here so that you can submit your bug report here.
FreeBSD 8.2 is scheduled to be released towards the end of January, meaning PC-BSD 8.2 will be released shortly thereafter. We’ve started a TODO list for PC-BSD 8.2 and expect this release to be mostly bug fixes and the most recent versions of KDE and the other software that comes with the PC-BSD operating system. Note that most of the new features coming in 9.0 (e.g. multiple desktops, new control panel, new PBI format, etc.) will not be in 8.2. However, Kris will backport the bug fixes that have been made to the System Network Configuration tool and the Disk partitioning screen of the installer so users can take advantage of those changes in 8.2.
There are several ways you can help with this release. We expect to have beta snapshots available in early December and will announce them when they are ready for download. If you have a spare system or virtual machine, install a beta version and let us know if you come across any problems. We’ll have full instructions for reporting bugs when the beta releases are announced.
Another way you can help is with the Handbook. Starting in 8.2, we plan to include a “release” of the Handbook with the operating system. We also hope to start on translated versions. While work has been steady on the Handbook, there are still many sections that need to be written and proofed for readability and usability. From the Handbook’s preface:
This is the wiki area for the collaborative editing of the PC-BSD Users Handbook. The Handbook grows into a useful resource when users (meaning you!) contribute to it. You don’t have to write large sections of the Handbook in order to be a contributor. You also don’t need to have a lot of time on your hands. You simply have to create a login account in order to assist with any of the following tasks:
* proofread existing pages and fix any typos, grammos, or unclearly worded sections.
* add to sections containing missing, outdated, or incomplete content.
* update any screenshots that are out of date.
* every page has a Discussion tab. You can use this if you would like to suggest further information that should appear in that section of the Handbook.
* create a new section for content that is not yet covered in the Handbook. If you are not sure where to do this, ask on a semi-related Discussion tab.
We are emailed whenever edits are made and will contact you for clarification if an edit is unclear. You can also be notified when specified pages are edited–simply click the “my preferences” or “my watchlist” links whenever you are logged into the wiki.
Beginning with PC-BSD 8.2, the contents of the wiki will be generated into a “released” version of the Handbook that will be included with that PC-BSD release as well as made available in HTML and PDF formats. Once the Handbook is released, the wiki version will be updated to include changes being made to the next version of PC-BSD. This means that, over time, separate Handbooks will be available for each release. For those familiar with FreeBSD terminology, consider the wiki version of the Handbook to be “CURRENT” or “HEAD”.
Let us know if you are interested in translating the Handbook. We will “freeze” the Handbook during the RC phase of a release to give time for translation work.