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.
John R Davis Jr has written a review on his recent experiences with PC-BSD:
I recently have been experimenting with various Distributions; CentOS, Fedora, Ubuntu, etc… I am constantly installing distribution after distribution in my attempt to find the “perfect” distro for me. I am actually contemplating reviewing, or at least attempting to, review every Linux/BSD distro out there but that’s a story for another time and place. So I fired up my Firefox while I was running Fedora 13 and went to Distrowatch.com. After looking at the top distributions over the past 30 days, and ruling out the usual suspects, I remembered that I had met some of the folks involved with PC-BSD at the 2009 Ohio Linux Fest. I remembered how PC-BSD, at the time, seemed to be a very interesting product and had a very courteous representation. I located PC-BSD (number 35) and went out on a limb and decided to attempt to install PC-BSD. I went to pcbsd.org, downloaded the .iso, burnt it to a disk using k3b, and installed it on my Lenovo ThinkPad L412 (review coming soon).
The first boot into the installer was painless and what I would consider fairly easy to navigate….
You can read the rest of the review on his blog.
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.
The feature story in this week’s edition of DistroWatch is a review, written by Jesse Smith, of the PC-BSD version of Bordeaux. From the review:
The Bordeaux Technology Group is a company specializing in compatibility software. Specifically, they work at making it as easy as possible to run Windows programs on the UNIX family of operating systems. Their Bordeaux tool is built to run on Linux, FreeBSD, Solaris, OpenIndiana and Mac OS X. Bordeaux is, at its heart, a customized build of Wine. They take a recent version of Wine, add some special tools and test their build for compatibility against a group of popular Windows software. They then sell this bundle (along with support) for about US$20 – 25, much less than the typical cost of a Windows license. A few weeks ago I had a chance to chat with Tom, a member of the Bordeaux Technology Group, and he was kind enough to give me a copy of Bordeaux (PC-BSD edition) to test-drive.
A PC-BSD user mentioned on IRC that the pcbsd.fr website was out of date–he noticed when he tried to download 8.1 and ended up with 7.1 instead.
It took a bit of time, but we found the current webmaster who has since updated the pcbsd.fr website. If you notice any content that was missed, please leave a comment so it can be fixed. Also, if you have some time and would like to assist with translating or proofing translations, let us know and we’ll put you in touch with the webmaster.
If so, we need your help!
We’ve setup a wiki area in order to collect information on missing wireless drivers or existing drivers with missing functionality. If you have already struggled with your wireless and know that your device is not supported, take a minute to make sure that it is listed in the appropriate table.
We also need your help spreading the word so that we can get as many drivers as possible created and fixed in time for 9.0. Please tweet, blog, FB, etc. so that other users and developers are aware of this resource. If you’re a developer working on the driver, please put a note indicating this in the comment section for the device/driver. You can also add text (or create a new table) when your driver is ready for testing–we’ll help you spread the word so that the driver can be tested by as many users as possible.