Version 43 (modified by 15 years ago) ( diff ) | ,
---|
This page tries to list all the legal and technical implications of distributing the different WiFi firmwares for use on Haiku.
While a nice source of info, it is not intended as a user install guide but for Haiku developers and contributors to bring WiFi on Haiku while fully complying to the various vendor licenses and copyrights.
(author note: 2009-12-5, in construction, please refine/fix/complete)
General
Should we ask vendors for agreements when necessary? (cf. Old OSNews Article) todo: find the contact points
Progress on getting Intel contact points:
- 09/12/05 umccullough: bosii, i just emailed freebsd's "Vendor relations" group to inquire about Intel contacts.
- 09/12/15 umccullough: bosii, i never heard back from the freebsd guys, so I'll probably try to contact intel directly next
Intel
Official Downloads: http://www.intellinuxwireless.org/?n=downloads&f=ucodes_3945
Official License FAQ: http://www.intellinuxwireless.org/?n=FAQ&s=license
Recommended firmware versions
This Versions are the minimal required ones. So higher Versions could work, too. These minimal versions are taken from the FreeBSD 8 Makefiles (see links).
2100 -> 1.3 http://svn.freebsd.org/viewvc/base/release/8.0.0/sys/modules/ipwfw/ipw_bss/Makefile?revision=199625&view=markup
2200/2945 -> 3.0 http://svn.freebsd.org/viewvc/base/release/8.0.0/sys/modules/iwifw/iwi_bss/Makefile?revision=199625&view=markup
3945 -> 2.14.4 http://svn.freebsd.org/viewvc/base/release/8.0.0/sys/modules/wpifw/Makefile?revision=199625&view=markup
4965 -> 4.44.17 http://svn.freebsd.org/viewvc/base/release/8.0.0/sys/modules/iwnfw/Makefile?revision=199625&view=markup
ipw3945
2.14.4 Download: http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-2.14.4.tgz
2.14.4 Licence: http://www.intellinuxwireless.org/tar.php?p=iwlwifi&f=LICENSE.iwlwifi-3945-ucode&a=iwlwifi-3945-ucode-2.14.4.tgz
2.14.4 Readme: http://www.intellinuxwireless.org/tar.php?p=iwlwifi&f=README.iwlwifi-3945-ucode&a=iwlwifi-3945-ucode-2.14.4.tgz
-> Distribution method: seems possible with the image.
ipw4965
4.44.17 Download http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-4.44.17.tgz
4.44.17 Licence http://www.intellinuxwireless.org/tar.php?p=iwlwifi&f=README.iwlwifi-4965-ucode&a=iwlwifi-4965-ucode-4.44.17.tgz
4.44.17 Readme http://www.intellinuxwireless.org/tar.php?p=iwlwifi&f=LICENSE.iwlwifi-4965-ucode&a=iwlwifi-4965-ucode-4.44.17.tgz
-> Distribution method:
ipw2100
License & Download: http://ipw2100.sourceforge.net/firmware.php?fid=4
The download link is at the bottom, in "I Agree"
-> Distribution method: Distribution method: ipw2xxx firmware ships with Haiku, but gets only installed when user had chance to read license. And then we can argue about how this chance should look like... ? matt: suggests distributing original archive & attached script. to remove all need for an active network connection: the script can have the license embedded, which is then cat'd to a temporary file when the user wants to view the license.
ipw2200/2945
License: http://www.intellinuxwireless.org/LICENSE.ipw2200-fw
License & Download: http://ipw2200.sourceforge.net/firmware.php?fid=7
The download link is at the bottom, in "I Agree"
-> Distribution method: the same as ipw2100
References:
http://www.intellinuxwireless.org/?n=Info
http://www.freebsd.org/cgi/man.cgi?query=iwi&apropos=0&sektion=0&manpath=FreeBSD+8.0-RELEASE&format=html
Broadcom
Recommended firmware versions
The FreeBSD 8 driver only supports firmwares of version 3 (see link below). There is only one version 3 firmware available.
- b43xx -> 3.130.20.0 http://fxr.watson.org/fxr/source/dev/bwi/if_bwi.c?v=FREEBSD8#L382 (BWI_FW_VERSION3)
b43xx
- http://linuxwireless.org/en/users/Drivers/b43#device_firmware
- from the above link, "Please note that the firmware from the binary drivers is Copyrighted by Broadcom Corporation and must not be redistributed." and "Because the proprietary driver containing the firmware cannot be included in the distribution, you will need a working connection to the Internet."
- A required tool, 'b43-fwcutter' is GNU GPL V2. HaikuPorts has ported b43-fwcutter
- One of the suggested driver downloads, broadcom-wl-4.80.53.0.tar.bz2 contains a file 'WHERE_FROM' with the contents "From the Linksys WRT350N v1.03.2 GPL release"
- At least some distributions explicitly request acknowledgment from the end user.
-> Distribution method: post install unmodified download + post download processing + license warning ?
Marvell
88w8335
- Requires a firmware, which is not publicly available, and therefor cannot be distributed with Haiku.
- The firmware files malo8335-h and malo8335-m must reside in /system/data/firmware/marvell88w8335
-> Distribution method: the same as b43xx
88w8363
- Firmware allows distribution with Haiku. Colin recommends zipping up the firmware and the respective license in a archive called marvell88w8363.zip.
- The firmware would be named as needed by the driver already -> mw88W8363fw, mwlboot.
- The archive would be stored under data/system/data/firmware/ in the repository.
- Unzipped archive content would be put into /system/data/firmware/marvell88w8363/
-> Distribution method: with the image
Ralink Technology
RT2561, RT2561S, RT2661
- Get the firmware from the Ralink Technology homepage -> Software -> Linux -> Firmware RT2501(RT2561/RT2661)
- Extract the archive and rename the firmware binaries to rt2561fw, rt2561sfw and rt2661fw.
- Zip renamed firmwares and license into ralinkwifi.zip.
- Haiku's repository contains the archive in data/system/data/firmware/
- Unzipped archive content would be put into /system/data/firmware/ralinkwifi/
-> Distribution method: with the image
Firmware Distribution methods
Preparation for Mailinglist discussion
- Firmware distribution groups are:
- Distribution possible, User *must* take notice of license
- iprowifi2100
- iprowifi2200
- Distribution possible
- iprowifi3945
- iprowifi4965
- marvell88w8363
- ralinkwifi
- Distribution impossible
- broadcom43xx
- marvel88w8335
- Distribution possible, User *must* take notice of license
Common license rules
- Putting license into HAIKU_TOP/data/system/data/licenses/
- Putting license in firmware directory /system/data/firmware/<driver name>/
- Adding entry in AboutSystem
Common firmware rules
- For every driver there is a seperate firmware in the repository in HAIKU_TOP/data/system/data/firmware/<driver-name>.zip
- Firmware archive is unzipped into /system/data/firmware/<driver-name>
- Firmware file permissions must be set to read-only, as they are loaded directly into kernel space (having future multi-user feature in mind).
Proposed handling of group 1
- Main issue is that the license requires that end users are taking notice of the license before using the firmware.
- Colin, mmadia discussed the topic on distributing the firmware along with Haiku.
- Based on the 3 bullets we are consensing that distributing and using the firmware out of the box is feasible.
- But installing and using it right during boot is problematic. The user *must* have a chance reading the license first.
- For the Haiku-CD-installation scenario this could be solved be adding the license to the Haiku Installer.
- However, when used as a Live-CD/-USB where there is no need for running the installer first, the problem continues to exist.
- Proposed solution: Shipping the firmware with Haiku along with a script, allowing the user to install the firmware when he wants to. The installer script enforces license conformance, then. Note: Read "One to rule them all" section down the page.
- Though one could read the license in a way, that even distributing the firmware would require the user to consent to it before downloading/buying Haiku. This is why umccullough started getting in contact with Intel itself to get official distribution permission, with no reaction yet. Nonetheless colin sees Haiku well prepared, for the case Intel declines, because it would be easy then to remove the firmware and modify the installer script to download the firmware.
Proposed handling of group 2
- Just stick to common license rules and every thing is fine.
Proposed handling of group 3
- Main issue is that redistribution is forbidden. The proposed solution is to download and install the firmware once Haiku has booted. A script automating this process will be included in Haiku.
- TODO: How to trigger execution of this script? manual vs. automatic triggering