Lenovo Thinkpad X300
From ArchWiki
Contents |
Introduction
I bought a new Lenovo Thinkpad X300 with the vision to use just Arch Linux on it. First thing i did, was to boot up from my Arch CD and started the setup. The computer was preinstalled with Windows Vista Business and I didn't plan to keep it.
My system
Arch ver: 2.6.27-ARCH
Model: Lenovo X300 6478-14G Processor: Intel® Core™ 2 Duo processor LV7100 (1.2 GHz), 4-MB L2 cache Chipset: Intel Mobile 965GS Express Memory: DDR II SDRAM - 667MHz - PC2-5300 - 2x1GB (4GB maximun) Harddrive: SSD (solid state) 64 GB, 8 mm high, SATA interface Screen: 13.3" WXGA+ LED backlight, maximun 1440 x 900 bp Graphic: Intel GS965/GMA X3100, up to 256 MB Optical drive: DVD-RAM/RW drive, 7 mm high Bluetooth: ThinkPad Bluetooth with Enhanced Data Rate (BDC-2) v.2.0+EDR Network: 10/100/1000 Mbps WiFi: Intel Wireless WiFi Link 4965AGN 802.11a/g/n USB ports: 3 Webbcam Yes Fingerprintr. Yes Battery: Lithium Polymer in 3 cell or Lithium Ion in 6 cell configurations (~4 hours) Dimensions: 318 (width) x 231 (dept) x 18.6-23.4 (height) mm Weight: 1.51 kg
Output of lspci:
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c) 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3) 00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03) 03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN Network Connection (rev 61)
First boot
Installation
The installation went smoothly and no problems occurred. I used the auto-partitioning tool to partiton my harddrive. This was my setup:
32MB ext2 /boot 512MB swap swap ~20GB xfs / ~40GB xfs /home
And then I used the FTP installation to get the needed packages. Both my network cards were detected (as eth0 and wlan0).
Things that do work
- LAN (eth0)
- Graphic card (VESA)
- DVD-reader
- USB
- Keyboard
- USB-mouse
- Touchpad + joystick
- Keyboard-light (Fn+PgUp)
- Music controls (needs ALSA: Sound)
- Webcam
- Fingerprint Reader
- SpeedStep (powersave, performance, etc. cpu scaling)
Things that don't work
- Sound/volume controls = FIXED
- WiFi (wlan0) = FIXED
- Backlight/Brightness control (Fn+Home/End) = FIXED
Untested/unknown
- Bluetooth
- Suspend/Hibernate = FIXED
- Microphone
- External VGA
Fixes
Graphic card
Model: Intel Corporation Mobile GM965
Driver used: xf86-video-intel 2.3.2-1
Problem: VESA-driver is used as standard driver for X.
To install driver:
pacman -S xf86-video-intel
Set driver for X, change the driver from "VESA" to "intel" in /etc/X11/xorg.conf:
Driver "intel"
Then reboot your laptop.
Reference: Video Cards
WiFi
Model: Intel Wireless 4965 AG
Driver used: iwlwifi-4965-ucode 228.57.2.21-1
Problem: wlan0 exists on startup but cannot be activated = no networks found.
To install driver:
pacman -S iwlwifi-4965-ucode
To activate and scan for wireless networks I used:
ifconfig wlan0 up iwlist wlan0 scan
And for connecting to WEP/WPA secured networks I am using wireless tools and netcfg which works flawless.
pacman -S wireless_tools pacman -S netcfg
Reference: Wireless Setup
Sound
Model: Intel Corporation 82801H
Drivers used: alsa-lib 1.0.18-1 / alsa-utils 1.0.18-1
Problem: Sound doesn't work.
To install driver:
pacman -Sy alsa-lib alsa-utils
To disable muting of the output:
gpasswd -a USERNAME audio (doesn't know if this had any effect) alsaconf alsamixer (00 on master and pcm) alsactl store (to create '/etc/asound.state')
And for storing the last setting used, put "alsa" into MODULES() in /etc/rc.conf
After this is done, the volume controls (volume up/down/mute) also works!
Reference: ALSA
Touchpad
Model: AlpsPS/2 ALPS DualPoint TouchPad
Driver used: synaptics 0.14.6.99-2 / xf86-input-synaptics 0.99.1-1 (since xorg-server 1.5.3-2, see xorg)
The touchpad works from scratch in xorg, but if you would like to install the drivers to enable more options, this will work (with both scrolling and tap):
pacman -S synaptics
or (depending on the xorg-server version)...
pacman -S xf86-input-synaptics
And then add following to /etx/X11/xorg.conf (note that this is for xf86-input-synaptics(!) and I have removed everything not related to the touchpad):
Section "ServerLayout" InputDevice "Touchpad" "SendCoreEvents" EndSection Section "Module" Load "synaptics" EndSection Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Device" "/dev/input/event10" Option "Protocol" "auto-dev" Option "AlwaysCore" "true" # Option "TouchpadOff" "1" Option "SHMConfig" "on" Option "LeftEdge" "130" Option "RightEdge" "840" Option "TopEdge" "130" Option "BottomEdge" "640" Option "FingerLow" "7" Option "FingerHigh" "8" Option "MaxTapTime" "180" Option "MaxTapMove" "110" Option "EmulateMidButtonTime" "75" Option "VertEdgeScroll" "true" Option "HorizEdgeScroll" "true" Option "CornerCoasting" "true" Option "CoastingSpeed" "0.30" Option "VertScrollDelta" "20" Option "HorizScrollDelta" "20" Option "MinSpeed" "0.80" Option "MaxSpeed" "1.0" Option "AccelFactor" "0.0010" # Option "VertTwoFingerScroll" "true" # Option "HorizTwoFingerScroll" "true" Option "EdgeMotionMinSpeed" "200" Option "EdgeMotionMaxSpeed" "200" Option "UpDownScrolling" "1" Option "CircularScrolling" "1" Option "CircScrollDelta" "0.1" Option "CircScrollTrigger" "2" Option "Emulate3Buttons" "on" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" EndSection
Reference: Synaptics
Backlight
Brightness control (Fn+Home/End) works fine.
To change the brightness manually of the LCD you can either:
echo 100 > /proc/acpi/video/VID1/LCD0/brightness to set 100% echo 80 > /proc/acpi/video/VID1/LCD0/brightness to set 80%
or
xbacklight -inc 10% to increase with 10% xbacklight -dec 10% to decrease with 10% xbacklight -set 100 to set 100% xbacklight =100 to set 100%
Webcam
Works.
Here is the output of "dmesg | grep Camera":
input: UVC Camera (17ef:4807) as /class/input/input12
Output of "lsusb":
Bus 007 Device 002: ID 17ef:4807 ChipsBnk
You can test the webcam with mplayer:
mplayer -fps 25 tv://
Bluetooth
Not tested yet, but here is the output of "dmesg | grep Bluetooth":
Bluetooth: Core ver 2.13 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: HCI USB driver ver 2.10
To control the bluetooth device I can run this:
echo enable > /proc/acpi/ibm/bluetooth To enable echo disable > /proc/acpi/ibm/bluetooth To disable
And when the bluetooth device is enabled, it will appear as a usb device. Output of "lsusb":
Bus 001 Device 006: ID 0a5c:2110 Broadcom Corp.
So, it seems that the device is recognized by the system and hopefully works.
Fingerprint Reader
Works without any problems, Use ThinkFinger
Output of "lsusb":
Bus 001 Device 005: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Suspend / Hibernate
First install uswsusp and then test suspending to RAM... this should work.
sudo pacman uswsusp sudo /usr/sbin/s2ram -f
Then install acpid
sudo pacman -S acpid
Then add it to rc.conf DAEMONS before hal (you did install hal, right ;)
Then edit /etc/acpi/default.sh to use /usr/sbin/s2ram -f when the button/lid closes... make it look like the following:
button/lid) /usr/sbin/s2ram -f #echo "LID switched!">/dev/tty5 ;;
Configuration
Language
I changed my language (swedish/sv_SE) and keyboardlayout in the following files:
/etc/environment /etc/X11/xorg.conf /etc/rc.conf /etc/locale.gen
And after that I ran this as root to update my locales:
locale-gen
xorg
This installation of xorg went well, just needed a reboot:
pacman -S xorg
xorg.conf
This one works for me:
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Touchpad" "SendCoreEvents" Option "AIGLX" "true" EndSection Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/Type1" EndSection Section "Module" Load "record" Load "dri" Load "extmod" Load "xtrap" Load "dbe" Load "freetype" Load "synaptics" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbLayout" "se" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Device" "/dev/input/event10" Option "Protocol" "auto-dev" Option "AlwaysCore" "true" # Option "TouchpadOff" "1" Option "SHMConfig" "on" Option "LeftEdge" "130" Option "RightEdge" "840" Option "TopEdge" "130" Option "BottomEdge" "640" Option "FingerLow" "7" Option "FingerHigh" "8" Option "MaxTapTime" "180" Option "MaxTapMove" "110" Option "EmulateMidButtonTime" "75" Option "VertEdgeScroll" "true" Option "HorizEdgeScroll" "true" Option "CornerCoasting" "true" Option "CoastingSpeed" "0.30" Option "VertScrollDelta" "20" Option "HorizScrollDelta" "20" Option "MinSpeed" "0.80" Option "MaxSpeed" "1.0" Option "AccelFactor" "0.0010" # Option "VertTwoFingerScroll" "true" # Option "HorizTwoFingerScroll" "true" Option "EdgeMotionMinSpeed" "200" Option "EdgeMotionMaxSpeed" "200" Option "UpDownScrolling" "1" Option "CircularScrolling" "1" Option "CircScrollDelta" "0.1" Option "CircScrollTrigger" "2" Option "Emulate3Buttons" "on" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" DisplaySize 380 238 # 96 DPI @ 1440x900 EndSection Section "Device" Identifier "Card0" Driver "intel" VendorName "Intel Corporation" BoardName "Mobile GM965/GL960 Integrated Graphics Controller" BusID "PCI:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 4 Modes "1440x900" "1280x800" "1280x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 8 Modes "1440x900" "1280x800" "1280x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 15 Modes "1440x900" "1280x800" "1280x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 16 Modes "1440x900" "1280x800" "1280x768" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 24 Modes "1440x900" "1280x800" "1280x768" "1024x768" "800x600" "640x480" EndSubSection EndSection
After upgrading to xorg-server 1.5.3-2 I got problems with starting X, and when it finally was running, my USB mouse and keyboard didn't work. I had to change the following in /etc/X11/xorg.conf to fix the problems:
Section "ServerLayout" Option "AllowEmptyInput" "false" # Fixed the problem with USB mouse and keyboard EndSection Section "Files" # RgbPath "/usr/share/X11/rgb" # Comment out to get the X server up running EndSection Section "Module" # Load "record" # The logfile complains about loading this module EndSection
I don't know if it helped me, but firstly I ran:
pacman -S xf86-input-evdev
FluxBox
I also installed FluxBox as window manager. This is done by following:
pacman -S fluxbox
And to load fluxbox with xorg, I created ~/.xinitrc and putted this into it:
#!/bin/bash exec startfluxbox
This is the output of "xrandr" after I installed the Intel graphical driver:
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 1440 x 1440 VGA disconnected (normal left inverted right x axis y axis) LVDS connected 1440x900+0+0 (normal left inverted right x axis y axis) 287mm x 180mm 1440x900 60.0*+ 50.0 1280x800 60.0 1280x768 60.0 1024x768 60.0 800x600 60.3 640x480 59.9
It tells me that I am using the correct screen resolution (1440x900), but there is still one problem. My characters in fluxbox is still extremely large! This is a problem bound to the print resolution (dpi, dots per inch). And to get rid of this, you can add the following in /etc/X11/xinit/xserverrc:
exec /usr/bin/X -nolisten tcp -dpi 96
or this into /etx/X11/xorg.conf:
Section "Monitor" DisplaySize 380 238 # 96 DPI @ 1440x900 EndSection
Mounting USB memory
My USB memory is recognized as /dev/sdb1 and to mount it I added this into /etc/fstab:
/dev/sdb1 /media/usb vfat users,auto,rw 0 0
Note that you need to create /media/usb first! After editing the fstab I use:
mount /media/usb to mount my memory umount /media/usb to unmount my memory
Packages
Here are some of the packages I have tried with success:
sudo xorg fluxbox openoffice-base gedit jdk firefox (flashplugin / ttf-ms-fonts for Flash) gimp svn zip/unzip feh dia evince
Edited files
/etc/rc.conf /etc/environment /etc/locale.gen /etc/fstab /etc/X11/xorg.conf /etc/X11/xinit/xserverrc ~/.xinitrc
//RiJo 05:02, 15 November 2008 (EST)
//patrickhaller 2009 April 25