<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kevmitch</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kevmitch"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Kevmitch"/>
	<updated>2026-04-30T11:02:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=53551</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=53551"/>
		<updated>2012-02-29T02:25:38Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
==== Machine Type ====&lt;br /&gt;
* 4239&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
** Discrete NVIDIA NVS 4200M (1GB VRAM) with [[Switchable Graphics|Optimus Technology]]&lt;br /&gt;
* One of the following:&lt;br /&gt;
** 15.6&amp;quot; TFT display with 1366x768 (HD) (230 NITS)&lt;br /&gt;
** 15.6&amp;quot; TFT display with 1600x900 (HD+) (230 NITS)&lt;br /&gt;
** 15.6&amp;quot; TFT display with 1920x1080 (FHD) (270 NITS)&lt;br /&gt;
* Up to 8GB DDR3 - 1333MHz (2 DIMM Slots) with one of the following:&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD (Seagate 7200.4)&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** ThinkPad b/g/n (RealTek - Stockton) 1x1 BGN&lt;br /&gt;
** Intel Centrino Wireless-N 1000 (Condor Peak) 1x2 BGN&lt;br /&gt;
** Intel Centrino Advanced-N 6200&lt;br /&gt;
** Intel Centrino Advanced-N 6205 (Taylor Peak) 2x2 AGN&lt;br /&gt;
** Intel Centrino Ultimate-N 6300 (Puma Peak) 3x3 AGN&lt;br /&gt;
&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** None (empty)&lt;br /&gt;
** [[Ericsson F5521gw]] WWAN with GPS&lt;br /&gt;
** Intel 310 mSATA SSD&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[UEFI Firmware]]&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[Lenovo Integrated Smart Card Reader|Integrated Smart Card Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[ESATA Port|eSATA/USB combo port]] on select models&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
* [http://support.lenovo.com/en_US/guides-and-manuals/detail.page?LegacyDocID=MIGR-76854 Hardware Maintenance Manual (HMM)]&lt;br /&gt;
* [http://support.lenovo.com/en_US/research/hints-or-tips/detail.page?&amp;amp;LegacyDocID=MIGR-77167 T520 Drivers and Software]&lt;br /&gt;
* [http://www1.partnerinfo.lenovo.com/partners/se/products/downloads/thinkpad-tseries/ThinkPad_T420_T520_Datasheet.pdf ThinkPad T420/520 datasheet - 3 Mar 2011 (PDF 885 KB)]&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52817</id>
		<title>Intel Centrino Ultimate-N 6300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52817"/>
		<updated>2011-08-18T21:12:29Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
== Intel Centrino Ultimate-N 6300 ==&lt;br /&gt;
This is a Mini-PCI Express WiFi Adapter, supported by the iwlagn driver&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Chipset: ?&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g ,802.11n&lt;br /&gt;
* 3x3 MIMO up to 450Mbps&lt;br /&gt;
* PCI ID: 8086:1111&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
[[image:IntelWiFi6200.jpg|Intel Centrino Advanced-N 6200]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Lenovo Partnumbers ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
This card is supported out of the box on kernel 2.6.34 and newer. Current kernel is 2.6.37 (02:02, 19 January 2011 (UTC)).  &lt;br /&gt;
* openSUSE 11.3 is with kernel 2.6.34 and works out of the box. If not install the kernel-firmware package using YaST, but before check you Wi-Fi switch. &lt;br /&gt;
* Fedora 13 has kernel 2.6.33 and supports it but it is flaky.&lt;br /&gt;
Older kernels may support it if they have backported drivers from 2.6.34 kernel. .&lt;br /&gt;
* Debian support for kernel 2.6.32 is in a package named firmware-iwlwifi&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* {{T410}}, {{T410s}}, {{T510}}, {{W510}}, {{X201}}&lt;br /&gt;
* {{T420}}, {{T420s}}, {{T520}}, {{W520}}, {{X220}}&lt;br /&gt;
* {{W701}}, {{W701ds}}&lt;br /&gt;
&lt;br /&gt;
=== External Links===&lt;br /&gt;
* http://www.intel.com/network/connectivity/products/wireless/adapters/6200-6300/index.htm&lt;br /&gt;
* http://intellinuxwireless.org/ - Intel website for Linux drivers&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52816</id>
		<title>Intel Centrino Ultimate-N 6300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52816"/>
		<updated>2011-08-18T21:12:01Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
== Intel Centrino Ultimate-N 6300 ==&lt;br /&gt;
This is a Mini-PCI Express WiFi Adapter, supported by the iwlagn driver&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Chipset: ?&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g ,802.11n&lt;br /&gt;
* 3x3 MIMO up to 450Mbps&lt;br /&gt;
* PCI ID: 8086:1111&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
[[image:IntelWiFi6200.jpg|Intel Centrino Advanced-N 6200]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Lenovo Partnumbers ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
This card is supported out of the box on kernel 2.6.34 and newer. Current kernel is 2.6.37 (02:02, 19 January 2011 (UTC)).  &lt;br /&gt;
* openSUSE 11.3 is with kernel 2.6.34 and works out of the box. If not install the kernel-firmware package using YaST, but before check you Wi-Fi switch. &lt;br /&gt;
* Fedora 13 has kernel 2.6.33 and supports it but it is flaky.&lt;br /&gt;
Older kernels may support it if they have backported drivers from 2.6.34 kernel. .&lt;br /&gt;
* Debian support for kernel 2.6.32 is in a package named firmware-iwlwifi&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* {{T410}}, {{T410s}}, {{T510}}, {{W510}}&lt;br /&gt;
* {{T420}}, {{T420s}}, {{T520}}, {{W520}}&lt;br /&gt;
* {{W701}}, {{W701ds}}&lt;br /&gt;
* {{X201}}, {{X220}}&lt;br /&gt;
&lt;br /&gt;
=== External Links===&lt;br /&gt;
* http://www.intel.com/network/connectivity/products/wireless/adapters/6200-6300/index.htm&lt;br /&gt;
* http://intellinuxwireless.org/ - Intel website for Linux drivers&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52815</id>
		<title>Intel Centrino Ultimate-N 6300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52815"/>
		<updated>2011-08-18T21:11:46Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
== Intel Centrino Ultimate-N 6300 ==&lt;br /&gt;
This is a Mini-PCI Express WiFi Adapter, supported by the iwlagn driver&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Chipset: ?&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g ,802.11n&lt;br /&gt;
* 3x3 MIMO up to 450Mbps&lt;br /&gt;
* PCI ID: 8086:1111&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
[[image:IntelWiFi6200.jpg|Intel Centrino Advanced-N 6200]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Lenovo Partnumbers ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
This card is supported out of the box on kernel 2.6.34 and newer. Current kernel is 2.6.37 (02:02, 19 January 2011 (UTC)).  &lt;br /&gt;
* openSUSE 11.3 is with kernel 2.6.34 and works out of the box. If not install the kernel-firmware package using YaST, but before check you Wi-Fi switch. &lt;br /&gt;
* Fedora 13 has kernel 2.6.33 and supports it but it is flaky.&lt;br /&gt;
Older kernels may support it if they have backported drivers from 2.6.34 kernel. .&lt;br /&gt;
* Debian support for kernel 2.6.32 is in a package named firmware-iwlwifi&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* {{T410}}, {{T410s}}, {{T510}}, {{W510}}&lt;br /&gt;
* {{T420}}, {{T420s}}, {{T520}}, {{W520}}&lt;br /&gt;
* {{W520}}, {{W701}}, {{W701ds}}&lt;br /&gt;
* {{X201}}, {{X220}}&lt;br /&gt;
&lt;br /&gt;
=== External Links===&lt;br /&gt;
* http://www.intel.com/network/connectivity/products/wireless/adapters/6200-6300/index.htm&lt;br /&gt;
* http://intellinuxwireless.org/ - Intel website for Linux drivers&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52814</id>
		<title>Intel Centrino Ultimate-N 6300</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Centrino_Ultimate-N_6300&amp;diff=52814"/>
		<updated>2011-08-18T21:11:34Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Models featuring this Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
== Intel Centrino Ultimate-N 6300 ==&lt;br /&gt;
This is a Mini-PCI Express WiFi Adapter, supported by the iwlagn driver&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Chipset: ?&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g ,802.11n&lt;br /&gt;
* 3x3 MIMO up to 450Mbps&lt;br /&gt;
* PCI ID: 8086:1111&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
[[image:IntelWiFi6200.jpg|Intel Centrino Advanced-N 6200]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Lenovo Partnumbers ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Linux support ===&lt;br /&gt;
This card is supported out of the box on kernel 2.6.34 and newer. Current kernel is 2.6.37 (02:02, 19 January 2011 (UTC)).  &lt;br /&gt;
* openSUSE 11.3 is with kernel 2.6.34 and works out of the box. If not install the kernel-firmware package using YaST, but before check you Wi-Fi switch. &lt;br /&gt;
* Fedora 13 has kernel 2.6.33 and supports it but it is flaky.&lt;br /&gt;
Older kernels may support it if they have backported drivers from 2.6.34 kernel. .&lt;br /&gt;
* Debian support for kernel 2.6.32 is in a package named firmware-iwlwifi&lt;br /&gt;
&lt;br /&gt;
=== Models featuring this Technology ===&lt;br /&gt;
* {{T410}}, {{T410s}}, {{T510}},{{W510}}&lt;br /&gt;
* {{T420}}, {{T420s}}, {{T520]}, {{W520}}&lt;br /&gt;
* {{W520}}, {{W701}}, {{W701ds}}&lt;br /&gt;
* {{X201}}, {{X220}}&lt;br /&gt;
&lt;br /&gt;
=== External Links===&lt;br /&gt;
* http://www.intel.com/network/connectivity/products/wireless/adapters/6200-6300/index.htm&lt;br /&gt;
* http://intellinuxwireless.org/ - Intel website for Linux drivers&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51708</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51708"/>
		<updated>2011-06-06T01:09:21Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is a good choice, but is not strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi/efi/boot/&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel. Older kernels appear to freeze with a blank screen as soon as grub loads them.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51707</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51707"/>
		<updated>2011-06-06T01:07:45Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is a good choice, but is not strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel. Older kernels appear to freeze with a blank screen as soon as grub loads them.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51700</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51700"/>
		<updated>2011-06-05T18:37:41Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel. Older kernels appear to freeze with a blank screen as soon as grub loads them.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51699</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51699"/>
		<updated>2011-06-05T18:36:56Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51698</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51698"/>
		<updated>2011-06-05T18:35:54Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51697</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51697"/>
		<updated>2011-06-05T18:35:20Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Mount the fat32 partition at /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now run grub-install (ignore warnings about efivars)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr, just copy it to /boot/efi/efi/boot/bootx64.efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51668</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51668"/>
		<updated>2011-06-01T08:47:43Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should install efi-grub into /boot/grub, but to be safe run &amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Mount the fat32 partition (a good place is /boot/efi)&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51667</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51667"/>
		<updated>2011-06-01T08:20:31Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should install efi-grub into /boot/grub, but to be safe run &amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;br&amp;gt;sudo update-grub&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Mount the fat32 partition (a good place is /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51666</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51666"/>
		<updated>2011-06-01T08:19:29Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Enabling UEFI boot in Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should install efi-grub into /boot/grub, but to be safe run &amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Mount the fat32 partition (a good place is /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Reboot, enter the Thinkvantage menu and set &amp;quot;UEFI only&amp;quot; or &amp;quot;UEFI First&amp;quot;. Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51665</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51665"/>
		<updated>2011-06-01T08:17:59Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.&lt;br /&gt;
&lt;br /&gt;
== Enabling UEFI boot in Debian == &lt;br /&gt;
The following are steps to successfully boot in pure UEFI mode (&amp;quot;UEFI only&amp;quot; startup config menu). There are likely some that are redundant or unnecessary. &lt;br /&gt;
&lt;br /&gt;
#Install 64-bit Debian in BIOS mode to an MBR partitioned disk.&lt;br /&gt;
#Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION. &lt;br /&gt;
#Create a small ~ 200MB Partition formatted to fat32 and enable the &amp;quot;boot&amp;quot; flag. The first partition is likely a good choice, but may not be strictly required. The &amp;quot;boot&amp;quot; flag is also likely superstitious. &lt;br /&gt;
#Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot. &lt;br /&gt;
#Install the efi version of grub&amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;aptitude install grub-efi-amd64&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should install efi-grub into /boot/grub, but to be safe run &amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo grub-install /dev/sda&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Mount the fat32 partition (a good place is /boot/efi&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;sudo mkdir /boot/efi&amp;lt;br&amp;gt;sudo mount /dev/sda1 /boot/efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Create the directories structure /boot/efi/efi/boot&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;mkdir -p /boot/efi/efi/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Copy the grub.efi executabe into the efi partition&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51662</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51662"/>
		<updated>2011-05-31T03:56:30Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Grub 2 support for UEFI is still in its infancy however and mixed success has been had booting in pure UEFI mode.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51661</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51661"/>
		<updated>2011-05-31T03:55:54Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads. On supported machines, the firmware configuration utility (Thinkvantage-&amp;gt;F1 on machine starup) has the option of enabling one or both UEFI/BIOS as well as providing the option to specify the order with which the machine tries to boot.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard.&lt;br /&gt;
Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are ncessary to boot in UEFI mode. Grub 2 support for UEFI is still in its infancy however and mixed success has been had booting in pure UEFI mode.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51660</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51660"/>
		<updated>2011-05-31T03:45:35Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[https://help.ubuntu.com/community/UEFIBooting UEFI Ubuntu Community Documentation]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface UEFI on Arch Wiki]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51659</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51659"/>
		<updated>2011-05-31T03:43:12Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware with legacy BIOS support has started appearing on Sandybrige (220,420,520,etc.) Thinkpads.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51658</id>
		<title>UEFI Firmware</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=UEFI_Firmware&amp;diff=51658"/>
		<updated>2011-05-31T03:41:21Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: â†Created page with '{| width=&amp;quot;100%&amp;quot; |style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | |style=&amp;quot;vertical-align:top&amp;quot; | &amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfd...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== UEFI Firmware ===&lt;br /&gt;
UEFI (Unified Extensible Firmware Interface) is a modernized replacement to the legacy BIOS (Basic Input/Output System). The specification is maintained by the collaborative non-profit UEFI Forum. UEFI is supported by both recent versions of both Linux and Windows. UEFI firmware has started appearing on Sandybrige (220,420,520,etc.) Thinkpads.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51603</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51603"/>
		<updated>2011-05-19T21:21:43Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; 16:9 widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[Intel Centrino Wireless-N 1000]]&lt;br /&gt;
** [[Intel Centrino Advanced-N 6200]]&lt;br /&gt;
** [[Intel Centrino Advanced-N + WiMAX 6250]]&lt;br /&gt;
** [[Intel Centrino Ultimate-N 6300]]&lt;br /&gt;
** [[ThinkPad 1x1 b/g/n]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** None (empty)&lt;br /&gt;
** [[Ericsson F5521gw]] WWAN with GPS&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[UEFI Firmware]]&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51602</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51602"/>
		<updated>2011-05-19T21:20:46Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; 16:9 widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[Intel Centrino Wireless-N 1000]]&lt;br /&gt;
** [[Intel Centrino Advanced-N 6200]]&lt;br /&gt;
** [[Intel Centrino Advanced-N + WiMAX 6250]]&lt;br /&gt;
** [[Intel Centrino Ultimate-N 6300]]&lt;br /&gt;
** [[ThinkPad 1x1 b/g/n]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** None (empty)&lt;br /&gt;
** [[Ericsson F5521gw]] WWAN with GPS&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51601</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51601"/>
		<updated>2011-05-19T21:17:47Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[Intel Centrino Wireless-N 1000]]&lt;br /&gt;
** [[Intel Centrino Advanced-N 6200]]&lt;br /&gt;
** [[Intel Centrino Advanced-N + WiMAX 6250]]&lt;br /&gt;
** [[Intel Centrino Ultimate-N 6300]]&lt;br /&gt;
** [[ThinkPad 1x1 b/g/n]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** None (empty)&lt;br /&gt;
** [[Ericsson F5521gw]] WWAN with GPS&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51600</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51600"/>
		<updated>2011-05-19T21:16:19Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* [[MiniPCI Express slot]] 1 with one of the following:&lt;br /&gt;
** [[Intel Centrino Wireless-N 1000]]&lt;br /&gt;
** [[Intel Centrino Advanced-N 6200]]&lt;br /&gt;
** [[Intel Centrino Advanced-N + WiMAX 6250]]&lt;br /&gt;
** [[Intel Centrino Ultimate-N 6300]]&lt;br /&gt;
** [[ThinkPad 1x1 b/g/n]]&lt;br /&gt;
* [[MiniPCI Express slot]] 2 with one of the following:&lt;br /&gt;
** None (empty)&lt;br /&gt;
** F5521gw [[Ericsson WWAN]] with GPS&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51599</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51599"/>
		<updated>2011-05-19T21:13:55Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 128GB Solid State Drive, Serial ATA&lt;br /&gt;
** Intel 160GB Solid State Drive, Serial ATA&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[Ricoh 5-in-1 MultiCard Reader|5-in-1 MultiCard Reader]]&lt;br /&gt;
* [[Embedded Security Subsystem|Trusted Computing Group TPM 1.2]]&lt;br /&gt;
* [[Active Protection System]]&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
* [[UltraNav]] (TrackPoint / Touchpad combo)&lt;br /&gt;
* [[Firewire Port|Firewire 400]] (IEEE1394a)&lt;br /&gt;
* [[Intel Active Management Technology (AMT)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51598</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51598"/>
		<updated>2011-05-19T21:09:55Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
* 720p webcam on select models&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51597</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51597"/>
		<updated>2011-05-19T21:09:30Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* One of the following 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD)&lt;br /&gt;
** 1600x900 (HD+)&lt;br /&gt;
** 1920x1080 (FHD)&lt;br /&gt;
* 2 DDR3 [[PC3-10600 1333MHz DDR3]] slots with maximum capacity 8GB pre-configured with one of&lt;br /&gt;
** 1x2=2 GB (1 DIMM)&lt;br /&gt;
** 1x4=4 GB (1 DIMM)&lt;br /&gt;
** 2x2=4 GB (2 DIMM)&lt;br /&gt;
** 2x3=6 GB (2 DIMM)&lt;br /&gt;
** 2x4=8 GB (2 DIMM)&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
* One of &lt;br /&gt;
**720p webcam&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51596</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51596"/>
		<updated>2011-05-19T21:02:29Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® Core i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
** Intel® Core i7-2720QM processor (quad-core, 2.20GHz, 6MB Cache)&lt;br /&gt;
** Intel® Core i7-2820QM processor (quad-core, 2.30GHz, 8MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD) or 1600x900 (HD+) or 1920x1080 (FHD) resolution&lt;br /&gt;
* 2 or 4GB [[PC3-10600 1333MHz DDR3]] memory standard, upgradable to 8GB&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51595</id>
		<title>Category:T520</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category:T520&amp;diff=51595"/>
		<updated>2011-05-19T20:54:54Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Standard Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ThinkPad T520 ===&lt;br /&gt;
This pages gives an overview of all ThinkPad T520 related topics.&lt;br /&gt;
&lt;br /&gt;
=== Machine Type ===&lt;br /&gt;
&lt;br /&gt;
==== Standard Features ====&lt;br /&gt;
&lt;br /&gt;
*One of the following [[Intel Core]] processors:&lt;br /&gt;
** Intel® CoreTM i5-2410M processor (dual-core, 2.30GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2520M processor (dual-core, 2.50GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i5-2540M processor (dual-core, 2.60GHz, 3MB Cache)&lt;br /&gt;
** Intel® Core i7-2620M processor (dual-core, 2.70GHz, 4MB Cache)&lt;br /&gt;
* One of the following graphics adapters option: &lt;br /&gt;
**[[Intel HD Graphics 3000]]&lt;br /&gt;
**[[Switchable Graphics]] with [[Intel HD Graphics 3000|Intel HD Graphics 3000]] and [[NVIDIA NVSTM 4200M]] (1GB)&lt;br /&gt;
* 15.6&amp;quot; widescreen [[TFT display]]:&lt;br /&gt;
** 1366x768 (HD) or 1600x900 (HD+) or 1920x1080 (FHD) resolution&lt;br /&gt;
* 2 or 4GB [[PC3-10600 1333MHz DDR3]] memory standard, upgradable to 8GB&lt;br /&gt;
* One of the following disk drives:&lt;br /&gt;
** 250GB 5400rpm 2.5&amp;quot; SATA HDD (Hitatchi 5K500.B-250)&lt;br /&gt;
** 320GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
** 500GB 7200rpm 2.5&amp;quot; SATA HDD&lt;br /&gt;
* [[Integrated Fingerprint Reader]] on select models&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
&lt;br /&gt;
[[Category:T Series]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40131</id>
		<title>ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40131"/>
		<updated>2008-12-04T22:54:28Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* ath9k */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right&amp;quot;&amp;gt;&lt;br /&gt;
This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM partnumber 42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* Chipset: Atheros AR5418/AR5008&lt;br /&gt;
* Integrated Mac Processor and Radio Chip: Atheros, unknown model&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)&lt;br /&gt;
* PCI ID: 168c:0024&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;amp;nbsp;&amp;lt;!--[[image:Atheros_mini_express_wifi(thumbnail).jpg|Atheros mini-PCIe WiFi Adapter]]--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Identification =&lt;br /&gt;
To determine the chipset your card uses, issue the following commands: &lt;br /&gt;
&lt;br /&gt;
 # update-pciids&lt;br /&gt;
 # lspci | egrep -i 'network|atheros|wireless'&lt;br /&gt;
 03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)&lt;br /&gt;
&lt;br /&gt;
If you get something different than above despite having the most current PCI IDs, please report it here!&lt;br /&gt;
=ath9k=&lt;br /&gt;
There is now active development of a free driver [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and therefore automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support &amp;quot;aggregation&amp;quot; which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to [[How to install the development version of atk9k|jump through a few hoops]].&lt;br /&gt;
&lt;br /&gt;
=madwifi=&lt;br /&gt;
Madwifi is a native linux driver that used to use a binary-only HAL and so must be compiled separately from the kernel. The HAL has recently been opened up, however with the development of ath9k mentioned above, the future of this project in particular with regard to this chipset is uncertain. It does not support the draft 11n protocol, but will work in &amp;quot;legacy&amp;quot; 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be  [http://www.madwifi.org/wiki/Releases/0.9.4#Announcement postponed] as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.&lt;br /&gt;
&lt;br /&gt;
There is a [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | howto]], which describes the procedure for getting the snapshot to work.&lt;br /&gt;
&lt;br /&gt;
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].&lt;br /&gt;
&lt;br /&gt;
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Insert non-formatted text here&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Windows Driver in Linux =&lt;br /&gt;
&lt;br /&gt;
If you have a weak stomach for pre-release software, you can always use &amp;quot;ndiswrapper&amp;quot; (&amp;gt;= 1.29) to wrap the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]].&lt;br /&gt;
&lt;br /&gt;
=Problems/Bugs?=&lt;br /&gt;
==[http://en.wikipedia.org/wiki/Non-maskable_interrupt Non-Maskable Interrupt] with madwifi==&lt;br /&gt;
{{NOTE|This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.}}&lt;br /&gt;
&lt;br /&gt;
A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Uhhuh. NMI received for unknown reason b0 on CPU 0.&lt;br /&gt;
You have some hardware problem, likely on the PCI bus.&lt;br /&gt;
Dazed and confused, but trying to continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the following threads and bug reports:&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?p=3152517]&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?t=500729]&lt;br /&gt;
[https://answers.launchpad.net/ubuntu/+question/5537]&lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/116752]&lt;br /&gt;
[http://sourceforge.net/mailarchive/forum.php?thread_name=20070809145900.GD16023%40hank.org&amp;amp;forum_name=madwifi-users]&lt;br /&gt;
&lt;br /&gt;
{{HINT|There's a [http://madwifi.org/ticket/1017 ticket on madwifi] with some discussion and suggestions for the rx FIFO overrun problem.}}&lt;br /&gt;
&lt;br /&gt;
A '''possible''' preventitive measure is issuing the command &lt;br /&gt;
{{cmdroot|iwpriv &amp;lt;device&amp;gt; bgscan 0}}&lt;br /&gt;
each time you load the driver. To make this change &amp;quot;permanent&amp;quot;, you could add this command to your distribution's ifup networking scripts as described below.&lt;br /&gt;
===Debian===&lt;br /&gt;
Open up {{path|/etc/network/interfaces}} in a text editor and find the entry for your wireless device. Which should look something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface wlan0 inet manual&lt;br /&gt;
    wpa-driver madwifi&lt;br /&gt;
    wpa-roam   /etc/network/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    post-up iwpriv wlan0 bgscan 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the end of it where of course you substitute your interface name (e.g., &amp;quot;ath0&amp;quot;) for &amp;quot;wlan0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Hardware switch =&lt;br /&gt;
&lt;br /&gt;
{{Note_wlan_hardware_switch}}&lt;br /&gt;
&lt;br /&gt;
In addition to hard-switching the wireless card, the switch also generates an [[Acpid|acpi event]] on transition from hi-&amp;gt;lo and vice versa. It is however the same event in both directions.&lt;br /&gt;
&lt;br /&gt;
= ThinkPads this card may be found in =&lt;br /&gt;
* {{R60}}, {{R60e}}&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60_Tablet}}&lt;br /&gt;
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
=== Related Links ===&lt;br /&gt;
* [http://www.madwifi.org MadWifi project page]&lt;br /&gt;
* [http://madwifi.org/ticket/1001 MadWifi ticket #1001]&lt;br /&gt;
* [http://ndiswrapper.sourceforge.net/ ndiswrapper at SourceForge]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40130</id>
		<title>ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40130"/>
		<updated>2008-12-04T22:54:12Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* ath9k */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right&amp;quot;&amp;gt;&lt;br /&gt;
This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM partnumber 42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* Chipset: Atheros AR5418/AR5008&lt;br /&gt;
* Integrated Mac Processor and Radio Chip: Atheros, unknown model&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)&lt;br /&gt;
* PCI ID: 168c:0024&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;amp;nbsp;&amp;lt;!--[[image:Atheros_mini_express_wifi(thumbnail).jpg|Atheros mini-PCIe WiFi Adapter]]--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Identification =&lt;br /&gt;
To determine the chipset your card uses, issue the following commands: &lt;br /&gt;
&lt;br /&gt;
 # update-pciids&lt;br /&gt;
 # lspci | egrep -i 'network|atheros|wireless'&lt;br /&gt;
 03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)&lt;br /&gt;
&lt;br /&gt;
If you get something different than above despite having the most current PCI IDs, please report it here!&lt;br /&gt;
=ath9k=&lt;br /&gt;
There is now active development of a free driver [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and therefor automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support &amp;quot;aggregation&amp;quot; which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to [[How to install the development version of atk9k|jump through a few hoops]].&lt;br /&gt;
&lt;br /&gt;
=madwifi=&lt;br /&gt;
Madwifi is a native linux driver that used to use a binary-only HAL and so must be compiled separately from the kernel. The HAL has recently been opened up, however with the development of ath9k mentioned above, the future of this project in particular with regard to this chipset is uncertain. It does not support the draft 11n protocol, but will work in &amp;quot;legacy&amp;quot; 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be  [http://www.madwifi.org/wiki/Releases/0.9.4#Announcement postponed] as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.&lt;br /&gt;
&lt;br /&gt;
There is a [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | howto]], which describes the procedure for getting the snapshot to work.&lt;br /&gt;
&lt;br /&gt;
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].&lt;br /&gt;
&lt;br /&gt;
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Insert non-formatted text here&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Windows Driver in Linux =&lt;br /&gt;
&lt;br /&gt;
If you have a weak stomach for pre-release software, you can always use &amp;quot;ndiswrapper&amp;quot; (&amp;gt;= 1.29) to wrap the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]].&lt;br /&gt;
&lt;br /&gt;
=Problems/Bugs?=&lt;br /&gt;
==[http://en.wikipedia.org/wiki/Non-maskable_interrupt Non-Maskable Interrupt] with madwifi==&lt;br /&gt;
{{NOTE|This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.}}&lt;br /&gt;
&lt;br /&gt;
A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Uhhuh. NMI received for unknown reason b0 on CPU 0.&lt;br /&gt;
You have some hardware problem, likely on the PCI bus.&lt;br /&gt;
Dazed and confused, but trying to continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the following threads and bug reports:&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?p=3152517]&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?t=500729]&lt;br /&gt;
[https://answers.launchpad.net/ubuntu/+question/5537]&lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/116752]&lt;br /&gt;
[http://sourceforge.net/mailarchive/forum.php?thread_name=20070809145900.GD16023%40hank.org&amp;amp;forum_name=madwifi-users]&lt;br /&gt;
&lt;br /&gt;
{{HINT|There's a [http://madwifi.org/ticket/1017 ticket on madwifi] with some discussion and suggestions for the rx FIFO overrun problem.}}&lt;br /&gt;
&lt;br /&gt;
A '''possible''' preventitive measure is issuing the command &lt;br /&gt;
{{cmdroot|iwpriv &amp;lt;device&amp;gt; bgscan 0}}&lt;br /&gt;
each time you load the driver. To make this change &amp;quot;permanent&amp;quot;, you could add this command to your distribution's ifup networking scripts as described below.&lt;br /&gt;
===Debian===&lt;br /&gt;
Open up {{path|/etc/network/interfaces}} in a text editor and find the entry for your wireless device. Which should look something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface wlan0 inet manual&lt;br /&gt;
    wpa-driver madwifi&lt;br /&gt;
    wpa-roam   /etc/network/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    post-up iwpriv wlan0 bgscan 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the end of it where of course you substitute your interface name (e.g., &amp;quot;ath0&amp;quot;) for &amp;quot;wlan0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Hardware switch =&lt;br /&gt;
&lt;br /&gt;
{{Note_wlan_hardware_switch}}&lt;br /&gt;
&lt;br /&gt;
In addition to hard-switching the wireless card, the switch also generates an [[Acpid|acpi event]] on transition from hi-&amp;gt;lo and vice versa. It is however the same event in both directions.&lt;br /&gt;
&lt;br /&gt;
= ThinkPads this card may be found in =&lt;br /&gt;
* {{R60}}, {{R60e}}&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60_Tablet}}&lt;br /&gt;
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
=== Related Links ===&lt;br /&gt;
* [http://www.madwifi.org MadWifi project page]&lt;br /&gt;
* [http://madwifi.org/ticket/1001 MadWifi ticket #1001]&lt;br /&gt;
* [http://ndiswrapper.sourceforge.net/ ndiswrapper at SourceForge]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40129</id>
		<title>ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40129"/>
		<updated>2008-12-04T22:53:49Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right&amp;quot;&amp;gt;&lt;br /&gt;
This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM partnumber 42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* Chipset: Atheros AR5418/AR5008&lt;br /&gt;
* Integrated Mac Processor and Radio Chip: Atheros, unknown model&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)&lt;br /&gt;
* PCI ID: 168c:0024&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;amp;nbsp;&amp;lt;!--[[image:Atheros_mini_express_wifi(thumbnail).jpg|Atheros mini-PCIe WiFi Adapter]]--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Identification =&lt;br /&gt;
To determine the chipset your card uses, issue the following commands: &lt;br /&gt;
&lt;br /&gt;
 # update-pciids&lt;br /&gt;
 # lspci | egrep -i 'network|atheros|wireless'&lt;br /&gt;
 03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)&lt;br /&gt;
&lt;br /&gt;
If you get something different than above despite having the most current PCI IDs, please report it here!&lt;br /&gt;
=ath9k=&lt;br /&gt;
There is now active development of a free driver [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and there for automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support &amp;quot;aggregation&amp;quot; which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to [[How to install the development version of atk9k|jump through a few hoops]].&lt;br /&gt;
&lt;br /&gt;
=madwifi=&lt;br /&gt;
Madwifi is a native linux driver that used to use a binary-only HAL and so must be compiled separately from the kernel. The HAL has recently been opened up, however with the development of ath9k mentioned above, the future of this project in particular with regard to this chipset is uncertain. It does not support the draft 11n protocol, but will work in &amp;quot;legacy&amp;quot; 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be  [http://www.madwifi.org/wiki/Releases/0.9.4#Announcement postponed] as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.&lt;br /&gt;
&lt;br /&gt;
There is a [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | howto]], which describes the procedure for getting the snapshot to work.&lt;br /&gt;
&lt;br /&gt;
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].&lt;br /&gt;
&lt;br /&gt;
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Insert non-formatted text here&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using the Windows Driver in Linux =&lt;br /&gt;
&lt;br /&gt;
If you have a weak stomach for pre-release software, you can always use &amp;quot;ndiswrapper&amp;quot; (&amp;gt;= 1.29) to wrap the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]].&lt;br /&gt;
&lt;br /&gt;
=Problems/Bugs?=&lt;br /&gt;
==[http://en.wikipedia.org/wiki/Non-maskable_interrupt Non-Maskable Interrupt] with madwifi==&lt;br /&gt;
{{NOTE|This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.}}&lt;br /&gt;
&lt;br /&gt;
A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Uhhuh. NMI received for unknown reason b0 on CPU 0.&lt;br /&gt;
You have some hardware problem, likely on the PCI bus.&lt;br /&gt;
Dazed and confused, but trying to continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the following threads and bug reports:&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?p=3152517]&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?t=500729]&lt;br /&gt;
[https://answers.launchpad.net/ubuntu/+question/5537]&lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/116752]&lt;br /&gt;
[http://sourceforge.net/mailarchive/forum.php?thread_name=20070809145900.GD16023%40hank.org&amp;amp;forum_name=madwifi-users]&lt;br /&gt;
&lt;br /&gt;
{{HINT|There's a [http://madwifi.org/ticket/1017 ticket on madwifi] with some discussion and suggestions for the rx FIFO overrun problem.}}&lt;br /&gt;
&lt;br /&gt;
A '''possible''' preventitive measure is issuing the command &lt;br /&gt;
{{cmdroot|iwpriv &amp;lt;device&amp;gt; bgscan 0}}&lt;br /&gt;
each time you load the driver. To make this change &amp;quot;permanent&amp;quot;, you could add this command to your distribution's ifup networking scripts as described below.&lt;br /&gt;
===Debian===&lt;br /&gt;
Open up {{path|/etc/network/interfaces}} in a text editor and find the entry for your wireless device. Which should look something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface wlan0 inet manual&lt;br /&gt;
    wpa-driver madwifi&lt;br /&gt;
    wpa-roam   /etc/network/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    post-up iwpriv wlan0 bgscan 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the end of it where of course you substitute your interface name (e.g., &amp;quot;ath0&amp;quot;) for &amp;quot;wlan0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Hardware switch =&lt;br /&gt;
&lt;br /&gt;
{{Note_wlan_hardware_switch}}&lt;br /&gt;
&lt;br /&gt;
In addition to hard-switching the wireless card, the switch also generates an [[Acpid|acpi event]] on transition from hi-&amp;gt;lo and vice versa. It is however the same event in both directions.&lt;br /&gt;
&lt;br /&gt;
= ThinkPads this card may be found in =&lt;br /&gt;
* {{R60}}, {{R60e}}&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60_Tablet}}&lt;br /&gt;
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
=== Related Links ===&lt;br /&gt;
* [http://www.madwifi.org MadWifi project page]&lt;br /&gt;
* [http://madwifi.org/ticket/1001 MadWifi ticket #1001]&lt;br /&gt;
* [http://ndiswrapper.sourceforge.net/ ndiswrapper at SourceForge]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40128</id>
		<title>ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter&amp;diff=40128"/>
		<updated>2008-12-04T22:38:56Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* ath9k */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right&amp;quot;&amp;gt;&lt;br /&gt;
This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM partnumber 42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* Chipset: Atheros AR5418/AR5008&lt;br /&gt;
* Integrated Mac Processor and Radio Chip: Atheros, unknown model&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)&lt;br /&gt;
* PCI ID: 168c:0024&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;amp;nbsp;&amp;lt;!--[[image:Atheros_mini_express_wifi(thumbnail).jpg|Atheros mini-PCIe WiFi Adapter]]--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Identification =&lt;br /&gt;
To determine the chipset your card uses, issue the following commands: &lt;br /&gt;
&lt;br /&gt;
 # update-pciids&lt;br /&gt;
 # lspci | egrep -i 'network|atheros|wireless'&lt;br /&gt;
 03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)&lt;br /&gt;
&lt;br /&gt;
If you get something different than above despite having the most current PCI IDs, please report it here!&lt;br /&gt;
&lt;br /&gt;
=madwifi=&lt;br /&gt;
For native Linux support, a development snapshot of the &amp;quot;madwifi&amp;quot; driver, which uses a non-free binary-only HAL, can be used. It does not support the draft 11n protocol, but will work in &amp;quot;legacy&amp;quot; 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be  [http://www.madwifi.org/wiki/Releases/0.9.4#Announcement postponed] as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.&lt;br /&gt;
&lt;br /&gt;
There is a [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | howto]], which describes the procedure for getting the snapshot to work.&lt;br /&gt;
&lt;br /&gt;
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].&lt;br /&gt;
&lt;br /&gt;
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Insert non-formatted text here&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=ath9k=&lt;br /&gt;
There is now active development of a free driver [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and there for automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support &amp;quot;aggregation&amp;quot; which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to [[How to install the development version of atk9k|jump through a few hoops]].&lt;br /&gt;
&lt;br /&gt;
= Using the Windows Driver in Linux =&lt;br /&gt;
&lt;br /&gt;
If you have a weak stomach for pre-release software, you can always use &amp;quot;ndiswrapper&amp;quot; (&amp;gt;= 1.29) to wrap the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]].&lt;br /&gt;
&lt;br /&gt;
=Problems/Bugs?=&lt;br /&gt;
==[http://en.wikipedia.org/wiki/Non-maskable_interrupt Non-Maskable Interrupt] with madwifi==&lt;br /&gt;
{{NOTE|This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.}}&lt;br /&gt;
&lt;br /&gt;
A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Uhhuh. NMI received for unknown reason b0 on CPU 0.&lt;br /&gt;
You have some hardware problem, likely on the PCI bus.&lt;br /&gt;
Dazed and confused, but trying to continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
wifi0: rx FIFO overrun; resetting&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the following threads and bug reports:&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?p=3152517]&lt;br /&gt;
[http://ubuntuforums.org/showthread.php?t=500729]&lt;br /&gt;
[https://answers.launchpad.net/ubuntu/+question/5537]&lt;br /&gt;
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/116752]&lt;br /&gt;
[http://sourceforge.net/mailarchive/forum.php?thread_name=20070809145900.GD16023%40hank.org&amp;amp;forum_name=madwifi-users]&lt;br /&gt;
&lt;br /&gt;
{{HINT|There's a [http://madwifi.org/ticket/1017 ticket on madwifi] with some discussion and suggestions for the rx FIFO overrun problem.}}&lt;br /&gt;
&lt;br /&gt;
A '''possible''' preventitive measure is issuing the command &lt;br /&gt;
{{cmdroot|iwpriv &amp;lt;device&amp;gt; bgscan 0}}&lt;br /&gt;
each time you load the driver. To make this change &amp;quot;permanent&amp;quot;, you could add this command to your distribution's ifup networking scripts as described below.&lt;br /&gt;
===Debian===&lt;br /&gt;
Open up {{path|/etc/network/interfaces}} in a text editor and find the entry for your wireless device. Which should look something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface wlan0 inet manual&lt;br /&gt;
    wpa-driver madwifi&lt;br /&gt;
    wpa-roam   /etc/network/wpa_supplicant.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    post-up iwpriv wlan0 bgscan 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the end of it where of course you substitute your interface name (e.g., &amp;quot;ath0&amp;quot;) for &amp;quot;wlan0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Hardware switch =&lt;br /&gt;
&lt;br /&gt;
{{Note_wlan_hardware_switch}}&lt;br /&gt;
&lt;br /&gt;
In addition to hard-switching the wireless card, the switch also generates an [[Acpid|acpi event]] on transition from hi-&amp;gt;lo and vice versa. It is however the same event in both directions.&lt;br /&gt;
&lt;br /&gt;
= ThinkPads this card may be found in =&lt;br /&gt;
* {{R60}}, {{R60e}}&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60_Tablet}}&lt;br /&gt;
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
=== Related Links ===&lt;br /&gt;
* [http://www.madwifi.org MadWifi project page]&lt;br /&gt;
* [http://madwifi.org/ticket/1001 MadWifi ticket #1001]&lt;br /&gt;
* [http://ndiswrapper.sourceforge.net/ ndiswrapper at SourceForge]&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=39094</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=39094"/>
		<updated>2008-10-14T07:34:59Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
The [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] module is included in the current kernel release [http://lkml.org/lkml/2008/10/9/415 2.6.27]. If your distribution does not yet have this kernel available as a package, these are instructions for installing it from source.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27.mykernel_2.6.27.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27.mykernel_2.6.27.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: As of 2008-09-13, if running Debian or Ubuntu and you have previously built any 2.6.27-rc kernel, you must use force-overwrite when using dpkg. [See http://lkml.org/lkml/2008/9/11/62]&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i --force-overwrite /usr/src/linux-image-2.6.27.mykernel_2.6.27.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i --force-overwrite /usr/src/linux-image-2.6.27.mykernel_2.6.27.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Lenny_on_a_ThinkPad_T60&amp;diff=38825</id>
		<title>Installing Debian Lenny on a ThinkPad T60</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Lenny_on_a_ThinkPad_T60&amp;diff=38825"/>
		<updated>2008-09-16T06:52:59Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian Lenny on a T60 6371-6NU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Debian Lenny on a T60 6371-6NU=&lt;br /&gt;
You might also want to check out [http://www.klabs.be/~fpiat/linux/debian/Etch_on_Thinkpad_T60.html Debian Etch on a Thinkpad T60 HowTo] and [[Installing_Debian_Lenny_on_a_ThinkPad_T61]].&lt;br /&gt;
&lt;br /&gt;
In case you can't decode the Thinkpad model number above, here are the specs (I've left out modem, infrared, cardbus since I haven't ever used them):&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|Processor || [[Intel Core 2 Duo (Merom)]] 1.83GHz&lt;br /&gt;
|-&lt;br /&gt;
|Graphics Adaptor || [[Intel Graphics Media Accelerator 950]]&lt;br /&gt;
|-&lt;br /&gt;
|Display ||15.4&amp;quot; TFT display with 1200x800 resolution (widescreen)&lt;br /&gt;
|-&lt;br /&gt;
|RAM || 1 GB [[PC2-5300]] (upgraded to 2GB)&lt;br /&gt;
|-&lt;br /&gt;
|Harddisk ||120GB 5400 RPM Hitatchi HTS54161&lt;br /&gt;
|- &lt;br /&gt;
|Audio    ||[[AD1981HD]] HD Audio 1.0 controller&lt;br /&gt;
|-&lt;br /&gt;
|Ethernet || [[Ethernet Controllers#Intel Gigabit (10/100/1000)|82573L Gigabit Ethernet Controller]]&lt;br /&gt;
|-&lt;br /&gt;
|Optical  || [[UltraBay Slim Super Multi-Burner Drive|LG-Hitatchi HL-DT-ST DVDRAM GSA-4083N Dual Layer DVD+/-RW]]&lt;br /&gt;
|-&lt;br /&gt;
|Wireless || [[ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter| Atheros AR5418]].&lt;br /&gt;
|-&lt;br /&gt;
|Biometric || [[Integrated Fingerprint Reader|STMicroelectronics Fingerprint Reader]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Before I begin==&lt;br /&gt;
I remove as much of the crap ware as possible from windows. I burnt a bunch of the stuff in the SOFTWARE directory to DVD and deleted it. I managed to get the disk usage down to around 5GB or so. I'm sure I could do better, but I only want to spend so much time in windows. I keep however a few essential things like BIOS update and finger print management software. This later is as far as I know the only way to enrol finger prints in the bios for bootup fingerprint checking. I upgrade the bios in windows using the Lenovo utility. I want to have someone to hold responsible (other than myself) if my computer gets fried while flashing the bios. In the bios itself, I have the SATA controller set to AHCI. I've read quite a few people saying that they need to set it to &amp;quot;compatibility&amp;quot;. Perhaps this is no longer an issue with newer kernels (&amp;gt;~2.6.18). I note that my kernel config has the &amp;lt;tt&amp;gt;SATA_AHCI&amp;lt;/tt&amp;gt; option enabled (module should be fine as long as you use an initrd).&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
These are instructions for getting the most customised, minimal base Debian system running. As such, you can probably go with your gut and ignore some of these steps for example using the &amp;quot;expert&amp;quot; install mode or deselecting all but the base system packages.&lt;br /&gt;
#First of all, get the &amp;quot;businesscard&amp;quot; cd image for [http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-businesscard.iso amd64] if you want to run 64 bit or [http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-businesscard.iso i386] if you want 32 bit. Note that flash now works in 64 bit(see [http://www.debian-administration.org/articles/534 this article] on the &amp;quot;debian adminstration&amp;quot; blog), java is possible, but a little trickier ([[Installing_Debian_Lenny_on_a_ThinkPad_T60#Java|see below]]). If you do however go 64 bit you won't be able to use proprietary 32 bit modules in your kernel. Most notably, ndiswrapper won't work with 32-bit windows drivers.&lt;br /&gt;
#Burn the cd image to a cd with the command&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;cdrecord -v debian-testing-amd64-businesscard.iso&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;You may find that you need to add &amp;lt;tt&amp;gt;dev=/dev/cdrom&amp;lt;/tt&amp;gt; (or whatever your burning device is) to the above command.&lt;br /&gt;
#Now stick in the newly burned disc and reboot.&lt;br /&gt;
#At the &amp;quot;&amp;lt;tt&amp;gt;boot:&amp;lt;/tt&amp;gt;&amp;quot; prompt type &amp;quot;&amp;lt;tt&amp;gt;expert&amp;lt;/tt&amp;gt; (you could also just hit enter, but you won't get as much control over what's about to be installed on your computer).&lt;br /&gt;
#Go through the install menu using my answers as outlined below as a guide. You will obviously want to tailor things to your specific situation:&lt;br /&gt;
*Choose Language&lt;br /&gt;
**Choose Language:&amp;lt;br&amp;gt;English&lt;br /&gt;
**Choose a locale:&amp;lt;br&amp;gt;en_CA (stick with ascii for the default since UTF screws up some terminals)&lt;br /&gt;
**Choose other locales to be supported:&amp;lt;br&amp;gt;en_CA.UTF-8&amp;lt;br&amp;gt;en_GB.UTF-8&amp;lt;br&amp;gt;en_GB&amp;lt;br&amp;gt;en_GB.ISO-8859-15&amp;lt;br&amp;gt;en_US.UTF-8&amp;lt;br&amp;gt;en_US&amp;lt;br&amp;gt;en_US.ISO_8859_15&lt;br /&gt;
*Select a Keyboard layout&lt;br /&gt;
**Type of Keyboard:&amp;lt;br&amp;gt;PC-Style&lt;br /&gt;
**Keymap to use:&amp;lt;br&amp;gt;American English&lt;br /&gt;
*Detect and mount CD-ROM&lt;br /&gt;
**Modules to load:&amp;lt;br&amp;gt;&amp;lt;none&amp;gt; (deselect usb-storage, its not needed unless your using a external USB CD drive to read the install disc)&lt;br /&gt;
*Load installer components from CD:&lt;br /&gt;
**Installer components to load:&amp;lt;br&amp;gt;&amp;lt;none&amp;gt;&lt;br /&gt;
*Detect network hardware&lt;br /&gt;
**Modules to load:&amp;lt;br&amp;gt;&amp;lt;none&amp;gt;(I don't imagine you'd need usb-storage here either unless you were using a USB networking device)&lt;br /&gt;
*Configure the network&lt;br /&gt;
**Auto-configure DHCP:&amp;lt;br&amp;gt;yes&lt;br /&gt;
**Hostname:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
**Domain Name:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
*Choose a mirror of the Debian archive&lt;br /&gt;
**Protocol for file downloads:&amp;lt;br&amp;gt;ftp (might be a tiny bit faster than http, though the latter is less likely not to work if you're behind a draconian firewall. http is also slightly easier because you get a list of available mirrors whereas with ftp, you have to know the address already)&lt;br /&gt;
**Debian archive mirror hostname:&amp;lt;br&amp;gt;mirrors.kernel.org&lt;br /&gt;
**Debian archive mirror directory:&amp;lt;br&amp;gt;/debian&lt;br /&gt;
**FTP proxy information:&amp;lt;br&amp;gt;&amp;lt;blank&amp;gt; (unless you're behind one of the draconian firewalls mentioned above, in which case figure out the proxy to use from your network administrator.)&lt;br /&gt;
**Debian version to install:&amp;lt;br&amp;gt;testing&lt;br /&gt;
*Configure the clock&lt;br /&gt;
**Set the clock using NTP?:&amp;lt;br&amp;gt;yes&lt;br /&gt;
**NTP Server to use:&amp;lt;br&amp;gt;ntp.ubc.ca (though the default provided or any other you prefer should work just as well.)&lt;br /&gt;
**Select your timezone:&amp;lt;br&amp;gt;Pacific&lt;br /&gt;
*Detect disks&lt;br /&gt;
**Modules to load:&amp;lt;br&amp;gt;&amp;lt;none&amp;gt; (again not necessary unless you want to install onto a USB drive)&lt;br /&gt;
*Partition Disks&lt;br /&gt;
**Partition Method:&amp;lt;br&amp;gt;manual&lt;br /&gt;
**This depends largely on personal preference, and needs, but here's how I set up the disks:&amp;lt;br&amp;gt;200MB EXT3 /boot&amp;lt;br&amp;gt;1.0GB swap&amp;lt;br&amp;gt;15GB XFS /&amp;lt;br&amp;gt;2GB XFS /var&amp;lt;br&amp;gt;All remaining disk space XFS /home&amp;lt;br&amp;gt;I use XFS because this tends to be faster than ext3. Reiserfs is also a good alternative but takes a little longer to mount at bootup. Grub has some problems reading XFS, so I use ext3 for the /boot partition. If you're keeping your windows partition, just resize it (I brought it down to 6Gb) and otherwise leave it alone for now, we'll get to that in a bit. Once you're done setting things up select &amp;quot;Finish partitioning and write changes to disk.&lt;br /&gt;
**Write chages to disk?:&amp;lt;br&amp;gt;yes&lt;br /&gt;
*Install the base system&lt;br /&gt;
**Kernel to install:&amp;lt;br&amp;gt;linux-image-2.6.22-3-amd64 (or whatever newer one is available by the time you read this).&lt;br /&gt;
*Setup users and passwords&lt;br /&gt;
**Enable shadow passwords:&amp;lt;br&amp;gt;yes (duh)&lt;br /&gt;
**Allow login as root:&amp;lt;br&amp;gt;yes (unless you're really paranoid)&lt;br /&gt;
**Root password:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
**Create a normal user account now?:&amp;lt;br&amp;gt;yes&lt;br /&gt;
**Full Name:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
**Username for your account:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
**Password:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt;&lt;br /&gt;
*Configured the package manager&lt;br /&gt;
**Use non-free packages:&amp;lt;br&amp;gt;yes (unless you have some restrictions ideological or otherwise)&lt;br /&gt;
**Services to use:&amp;lt;br&amp;gt;security updates&amp;lt;br&amp;gt;volatile updates&lt;br /&gt;
*Select and install software&lt;br /&gt;
**Participate in package usage survey?:&amp;lt;br&amp;gt;yes (why not help make Debian even better?)&lt;br /&gt;
**Choose software to install:&amp;lt;br&amp;gt;It's up to you to decide whether you want to select go with the default Desktop environment, Laptop and Standard System or just install a bare bones system and deal with it later. I will assume however that you have selected none of them in the remainder of this howto.&lt;br /&gt;
*Install GRUB boot loader on hard disk&lt;br /&gt;
**Install GRUB 2:&amp;lt;br&amp;gt;no (for some reason it doesn't work)&lt;br /&gt;
**Device for bootloader installation:&amp;lt;br&amp;gt;/dev/sda (unless you have some other bootloader you want to use to chain to GRUB).&lt;br /&gt;
**Grub password:&amp;lt;br&amp;gt;&amp;lt;omitted&amp;gt; (don't make this your root password as it ends up in your menu.lst file as plaintext).&lt;br /&gt;
*Skip LILO (unless you like pain)&lt;br /&gt;
*Debconf priority:&lt;br /&gt;
**Prompt at or above:&amp;lt;br&amp;gt;critical (I want to be able to automate updates)&lt;br /&gt;
**Finish the installation&lt;br /&gt;
&lt;br /&gt;
**Finish the installation&lt;br /&gt;
&lt;br /&gt;
==The First Boot: getting the ball rolling==&lt;br /&gt;
If you went with the bare-bones system in the package selection above, you should boot up to a commandline login prompt (X-Windows hasn't been installed yet). Log in as root. It's now time to install the packages necessary to get things running. You'll find that thanks to the business card installation, you have an up to date system (i.e., &amp;lt;tt&amp;gt;aptitude update&amp;amp;&amp;amp; aptitude dist-upgrade&amp;lt;/tt&amp;gt; won't find any packages needing upgrade. So lets get on with installing all the packages necessary to get things looking a little more like home.&lt;br /&gt;
&lt;br /&gt;
First of all, there are a few things even in the base system that you probably won't need so get rid of them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude purge nano pcmciautils tasksel tasksel-data vim-common vim-tiny&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, you'll want to keep pcmciautils if you plan on using antiquated pcmcia cards. Similarly you may want to keep vim and/or nano if you use those editors. If on the other hand, you're like me, you don't and you'll then want to &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install emacs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now if you're like me and you're craving a windowed multitasking work environment before you go any further, you can just do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install xorg gdm &amp;lt;your favourite window manager (e.g. gnome or openbox)&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now do a&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gdm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you should get a login screen.&lt;br /&gt;
&lt;br /&gt;
==Xorg.conf==&lt;br /&gt;
Ah, the infamous xorg.conf. Luckily, since you're running Debian lenny on an Intel integrated graphics chip, editing xorg.conf isn't strictly necessary. Intel has gone to a lot of trouble to make this as painless as possible. God help you if on the other hand, you got a model with an [[ATI_Mobility_Radeon_X1300|ATI X1300]] or [[ATI_Mobility_Radeon_X1400|ATI X1400]] graphics card. I made a few modifications to the automatically generated xorg.conf that might be of interest.&lt;br /&gt;
&lt;br /&gt;
===Horizontal edge scrolling===&lt;br /&gt;
Edge scrolling has to be my favourite pointing device feature ever, thus I find it rather annoying that it is only half enabled by default. In particular you'll find that though vertical scrolling works like a charm, horizontal scrolling along the bottom of the touchpad doesn't work. Additionally, I find that the default threshold edge distance to initiate scrolling is a little on the large side for my slender fingers. I also find that the corner button emulation tends to be accidentally activated while using edge scrolling so I disable it. Thus, I have updated the relevant input device section to make use of some of the options documented on the [[Synaptics_TouchPad_driver_for_X#Configuring_under_X.Org|Synaptics Touchpad page]]&lt;br /&gt;
&lt;br /&gt;
===Xinerama===&lt;br /&gt;
There is also the issue of using dual monitors. You'll be surprised to find that it &amp;quot;just works&amp;quot; if you have an external monitor plugged in. Well, it kind of &amp;quot;just works&amp;quot; if you like having the displays that is. If, on the other hand you want to expand your desktop, you can either do the configuration on the fly [[Intel_Graphics_Media_Accelerator_950#External_VGA_port_with_XRandR| with XRandR]], or make it permanent by making the appropriate [[Intel_Graphics_Media_Accelerator_950#External_VGA_port_with_xorg.conf|modifications to xorg.conf]]&lt;br /&gt;
&lt;br /&gt;
==Configuring the package manager==&lt;br /&gt;
The best thing about Debian is the package manager. Thus, you want to make sure it's configured optimally to get the best use out of it before you go any further. Once you're logged in, you can edit the &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; file so that it can find more packages than the default. Below is my &amp;lt;tt&amp;gt;sources.list&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# testing - lenny&lt;br /&gt;
deb ftp://mirrors.kernel.org/debian/ lenny main contrib non-free&lt;br /&gt;
deb-src ftp://mirrors.kernel.org/debian/ lenny main contrib non-free&lt;br /&gt;
&lt;br /&gt;
# stable - etch&lt;br /&gt;
deb ftp://mirrors.kernel.org/debian/ etch main contrib non-free&lt;br /&gt;
deb-src  ftp://mirrors.kernel.org/debian/ etch main contrib non-free&lt;br /&gt;
&lt;br /&gt;
# unstable - sid&lt;br /&gt;
deb ftp://mirrors.kernel.org/debian/ sid main contrib non-free&lt;br /&gt;
deb-src ftp://mirrors.kernel.org/debian/ sid main contrib non-free&lt;br /&gt;
&lt;br /&gt;
# experimental&lt;br /&gt;
deb ftp://mirrors.kernel.org/debian/ experimental main contrib non-free&lt;br /&gt;
deb-src ftp://mirrors.kernel.org/debian/ experimental main contrib non-free&lt;br /&gt;
&lt;br /&gt;
# security updates&lt;br /&gt;
deb http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;
deb-src http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll notice that I've also included entries for etch and sid in addition to experimental.&lt;br /&gt;
If you use a different mirror than &amp;lt;tt&amp;gt;mirrors.kernel.org&amp;lt;/tt&amp;gt;, you'll want to make sure that it hosts the experimental branch. This is where we'll find the package for the fingerprint reader. I include stable and unstable for completeness in case there are packages I want that that are only available in unstable, or if I want to revert to a version of a package in stable. Note that the order you specify the branches in the sources.list file makes no difference, thus in order to maintain priority for lenny packages (over sid or experimental which in general have newer packages), I also have an &amp;lt;tt&amp;gt;/etc/apt/preferences&amp;lt;/tt&amp;gt; file with pin priorties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: *&lt;br /&gt;
Pin: release o=Debian,a=stable&lt;br /&gt;
Pin-Priority: 300&lt;br /&gt;
&lt;br /&gt;
Package: *&lt;br /&gt;
Pin: release o=Debian,a=testing&lt;br /&gt;
Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Package: *&lt;br /&gt;
Pin: release o=Debian,a=unstable&lt;br /&gt;
Pin-Priority: 200&lt;br /&gt;
&lt;br /&gt;
Package: *&lt;br /&gt;
Pin: release o=Debian,a=experimental&lt;br /&gt;
Pin-Priority: 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically this is saying that unless I specify otherwise, &amp;quot;testing&amp;quot; (lenny) packages are to be preferred over &amp;quot;stable&amp;quot; (etch) over &amp;quot;unstable&amp;quot; (sid) over &amp;quot;experimental&amp;quot;. A lower Pin-Priority means lower precedence. If you want to override this precedence, you can either use the aptitude gui and select a specific version to install or add the flag &amp;lt;tt&amp;gt;-t &amp;lt;target branch&amp;gt;&amp;lt;/tt&amp;gt; to your &amp;lt;tt&amp;gt;aptitude install &amp;lt;package&amp;gt;&amp;lt;/tt&amp;gt; command. If you do this in such a way as to select a package that has a newer, higher priority alternative available, it will be upgraded next time you do an &amp;lt;tt&amp;gt;aptitude upgrade&amp;lt;/tt&amp;gt; unless you pin that particular package version (see the [http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html#s-pin relevant section] of the apt howto).&lt;br /&gt;
&lt;br /&gt;
Now that we have that sorted out we should do an&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If by some chance you get an annoying message like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
W: GPG error: &amp;lt;servername&amp;gt; &amp;lt;branch&amp;gt; Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907&lt;br /&gt;
W: You may want to run apt-get update to correct these problems&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(especially annoying because it happens when you run &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt; as well), the solution is to run the following command: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 07DC563D1F41B907 &amp;amp;&amp;amp; apt-key add /root/.gnupg/pubring.gpg &amp;amp;&amp;amp; aptitude update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you of course replace &amp;quot;07DC563D1F41B907&amp;quot; with what ever public key you get in the orginal GPG error message. Now of course, the reason this is happening is to ensure your security. You don't want to be downloading packages from unknown or forged sources, so don't just go verifying keys willy nilly without thinking about why you might be getting such a message. In particular, if the message appears even though you haven't recently changed your mirror, something fishy might be going on.&lt;br /&gt;
=== Debian multimedia ===&lt;br /&gt;
If you're looking for those extras that the Debian project doesn't include for a variety of legal reasons like &amp;lt;tt&amp;gt;lame&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;libdvdcss&amp;lt;/tt&amp;gt; and you don't want to worry about compiling them yourself, you could add one of the [http://debian-multimedia.org/debian-m.php one of the debian-multimedia mirrors] to &amp;lt;tt&amp;gt;/etc/apt/sources.list.d&amp;lt;/tt&amp;gt; directory. For example, to use the ftp://gulus.usherbrooke.ca/ mirror, we type &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list.d/debian-multimedia.list&lt;br /&gt;
deb ftp://gulus.usherbrooke.ca/debian-multimedia/ stable main&lt;br /&gt;
deb ftp://gulus.usherbrooke.ca/debian-multimedia/ testing main&lt;br /&gt;
deb ftp://gulus.usherbrooke.ca/debian-multimedia/ unstable main&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that each file in &amp;lt;tt&amp;gt;/etc/apt/sources.list.d/&amp;lt;/tt&amp;gt; is sourced and concatenated to the contents of &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; whenever you do an &amp;lt;tt&amp;gt;aptitude update&amp;lt;/tt&amp;gt;. This is a convenient way to manage multiple diverse mirrors for different programs you may have installed. Note however that the more mirrors you have listed here, the longer it's generally going to take to do an &amp;lt;tt&amp;gt;aptitude update&amp;lt;/tt&amp;gt;. Though the access is parallelised, you probably only have so much bandwidth on your end and the less official mirrors can be kind of slow.&lt;br /&gt;
&lt;br /&gt;
==Installing Packages==&lt;br /&gt;
You might notice that even once you have your favourite window manager running, you're still missing quite a bit in terms of software beyond the basic operating system. &lt;br /&gt;
===Essentials===&lt;br /&gt;
Here are a few highly recommended packages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|acpi-support || a set of scripts intended to respond to acpi events such as Fn-_ key combinations.&lt;br /&gt;
|-&lt;br /&gt;
|apt-file || allows you to search file names in uninstalled pacakges&lt;br /&gt;
|-&lt;br /&gt;
|aterm || a lightweight terminal&lt;br /&gt;
|-&lt;br /&gt;
|cabextract || extract files from windows installation executables&lt;br /&gt;
|-  &lt;br /&gt;
|colordiff || like your old friend diff for identifying dissimilarities between files, but easier on the eyes&lt;br /&gt;
|-&lt;br /&gt;
|cpufrequtils || init scripts to setup cpu frequency scaling at boot&lt;br /&gt;
|-&lt;br /&gt;
|cupsys || cups print server (you'll need it if you want to print)&lt;br /&gt;
|-&lt;br /&gt;
|dash || a light weight bash-like-shell (use it for your init scripts or anything else you want to speed up)&lt;br /&gt;
|-&lt;br /&gt;
|deborphan || find unused packages&lt;br /&gt;
|-&lt;br /&gt;
|defoma || Debian font manager - makes activating fonts easier&lt;br /&gt;
|-&lt;br /&gt;
|emacs-goodies-el || like it says, nice addons for emacs&lt;br /&gt;
|-&lt;br /&gt;
|flashplugin-nonfree || yep, it works on 64 bit&lt;br /&gt;
|-&lt;br /&gt;
|gimp || Opensource gui image editor rivalling Photoshop in power, quality and comprehensiveness.&lt;br /&gt;
|- &lt;br /&gt;
|gv || Ghost View for viewing .ps documents&lt;br /&gt;
|-&lt;br /&gt;
|hdapsd || Daemon to stop the disk if the accelerometer detects shocks.&lt;br /&gt;
|-&lt;br /&gt;
|ia32-sun-java5-bin || 32 bit java 5 (with plugin) &lt;br /&gt;
|-&lt;br /&gt;
|iceweasel || Rebranded Firefox web browser&lt;br /&gt;
|-&lt;br /&gt;
|ifplugd   || monitors the hard-wired Ethernet and brings the interface up or down automatically depending on link presence.&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick || Command line image editor and conversion utilities unrivalled in batch processing power.&lt;br /&gt;
|-&lt;br /&gt;
|laptop-mode-tools || Reduce power consumption by reducing hard disk use while on battery&lt;br /&gt;
|-&lt;br /&gt;
|less || command line text reader with backscrolling &lt;br /&gt;
|-&lt;br /&gt;
|libpam-thinkfinger || used to get the finger print reader running&lt;br /&gt;
|-&lt;br /&gt;
|localepurge || Clean up documentation in unused languages.&lt;br /&gt;
|-&lt;br /&gt;
|menu || Manage system-wide menus&lt;br /&gt;
|-&lt;br /&gt;
|msttcorefonts || Microsoft fonts&lt;br /&gt;
|-&lt;br /&gt;
|ntfsprogs || mount your windows ntfs partition read/write&lt;br /&gt;
|-&lt;br /&gt;
|ntp || daemon to regularly syncronise system clock with network time servers&lt;br /&gt;
|-&lt;br /&gt;
|ntpdate || used to do one-off on-demand syncrhonisation with network time servers&lt;br /&gt;
|-&lt;br /&gt;
|openoffice.org || open source productivity software&lt;br /&gt;
|-&lt;br /&gt;
|prelink || optimises share libraries for better program load performance&lt;br /&gt;
|-&lt;br /&gt;
|sleepd || automated sleep daemon&lt;br /&gt;
|-&lt;br /&gt;
|mlocate || periodically indexes the file system for fast searching &lt;br /&gt;
|-&lt;br /&gt;
|smartmontools || monitor harddisk health&lt;br /&gt;
|-&lt;br /&gt;
|sysv-rc-conf || ncurses gui to activate and deactivate init scripts&lt;br /&gt;
|-&lt;br /&gt;
|ttf-bitstream-vera || bitstream vera true type fonts &lt;br /&gt;
|-&lt;br /&gt;
|ttf-dejavu || dejavu truetype fonts&lt;br /&gt;
|-&lt;br /&gt;
|ttf-freefont || free truetype fonts&lt;br /&gt;
|-&lt;br /&gt;
|unrar || extractor for the archive format popular among hackers&lt;br /&gt;
|-&lt;br /&gt;
|unzip || extractor for the winzip archive format&lt;br /&gt;
|-&lt;br /&gt;
|wpagui || gui for the wireless wpa supplicant&lt;br /&gt;
|-&lt;br /&gt;
|wpasupplicant || the wpa supplicant backend&lt;br /&gt;
|-&lt;br /&gt;
|xfsdump || for backing up mounted xfs filesystems&lt;br /&gt;
|-&lt;br /&gt;
|xpdf || for viewing pdf files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To install all of the above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
aptitude install acpi-support apt-file aterm cabextract colordiff cpufrequtils cupsys dash defoma deborphan emacs emacs-goodies-el flashplugin-nonfree gdm gimp gv hdapsd ia32-sun-java5-bin iceweasel ifplugd imagemagick laptop-mode-tools less libpam-thinkfinger localepurge menu msttcorefonts ntfsprogs ntp ntpdate openoffice.org prelink sleepd mlocate smartmontools sysv-rc-conf ttf-bitstream-vera ttf-dejavu ttf-freefont unrar unzip wpagui wpasupplicant xfsdump xorg xpdf&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Recommended===&lt;br /&gt;
Then there are a few package I like that you may also want to check out depending on your preferences/habits.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|alsamixergui || nice mixer app&lt;br /&gt;
|-&lt;br /&gt;
|arping || like ping, but gives you mac address if its available&lt;br /&gt;
|-&lt;br /&gt;
|bc || arbitrary precision command line calculator (good for scripting)&lt;br /&gt;
|-&lt;br /&gt;
|bmon || command line network bandwidth monitor&lt;br /&gt;
|-&lt;br /&gt;
|css-mode || css syntax for emacs&lt;br /&gt;
|-&lt;br /&gt;
|devilspie || Watches for new xwindows matching configured parameters and acts on them. Very powerful.&lt;br /&gt;
|-&lt;br /&gt;
|dmz-cursor-theme || Make your cursors a little easier on the eyes&lt;br /&gt;
|-&lt;br /&gt;
|equivs || for making &amp;quot;ghost&amp;quot; packages to satisfy dependences for example when you compile something from source&lt;br /&gt;
|-&lt;br /&gt;
|ftnchek || check Fortran syntax&lt;br /&gt;
|-&lt;br /&gt;
|gawk || extended version of awk&lt;br /&gt;
|-&lt;br /&gt;
|genisoimage || create cdrom ISO's before burning them.&lt;br /&gt;
|-&lt;br /&gt;
|gkrellm || performance monitoring gui&lt;br /&gt;
|-&lt;br /&gt;
|gkrelltop || plugin for above showing top resource consuming processes&lt;br /&gt;
|-&lt;br /&gt;
|gkrellmwireless || plugin for above showing wireless signal strength&lt;br /&gt;
|-&lt;br /&gt;
|gparted || graphical partition manager&lt;br /&gt;
|-&lt;br /&gt;
|gphotofs || for mounting digital cameras&lt;br /&gt;
|-&lt;br /&gt;
|grip || excellent cd ripping functionality using cdparanoia backend&lt;br /&gt;
|-&lt;br /&gt;
|gsl-bin || binary files for powerful scientific computing library&lt;br /&gt;
|-&lt;br /&gt;
|gsl-ref-html || documentation for powerful scientific computing library&lt;br /&gt;
|-&lt;br /&gt;
|gtkguitune || guitar tuner gui with oscilloscope-like interface&lt;br /&gt;
|-&lt;br /&gt;
|hdaps-utils || for reading and visualising the accelerometer output&lt;br /&gt;
|-&lt;br /&gt;
|html-helper-mode || enhanced emacs html syntax&lt;br /&gt;
|-&lt;br /&gt;
|ibritish || british flavour of ispell&lt;br /&gt;
|-&lt;br /&gt;
|id3v2 || id3v2 (and v1) mp3 tag reader and editor&lt;br /&gt;
|-&lt;br /&gt;
|k3b || powerful cd/dvd burning gui&lt;br /&gt;
|-&lt;br /&gt;
|lastfm || preference based internet radio and social networking&lt;br /&gt;
|-&lt;br /&gt;
|libgsl0-dev || powerful scientific computing library headers for compiling your own code&lt;br /&gt;
|-&lt;br /&gt;
|libsox-fmt-all || audio file formats for sox, the command line audio player/recorder&lt;br /&gt;
|-&lt;br /&gt;
|lsdvd || view the contents of a video dvd&lt;br /&gt;
|-&lt;br /&gt;
|lshw || show comprehensive list of system hardware and specifications&lt;br /&gt;
|-&lt;br /&gt;
|lsof || display currently open files (good for figuring out what the hell is going on)&lt;br /&gt;
|-&lt;br /&gt;
|mp3gain || losslessly normalise mp3's&lt;br /&gt;
|-&lt;br /&gt;
|mp3rename || rename mp3's based on id3 tags&lt;br /&gt;
|-&lt;br /&gt;
|mutt || powerful terminal-based email client&lt;br /&gt;
|-&lt;br /&gt;
|myspell-en-gb || british myspell (used by open office)&lt;br /&gt;
|-&lt;br /&gt;
|nfs-common || for mounting nfs drives&lt;br /&gt;
|-&lt;br /&gt;
|nmap || for probing open ports locally and remotely&lt;br /&gt;
|-&lt;br /&gt;
|nxml-mode || xml syntax for emacs&lt;br /&gt;
|-&lt;br /&gt;
|obconf || configuration gui for openbox&lt;br /&gt;
|-&lt;br /&gt;
|offlineimap || sync imap folder so you have a local copy accesible when no internet is available&lt;br /&gt;
|-&lt;br /&gt;
|openbox || versatile lightweight window manager&lt;br /&gt;
|-&lt;br /&gt;
|openssh-server || allows remote login&lt;br /&gt;
|-&lt;br /&gt;
|pbzip2 || make full use of the dual core when bzipping things.&lt;br /&gt;
|-&lt;br /&gt;
|post-el || emacs email syntax intended for use with mutt&lt;br /&gt;
|-&lt;br /&gt;
|powertop || see what's causing your processor to wake up and use more battery power&lt;br /&gt;
|-&lt;br /&gt;
|pypanel || lightweight configurable panel&lt;br /&gt;
|-&lt;br /&gt;
|qiv || quick image viewer good for slide shows&lt;br /&gt;
|-&lt;br /&gt;
|rsync || efficient remote and local copying. Copies only differences and ssh for secure communication&lt;br /&gt;
|-&lt;br /&gt;
|samba || windows file server/client software&lt;br /&gt;
|-&lt;br /&gt;
|screen || powerful detachable/reattachable terminal interface&lt;br /&gt;
|-&lt;br /&gt;
|smbfs || allows mounting of windows shares&lt;br /&gt;
|-&lt;br /&gt;
|sox || command line audio recording and playing utilities&lt;br /&gt;
|-&lt;br /&gt;
|sshfs || allows mount of remote trees on ssh server machines with no special remote configuration&lt;br /&gt;
|-&lt;br /&gt;
|sux || su that passes proper Xauthority&lt;br /&gt;
|-&lt;br /&gt;
|sysstat || command line system monitoring&lt;br /&gt;
|-&lt;br /&gt;
|udftools || tools dealing with the filesystem common in optical media&lt;br /&gt;
|-&lt;br /&gt;
|unclutter || hide of mouse cursor when its not being used.&lt;br /&gt;
|-&lt;br /&gt;
|unison || keep local and remote filesystems in sync using the rsync protocol and ssh&lt;br /&gt;
|-&lt;br /&gt;
|urlview || open urls in mutt with your favourite browser&lt;br /&gt;
|-&lt;br /&gt;
|wbritish-huge || large british words list&lt;br /&gt;
|-&lt;br /&gt;
|whois || detailed domain querying command&lt;br /&gt;
|-&lt;br /&gt;
|wmctrl || control window manager from the command line&lt;br /&gt;
|-&lt;br /&gt;
|wodim || command line cd buring (successor to cdrecord)&lt;br /&gt;
|-&lt;br /&gt;
|xclip || command line x clipboard tool feed standard input into clipboard, extract clipboard to standard output.&lt;br /&gt;
|-&lt;br /&gt;
|xmms || x multimedia system winamp-like mp3/media player&lt;br /&gt;
|-&lt;br /&gt;
|xmms-cdread || read cd's via the digital link rather than rely on that annoying analogue cable&lt;br /&gt;
|-&lt;br /&gt;
|xmms-crossfade || for gapless playback&lt;br /&gt;
|-&lt;br /&gt;
|xmms-shell || for command line control of xmms&lt;br /&gt;
|-&lt;br /&gt;
|xmms-skins || skins for xmms&lt;br /&gt;
|-&lt;br /&gt;
|xosd-bin || for writing on screen display messages from the command line&lt;br /&gt;
|-&lt;br /&gt;
|xosview || performance monitor gui (key feature is the irq monitor)&lt;br /&gt;
|-&lt;br /&gt;
|xscreensaver || locks the screen after inactivity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To install all of the above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;aptitude install alsamixergui apt-file arping bc bmon colordiff css-mode deborphan devilspie dmz-cursor-theme equivs freeglut3 ftnchek gawk genisoimage gkrellm gkrelltop gkrellmwireless gparted gphotofs grip gsl-bin gsl-ref-html gtkguitune hdaps-utils html-helper-mode ibritish id3v2 k3b lastfm libformsgl1 libgsl0-dev libsox-fmt-all lsdvd lshw lsof mkisofs mp3gain mp3rename mutt myspell-en-gb nfs-common nmap nxml-mode obconf offlineimap openbox openssh-server pbzip2 post-el powertop pypanel qiv rsync samba screen smbfs sox sshfs sux sysstat udftools unclutter unison urlview wbritish-huge whois wmctrl wodim xclip xmms xmms-cdread xmms-crossfade xmms-shell xmms-skins xosd-bin xosview xscreensaver&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Fingerprint reader==&lt;br /&gt;
Ok, admit it. This is the '''real''' reason you got a thinkpad. Getting the [[Integrated_Fingerprint_Reader|fingerprint reader]] working is surprisingly easy with the new open source [[How_to_enable_the_fingerprint_reader_with_ThinkFinger|thinkfinger]] driver. This is highly recommended over the binary only driver which much more difficult to install and less stable even leading xscreensaver to crash and expose the desktop without a provided fingerprint or password!&lt;br /&gt;
&lt;br /&gt;
If you didn't install it among the packages above, see the [[How_to_enable_the_fingerprint_reader_with_ThinkFinger#Debian|relevant section]] of the howto.&lt;br /&gt;
&lt;br /&gt;
Once you have it installed, you must [[How_to_enable_the_fingerprint_reader_with_ThinkFinger#Configuring_PAM_to_use_ThinkFinger|instruct PAM to use it]] so that it will ask for your fingerprint when you login with gdm or at the command line (or any thing else that uses PAM). To make it brief and more Debian-specific, you want your &amp;lt;tt&amp;gt;/etc/pam.d/common-auth&amp;lt;/tt&amp;gt; file's only uncommented lines to be&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth    sufficient      pam_thinkfinger.so&lt;br /&gt;
auth    required        pam_unix.so nullok_secure try_first_pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you want to enroll the fingerprints of any users as well as root&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tf-tool --add-user &amp;lt;username&amp;gt;&lt;br /&gt;
tf-tool --add-user root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will put the fingerprint patterns in &amp;lt;tt&amp;gt;/etc/pam_thinkfinger/&amp;lt;username&amp;gt;.bir&amp;lt;/tt&amp;gt;. You may also want to make sure you have the &amp;lt;tt&amp;gt;uinput&amp;lt;/tt&amp;gt; module probed by typing &amp;lt;tt&amp;gt;lsmod | grep uinput&amp;lt;/tt&amp;gt;. If not, then probe it (&amp;lt;tt&amp;gt;modprobe uinput&amp;lt;/tt&amp;gt;) and put it into your &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt; file to be probed on boot &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo uinput &amp;gt;&amp;gt; /etc/moduleds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now for the icing on the cake. If you have xscreensaver (&amp;gt;=5.0) or a sufficiently recent version of gnome-screensaver, you can [[How_to_enable_the_fingerprint_reader_with_ThinkFinger#xscreensaver.2Fgnome-screensaver|use your fingerprint to unlock the screen]] as well.&lt;br /&gt;
&lt;br /&gt;
==A few /etc configurations==&lt;br /&gt;
&lt;br /&gt;
===services===&lt;br /&gt;
By default, you'll probably have a bunch of services running at startup that are going to lengthen your boot time and likely eat up system resources as long as they're running. You can use the &amp;lt;tt&amp;gt;bum&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sysv-rc-conf&amp;lt;/tt&amp;gt; utilities to enable or disable scripts at different run levels. In Debian, run level 2 is the regular multi-user mode, while run level 1 is single-user (maintenance mode). Run levels 3-5 are usually identical to 2, but you can customise them otherwise. Run levels 0,6 which are for shutdown and hibernate. Runlevel S is for system startup scripts. For more on how debian deals with run levels, take a look at the [http://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit Debian Policy Manual]. Below is a table with all of the services I have and when they are started. Keep in mind that I don't use gnome or kde which might be aversely affected by disabling &amp;lt;tt&amp;gt;dbus&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;hal&amp;lt;/tt&amp;gt; as I have. I have also completely removed the &amp;lt;tt&amp;gt;discover1&amp;lt;/tt&amp;gt; package.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude purge discover1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{|border =1&lt;br /&gt;
|+&lt;br /&gt;
!service               !! runlevel 1 !! runlevel 2-5 !! runlevel 0 !! runlevel 6 !! runlevel S&lt;br /&gt;
|-&lt;br /&gt;
|          acpi-support|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                 acpid|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|            alsa-utils|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|               anacron|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                   atd|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|          avahi-daemon|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|             bootclean|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|              bootlogd|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|          cpufrequtils|| ||X|| || || &lt;br /&gt;
|-&lt;br /&gt;
|                  cron|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                cupsys|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                  dbus|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                 exim4|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                  fuse|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                   gdm|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                   hal|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                  halt|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                hdapsd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                hdparm|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|             hibernate|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|               ifplugd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|              ifupdown|| || ||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
|        ifupdown-clean|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|             killprocs||X|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                 klogd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|           laptop-mode|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|           loadcpufreq|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|     module-init-tools|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|            networking|| || ||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
|            nfs-common|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                   ntp|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|         openbsd-inetd|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|               portmap|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                procps|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|              rc.local|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                reboot|| || || ||X||&lt;br /&gt;
|-&lt;br /&gt;
|             rmnologin|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                 rsync|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                 samba|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|        screen-cleanup|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|              sendsigs|| || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|                single||X|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                sleepd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|         smartmontools|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|                   ssh|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|         stop-bootlogd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|  stop-bootlogd-single|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|              sysklogd|| ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|               sysstat|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|                  udev|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|             udev-mtab|| || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
|              udftools|| || || || || &lt;br /&gt;
|-&lt;br /&gt;
|              umountfs|| || ||X||X|| &lt;br /&gt;
|-&lt;br /&gt;
|            umountroot|| || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|               urandom|| || ||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
|               vbesave|| || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|          wpa-ifupdown|| || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|            x11-common|| || || || ||X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Use dash for init scripts===&lt;br /&gt;
Dash is essentially a lighter weight POSIX compliant version of bash. It is supposed to run slightly faster than bash, so it would seem like a good idea to use it to replace bash for executing your init scripts. This can be done simply by replacing the &amp;lt;tt&amp;gt;#!/bin/sh&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#!/bin/bash&amp;lt;/tt&amp;gt; line at the beginning of each script with &amp;lt;tt&amp;gt;#!/bin/dash&amp;lt;/tt&amp;gt;. The following script does just that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Since the operation takes a second or two, lets check if it's necessary first&lt;br /&gt;
head -qn1 /etc/init.d/* | egrep -q '/bin/sh|/bin/bash'&lt;br /&gt;
if [ $? = 0 ];then&lt;br /&gt;
    echo dashing init scripts&lt;br /&gt;
    for file in /etc/init.d/*;do&lt;br /&gt;
        sed -i '1 s|#![ ]*/bin/b\?a\?sh|#!/bin/dash|g' $file&lt;br /&gt;
    done&lt;br /&gt;
fi&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Even though this is rather quick and easy, you don't want to have to worry about this tweak being undone by future package upgrades. So we add an apt rule in &amp;lt;tt&amp;gt;/etc/apt/apt.conf.d/90-initdash&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Make sure init scripts use dash&lt;br /&gt;
DPkg&lt;br /&gt;
{&lt;br /&gt;
Post-Invoke {&amp;quot;/usr/local/sbin/initdash&amp;quot;;};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells apt to run &amp;lt;tt&amp;gt;/usr/local/sbin/initdash&amp;lt;/tt&amp;gt; (which is where I keep the above script) after each time it invokes dpkg. So any init scripts installed by new packages will get &amp;quot;dashed&amp;quot;.&lt;br /&gt;
===Init concurrency===&lt;br /&gt;
You have dual cores so why not make use of them in boot. Edit &amp;lt;tt&amp;gt;/etc/init.d/rc&amp;lt;/tt&amp;gt; and make sure it has the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONCURRENCY=shell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
rather than &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONCURRENCY=none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don't ask me what setpar means.&lt;br /&gt;
===You don't need 6 vitual consoles===&lt;br /&gt;
By default nearly all Linux distributions create 6 virtual login consoles that you can access by hitting Alt-Ctl-F1-6. The Seventh (and beyond if you're using multi-session gdm) is where X sits. Admittedly these consoles probably don't take up too many resources, but I have never found myself to need more than two of them. So disable the rest in &amp;lt;tt&amp;gt;/etc/inittab&amp;lt;/tt&amp;gt; by commenting out the some of them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1:2345:respawn:/sbin/getty 38400 tty1&lt;br /&gt;
2:23:respawn:/sbin/getty 38400 tty2&lt;br /&gt;
# 3:23:respawn:/sbin/getty 38400 tty3&lt;br /&gt;
# 4:23:respawn:/sbin/getty 38400 tty4&lt;br /&gt;
# 5:23:respawn:/sbin/getty 38400 tty5&lt;br /&gt;
# 6:23:respawn:/sbin/getty 38400 tty6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start gdm first===&lt;br /&gt;
By default, adding gdm as a service in runlevel 2 creates the symlink &amp;lt;tt&amp;gt;/etc/rc2.d/30gdm&amp;lt;/tt&amp;gt;  to &amp;lt;tt&amp;gt;/etc/init.d/gdm&amp;lt;/tt&amp;gt;. This tells init to start gdm in runlevel 2 after all services that are symlinked with prefixes less than &amp;lt;tt&amp;gt;S30&amp;lt;/tt&amp;gt;. In the above enabled init scripts, there's nothing that gdm strictly depends on to start, so why not start it first and get a login while the rest of the bootscripts complete? With the scripts enabled as above, the earliest running is &amp;lt;tt&amp;gt;/etc/rc2.d/S05loadcpufreq&amp;lt;/tt&amp;gt;. I make &amp;lt;tt&amp;gt;gdm&amp;lt;/tt&amp;gt; run just before this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv /etc/rc2.d/S30gdm /etc/rc2.d/S04gdm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may have to do things differently if you have other services running or if for some reason you need something to start before gdm. In any case, make sure you know what you're moving around before you do it lest you break some delicate order of dependencies and make your system unbootable.&lt;br /&gt;
&lt;br /&gt;
===bootlog===&lt;br /&gt;
Even though I've enabled &amp;lt;tt&amp;gt;bootlogd&amp;lt;/tt&amp;gt; above, I still need to enable it in &amp;lt;tt&amp;gt;/etc/default/bootlogd&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTLOGD_ENABLE=Yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will cause boot messages to be logged into &amp;lt;tt&amp;gt;/var/log/boot&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===hdapsd===&lt;br /&gt;
Hdapsd is the daemon that monitors the accelerometer and parks the hard disk heads if it detects sudden movement of the laptop. It does however need to be told what to protect. By default it works on &amp;lt;tt&amp;gt;/dev/hda&amp;lt;/tt&amp;gt;, but modern thinkpads use SATA and so this needs to be changed to &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt;. This is set in the file &amp;lt;tt&amp;gt;/etc/default/hdapsd&amp;lt;/tt&amp;gt;, where you must change the line &amp;lt;tt&amp;gt;DISK=&amp;quot;hda&amp;quot;&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DISK=&amp;quot;sda&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
{{NOTE|This alone will not enable hdapsd protection. You need to patch the kernel for this as described [[Installing_Debian_Lenny_on_a_ThinkPad_T60#Build_your_own_kernel_.28the_Debian_way|below]]}}&lt;br /&gt;
&lt;br /&gt;
===smartd===&lt;br /&gt;
By default, smartd is not enabled when you install the &amp;lt;tt&amp;gt;smartmontools&amp;lt;/tt&amp;gt; package. To enable it, uncomment '''only''' the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
start_smartd=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in &amp;lt;tt&amp;gt;/etc/default/smartmontools&amp;lt;/tt&amp;gt;. Don't mess with the line about &amp;lt;tt&amp;gt;smartd_opts=&amp;lt;/tt&amp;gt;, we deal with that in the &amp;lt;tt&amp;gt;/etc/smartd.conf&amp;lt;/tt&amp;gt; file. I  modified mine so that the only uncommented line is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda -a -d sat -n standby -m root -M exec /usr/share/smartmontools/smartd-runner&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I figured there was no point in using &amp;lt;tt&amp;gt;DEVICESCAN&amp;lt;/tt&amp;gt; when I already know that I just want to monitor &amp;lt;tt&amp;gt;/dev/sda&amp;lt;/tt&amp;gt; (the cdrom doesn't have smart). This will probably speed things up. The remaining options tell smartd that the disc is behind a SCSI to ATA translation layer, that it should not spin up the disk to do a check and that it should email root should there be a problem. You can check to make sure the emails get through by adding &amp;lt;tt&amp;gt;-M test&amp;lt;/tt&amp;gt; to the end of that line and restarting smart. Remember to remove it though, otherwise, you'll get an email every time you boot up.&lt;br /&gt;
&lt;br /&gt;
===exim4-config===&lt;br /&gt;
You need to tell exim how to send mail. To do this, type&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure exim4-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and follow the dialogs. To be honest, I have trouble sorting through exactly what I want each one to say whenever I do this. Here are the answers I decided on:&lt;br /&gt;
*Mail sent by smarthost;recieved via SMTP or fetchmail&lt;br /&gt;
*System mail name: The FQDN of my laptop&lt;br /&gt;
*IP-addresses to listen on:127.0.0.1&lt;br /&gt;
*Other destinations for which . . .: same as system mail name&lt;br /&gt;
*Machines to relay mail for: &amp;lt;blank&amp;gt;&lt;br /&gt;
*IP address or host name of outgoing smarthost: (this is the server to which your machine should send outgoing mail) Since my mail server requires an SSL/TSL connection on port 587, I must suffix the server name with &amp;quot;&amp;lt;tt&amp;gt;::587&amp;lt;/tt&amp;gt;&amp;quot;. Note the two colons.&lt;br /&gt;
*Hide mail name in outgoing mail: yes&lt;br /&gt;
*Visible domain name for local users: same as mail name&lt;br /&gt;
*DNS queries minimal?:no&lt;br /&gt;
*Delivery method:/var/mail&lt;br /&gt;
*Small files?:no&lt;br /&gt;
Then, I edit the file &amp;lt;tt&amp;gt;/etc/email-addresses&amp;lt;/tt&amp;gt; so that it says&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;my user name&amp;gt;:my.email.address@server.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then I make sure that mail to root goes to me by ensuring that &amp;lt;tt&amp;gt;/etc/aliases&amp;lt;/tt&amp;gt; looks as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/aliases&lt;br /&gt;
mailer-daemon: postmaster&lt;br /&gt;
postmaster: root&lt;br /&gt;
nobody: root&lt;br /&gt;
hostmaster: root&lt;br /&gt;
usenet: root&lt;br /&gt;
news: root&lt;br /&gt;
webmaster: root&lt;br /&gt;
www: root&lt;br /&gt;
ftp: root&lt;br /&gt;
abuse: root&lt;br /&gt;
noc: root&lt;br /&gt;
security: root&lt;br /&gt;
root: &amp;lt;my user name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and that mail sent to me ends up at my regular email address:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo my.email.address@server.com &amp;gt; ~/.forward&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, since as I mentioned, I'm using SSL/TLS, I have to put my user name and password (for the outgoing mail server) in the file &amp;lt;tt&amp;gt;/etc/exim4/passwd.client&amp;lt;/tt&amp;gt;, which unfortunately must be plain text. The format is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.server.address:username:password&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then I restart exim4&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/exim4 restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and send some test emails in various contexts:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail -s 'test from user to user' &amp;lt;myusername&amp;gt;&lt;br /&gt;
mail -s 'test form user to root' root&lt;br /&gt;
mail -s 'test from user to outside' alternateemail@alternateserver.com&lt;br /&gt;
su &lt;br /&gt;
mail -s 'test from root to user' &amp;lt;myusername&amp;gt;&lt;br /&gt;
mail -s 'test form root to root' root&lt;br /&gt;
mail -s 'test from root to outside' alternateemail@alternateserver.com&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and hope all those emails go where I expected them to. &lt;br /&gt;
&lt;br /&gt;
If you run into trouble, check the various subdirectories of &amp;lt;tt&amp;gt;/var/spool/exim4&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;msglog&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; should have nothing in them after you've sent emails if everything is working. See if you can't find some error messages that give you some clues in any files that do crop up here.&lt;br /&gt;
&lt;br /&gt;
===default applications===&lt;br /&gt;
Right now, the system wide default for the terminal is gnome terminal. This is second only to Konsole in bloat. If you want to keep things streamlined,  change the systemwide default to aterm (which you downloaded above).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update-alternatives --config x-terminal-emulator &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And select &amp;lt;tt&amp;gt;/usr/bin/aterm-xterm&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Now for the browser you're going to want iceweasel (firefox)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
update-alternatives --config x-www-browser &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And select iceweasel.&lt;br /&gt;
&lt;br /&gt;
===bash completion===&lt;br /&gt;
It's also nice to have more extended bash completion enabled. This will give you such niceties as completion of &amp;lt;tt&amp;gt;man at&amp;lt;/tt&amp;gt; if you hit tab, or give you suggestions as to what you can &amp;lt;tt&amp;gt;ifup&amp;lt;/tt&amp;gt;. Trust me, if you're going to be using the command line, you're going to want to open up &amp;lt;tt&amp;gt;/etc/bash.bashrc&amp;lt;/tt&amp;gt; and uncomment the lines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# enable bash completion in interactive shells&lt;br /&gt;
#if [ -f /etc/bash_completion ]; then&lt;br /&gt;
#    . /etc/bash_completion&lt;br /&gt;
#fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===that annoying beep===&lt;br /&gt;
Ok, so you've hit tab a couple times or directed the emacs cursor off the buffer and have heard quite enough of that pc speaker beep. Here's how you get rid of it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo blacklist pcspkr &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That prevents the module from loading when you boot up. If you want to remove it right now without further ceremony:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rmmod pcspkr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===more blacklisting===&lt;br /&gt;
Though you want to be able to use all your hardware you probably don't need to load all the modules at boot. Thanks to automatic module loading stuff will usually load when you actually try to use it. For instance &amp;lt;tt&amp;gt;ehci-hcd&amp;lt;/tt&amp;gt; which controls usb 2.0 devices will automatically load when you plug in a usb  2.0 device. Likewise, the &amp;lt;tt&amp;gt;ide_cd&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;cdrom&amp;lt;/tt&amp;gt; modules will load when you actually try to mount a cd. So you can add a few more entries to the &amp;lt;tt&amp;gt;/etc/modprobe.d/blacklist&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist ide_cd&lt;br /&gt;
blacklist cdrom&lt;br /&gt;
blacklist ehci-hcd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that this doesn't mean they won't ever load. It only means they won't load on boot. Having the modules unloaded by default may also help to save power on these devices. Unfortunately, the function of the fingerprint reader is dependent on &amp;lt;tt&amp;gt;uhci-hcd&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;usbcore&amp;lt;/tt&amp;gt; in addition to &amp;lt;tt&amp;gt;uinput&amp;lt;/tt&amp;gt; so we can't blacklist those to shut down the USB system completely.&lt;br /&gt;
&lt;br /&gt;
===daily defrags===&lt;br /&gt;
One of the great things about the XFS file system is that it has a defragmenter. I don't however want to worry about running it all the time, so I've added the file &amp;lt;tt&amp;gt;/etc/cron.daily/xfs_defrag&amp;lt;/tt&amp;gt; containing simply&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
xfs_fsr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===prelink===&lt;br /&gt;
According to the comments in &amp;lt;tt&amp;gt;/etc/default/prelink&amp;lt;/tt&amp;gt; prelinking isn't enabled by default upon instlalling the prelink package. In order to enable it, edit &amp;lt;tt&amp;gt;/etc/default/prelink&amp;lt;/tt&amp;gt; and make sure that &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRELINKING=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===less swap please===&lt;br /&gt;
With the size of RAM these days, swap is almost redundant. You need to tell your kernel just how redundant you want it to be I pick 5 and set it thus in &amp;lt;tt&amp;gt;sysctl.conf&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Reign in that swappiness&lt;br /&gt;
vm.swappiness=5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Mount your windows partition===&lt;br /&gt;
If you keep your windows partition you're probably going to want to have read/write access to it. Gone are the days when this was only a dream for Linux users thanks to ntfsprogs (formerly ntfs-3g). Assuming you have installed the &amp;lt;tt&amp;gt;ntfsprogs&amp;lt;/tt&amp;gt; package recommended above, all you need to do is add a line like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dev/sda1       /media/win      ntfs-fuse gid=fuse,dmask=0007,fmask=0117 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt; and add your user to the &amp;quot;fuse&amp;quot; group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adduser &amp;lt;you&amp;gt; fuse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This causes the windows partition (in my case &amp;lt;tt&amp;gt;/dev/sda1&amp;lt;/tt&amp;gt;, though this may vary) to be mounted on &amp;lt;tt&amp;gt;/media/win&amp;lt;/tt&amp;gt; with read write access for everyone in the group fuse.&lt;br /&gt;
&lt;br /&gt;
==Build your own kernel (the Debian way)==&lt;br /&gt;
You may be reluctant to venture into the world of kernel compilation, but '''it is necessary to get the accelerometer hard disk protection working'''. Code has to be added to the kernel (don't worry you don't have to write it!) to tell it how to &amp;quot;park&amp;quot; the hard disk heads when hdapsd tells it the laptop is moving around. Hopefully, as this feature becomes more common, it will be built into future releases of the mainline kernel, but for now we must rely on patching the kernel ourselves. There is also something to be said for having a kernel that is tailor matched to your machine. You can cut out a lot of unnecessary stuff and optimise the kernel to your specific system. Thankfully, Debian has eased the burden of kernel compilation and installation with the &amp;lt;tt&amp;gt;kernel-package&amp;lt;/tt&amp;gt; package. The following is heavily based on this [http://newbiedoc.sourceforge.net/system/kernel-pkg.html|this howto].&lt;br /&gt;
&lt;br /&gt;
#Add yourself to the &amp;lt;tt&amp;gt;src&amp;lt;/tt&amp;gt; group so that you have write access to the &amp;lt;tt&amp;gt;/usr/src&amp;lt;/tt&amp;gt; directory and can do most of the procedure as a regular user.&lt;br /&gt;
#Install the necessary packages&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;aptitude install gcc kernel-package linux-source-2.6.23 libc6-dev tk8.3 libqt3-mt-dev libncurses5-dev fakeroot&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Log out and log back in for the addition to the src group to take affect. You can ensure that this is the case by typing &amp;lt;tt&amp;gt;groups&amp;lt;/tt&amp;gt; and looking for &amp;quot;&amp;lt;tt&amp;gt;src&amp;lt;/tt&amp;gt;&amp;quot; in the resulting list.&lt;br /&gt;
#As a regular user, get the hdaps-protect patch:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;mkdir /usr/src/hdaps/ &amp;amp;&amp;amp; cd /usr/src/hdaps &amp;amp;&amp;amp; wget 'http://sourceforge.net/mailarchive/attachment.php?list_name=hdaps-devel&amp;amp;message_id=87pry7ehx3.fsf%40denkblock.local&amp;amp;counter=2' -O hdaps-protect.2.6.23.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now, unpack the kernel source&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;cd /usr/src &amp;amp;&amp;amp; tar xvjf linux-source-2.6.23.tar.bz2 &amp;amp;&amp;amp; cd linux-source-2.6.23&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Apply the patch:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;patch -p1 &amp;lt; ../hdaps/hdaps-protect.2.6.23.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
#As a starting point for configuration, you can use the Debian .config file&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;su -c 'aptitude install linux-headers-2.6.23-1-amd64'&amp;lt;br&amp;gt;cp ../linux-headers-2.6.23-1-amd64/.config .&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;This is the recommended route if this is your first time compiling a kernel. Alternatively, you can take a look at [[User:Kevmitch|mine]], which is highly customised to my particular model and you should probably go through yourself to make sure it's not missing anything that you want. &lt;br /&gt;
#To edit/view the configuration with the &amp;quot;user friendly&amp;quot; gui&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;make xconfig&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Once you've gotten a suitable configuration&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;export CONCURRENCY_LEVEL=3 &amp;amp;&amp;amp; fakeroot make-kpkg clean &amp;amp;&amp;amp; fakeroot make-kpkg --append-to-version=.mycfg kernel_image&amp;lt;/tt&amp;gt;&lt;br /&gt;
#While your kernel is compiling you might take a minute to make it easier on yourself when it comes time to install it. It seems that by default dpkg does nothing special when it installs a kernel package. This is WRONG! If you don't add the kernel to the &amp;lt;tt&amp;gt;/boot/grub/menu.lst&amp;lt;/tt&amp;gt; file, then it will just sit in your &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt; directory doing nothing. You can solve this by running &amp;lt;tt&amp;gt;update-grub&amp;lt;/tt&amp;gt; after you install or remove a kernel. One better however is to tell dpkg to do the dirty work for you:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;printf 'postinst_hook=/sbin/update-grub\npostrm_hook=/sbin/update-grub\n' &amp;gt;&amp;gt; /etc/kernel-img.conf&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This is also a good time to tweak your boot parameters. One in particular is &amp;lt;tt&amp;gt;vga=794&amp;lt;/tt&amp;gt; which tells the kernel to display the console at higher resolution that default. To enable this, find the section that looks like&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;## ## Start Default Options ##&amp;lt;br&amp;gt;## default kernel options&amp;lt;br&amp;gt;## default kernel options for automagic boot options&amp;lt;br&amp;gt;## If you want special options for specific kernels use kopt_x_y_z&amp;lt;br&amp;gt;## where x.y.z is kernel version. Minor versions can be omitted.&amp;lt;br&amp;gt;## e.g. kopt=root=/dev/hda1 ro&amp;lt;br&amp;gt;##      kopt_2_6_8=root=/dev/hdc1 ro&amp;lt;br&amp;gt;##      kopt_2_6_8_2_686=root=/dev/hdc2 ro&amp;lt;br&amp;gt;# kopt=root=/dev/sda11 ro&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;and change the last line to&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;# kopt=root=/dev/sda11 ro vga=794&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;That's right, keep it commented. Debian's &amp;lt;tt&amp;gt;update-grub&amp;lt;/tt&amp;gt; command reads the comments and uses them to decide how to format that actual entries further down in the file.&lt;br /&gt;
#After a little under 10 minutes thanks to some hot dual core action, you'll have a &amp;lt;tt&amp;gt;.deb&amp;lt;/tt&amp;gt; package containing your very own kernel. Just install it as you would any other &amp;lt;tt&amp;gt;.deb&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;su -c 'dpkg -i /usr/src/linux-image-2.6.23.mycfg_2.6.23.mycfg-10.00.Custom_amd64.deb'&amp;lt;/tt&amp;gt;&lt;br /&gt;
#This should handle the painful part for you. You should now be able to reboot and select your custom kernel on your bootloader screen.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you notice that your kernel is repeatedly spewing the message&amp;lt;pre&amp;gt;hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error }&lt;br /&gt;
hda: drive_cmd: error=0x04 { AbortedCommand }&lt;br /&gt;
ide: failed opcode was: 0xef&amp;lt;/pre&amp;gt;Saying yes to the &amp;lt;tt&amp;gt;IDEDISK_MULTI_MODE&amp;lt;/tt&amp;gt; kernel option under &amp;lt;tt&amp;gt;Device Drivers-&amp;gt;ATA/ATAPI/MFM/RLL-&amp;gt;Use multi-mode by default&amp;lt;/tt&amp;gt; in the xconfig menu won't solve your problem as the description suggests. This is more likely caused by power management scripts calling &amp;lt;tt&amp;gt;hdparm&amp;lt;/tt&amp;gt; on the cdrom. See [[Installing_Debian_Lenny_on_a_ThinkPad_T60#hd_power_management:_laptop-mode|below]] for the real solution.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Wireless with madwifi==&lt;br /&gt;
I had the brilliant idea of getting the 11n capable [[ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter|ThinkPad_11a/b/g/n]] wireless adaptor which is really just an Atheros AR5418. In retrospect, I should have gone with a more sensible choice like the [[Intel_PRO/Wireless_3945ABG_Mini-PCI_Express_Adapter|Intel Pro]] which is directly supported in the mainline kernel. I think it's fair to say that Atheros is the ATI of wireless cards in terms of Linux support. It works, but you'll pull your hair out in the process. Since the AR5418 is so new, the latest release of madwifi doesn't even support this card. However the latest subversion snapshot does (though of course only up to 11g).&lt;br /&gt;
&lt;br /&gt;
As you've probably noticed I'm going with a 64 bit system. Thus the more stable ndiswrapper won't work because the windows driver supplied by Lenovo is 32bit only. But don't go thinking that going 32 bit and using ndiswrapper will get you 11n. [[ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter#Draft_n_support_in_Linux|It won't]].&lt;br /&gt;
&lt;br /&gt;
That said, to install the latest snapshot of madwifi, you first need to install subversion. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install subversion&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''If''' you skipped the kernel compilation step above and are using a stock Debian kernel, you will also need to install your kernel headers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install linux-headers-`uname -r`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Where &amp;quot;&amp;lt;tt&amp;gt;`uname -r`&amp;lt;/tt&amp;gt;&amp;quot; is of course evaluated by the shell to the currently running kernel version.&lt;br /&gt;
&lt;br /&gt;
Now follow the [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008|howto]]. Pay attention to the note at the end about changing the name of the device to wlan0. This was written by me, so it's fair to assume that you'll encounter the same thing using Debian.&lt;br /&gt;
&lt;br /&gt;
===wpa_supplicant===&lt;br /&gt;
wpa_gui is quite a powerful applications that lets you interact with a running wpa_supplicant in an intuitive way. It allows you to scan and connect to available networks as well as save and delete preferred networks. By default however wpa_gui has to be run as root because only root has permissions to affect wpa_supplicant. To remedy this, ensure that your &amp;lt;tt&amp;gt;wpa_supplicant.conf&amp;lt;/tt&amp;gt; has the global settings &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctrl_interface_group=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
near the top of the file. &amp;quot;netdev&amp;quot; is the name of the group which is allowed access to the wpa_supplicant interface and update_config allows you to save changes to your preferred networks. You now need to add yourself to the netdev group so you can run wpa_gui.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adduser &amp;lt;you&amp;gt; netdev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You'll be added to the group after completely logging out and logging back in. The only minor annoyance is that wpa_gui is still located in /usr/sbin which is not in your default path. As such, you might want to create a symbolic link to it in /usr/bin/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/sbin/wpa_gui /usr/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want maximum control over how various wireless networks are setup, you can of course edit &amp;lt;tt&amp;gt;wpa_supplicant.conf&amp;lt;/tt&amp;gt; directly. You can get a comprehensive list of examples by typing the command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zless /usr/share/doc/wpasupplicant/examples/README.wpa_supplicant.conf.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don't bother however putting any comments in the &amp;lt;tt&amp;gt;wpa_supplicant.conf&amp;lt;/tt&amp;gt; file since these will be erased if you have the &amp;lt;tt&amp;gt;update_config=1&amp;lt;/tt&amp;gt; parameter set as described above.&lt;br /&gt;
&lt;br /&gt;
==tp_smapi==&lt;br /&gt;
[[tp_smapi]] is a module that allows you to access various bits of information about your thinkpad generally focused around the battery. It also provides a more up to date driver for the hdaps accelerometer. Here's how to get it running:&lt;br /&gt;
#Get the source:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;wget http://downloads.sourceforge.net/tpctl/tp_smapi-0.34.tgz&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Unzip the source and go into the directory:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;tar xvzf tp_smapi-0.34.tgz &amp;amp;&amp;amp; cd tp_smapi-0.34&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Build and install it with the new hdaps driver:&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;make install HDAPS=1&amp;lt;/tt&amp;gt;&lt;br /&gt;
#In order to get the module probed on bootup, just add &amp;quot;&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;&amp;quot; to &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;.&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;echo tp_smapi &amp;gt;&amp;gt; /etc/modules&amp;lt;/tt&amp;gt;&lt;br /&gt;
#You can find a list of userspace applications that utilise this driver [[Tp_smapi#Tools_using_this_driver|here]]. I use the [[Gkrellm-ThinkBat|gkrellm plugin]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -c 'aptitude install libgtk2.0-dev'&lt;br /&gt;
cd /usr/local/src&lt;br /&gt;
wget http://www.ksp.sk/~rasto/gkrellm-thinkbat/gkrellm-thinkbat-latest.tar.gz&lt;br /&gt;
tar xvzf gkrellm-thinkbat-latest.tar.gz&lt;br /&gt;
cd gkrellm-thinkbat-0.2.2&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring ACPI==&lt;br /&gt;
===thinkpad_acpi/enabling hotkeys===&lt;br /&gt;
First of all, similar to &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; it seems that &amp;lt;tt&amp;gt;[[thinkpad-acpi]]&amp;lt;/tt&amp;gt; doesn't load automatically, so put it in &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt; as well.&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;echo thinkpad_acpi &amp;gt;&amp;gt; /etc/modules&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it has somehow found itself installed (as is the case if you selected &amp;quot;laptop&amp;quot; packages in the initial installation), get rid of &amp;lt;tt&amp;gt;hotkey-setup&amp;lt;/tt&amp;gt;. It's totally unnecessary with the new &amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; module which captures all the keys just fine. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude purge hotkey-setup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The same goes for [[tpb]]. &amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; now covers the gap in key-coverage that this previously made up for.&lt;br /&gt;
&lt;br /&gt;
Now to enable some hotkeys. Assuming you have &amp;lt;tt&amp;gt;acpid&amp;lt;/tt&amp;gt; running, you can monitor acpi events by typing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tail -f /var/log/acpid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll find that with &amp;lt;tt&amp;gt;thinkpad_acpi&amp;lt;/tt&amp;gt; probed with the default parameters, you get an acpi event for all Fn-F# key combinations except Fn-F7 and Fn-F10. You also get acpi events for Fn-Space, Fn-Home, Fn-End, Fn-PgUp, ThinkVantage, Mute, VolUp, VolDown, Power, Wireless switch on/off as well as lid open/close. You might notice however that the Fn-F4 and Fn-F10 events seem to register for individual keypresses that are sufficiently spaced in time. You can enable an event for Fn-F7, by changing the value of &amp;lt;tt&amp;gt;/sys/devices/platform/thinkpad_acpi/hotkey_mask&amp;lt;/tt&amp;gt; to the value of &amp;lt;tt&amp;gt;/sys/devices/platform/thinkpad_acpi/hotkey_all_mask&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /sys/devices/platform/thinkpad_acpi/hotkey_all_mask &amp;gt; /sys/devices/platform/thinkpad_acpi/hotkey_mask&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make this permanent, you need to change the mask in &amp;lt;tt&amp;gt;/etc/modprobe.d/thinkpad_acpi.modprobe&amp;lt;/tt&amp;gt; so that the the only uncommented line is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options thinkpad_acpi hotkey=enable,0x00ffffff experimental=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===acpid===&lt;br /&gt;
The next question you're probably asking is &amp;quot;what do you with all these acpi events?&amp;quot;. That's where &amp;lt;tt&amp;gt;[[acpid]]&amp;lt;/tt&amp;gt; comes in. Every time the &amp;lt;tt&amp;gt;acpid&amp;lt;/tt&amp;gt; deamon starts up, it reads all the files contained in the &amp;lt;tt&amp;gt;/etc/acpi/events&amp;lt;/tt&amp;gt; directory. These files contain the names of all events that acpi should acknowledge and what to do when they are recieved. The syntax is pretty simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
event=&amp;lt;name of event&amp;gt;&lt;br /&gt;
action=&amp;lt;what to execute upon registering that event&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As noted previously, you can experiment with generating various events by watching the &amp;lt;tt&amp;gt;/var/log/acpid&amp;lt;/tt&amp;gt; file and determining what events go with what key. You might also notice that there are a few events that are generated by other things (like a change in CPU frequency scaling states). By convention the action scripts are all contained in &amp;lt;tt&amp;gt;/etc/acpi/&amp;lt;/tt&amp;gt;. If you write your own, make sure they have the same permissions as all the others. For more info check out the [[How to configure acpid]] page. You might also want to check out [[How to get special keys to work]] for some attempts at cataloguing some of the events generated. Note that you can change the scripts without restarting &amp;lt;tt&amp;gt;acpid&amp;lt;/tt&amp;gt; but if you change the event files, you need to restart it so that it reads in the modified versions.&lt;br /&gt;
&lt;br /&gt;
Though you can [[How_to_get_special_keys_to_work#acpi_fakekey|turn acpi events into user-level xevents]], the main advantage of using acpi events is that you can use the special keys to execute scripts that require root access (since &amp;lt;tt&amp;gt;acpid&amp;lt;/tt&amp;gt; is run by root). You should also keep this in mind from a security perspective. You shouldn't give '''too''' much power to the hotkeys lest you allow someone to do too much without the root password.&lt;br /&gt;
&lt;br /&gt;
===browser keys===&lt;br /&gt;
You can make the &amp;quot;back&amp;quot; and &amp;quot;forward&amp;quot; keys above the left and right arrows do [[How_to_get_special_keys_to_work#Example_Applications|pretty much anything you want]]. Since they generate their own X-events (keycodes 234 and 233 respectively), they can be mapped to whatever keysym you want via Xmodmap. For example, I mapped them to F19  and F20 in my systemwide &amp;lt;tt&amp;gt;/etc/X11/Xmodmap&amp;lt;/tt&amp;gt; file so they are automatically mapped for all users.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
keycode 234 = F19&lt;br /&gt;
keycode 233 = F20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are a couple ways you can get Firefox (or rather iceweasel) to correctly recognize these keysyms. You could install [http://mozilla.dorando.at/keyconfig.xpi keyconfig.xpi] and configure the keybindings via Tools-&amp;gt;Keyconfig, but this is only user specific and quite frankly just too easy. So I went about doing it the hard way and editing /usr/share/iceweasel/chrome/browser/content/browser/browser.xul. Both are described in detail [[How_to_get_special_keys_to_work#Firefox|here]].&lt;br /&gt;
&lt;br /&gt;
The latter method has the advantage that paired with the system wide Xmodmap discussed above, all users automatically have working browser keys. The disadvantage (other than having to dig around in a hairy .xml file) is that whenever you upgrade or reinstall firefox, your changes disappear and  you have to go back in there and do it again. To mitigate slightly this last problem, I wrote the following script and put it in &amp;lt;tt&amp;gt;/usr/local/sbin/firefox-keys&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
FILE=/usr/share/iceweasel/chrome/browser/content/browser/browser.xul&lt;br /&gt;
&lt;br /&gt;
grep -q VK_F20 $FILE&lt;br /&gt;
if [ $? != 0 ];then&lt;br /&gt;
sed 's|&amp;lt;key id=&amp;quot;goForwardKb2&amp;quot; key=&amp;quot;\&amp;amp;goForwardCmd.commandKey;&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; modifiers=&amp;quot;accel&amp;quot;/&amp;gt;|&amp;lt;key id=&amp;quot;goForwardKb2&amp;quot; key=&amp;quot;\&amp;amp;goForwardCmd.commandKey;&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; modifiers=&amp;quot;accel&amp;quot;/&amp;gt;\n    &amp;lt;key id=&amp;quot;goBackKb&amp;quot; keycode=&amp;quot;VK_F19&amp;quot; command=&amp;quot;Browser:Back&amp;quot; /&amp;gt;\n    &amp;lt;key id=&amp;quot;goForwardKb&amp;quot; keycode=&amp;quot;VK_F20&amp;quot; command=&amp;quot;Browser:Forward&amp;quot; /&amp;gt;|g' $FILE &amp;gt; $FILE.tmp&lt;br /&gt;
mv $FILE.tmp $FILE&lt;br /&gt;
fi&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then I just have to run this script everytime Iceweasel is updated. But wait, that seems pretty programmatic. Isn't there some way to '''automatically''' run the script when Iceweasel is updated? The answer is yes. I created the file &amp;lt;tt&amp;gt;/etc/apt/apt.conf.d/98-iceweasel-keys&amp;lt;/tt&amp;gt; and added the following to it&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Add browser keys to firefox if it's being installed&lt;br /&gt;
&lt;br /&gt;
DPkg&lt;br /&gt;
{&lt;br /&gt;
Pre-Install-Pkgs {&amp;quot;cat &amp;gt; /tmp/pkgs&amp;quot;;};&lt;br /&gt;
Post-Invoke {&amp;quot;if grep -iq iceweasel /tmp/pkgs &amp;amp;&amp;amp; [ $(ps w -p &amp;quot;$PPID&amp;quot; | grep -c remove) != 1 ];then /usr/local/sbin/firefox-keys;else exit 0;fi&amp;quot;;};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It's kind of hackish, but here's the idea. Whenever apt calls dpkg, it will first call the command listed in Pre-Install-Pkgs passing the names of all the packages as standard input (which get tossed into &amp;lt;tt&amp;gt;/tmp/pkgs&amp;lt;/tt&amp;gt;). Then '''after''' dpkg has been invoked and installed everything, the Post-Invoke command is called which checks if any of those packages were Iceweasel. If the case insensitive pattern &amp;quot;iceweasel&amp;quot; is among their names (and the package in question is not being removed rather than installed), the aforementioned firefox-keys script will be invoked. The natural question is why I need this intermediate file. Well for some weird reason apt does not pass the package names to the Post-Invoke commands.&lt;br /&gt;
&lt;br /&gt;
===dpkg-divert &amp;lt;tt&amp;gt;/etc/acpi&amp;lt;/tt&amp;gt;===&lt;br /&gt;
You're likely going to want to do a lot of customising of the &amp;lt;tt&amp;gt;/etc/acpi/&amp;lt;/tt&amp;gt; directory, most of which was originally put there by the &amp;lt;tt&amp;gt;acpi-support&amp;lt;/tt&amp;gt; package. The problem with this is that next time there's an update to that package it's going to want to change back all those changes you made to the distribution defaults. Now the distribution defaults are good for a reference point, but you want ultimate control over how your acpi system behaves and don't want it changing every time that there's a package upgrade. Enter &amp;lt;tt&amp;gt;dpkg-divert&amp;lt;/tt&amp;gt;. This handy utility will allow you to keep the original distribution files and even have them upgraded, but keep your heavily customised &amp;lt;tt&amp;gt;/etc/acpi&amp;lt;/tt&amp;gt; directory safe. Before modifying a file that you will not want subsequently changed by the package manager, you can &amp;lt;tt&amp;gt;dpkg-divert&amp;lt;/tt&amp;gt; it so that future upgrades do not overwrite it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-divert --add --rename --divert  &amp;lt;path to file&amp;gt;.dpkg-dist &amp;lt;path to file&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will move the original file to one of the same name with the &amp;lt;tt&amp;gt;.dpkg-dist&amp;lt;/tt&amp;gt; extension and divert files from any packages to the latter. Now if you want to use the distribution default as a staring point for your modifications, you can just copy it back&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp  &amp;lt;path to file&amp;gt;.dpkg-dist &amp;lt;path to file&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And begin editing.&lt;br /&gt;
&lt;br /&gt;
If you're going to be editing the majority of the files in &amp;lt;tt&amp;gt;/etc/acpi&amp;lt;/tt&amp;gt;, you might want to divert the whole directory. Unfortunately, &amp;lt;tt&amp;gt;dpkg-divert&amp;lt;/tt&amp;gt; doesn't officially divert directories, but here's how you can hack it to nearly do it. First create a mirror &amp;lt;tt&amp;gt;acpi.dpkg-dist&amp;lt;/tt&amp;gt; directory structure.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /etc/acpi&lt;br /&gt;
find -type d |  xargs -i mkdir -p /etc/acpi.dpkg-dist/{}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now divert all the files in &amp;lt;tt&amp;gt;/etc/acpi&amp;lt;/tt&amp;gt; to this new directory structure.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
find -type f | cut -d/ -f 2- | xargs -i dpkg-divert --add --rename --divert /etc/acpi.dpkg-dist/{} /etc/acpi/{}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally copy the distribution defaults back for a staring point to your massive customisation.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/acpi.dpkg-dist /etc/acpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The limitation of this of course is that if future versions of the packages have new files in this directory, or if you install new packages that want to put files in here, they will not be diverted, and you will have to add these to your diversions as they appear.&lt;br /&gt;
&lt;br /&gt;
===hd power management: laptop-mode===&lt;br /&gt;
There was a lot of buzz a couple months back about [https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695 aggressive hd power management shortening the life of drives] by excessively parking and unparking the  disk heads (note that this is different that what happens with hdapsd). I'm not going to go into the gorey details. You should probably follow the above link and dig around on the web if you're really concerned about this. Suffice it to say, it's a good idea to have an awareness of hd power management an in particular be aware that there is some overlapping functionality between the &amp;lt;tt&amp;gt;laptop-mode&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acpi-suppport&amp;lt;/tt&amp;gt; packages and that if you aren't careful, they may even come into conflict. &lt;br /&gt;
&lt;br /&gt;
First of all, you may note that in the above [[Installing_Debian_Lenny_on_a_ThinkPad_T60#services|init scripts]], I have disabled &amp;lt;tt&amp;gt;acpi-support&amp;lt;/tt&amp;gt;. If you take a look at what that does and follow your nose, you'll find that pretty much the only thing it's doing is running &amp;lt;tt&amp;gt;/etc/acpi/battery.d/90-hdparm.sh&amp;lt;/tt&amp;gt; which sets aggressive disk power management for both hard disk and cdrom if it is detected that the laptop is on batteries at bootup. On the other hand, it sets it less aggressively with &amp;lt;tt&amp;gt;/etc/acpi/ac.d/90-hdparm.sh&amp;lt;/tt&amp;gt; if ac power is detected. You'll also find that there is an acpi event associated with connecting and disconnecting the power which, by default call the script &amp;lt;tt&amp;gt;/etc/acpi/power.sh&amp;lt;/tt&amp;gt; which runs one of the aforementioned scripts according to the new adapter state.&lt;br /&gt;
&lt;br /&gt;
This is probably a good idea in principle. Aggressive power management tells the disks to spin down more often and thereby conserve battery power. Laptop hard disks are designed to do this relatively frequently, but their so-called rated &amp;quot;load-cycle count&amp;quot; is finite falling generally in the 600,000  parks/unparks range. But there is more . . .&lt;br /&gt;
&lt;br /&gt;
For one, it doesn't appear that the cdrom plays well with the &amp;lt;tt&amp;gt;hdparm&amp;lt;/tt&amp;gt; command used to modify the power settings as evidenced by scary looking kernel messages to the tune of &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error }&lt;br /&gt;
hda: drive_cmd: error=0x04 { AbortedCommand }&lt;br /&gt;
ide: failed opcode was: 0xec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
upon even querying the drive with what should be an innocuous request for basic information: &amp;lt;tt&amp;gt;hdparm -I /dev/hda&amp;lt;/tt&amp;gt;. For this reason, it would seem that we don't want to be sending '''any''' hdparm commands to the cdrom drive.&lt;br /&gt;
&lt;br /&gt;
Secondly, there is the issue that you might have &amp;lt;tt&amp;gt;laptop-mode&amp;lt;/tt&amp;gt; enabled to to do the same thing and you probably don't want the two doubling the effort, or worse, fighting with each other. Something further to consider is that at the same time as it deals with the level of drive power management, laptop-mode makes an effort '''not to spin the drive up''' as often once it's been spun down. It would seem to make sense then, to have both these efforts coordinated by the broader scope of &amp;lt;tt&amp;gt;laptop-mode&amp;lt;/tt&amp;gt; alone. As an added bonus, &amp;lt;tt&amp;gt;laptop-mode&amp;lt;/tt&amp;gt; doesn't touch the cdrom.&lt;br /&gt;
&lt;br /&gt;
So here's how I hand the matter over to laptop mode:&lt;br /&gt;
#Disable the /etc/init.d/acpi-support boot script with &amp;lt;tt&amp;gt;sysv-rc-conf&amp;lt;/tt&amp;gt; as described [[Installing_Debian_Lenny_on_a_ThinkPad_T60#services|above]]. &lt;br /&gt;
#Remove, or better yet, [[Installing_Debian_Lenny_on_a_ThinkPad_T60#dpkg-divert_.2Fetc.2Facpi|divert]] the files &amp;lt;tt&amp;gt;90-hdparm.sh&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;/etc/acpi/ac.d&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/etc/acpi/battery.d&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/etc/acpi/resume.d&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#Make sure &amp;lt;tt&amp;gt;laptop-mode&amp;lt;/tt&amp;gt; gets started at boot up with &amp;lt;tt&amp;gt;sysv-rc-conf&amp;lt;/tt&amp;gt; also as described in the init script section.&lt;br /&gt;
#Enable hardrive power managment from within laptop mode by editing &amp;lt;tt&amp;gt;/etc/laptop-mode/laptop-mode.conf&amp;lt;/tt&amp;gt; so that the line&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;CONTROL_HD_POWERMGMT=0&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;becomes&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;CONTROL_HD_POWERMGMT=1&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#If you want to be a more conservative with your drive life (at the expense of battery life), you probably want to change the line&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;BATT_HD_POWERMGMT=1&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;to something more like&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;BATT_HD_POWERMGMT=180&amp;lt;/tt&amp;gt;&lt;br /&gt;
#Now you can enhance laptop mode to further reduce drive spin up. First, you can have syslog not sync all the time on battery which requires disk write access and consequently spinup. Just run &amp;lt;tt&amp;gt;lm-syslog-setup&amp;lt;/tt&amp;gt; and answer yes to the question of whether or not you want to create the split syslog configuration.&lt;br /&gt;
#You can crank up the &amp;lt;tt&amp;gt;LM_READAHEAD=8192&amp;lt;/tt&amp;gt; if you have lots of RAM (don't forget to make sure that &amp;lt;tt&amp;gt;CONTROL_READAHEAD=1&amp;lt;/tt&amp;gt;).&lt;br /&gt;
#You can set &amp;lt;tt&amp;gt;CONTROL_NOATIME=1&amp;lt;/tt&amp;gt; to prevent disk writes related to updating file access times while on battery.&lt;br /&gt;
This is only the [http://samwel.tk/laptop_mode/faq tip of the iceberg] for laptop-mode configuration.&lt;br /&gt;
&lt;br /&gt;
===sleep===&lt;br /&gt;
Though you can make your laptop sleep, by simply executing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n $ACPI_SLEEP_MODE &amp;gt;/sys/power/state&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;/etc/acpi/sleep.sh&amp;lt;/tt&amp;gt; script wraps this command in some other niceties that may ease the transition in and out of sleep. In particular, it sources the scripts in &amp;lt;tt&amp;gt;/etc/acpi/suspend.d&amp;lt;/tt&amp;gt; before sleeping and those in &amp;lt;tt&amp;gt;/etc/acpi/resume.d&amp;lt;/tt&amp;gt; after awaking. If you feel uneasy about playing with these scripts yourself, you can alter some of their behaviour by editing the &amp;lt;tt&amp;gt;/etc/defaults/acpi-support&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
It would seem to make sense to bind the Fn-F4 key with the moon on it to the &amp;lt;tt&amp;gt;/etc/acpi/sleep.sh&amp;lt;/tt&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
====automated sleep====&lt;br /&gt;
You could also set it up so that your laptop [[How_to_configure_acpid#Example:_go_to_sleep_on_lid_close|goes to sleep when you close the lid]]. I however prefer to have my laptop remain awake when the lid is closed so that it can continue background tasks such as ripping a cd, downloading a file, compiling a kernel, playing music, etc. I do however want to have some system of going to sleep during inactivity. For this I use the &amp;lt;tt&amp;gt;sleepd&amp;lt;/tt&amp;gt; package which automatically puts the laptop to sleep after a period of inactivity. It does however requires some configuration to make it actually do this.&lt;br /&gt;
&lt;br /&gt;
First of all, if you haven't already installed it, do so&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install sleepd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now edit the configuration file &amp;lt;tt&amp;gt;/etc/default/sleepd&amp;lt;/tt&amp;gt;. Set &amp;lt;tt&amp;gt;PARAMS&amp;lt;/tt&amp;gt; to the arguments you want to give the sleepd daemon as started by init. You can take a look at the sleepd man page to get an idea of what you might want to put here. As an example, you might have&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PARAMS=&amp;quot;-u 180 -U 1800 -s /etc/acpi/sleep.sh -i 1 -i 12 -i 23&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This tells sleepd to sleep after three minutes of inactivity while on battery(&amp;lt;tt&amp;gt;-u 180&amp;lt;/tt&amp;gt;) and after half an hour of inactivity while on ac (&amp;lt;tt&amp;gt;-U 1800&amp;lt;/tt&amp;gt;). I have defined &amp;quot;activity&amp;quot; as signals on irqs 1(keyboard), 12(mouse), and 23(usb mouse) (&amp;lt;tt&amp;gt;-i 1 -i 12 -i 23&amp;lt;/tt&amp;gt;). 1 and 12 will be autodetected, but 23 may not be. You can see what uses the various interrupts by running the command &amp;lt;tt&amp;gt;cat /proc/interupts&amp;lt;/tt&amp;gt;.You can also use the &amp;lt;tt&amp;gt;xosview&amp;lt;/tt&amp;gt; utility to discover when the various IRQ's are used. Finally sleepd itself doesn't actually know how to put the computer to sleep, so you have to supply it with the command to do so (&amp;lt;tt&amp;gt;-s /etc/acpi/sleep.sh&amp;lt;/tt&amp;gt;). You could really put anything at all here.&lt;br /&gt;
&lt;br /&gt;
You'll note however, that the above is a rather limited definition of &amp;quot;inactivity&amp;quot;. Unfortunately, it's the best sleepd has to offer. Alas, none of the above mentioned background tasks that I want my computer to continue doing can be reliably mapped to the use of a particular IRQ. The next best thing then is to have our sleep command be a script that before putting the computer to sleep checks for a wider range of activity before actually going to sleep and aborts the sleep process if such activity is detected. This will reset the sleepd timer so that it must wait for an other interval of human inactivity before running the sleep/check script again.&lt;br /&gt;
&lt;br /&gt;
There are four checks that I want to do before going to sleep:&lt;br /&gt;
#CPU activity &lt;br /&gt;
#Disk activity&lt;br /&gt;
#Network activity&lt;br /&gt;
#Is sound playing?&lt;br /&gt;
The first three can be checked using the &amp;lt;tt&amp;gt;sar&amp;lt;/tt&amp;gt; utility included in the &amp;lt;tt&amp;gt;sysstat&amp;lt;/tt&amp;gt; package, while the latter can be checked using the &amp;lt;tt&amp;gt;rec&amp;lt;/tt&amp;gt; utility included in the &amp;lt;tt&amp;gt;sox&amp;lt;/tt&amp;gt; package. If you haven't already, install those packages. Sox is additionally going to &amp;lt;tt&amp;gt;need alsa support&amp;lt;/tt&amp;gt;, so you could install that package, or just go ahead an install off of &amp;lt;tt&amp;gt;sox&amp;lt;/tt&amp;gt; since its a handy program to have the full functionality of.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install sysstat sox sox-fmt-all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following script &amp;lt;tt&amp;gt;autosleep.sh&amp;lt;/tt&amp;gt; is intended to be called by sleepd after user inactivity to check for the background inactivity described above. If there is inactivity in these four fronts, it calls the sleep.sh script and puts the computer to sleep.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# autosleep.sh&lt;br /&gt;
# Checks if the computer is inactive before going to sleep. Aborts if it looks like &lt;br /&gt;
# there's some action.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Thresholds - these may depend on what you do with your computer and what &lt;br /&gt;
# you want it to stay awake for.&lt;br /&gt;
CPUTHRESH=5        # in percent &lt;br /&gt;
DISKTHRESH=500     # in blocks/sec (the sar manpage says blocks are 512 bytes in normal cases) &lt;br /&gt;
NETTHRESH=10       # in kB/s&lt;br /&gt;
SNDTHRESH=200      # in ???? rms &lt;br /&gt;
# (no sound playing is ~25 while playing mp3 w/ pcm+master turned all the way to zero is ~250)&lt;br /&gt;
&lt;br /&gt;
# Sample times (in seconds) - again needs may vary&lt;br /&gt;
CPUTIME=1   &lt;br /&gt;
DISTTIME=2  &lt;br /&gt;
NETTIME=2 &lt;br /&gt;
SNDTIME=2 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check CPU usage defined as non-idle time.&lt;br /&gt;
CPU=`sar $CPUTIME 1 | awk '/Average/ { printf &amp;quot;%d\n&amp;quot;,100-$8}'`&lt;br /&gt;
echo &amp;quot;CPU = $CPU%&amp;quot;&lt;br /&gt;
if [ $CPUTHRESH -lt $CPU ];then&lt;br /&gt;
    echo CPU is working, not sleeping&lt;br /&gt;
    exit;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Check disk usage (read + write)&lt;br /&gt;
DISK=`sar -b $DISKTIME 1 | awk '/Average:/ { printf &amp;quot;%d&amp;quot;,$5 + $6 }'`&lt;br /&gt;
echo &amp;quot;DISK = $DISK&amp;quot;&lt;br /&gt;
if [ $DISKTHRESH -lt $DISK ];then&lt;br /&gt;
    echo Disk is working, not sleeping&lt;br /&gt;
    exit;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Check net usage (exclude wifi0 which appears to have activity all the time for some weird reason)&lt;br /&gt;
NET=`sar -n DEV $NETTIME 1 | awk '/Average:/ &amp;amp;&amp;amp; $2 !~ /(IFACE|wifi0)/ { SUM += $5 + $6 } END { printf (&amp;quot;%d\n&amp;quot;,SUM)}'`&lt;br /&gt;
echo &amp;quot;NETWORK = $NET&amp;quot;&lt;br /&gt;
if [ $NETTHRESH -lt $NET ]; then&lt;br /&gt;
    echo Network is in use, not sleeping&lt;br /&gt;
    exit;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Set the mixer to some controlled values and set it to record the mixed sound output&lt;br /&gt;
# This unfortunately is going to be sound-chip specific.&lt;br /&gt;
alsactl -f /var/tmp/sound.state store&lt;br /&gt;
amixer sset Capture 20% cap&lt;br /&gt;
amixer sset Digital 20%&lt;br /&gt;
amixer sset Mix cap&lt;br /&gt;
# Record to null and use RMS amplitude in resulting statistics with a convenience &lt;br /&gt;
# factor to make it integer&lt;br /&gt;
SND=`rec -n stat trim 0 $SNDTIME 2&amp;gt;&amp;amp;1 | sed -n 's/^RMS[ ]*amplitude:[ ]*/1000000 * /gp' | bc | cut -d. -f 1`&lt;br /&gt;
# Restore previous mixer state&lt;br /&gt;
alsactl -f /var/tmp/sound.state restore&lt;br /&gt;
echo &amp;quot;SOUND = $SND&amp;quot;&lt;br /&gt;
if [ $SNDTHRESH -lt $SND ];then&lt;br /&gt;
    echo Sound is playing, not sleeping&lt;br /&gt;
    exit;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
. /etc/acpi/sleep.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hibernate===&lt;br /&gt;
Hibernate works with the described setup (my custom compiled kernel in particular) by running &amp;lt;tt&amp;gt;/etc/acpi/hibernate.sh&amp;lt;/tt&amp;gt; as long as I don't have the uswsusp package installed. I could probably get it to work with uswsusp if I worked at it, but I don't really care since I don't hibernate all that often. Of note, I have the boot parameter &amp;lt;tt&amp;gt;resume=/dev/sda2&amp;lt;/tt&amp;gt; (my swap partion) added to the kopt= variable in my &amp;lt;tt&amp;gt;/boot/grub/menu.lst&amp;lt;/tt&amp;gt; so that running &amp;lt;tt&amp;gt;update-grub&amp;lt;/tt&amp;gt; appends this option to my kernel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kopt=root=/dev/sda11 ro resume=/dev/sda2 vga=792&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
results in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title		Debian GNU/Linux, kernel 2.6.23-amd64.005&lt;br /&gt;
root		(hd0,2)&lt;br /&gt;
kernel		/vmlinuz-2.6.23-amd64.005 root=/dev/sda11 ro resume=/dev/sda2 vga=792 &lt;br /&gt;
savedefault&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The above is actually probably unnecessary in my case as I have set &amp;lt;tt&amp;gt;PM_STD_PARTITION=/dev/sda2&amp;lt;/tt&amp;gt; in my kernel config which can be found under &amp;lt;tt&amp;gt;Power Management Options -&amp;gt; Hibernation (aka 'suspend to disk') -&amp;gt; Default resume partition:&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==64-bit headaches==&lt;br /&gt;
===Java===&lt;br /&gt;
Ok, so Sun is being lazy and though they've made an amd64 java, they didn't bother to make the accompanying browser plugin. So you're left to try and use the 32-bit version that I've included in my package list above. Unfortunately, this won't work in iceweasel as flash does. You don't however have to start mucking about with chroots if you really need that no doubt ridiculous java app to work. Go to the [http://www.mozilla.com/en-US/firefox/ Firefox download site] and grab the linux version. Also if you didn't get it with the rest of the packages I recommended above, get &amp;lt;tt&amp;gt;ia32-sun-java5-bin&amp;lt;/tt&amp;gt;. For some reason this trick doesn't work with &amp;lt;tt&amp;gt;ia32-sun-java6-bin&amp;lt;/tt&amp;gt;, it ends up just hanging the browser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install ia32-sun-java5-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now go to the directory where you saved the firefox tarball (it can even be in a subdirectory of your home directory), unzip it and put a symlink to &amp;lt;tt&amp;gt;libjavaplugin_oij.so&amp;lt;/tt&amp;gt; in the &amp;lt;tt&amp;gt;firefox/plugins&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xvzf firefox-2.0.0.11.tar.gz&lt;br /&gt;
ln -sf /usr/lib/jvm/ia32-java-1.5.0-sun-1.5.0.13/jre/plugin/i386/ns7/libjavaplugin_oji.so firefox/plugins/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, you're ready to enjoy all the wonderful java content the web has to offer via your personal firefox installation. First close any iceweasels you have running, then run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
firefox/firefox http://www.java.com/en/download/help/testvm.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see the stupid java guy. Until Sun joins the rest of us in the 21st century, you're going to have to use this firefox to view web-applets. The good news is that the vanilla firefox will seamlessly use the same profile directory as iceweasel. You can even use it as your main browser if you want. There's also this blackdown java I've heard of that has a 64-bit web plugin, but the things I've read about its instability have not encouraged me to go hunting for it.&lt;br /&gt;
===32-bit Maple 11===&lt;br /&gt;
This takes a bit of fiddling, but it will work. First, you're going to want to use 32 bit java to run the installer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install aptitude install ia32-sun-java6-bin &lt;br /&gt;
update-alternatives --config java&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And select &amp;lt;tt&amp;gt;/usr/lib/jvm/ia32-java-6-sun/jre/bin/java&amp;lt;/tt&amp;gt;. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /media/cdrom&lt;br /&gt;
/media/cdrom/Maple11Linux32Installer.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The problem is that maple tries to be all smart when you actually run &amp;lt;tt&amp;gt;maple11/bin/maple&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;maple11/bin/xmaple&amp;lt;/tt&amp;gt; which call end up calling &amp;lt;tt&amp;gt;maple11/bin/maple.system.type&amp;lt;/tt&amp;gt;. Of course the answer is going to be  which of course it determines is &amp;lt;tt&amp;gt;bin.X86_64_LINUX&amp;lt;/tt&amp;gt;. Trouble is you've only installed &amp;lt;tt&amp;gt;bin.IBM_INTEL_LINUX&amp;lt;/tt&amp;gt; which you can run fine on the detected platform, but which maple won't let you. To remedy this, prevent &amp;lt;tt&amp;gt;maple11/bin/maple&amp;lt;/tt&amp;gt; calling &amp;lt;tt&amp;gt;maple11/bin/maple.system.type&amp;lt;/tt&amp;gt; in the first place and just hard-code the desired architecture.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MAPLE_SYS_BIN=bin.IBM_INTEL_LINUX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once you have it installed, you can &amp;lt;tt&amp;gt;update-alternatives&amp;lt;/tt&amp;gt; again and go back to a 64 bit java if you like.&lt;br /&gt;
&lt;br /&gt;
[[Category: Debian]]&lt;br /&gt;
[[Category: T60]]&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38808</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38808"/>
		<updated>2008-09-10T21:33:28Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 23:31, 10 September 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/9/9/449 2.6.27-rc6]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc6. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc6}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc6/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc6}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc6&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc6 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc6&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc6.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38807</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38807"/>
		<updated>2008-09-10T21:33:12Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 23:31, 10 September 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [2.6.27-rc6 http://lkml.org/lkml/2008/9/9/449]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc6. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc6}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc6/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc6}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc6&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc6 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc6&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc6.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38806</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38806"/>
		<updated>2008-09-10T21:32:46Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 23:31, 10 September 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/9/9/449]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc6. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc6}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc6/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc6}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc6&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc6 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc6&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc6.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38805</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38805"/>
		<updated>2008-09-10T21:31:42Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 23:31, 10 September 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lwn.net/Articles/296096/ 2.6.27-rc6]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc6. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc6.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc6}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc6/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc6}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc6&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc6 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc6&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc6.mykernel_2.6.27-rc6.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc6.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38754</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38754"/>
		<updated>2008-09-02T04:03:26Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 06:03, 2 September 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lwn.net/Articles/296096/ 2.6.27-rc5]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc5. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc5.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc5.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc5}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc5/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc5}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc5&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc5 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc5&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: if running Debian with initrd, you can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --initrd --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc5.mykernel_2.6.27-rc5.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc5.mykernel_2.6.27-rc5.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc5.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;br /&gt;
&lt;br /&gt;
==Hardware specific==&lt;br /&gt;
&lt;br /&gt;
===168c:0024 (MacBook Wireless)===&lt;br /&gt;
&lt;br /&gt;
Currently with this hardware (output of &amp;lt;code&amp;gt;lspci -vvv&amp;lt;/code&amp;gt;), the driver installs, but does not allow association with an access point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01)&lt;br /&gt;
        Subsystem: Apple Computer Inc. Unknown device 0087&lt;br /&gt;
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 256 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 17&lt;br /&gt;
        Region 0: Memory at 50100000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
        Capabilities: [40] Power Management version 2&lt;br /&gt;
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-&lt;br /&gt;
                Address: 00000000  Data: 0000&lt;br /&gt;
        Capabilities: [60] Express Legacy Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;512ns, L1 &amp;lt;64us&lt;br /&gt;
                Link: ASPM L1 Enabled RCB 128 bytes CommClk+ ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [90] MSI-X: Enable- Mask- TabSize=1&lt;br /&gt;
                Vector table: BAR=0 offset=00000000&lt;br /&gt;
                PBA: BAR=0 offset=00000000&lt;br /&gt;
        Capabilities: [100] Advanced Error Reporting&lt;br /&gt;
        Capabilities: [140] Virtual Channel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38587</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38587"/>
		<updated>2008-08-15T07:44:43Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian/Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 09:41, 15 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip &amp;quot;su&amp;quot; and prepend the below commands with &amp;quot;sudo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38586</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38586"/>
		<updated>2008-08-15T07:44:13Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian/Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 09:41, 15 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
(for Ubuntu, skip the above command and prepend the remaining commands with sudo)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38585</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38585"/>
		<updated>2008-08-15T07:42:49Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 09:41, 15 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38584</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38584"/>
		<updated>2008-08-15T07:42:33Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 09:41, 15 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38583</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38583"/>
		<updated>2008-08-15T07:41:23Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 09:41, 15 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38582</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38582"/>
		<updated>2008-08-15T07:40:57Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Configure the kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 21:21, 13 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which automatically either get added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38581</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38581"/>
		<updated>2008-08-15T07:40:28Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian/Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 21:21, 13 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which should be automatically either added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -c -k 2.6.27-rc3.mykernel}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38580</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38580"/>
		<updated>2008-08-15T07:37:29Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian/Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 21:21, 13 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which should be automatically either added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -k 2.6.27-rc3.mykernel -c}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38579</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38579"/>
		<updated>2008-08-15T07:37:15Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 21:21, 13 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which should be automatically either added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian/Ubuntu===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -k 2.6.27-rc3.mykernel -c}}&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38578</id>
		<title>How to install the development version of atk9k</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_install_the_development_version_of_atk9k&amp;diff=38578"/>
		<updated>2008-08-15T07:36:54Z</updated>

		<summary type="html">&lt;p&gt;Kevmitch: /* Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ath9k is the new open source driver for newer atheros cards including those with 11n hardware support.&lt;br /&gt;
&lt;br /&gt;
At the time of writing([[User:Kevmitch|Kevmitch]] 21:21, 13 August 2008 (CEST)), [http://linuxwireless.org/en/users/Drivers/ath9k ath9k] will not compile against the current kernel release 2.6.26. It is however included in the most recent release candidate [http://lkml.org/lkml/2008/8/12/457h 2.6.27-rc3]. Thus, in order to get it running, you will either need to backport ath9k to your older kernel or download and compile 2.6.27-rc3. It is expected that the latter process will be significantly easier especially now that you can download the necessary kernel source directly off the web without using git. If you have managed to backport the driver to an older kernel, please share your knowledge and add to this page.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
Compiling your kernel is at a minimum going to require '''gcc''', '''make''' and the '''qt3 development libraries''' to run the x-configuration utility. The names of these packages and how to install them will vary from distro to distro. You'll also want to add yourself to the '''src''' group so that you can do most of the kernel compilation as a regular user. You will have to log out and log back in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
{{cmdroot|aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
{{cmduser|sudo aptitude install git-core build-essential kernel-package libqt3-mt-dev fakeroot}}&lt;br /&gt;
{{cmdroot|sudo adduser &amp;lt;you&amp;gt; src}}&lt;br /&gt;
&lt;br /&gt;
== Get the kernel sources ==&lt;br /&gt;
Download and unzip the kernel sources&lt;br /&gt;
&lt;br /&gt;
{{cmduser|cd /usr/src}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|tar xvjf linux-2.6.27-rc3.tar.bz2}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|cd linux-2.6.27-rc3}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kernel config ==&lt;br /&gt;
This is the part most people are afraid of. However, you can use your current kernel's configuration as a baseline to help ease the pain. Most self-respecting distributions keep a copy of your kernel configuration in the /boot directory alongside the kernel itself. If this is not the case, you might find a copy of the kernel config at {{path|/proc/config.gz}} (which will of course needs to be gunziped). Whatever the case, you will want to copy the the current config file to the directory of the the kernel tree you are about to compile {{path|/usr/src/linux-2.6.27-rc3/.config}}&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
{{cmduser|cp /boot/config-`uname -r` ./.config}}&lt;br /&gt;
&lt;br /&gt;
== Configure the kernel ==&lt;br /&gt;
Now run &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make xconfig}}&lt;br /&gt;
&lt;br /&gt;
You'll likely see some messages in the terminal about unset or unrecognized configuration variables which should be automatically either added or removed respectively. You might want to make sure the following are enabled&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCHED|[Y]|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NET_SCH_PRIO|[M]|Multiband Priority Queueing (PRIO)|QoS and/or fair queueing|Networking Options|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_CFG80211|[M]|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_NL80211|[Y]|nl80211 new netlink interface support|Improved wireless configuration API|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211|[Y]|Wireless Extensions|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WIRELESS_EXT|[M]|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_MAC80211_RC_PID|[Y]|PID controller based rate control algorithm|Rate control algorithm selection|Generic IEEE 802.11 Networking Stack (mac80211)|Wireless Networking|Networking||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and most importantly&lt;br /&gt;
&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Network Device Support|Device Drivers|||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_WLAN80211|[Y]|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{kernelconf|CONFIG_ATH9K|[m]|Atheros 802.11n wireless cards support|Wireless LAN (IEEE 802.11)|Wireless LAN|Network Device Support|Device Drivers||}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, unless you want to worry about creating an initrd (initial RAM disk), you're also probably best to build anything necessary to read your root filesystem into the kernel rather than as modules. This includes both filesystem (e.g. '''ext3''') and low level hardware drivers (e.g. '''libata'''). The particular drivers required will depend on your particular setup. You can try and get an idea of what you might need to include by examining the output of &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt;. If you see any modules in there that might be required to boot the system, you should make sure you compile these in.&lt;br /&gt;
&lt;br /&gt;
Make sure you save any changes you make before you exit.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
Now it's time to compile your kernel. If you have NCPU cpus, the generic way to do this is &lt;br /&gt;
&lt;br /&gt;
{{cmduser|make -j &amp;lt;NCPU+1&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|make modules_install}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|cp arch/&amp;lt;your architecture&amp;gt;/boot/bzImage /boot/linux-2.6.27-rc3}}&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;your architecture&amp;gt; will be x86 if you're running a 32-bit system or x86_64 if you're running 64-bit.&lt;br /&gt;
&lt;br /&gt;
Then you'll have to set your bootloader to load the new kernel. If you're using grub, you'll add this to /boot/grub/menu.list or /etc/grub.conf or whatever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title	        Linux kernel 2.6.27-rc3&lt;br /&gt;
root		(hd#,#)&lt;br /&gt;
kernel		/boot/linux-2.6.27-rc3 root=/dev/&amp;lt;your root device&amp;gt; ro &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're going to have to set (hd#,#) and root=/dev/&amp;lt;your root device&amp;gt; to reflect your boot device configuration. The best bet is probably to just copy and modify an existing entry. &lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you compiled the drivers needed to access your root device (filesystem and hardware driver) as modules rather than building them directly into the kernel, you're going to have build an initrd, using something like mkinitramfs and add the resulting initrd to the above grub stanza as follows:&lt;br /&gt;
initrd		/boot/initrd.img-2.6.27-rc3&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
Now reboot into your new kernel.&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian has a system to help you build kernels as Debian packages. If NCPU is the number of CPUs you have, &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ CONCURRENCY_LEVEL=&amp;lt;NCPU+1&amp;gt; fakeroot make-kpkg --append-to-version=.mykernel linux_image&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmduser|su}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_amd64.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you're running 32-bit i386&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i /usr/src/linux-image-2.6.27-rc3.mykernel_2.6.27-rc3.mykernel-10.00.Custom_i386.deb}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again it is recommended that you build what you need into your kernel. However, if aren't sure what is needed to read your root file system and so can't just build it into your kernel, you can create an initrd using update-initramfs&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|update-initramfs -k 2.6.27-rc3.mykernel -c}}&lt;br /&gt;
{{cmdroot|update-grub}}&lt;br /&gt;
&lt;br /&gt;
== Ok, now see if it worked ==&lt;br /&gt;
Once you have your kernel compiled and install, reboot and choose it from your grub or lilo menu. Hopefully it boots Ok, and you can open a command line and&lt;br /&gt;
{{cmdroot|modprobe ath9k}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|iwconfig}}&amp;lt;br&amp;gt;&lt;br /&gt;
The first command should hopefully generate no errors and the second is purely diagnostic and should show you a working wireless device. You can then proceed to use wpa_supplicant or network manager or iwconfig to setup your wireless networking.&lt;/div&gt;</summary>
		<author><name>Kevmitch</name></author>
		
	</entry>
</feed>