2 FreeBSD* Driver for Intel Network Connection
3 =============================================
12 - Identifying Your Adapter
13 - Building and Installation
14 - Speed and Duplex Configuration
15 - Additional Configurations
24 This file describes the FreeBSD* driver for Intel Network Connection.
25 This driver has been developed for use with FreeBSD, Release 7.x.
27 For questions related to hardware requirements, refer to the documentation
28 supplied with your Gigabit adapter. All hardware requirements listed
29 apply to use with FreeBSD.
32 Identifying Your Adapter
33 ========================
35 For information on how to identify your adapter, go to the Adapter &
38 http://support.intel.com/support/network/sb/cs-012904.htm
41 For the latest Intel network drivers for FreeBSD, see:
43 http://downloadfinder.intel.com/scripts-df-external/support_intel.aspx
46 NOTE: Mobile adapters are not fully supported.
47 NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100
50 Building and Installation
51 =========================
53 NOTE: The driver can be installed as a dynamic loadable kernel module or
54 compiled into the kernel. You must have kernel sources installed in
55 order to compile the driver module.
57 In the instructions below, x.x.x is the driver version as indicated in the
58 name of the driver tar file.
60 1. Move the base driver tar file to the directory of your choice. For
61 example, use /home/username/em or /usr/local/src/em.
63 2. Untar/unzip the archive:
65 tar xzvf em-x.x.x.tar.gz
67 This will create an em-x.x.x directory.
69 3. To create a loadable module, perform the following steps.
70 NOTE: To compile the driver into the kernel, go directly to step 4.
72 a. To compile the module
77 b. To install the compiled module to the system directory:
81 c. If you want the driver to load automatically when the system is booted:
83 1. Edit /boot/loader.conf, and add the following line:
87 4. To compile the driver into the kernel, enter:
90 cp *.[ch] /usr/src/sys/dev/em
92 Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
93 /usr/src/sys/i386/conf, and ensure the following line is present:
97 Compile and install the kernel. The system must be rebooted for the
98 kernel updates to take effect. For additional information on compiling
99 the kernel, consult the FreeBSD operating system documentation.
101 5. To assign an IP address to the interface, enter the following:
103 ifconfig em<interface_num> <IP_address>
105 6. Verify that the interface works. Enter the following, where <IP_address>
106 is the IP address for another machine on the same subnet as the interface
107 that is being tested:
111 7. To configure the IP address to remain after reboot, edit /etc/rc.conf,
112 and create the appropriate ifconfig_em<interface_num>entry:
114 ifconfig_em<interface_num>="<ifconfig_settings>"
118 ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"
120 NOTE: For assistance, see the ifconfig man page.
123 Speed and Duplex Configuration
124 ==============================
126 By default, the adapter auto-negotiates the speed and duplex of the
127 connection. If there is a specific need, the ifconfig utility can be used to
128 configure the speed and duplex settings on the adapter. Example usage:
130 ifconfig em<interface_num> <IP_address> media 100baseTX mediaopt
133 NOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is
134 not specified and you are not running at gigabit speed, the driver
135 defaults to half-duplex.
137 If the interface is currently forced to 100 full duplex, in order to change
138 to half duplex you must use this command:
140 ifconfig em<interface_num> <IP_address> media 100baseTX -mediaopt
144 This driver supports the following media type options:
146 autoselect - Enables auto-negotiation for speed and duplex.
148 10baseT/UTP - Sets speed to 10 Mbps. Use the ifconfig mediaopt
149 option to select full-duplex mode.
151 100baseTX - Sets speed to 100 Mbps. Use the ifconfig mediaopt
152 option to select full-duplex mode.
154 1000baseTX - Sets speed to 1000 Mbps. In this case, the driver
155 supports only full-duplex mode.
157 1000baseSX - Sets speed to 1000 Mbps. In this case, the driver
158 supports only full-duplex mode.
160 For more information on the ifconfig utility, see the ifconfig man page.
163 Additional Configurations
164 =========================
166 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
167 all but the 82542-based adapters. For specific adapters, refer to the
168 Identifying Your Adapter section.
172 To enable Jumbo Frames, use the ifconfig utility to set the Maximum
173 Transport Unit (MTU) frame size above its default of 1500 bytes.
175 The Jumbo Frames MTU range for Intel Adapters is 1500 to 16110. To modify
176 the setting, enter the following:
178 ifconfig em<interface_num> <hostname or IP address> mtu 9000
180 To confirm the MTU used between two specific devices, use:
182 route get <destination_IP_address>
186 - Only enable Jumbo Frames if your network infrastructure supports them.
188 - To enable Jumbo Frames, increase the MTU size on the interface beyond
191 - The Jumbo Frames setting on the switch must be set to at least 22 bytes
192 larger than that of the MTU.
194 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
195 with the maximum Jumbo Frames size of 16128.
197 - Some Intel gigabit adapters that support Jumbo Frames have a frame size
198 limit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes.
199 The adapters with this limitation are based on the Intel(R) 82571EB,
200 82572EI, 82573L, 82566, 82562, and 80003ES2LAN controller. These
201 correspond to the following product names:
202 Intel(R) PRO/1000 PT Server Adapter
203 Intel(R) PRO/1000 PT Desktop Adapter
204 Intel(R) PRO/1000 PT Network Connection
205 Intel(R) PRO/1000 PT Dual Port Server Adapter
206 Intel(R) PRO/1000 PT Dual Port Network Connection
207 Intel(R) PRO/1000 PT Quad Port Server Adapter
208 Intel(R) PRO/1000 PF Quad Port Server Adapter
209 Intel(R) PRO/1000 PF Server Adapter
210 Intel(R) PRO/1000 PF Network Connection
211 Intel(R) PRO/1000 PF Dual Port Server Adapter
212 Intel(R) PRO/1000 PB Server Connection
213 Intel(R) PRO/1000 PL Network Connection
214 Intel(R) PRO/1000 EB Network Connection with I/O Acceleration
215 Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration
216 Intel(R) 82566DM-2 Gigabit Network Connection
218 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
219 support Jumbo Frames. These correspond to the following product names:
220 Intel(R) PRO/1000 Gigabit Server Adapter
221 Intel(R) PRO/1000 PM Network Connection
223 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or
226 - The following adapters do not support Jumbo Frames:
227 Intel(R) 82562V 10/100 Network Connection
228 Intel(R) 82566DM Gigabit Network Connection
229 Intel(R) 82566DC Gigabit Network Connection
230 Intel(R) 82566MM Gigabit Network Connection
231 Intel(R) 82566MC Gigabit Network Connection
232 Intel(R) 82562GT 10/100 Network Connection
233 Intel(R) 82562G 10/100 Network Connection
234 Intel(R) 82566DC-2 Gigabit Network Connection
235 Intel(R) 82562V-2 10/100 Network Connection
236 Intel(R) 82562G-2 10/100 Network Connection
237 Intel(R) 82562GT-2 10/100 Network Connection
241 To create a new VLAN interface:
243 ifconfig <vlan_name> create
245 To associate the VLAN interface with a physical interface and
246 assign a VLAN ID, IP address, and netmask:
248 ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
249 <vlan_id> vlandev <physical_interface>
253 ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0
255 In this example, all packets will be marked on egress with 802.1Q VLAN
256 tags, specifying a VLAN ID of 10.
258 To remove a VLAN interface:
260 Intel Network Connection ifconfig <vlan_name> destroy
266 To enable polling in the driver, add the following options to the kernel
267 configuration, and then recompile the kernel:
269 options DEVICE_POLLING
273 ifconfig emX polling (to turn polling on)
275 ifconfig emX -polling (to turn it off)
280 Checksum offloading is not supported on 82542 Gigabit adapters.
282 Checksum offloading supports both TCP and UDP packets and is
283 supported for both transmit and receive.
285 Checksum offloading can be enabled or disabled using ifconfig.
286 Both transmit and receive offloading will be either enabled or
287 disabled together. You cannot enable/disable one without the other.
289 To enable checksum offloading:
291 ifconfig <interface_num> rxcsum
293 To disable checksum offloading:
295 ifconfig <interface_num> -rxcsum
297 To confirm the current setting:
299 ifconfig <interface_num>
301 Look for the presence or absence of the following line:
303 options=3 <RXCSUM,TXCSUM>
305 See the ifconfig man page for further information.
310 The FreeBSD driver offers support for TSO (TCP Segmentation Offload).
312 You can enable/disable it in two ways/places:
314 - sysctl net.inet.tcp.tso=0 (or 1 to enable it)
316 Doing this disables TSO in the stack and will affect all adapters.
320 Doing this will disable TSO only for this adapter.
326 NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others
327 can be enabled by the user at their own risk
328 TSO is not supported on 82547 and 82544-based adapters, as well as older adapters.
334 Detected Tx Unit Hang in Quad Port Adapters
335 -------------------------------------------
337 In some cases ports 3 and 4 wont pass traffic. Ports 1 and 2 don't show
338 any errors and will pass traffic.
340 This issue MAY be resolved by updating to the latest BIOS. You can
341 check your system's BIOS by downloading the Linux Firmware Developer Kit
342 that can be obtained at http://www.linuxfirmwarekit.org/
345 There are known performance issues with this driver when running UDP traffic
347 ----------------------------------------------------------------------------
349 82541/82547 can't link or is slow to link with some link partners
350 -----------------------------------------------------------------
352 There is a known compatibility issue where time to link is slow or link is not
353 established between 82541/82547 controllers and some switches. Known switches
359 The driver can be compiled with the following changes:
361 Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
362 For example, change from:
364 #define EM_MASTER_SLAVE e1000_ms_hw_default
366 #define EM_MASTER_SLAVE 2
368 Use one of the following options:
371 3 = Auto master/slave
372 Setting 2 is recommended.
374 Recompile the module:
375 a. To compile the module
380 b. To install the compiled module in system directory:
387 For general information and support, go to the Intel support website at:
389 http://support.intel.com
391 If an issue is identified, support is through email only at:
398 This software program is released under the terms of a license agreement
399 between you ('Licensee') and Intel. Do not use or load this software or any
400 associated materials (collectively, the 'Software') until you have carefully
401 read the full terms and conditions of the LICENSE located in this software
402 package. By loading or using the Software, you agree to the terms of this
403 Agreement. If you do not agree with the terms of this Agreement, do not
404 install or use the Software.
406 * Other names and brands may be claimed as the property of others.