Installing Fedora 7 on a ThinkPad T61

From ThinkWiki
Jump to: navigation, search

Fedora 7 - Xen - T61

Original Link: http://skinetwork.org/mediawiki/index.php/Fedora-T61

Fedora 7 Xen Kernel on T61 - In progress

27 May 2007

Finally after awaiting for about less than 2 months, I got my T61 from Lenovo yesterday. Well, my first impression is worth wait. Here is my T61 configuration:

 7662CTO    	CTO THINKPAD T61 WITH NVIDIA GRAPHICS - 1 YD  	   	   	   	 
  	      42V8190   	SBB INTEL CORE 2 DUO PRCESST7300 	  	  	  	 
  	      42V8012   	SBB MS WIN VISTA HOME BASIC 	  	  	  	 
  	      42V9597   	SBB MSWIN VHB32 US ENGLISH 	  	  	  	 
  	      42V9324   	SBB 14.1WXGA +TFT,W/OCAM 	  	  	  	 
  	      42X0906   	** SBB NVIDIA QUADRO NVS 140M MEDIACARD 	  	  	  	 
  	      41W2060   	VBB 1GB PC2-5300 667MHZ 1DIMM 	  	  	  	 
  	      42V8195   	SBB KEYBOARD US ENGLISH 	  	  	  	 
  	      42V9330   	SBB UN(TRACKPOINT+TCHPD)+ FING.R 	  	  	  	 
  	      42V8702   	SBB 120 GB HDD,5400RPM 	  	  	  	 
  	      42V8193   	SBB INTEL TURBO MEMORY 1GB 	  	  	  	 
  	      42V8714   	SBB CD-RW/DVD-ROM COM,UBAYSLIM 	  	  	  	 
  	      42X0805   	SBB PC CARDSLOT EX CARDSLOT 	  	  	  	 
  	      42V8177   	SBB INT.WIRE.WIFI/LINK4965AGN 	  	  	  	 
  	      62P6054   	VBB INTEGR.BLUETOOTH PAN 	  	  	  	 
  	      42V9338   	SBB 6 CELL LI-ION BATERRY 	  	  	  	 
  	      39T6442   	SBB COUNTRY PACK NORTH AMERICA 	  	  	  	 
  	      27R1769   	SBB PSTN CABLE 	  	  	  	 
  	      42V9391   	SBB LANG.PACK US ENGLISH 	  	  	  	 
  	      42V9428   	SBB PACKAGING US 	  	  	  	 
  	      42V9647   	SBB 14.1WXGA+W/OCAWWAN,W/BT11N 	  	  	  	 
  	      39T6440   	SBB 56K V.92 DESIGNED MODEM 	  	  	  	 
  	      42V8646   	SBB CL.PLATE T61WLANANDBLTOOTH 	  	  	  	 
  	      42V9665   	SBB FCC, LABEL 	  	  	  	 
  	      42V9667   	SBB GEO LABEL US, WLAN,BT 	  	  	  	 
  	      41W2300   	SBB LOGO PLATE 	  	  	  	 
  	      42V9631   	SBB INT WLAN ANT 14.1" 11ABGN 	  	  	  	 
  	      42V9658   	SBB MT 7662 SYSTEM LABEL 	  	  	  	 
  	      42X0929   	SBB MECH MISC PARTS 	  	  	  	 
  	      42V7973   	SBB MS LABEL (VISTA BASIC) 	  	  	  	 
  	      42X1232   	SBB NEWINTELLAB_DUALCORE/CEPRO 	  	  	  	 
  	      42X0914   	SBB NO SIM MODEL 	  	  	  	 
  	      42X1352   	SBB PC CARDSLOT EXPRESCARDSLOT 	  	  	  	 
  	      42V9633   	SBB STAND LCD C/B:14.1"W/O CAM 	  	  	  	 
  	      42X0915   	SBB WLAN MISC PARTS 	  	  	  	 
  	      42X0912   	SBB WWAN MISC PARTS 	  	  	  	 
  	      42X0922   	SBB NVID QUADRO NVS XXXX W/AMT 	  	  	  	 
  	      42X1482   	SBB BLUETOOTH W/ ANTENNA 	  	  	  	 
  	      42X1702   	SBB BLUETOOTH SCREW 	  	  	  	 
  	      42V8063   	SBB MS WAU ENGLISH NA-U MODELS 	  	  	  	 
  	      42V9341   	SBB 1GB PC2-5300 DDR2 SODIMM 	

What did I do the first minute

Powered on T61 and hold the ThinkVantage button to go BIOS. Well, this is my first T61. I did notice the options to enable/disable the Virtualization Technology which I was most concerned about. I shall brief things soon here for people who are looking to install Linux and probably detail later.


Fedora 7 Installation

- Booted up from DVD - Fedora 7 Installation takes a long time to load AHCI driver, however, it does not recognize the disk. I put in FC7 LIve disk which fails to mount root because it couldn't locate the disk. To work around this problem, I had to switch SATA mode from AHCI to Compability mode in BIOS. Installation then went smooth and finished in less thatn 10 min.


Fedora 7 Xenified Kernel

yum groupinstall "Virtualization"

Xen kernel booted fine without any problems.


NVidia Quadro 140M - Non Xen Kernel

I was able to compile nvidia.ko module from NVIDIA-Linux-x86-100.14.11-pkg1.run for non-xen 2.6.21-1.3194.fc7-i586 kernel. Downloaded the latest from nvidia.org and simply ran the program and it took care rest of it. The xorg.conf file worked for the first time without any problems.

However, for the xen kernel, its a whole different story.


NVidia Quadro 140M - Xenified Kernel

As expected, nvidia.ko module failed to load into 2.6.20-2925.9.fc7xen-i686. The new nvidia pkg doesn't even try to compile the module for xen kernel, they look the xen kernel and quit the program. However, if you unpack the pkg and look in the NVIDIA-Linux-x86-100.14.11-pkg1/usr/src/nv/conftest.sh there is a variable the script looks if it wants to ignore the xen kernel, so I tried follow steps.

export IGNORE_XEN_PRESENCE=true   // This basically let me atleast try compiling the module. Then followed the usual nvidia patch procedure but in vain. However I am pasting steps to debug further.

yum install kernel-xen-devel.i686;
cd /usr/src/kernels/2.6.20-2925.9.fc7xen-i686/;
make oldconfig;
make scripts;
make prepare;
mkdir nv_xen;
cd nv_xen;
wget http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9631/NVIDIA-Linux-x86-1.0-9631-pkg1.run;
wget http://www.nvnews.net/vbulletin/attachment.php?attachmentid=20801;
mv attachment.php\?attachmentid\=20801 xen.patch;
sh ./NVIDIA-Linux-x86-1.0-9631-pkg1.run --extract-only;
cd NVIDIA*/usr/src/nv;
patch -p1 < ../../../../xen.patch;
CC="gcc -DNV_VMAP_4_PRESENT -DNV_SIGNAL_STRUCT_RLIM" make SYSSRC=/lib/modules/2.6.20-2925.9.fc7xen/source/ module;
cp nvidia.ko /lib/modules/2.6.20-2925.9.fc7xen/kernel/drivers/video/;
depmod -a;

I tried inserting the built module but it couldn't find some symbols and I couldn't get it to work. Well, I forgot compiz for a while and wanted to just get the Xen HVM taste. So tried to use the xorg's nv driver and interesting, that failed too.

I had to crack my head to get this X in xen kernel. So made up my mind and wanted to give the generic VESA driver a shot and it worked!!! Finally some XServer with XEN.

yum remove xorg-x11-drv* // remove all nv drv and all xorg stuff

yum install system-config-display  // yum selects minimum dependencies for this, includes xorg-server and xorg vesa driver
sudo system-config-display

Select generic LCD 1440x900 and it worked fine. So my X on Xen is running off of vesa driver.


Xen HVM

I will trying this tonight and will update the wiki. Here is my xm info.

host                   : mobile
release                : 2.6.20-2925.9.fc7xen
version                : #1 SMP Tue May 22 08:53:03 EDT 2007
machine                : i686
nr_cpus                : 2
nr_nodes               : 1
sockets_per_node       : 1
cores_per_socket       : 2
threads_per_core       : 1
cpu_mhz                : 1995
hw_caps                : bfebfbff:20100000:00000000:00000140:0000e3bd:00000000:00000001
total_memory           : 1006
free_memory            : 61
xen_major              : 3
xen_minor              : 1
xen_extra              : .0-rc7-2925.9.f
xen_caps               : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xf5800000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.2 20070502 (Red Hat 4.1.2-12)
cc_compile_by          : kojibuilder
cc_compile_domain      : (none)
cc_compile_date        : Tue May 22 08:51:22 EDT 2007
xend_config_format     : 4

Update: Was easier than I thought ;-) . Using the fully virtualized config to run windows. Used the Virtual Machine Manager came with fedora and was just an easy setup. Works awesome!!


Wireless - Intel 4965

This was a tough one but finally there was one bug posted on T61 issue which helped me to get this working. Here are steps in brief.

- Got the rpm for Intel 4965 firmware. Install this will copy firmware files to /usr/lib/firmware

wget ftp://ftp.pbone.net/mirror/atrpms.net/el3-i386/atrpms/stable/iwlwifi-4965-ucode-4.44.15-4.noarch.rpm
rpm -ivh iwlwifi-4965-ucode-4.44.15-4.noarch.rpm

- Make sure mac80211 is loaded.

modprobe mac80211

- Get the iwlwifi package from intel to compile the iwl4965 package

wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-0.0.32.tgz

- Dont be exited to compile that yet because it wont work on T61 because of PCI ID bug on T61. See this link http://bughost.org/bugzilla/show_bug.cgi?id=1294 So get the patch.

wget  http://bughost.org/bugzilla/attachment.cgi?id=1058

- Extract the iwlwifi folder and apply the above patch using patch -pl or simple edit them manually, they are just couple changes in adding the PCI ID to the code.

- After apply the patch if you try to run make, it will still fail because I guess simple relative path problem. It gave me error looking for files in ../net/mac80211 which actual path is /usr/src/kernels/2.6.21-1.3194.fc7-i686/net/mac80211, so I created a link in the unzipped iwlwifi folder like below and then ran make.

ln -s /usr/src/kernels/2.6.21-1.3194.fc7-i686/net .

This time make was successful and it compiled the module in compatible/iwl4965.ko .

- Insert the module

insmod compatible/iwl4965.ko

- Activate the wireless device

ifconfig wlan0 up

- Test Use iwconfig to test and configure. Enjoy!!!


Intel Turbo Memory

TODO


ThinkFinger

TODO


Suspend / Resume

TODO


Bluetooth

TODP

Sorry for big TODO list, I shall fill in those as soon as I can. Questions: skanuganti@skinetwork.org