Lenovo Thinkpad W700 out of the box I recently upgraded my Thinkpad T60p for a W700. This laptop is a tank, and it weighs about as much as one. It dwarfs the T60p that I had before, and that was still pretty big. Here are some quick specs for this W700:
Install Gentoo from CDAt the time of this writing, the latest Gentoo minimal iso didn't recognize my wired ethernet (gentoo-x86-minimal-2008.0.iso), so I went to the current-iso directory to grab the latest. Also, I had previously tried a 2007.1 minimal CD, and it couldn't even mount the CDROM because the w700 has a SATA CD/DVD drive. There was a problem recognizing the 82567LM Gigabit Network controller using the 2008.0 install CD but the 20090901 one worked fine. From here, I followed the Gentoo Handbook. Since the network is already working, I skipped to prepare my disks. There are 2 500GB drives in this laptop so I opted for a 64M /boot, 196G /, and the rest for /home on /dev/sda. The second disk (/dev/sdb) has 8G for swap and the rest is entirely allocated for /media. As for the fs types, I chose: /boot = ext2, / = ext3, /home = reiserfs, /media = xfs. The ext filesystems are for compatibility in case I'm sticking it in another computer to read data off of it and XFS to handle big files and reiserfs because I tend to have directories with tens of thousands of files in them.After installing the stage3 and the portage snapsot, I moved /tmp and /usr/portage to /home and symlinked so that they can take advantage of reiser. I set my CFLAGS to -O2 -march=prescott -pipe -fomit-frame-pointer in the /etc/make.conf file. These are the USE flags which I set:
Kernel ConfigurationNext up is configuring the kernel. I went with the default gentoo-sources and emerged that (as of this writing, 2.6.30-gentoo-r6). Then using make menuconfig I had to turn on a few things specific for the laptop. Under "Device Drivers -> Power supply class support" I turned on "Generic PDA/phone power driver" and under "Device Drivers -> X86 Platform Specific Device Drivers" I turned on the "ThinkPad ACPI Laptop Extras". Under "File Systems", I needed to enable ReiserFS and XFS support since 2 of my paritions are formatted as such, as well as NTFS support since some cameras store data on NTFS and FUSE because I use sshfs.For the most part, the menuconfig scripts added everything that I needed. I double checked the things that I knew I'd need: General ConfigI checked some of the general kernel config settings for the processor and power management. These aren't vital, but it's nice to have them, especially ACPI since I intend to use it.
Intel PRO/1000 gigabit ethernetThe Intel Corporation 82567LM Gigabit Network Connection can use the e1000 driver, but it runs in PCI Express. Make sure you have PCI Express turned on in your "Bus options".
Atheros AR2425 WirelessThe W700 that I have has the "IBM ThinkPad" wireless LAN adapter as opposed to the Intel one. This makes things a bit easier because the Intel adapter is still pretty new and there might be configuration problems. The AR2425 chipset is supported directly in the kernel so we just need to turn it on. This will use the ath5k Atheros driver.
High Definition AudioThis driver has been around for a while, it's part of ALSA, so we need to turn that on then enable the driver.
After compiling the kernel, I installed a few things (grub, vixie-cron, syslog-ng, slocate, logrotate, reiserfsprogs, xfsprogs) and restarted.
Booting off the harddriveBooted up with no problems, ethernet, drives, cdrom, all worked on boot. I already did an emerge --sync while chrooted in the previous step, so now I'll just load it up with the packages that I want. Wireless LAN wasn't working because I didn't have wireless-tools or wpa_supplicant installed yet, although if I try to bring up wlan0, it shows up in ifconfig but can't find an AP and times out. After 10 million hours compiling a thousand packages, I'm ready to set some things up. Let's start with the easy stuff.CD ROMJust a quick check to see if I can access the CD ROM:
Note that the device is /dev/sr0 and not the typical /dev/cdrom or /dev/hda1. Intel Pro/1000 Gigabit EthernetWorks with no additional installation. You'll just need to add whatever LAN related config in your /etc/conf.d/net for eth0.X11 and OpenGLThis laptop has a hot graphics card. I don't run anything that heavily uses GL but I'd like to at least have hardware accelleration for video playback. Getting X to run is easy. With the Xorg 1.5 server, you can use HAL and pretty much not use a config file at all and everything gets auto-detected. Almost. You need to use the "nvidia" driver and not the "nv" driver that Xorg tries to use. You can install this manually:
You'll need an /etc/X11/xorg.conf file now, specifically with this in the Device section:
X should at least startup for you now. But you may notice that you don't get GLX or hardware accelleration. You'll see this in your /var/log/Xorg.0.log:
This is because Xorg has a libglx module and so does NVidia, and NVidia wants you to use their's. One way you can do this is to rename the Xorg's version to something else and symlink NVidia's version:
But this is kind of messy and the next time you update Xorg, it'll break GLX again. The better way to do this is to tell Xorg where to find the NVidia libraries. You can open the xorg.conf that you made to get X to use the right video driver, and add this to the "Files" section:
This should make Xorg load NVidia's GLX driver over Xorg's version. The module path needs to be in this order or else modules such as WFB will break. NVidia has a libwfb.so which it loads in the event that X isn't providing it, but Xorg 1.5 does provide it and will puke if it isn't using its own libwfb. If this doesn't work, then do it the messy way. Make sure you have the nvidia's opengl selected and that glxinfo (from the mesaprogs package) reports kosher stuff:
That was pretty painless compared to the ATI drivers with my old ThinkPad T60p. With X11 working, and hardware accelleration, I can move on to other things. Atheros Wireless LANI installed wpa-supplicant and wireless-tools to help with the setup of the Atheros wireless adapter, but after I added the correct ssid and keys to wlan0 in my /etc/conf.d/net, net.wlan0 started up just fine. I didn't add any modules to the /etc/conf.d/net file so I'm pretty sure I'm not using iwconfig, eventhough the config is the same:
This is enough to get things started in the event that wpa is needed. As a side note, my wireless antenna LED doesn't seem to come on. Intel High Definition AudioWorks with no additional effort. One strange side effect that I noticed was the volume buttons don't work. They're definitely not broken because I can mute (which works) then hit a volume up or down button and it unmutes. There must be a setting somewhere where I'm not allowing something to write to nvram. It's not that big of a deal right now since I can control the sound from alsamixer, but when it annoys me enough, I'll probably look into it.
ACPIThe ThinkPad ACPI Extras worked as advertised, allowing you to control things like the think light through the /proc filesystem (I have my beeps scripted to blink the think light instead of making a sound). The /proc hooks that you get look like this:
USBNot tested, I assume it works as when I plug my phone into it, I can see USB events go off in the logs. The question is whether I can read/write from thumb drives or cameras.Fingerprint readerI installed thinkfinger but it can't find the biometric device in the USB chain. According to lsusb, this is all I get:
According to what I've read, libfprint can talk to an AuthenTec reader, but it's no longer in the portage tree. There's also a project called aes2501 but it hasn't been updated in almost 2 years and it's not in the portage tree. BioAPI doesn't recognize the device and it segfaults. Looks like there isn't a quick and easy solution to get this to work as of yet. FirewireNot tested.ModemNot tested.PCCardNot tested.
Lenovo Thinkpad W700 with Gentoo, vs 28 inch TV, vs PlayStation 3, vs SGI Keyboard (for size comparison)
This page was last updated on: Sep 10 2007 HOME, CONTACT, TWITTER |