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.
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.
If you’re using PC-BSD 8.1 and have a dialup or DSL modem, please review the Advanced Network Settings and PPPoE page of the PC-BSD Handbook as I don’t have access to a modem to test the settings. Please let us know if the device names are correct, if any required fields are missing, or if any of the text is unclear or needs more explanation. You can leave a comment here or make a wiki account and either start a discussion on the page’s Discussion tab or edit the page directly (we’ll see your edits).
We’ve discovered a bug that prevents a newly installed system from booting if you uncheck both the “Install PC-BSD bootloader” and the “Partition with GPT for full disk install” check boxes in the Disk selection screen of the alpha snapshot. The error will not occur if either (or both) of these boxes are checked. This bug has been fixed for the next alpha snapshot; for now, check at least one of those boxes if you are testing the current snapshot.
We’re still in the process of porting the LXDE login manager which will be used in 9.0. Earlier versions of PC-BSD used KDE’s login manager which defaults to logging into KDE and also requires a lot of dependencies. LXDE’s version is much lighter weight, meaning that we will be able to provide CD versions of PC-BSD (currently, the dependencies required by KDM make the ISO too large to fit on a CD).
If you are testing alternate desktop environments using the current alpha snapshot, it still uses KDM. This means that you should not choose “auto-login” during the installation, or else KDM will attempt to log you into a non-existing KDE installation. In other words, your desktop will look pretty lousy. However, you should still be able to logout, click the session manager icon at the login screen (circle with lines through it located in lower left corner), select the desired window manager, and input your user account’s password.
We’ll also be clarifying the layout of the System Selection screen in the installer. MythTV isn’t a desktop environment, meaning you’ll get an error if you deselect everything else. If you want to give MythTV a go, select it as well as one of the desktops, such as KDE or GNOME.
If you find any bugs in the desktop environments, don’t forget to post them to the appropriate desktop forum.