I bought my Dell E1505 for college way back in 2006. It was one of the top of the line 15 inch laptops you could buy ten years ago and has aged well over the years. My E1505 has an Intel T7200 Core 2 Duo processor and the ATI X1400 graphics card as well as the Intel 3945ABG PCIe wireless card. I really like this laptop since Linux support for its components is the best a user could ask for. The ATI open source kernel module gives me Kernel Mode Setting and the Intel wireless modules are open sourced and mainlined into the Linux kernel as well. Currently, it is running an up to date Arch Linux (4.6.4) installation and I use it for checking engine codes, data logging, and tuning for my 1999 VW Passat 1.8t. My only gripe about this laptop is the fact that the wireless performance is poor compared to modern wireless technologies. Also, it is using the old iwlegacy kernel module which does not offer many options in terms of performance and power management settings. Instead of purchasing a new [expensive] laptop, I decided to invest in a modern Intel PCIe wireless card and give this old beast a general refresher!
Introducing the Intel Wireless 7260
The Intel Wireless 7260 is a newer generation mini PCIe wireless card with great Linux support using the mainlined iwlwifi module. It supports most if not all of the modern IEEE 802.11 wireless standards and wireless authentication methods. One thing to note is that the 7260 is a mini PCIe while the 3945ABG is a full height card. You will need an adapter if your motherboard is made for a full height wireless card. The following picture shows a comparison of the Intel 3945ABG (Left) and the 7260 (Right).
The Intel 7260 is the last of the old PCIe wireless cards. Most modern cards have moved to the M.2 (NGFF) connector which has a different pin layout than what my Dell E1505 supports from the factory (PCIe). There currently exists adapters for PCIe to M.2 but as of now, I have not seen any reviews on the efficacy of these adapters. As a result, I decided to stick with the native PCIe interface cards and went with the latest Intel 7260. It is important to note that Intel has stopped support for microcode updates for the 7260 as of iwlwifi-7260-17.ucode but will still offer bug fixes to the firmware. This basically means you should not expect any new features in firmware updates to the device as you would expect with their newer wireless cards but it is safe to say that it will still be supported in newer Linux versions.
As you can see from the picture below of my exposed motherboard, the wireless card (top right) has clips that it must snap into to hold it steady. You must use an adapter for the card to be fully stable in the laptop.
It is entirely possible to perform this upgrade by only removing the keyboard. To do this, simply:
- Fold the screen back as far as it will go.
- Snap off the plastic cover above the keyboard which holds the power button, MediaDirect button, and LEDs.
- Remove the screws for the keyboard as well as the keyboard itself.
You will have direct access to the wireless card from there. On the other hand, exposing the motherboard will allow you to clean the dust off of the components as well as apply new thermal compound to the heatsinks.
The above close up image shows the Intel 7260 properly installed using the mini to full PCIe wireless card adapter. I placed a single 20x20x1mm copper shim on the chip below the card as one of the adapter screws was touching and I did not want the screw to penetrate the chip substrate. This may or may not be necessary depending on your application.
Protip: if you can not get the adapter and card to snap into the clips at the top, try placing only the adapter without the wireless card into the clips first, then slide the card into the slot, and finally add the two screws and tighten.
On initial boot with the Intel 7260 installed, the new hardware was recognized by the Linux kernel and the iwlwifi module was loaded. You may need to reconfigure your access points depending on the software you use to manage your wireless connections as the Mac address of the device will have changed. Let's look at some comparisons of the Intel 3945ABG vs the Intel 7260. All tests were done using the default kernel module options.
I was able to connect to my Asus RT-N66U router with the Intel 7260 wireless card using 802.11N vs the Intel 3945ABG which only supports up to 802.11G. Both cards were able to connect to the 5Ghz channel the router broadcasts. The signal and link qualities were similar on both wireless cards. On the other hand, I experienced much less dropped packets on the Intel 7260 compared with the Intel 3945ABG. The screenshot below shows some general info regarding the connection of each card using wavemon. The 3945ABG is on the left and 7260 is on the right.
The biggest difference between the two wireless cards is the speed available. Using the widely popular browser based Speedtest.net, I saw a huge difference in download speeds of around 40Mbps using a residential Comcast 100Mbps download and 10Mbps upload pipe.
The upgraded card made a difference browsing the internet as well. I no longer suffer from Youtube videos buffering all of the time and pages seem to load much faster.
Kernel Module Differences
Another benefit of the Intel 7260 is being able to configure the card using the iwlwifi kernel module. With the older 3945ABG card, you were only able to set LED parameters while the iwlwifi allows power management options.
modinfo iwlwifi | grep parm parm: swcrypto:using crypto in software (default 0 [hardware]) (int) parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint) parm: amsdu_size:amsdu size 0:4K 1:8K 2:12K (default 0) (int) parm: fw_restart:restart firmware in case of error (default true) (bool) parm: antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int) parm: nvm_file:NVM file name (charp) parm: d0i3_disable:disable d0i3 functionality (default: Y) (bool) parm: lar_disable:disable LAR functionality (default: N) (bool) parm: uapsd_disable:disable U-APSD functionality (default: Y) (bool) parm: bt_coex_active:enable wifi/bt co-exist (default: enable) (bool) parm: led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int) parm: power_save:enable WiFi power management (default: disable) (bool) parm: power_level:default power save level (range from 1 - 5, default: 1) (int) parm: fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool) parm: d0i3_timeout:Timeout to D0i3 entry when idle (ms) (uint) parm: disable_11ac:Disable VHT capabilities (bool)
$ modinfo iwlegacy | grep parm parm: led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking (int) parm: bt_coex_active:enable wifi/bluetooth co-exist (bool)
The addition of the newer Intel 7260 wireless card transformed my 10 year old laptop into something that can compete with more recent wireless technologies. The differences in wireless speed is worth the $25 I spent on this old laptop. I use this laptop in my garage with greasy hands and it does not make sense to invest in a new laptop which will only become dirty.
Linux is known for working well with older hardware. Many Dell E1505 and 6400 laptops were sold and its components are generally well supported by open source drivers under the Linux kernel.
With a little bit of elbow grease and a screw driver, you too can give your worn out laptop a new lease on life.
Links to Products Purchased
- Intel Network 7260.HMWG - Amazon
- Half to Full Height Mini PCI Express(PCI-E) Card Bracket Adapter - Amazon
- Copper Shim 20x20x1mm - Amazon
I am not affiliated with any of these companies nor do I receive any compensation for any purchases or clicks using the links above.