Musings of a Software Inventor, or, THE LACK THEREOF

Linux on the Lenovo 3000 v100

Just got a brand new Lenovo 3000 v100 0763-4CU, and thought I'd throw up some notes.

While trying to get the various devices to work, I discovered that there are various editions of the v100. Mine has the core2duo 7200 and atheros wifi, which seems to the biggest chipset-different bits I noticed.

I installed with Debian etch (nightly-build of the installer) and it got almost everything working. When the stable etch came out I upgraded to that and it didn't get worse. I've tried an ubuntu (7.04) install on another partition, but it doesn't do any better.

Right now the thing that I really really want is suspend-to-ram, but I can't quite get it to work. It suspends for 10-15 seconds just fine, and I can wake it up. But if I suspend it for any longer it won't wake back up.

Overview

Device Model Status Notes
Video intel 945GM)works graphics accelleration works. dual screen with alternate xorg.conf
Audio ICH7 82801G rev 02)mostly-works must run script to swich to headphones-only mode
Ethernet RTL-8139works
Wireless Atheros works svn madwifi driver, or ndiswrapper
Webcam 5602 ALi Corp no-linux works in vmware+windows w/ usb2
Fingerprint AuthenTec no-linux haven't even tried it in windows
Suspend (ram)no _almost_ works!
Suspend (disk)no
Firewire Ricoh untested
card reader Ricoh untested

Output of lspci

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03) 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03) 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) 00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 02) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 04:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01) 0a:01.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832 0a:01.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19) 0a:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01) 0a:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a) 0a:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05) 0a:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Output of lsusb

Bus 004 Device 002: ID 08ff:1600 AuthenTec, Inc.
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 005: ID 0bc2:0502 Seagate RSS LLC
Bus 001 Device 002: ID 0402:5602 ALi Corp.
Bus 001 Device 001: ID 0000:0000
Bus 005 Device 002: ID 0a5c:2101 Broadcom Corp.
Bus 005 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000

Wireless

This one uses an Atheros chipset, unlike all of the other v100's up to this point.

MadWifi now works with this card, as per http://madwifi.org/ticket/1001. I got it working by simply grabbing the madwifi-hal-0.9.30.13 svn with a straigt make && make install.

Previously:

I got it working very easily by installing the latest stable ndiswrapper (v1.33) and the windows driver from lenovo's website. Lenovo doesn't even list the atheros card for this laptop (that I notice), so I had to grab it from some other Lenovo laptop with an atheros chipset page.

I slightly followed the ndiswrapper instructions at thinkwiki -- though there wasn't much to it.

I'm not sure if it will work in 802.11n mode or not.

Audio

This works out of the box in many distributions... but not the one I installed. I thought briefly that it was my specific kernel, but then I found a note saying that it might just be some module parameters.
http://www.puzzle.ch/samsung_q35.html
Added "options snd-hda-intel index=0 single_cmd=1 model=laptop-eapd"
to /etc/modules.conf

Turns out that it doesn't detect when the headphones are plugged in. To switch to headphones-only-mode I do:
rmmod snd-hda-intel modprobe snd-hda-intel index=0 single_cmd=1 model=3stack-dig

which effectively loads the _wrong_ sound card driver, but one that does the trick :)

Video

Debian set up the 1280x800 resolution out of the box. I've since enabled graphic accelleration and figured out a dual-monitor mode. I have to swich Xorg configs to go from single to multi-monitor. I have an experimental version that sort-of switches dynamically using xrandr... but it doesn't work.

Lenovo 3000 v100 945GM Xorg i810 single-screen config

# /etc/X11/xorg.conf (xorg X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the /etc/X11/xorg.conf manual page. # (Type "man /etc/X11/xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # sudo dpkg-reconfigure -phigh xserver-xorg Section "Files" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # path to defoma fonts FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "i2c" Load "bitmap" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "vbe" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" EndSection Section "Device" Identifier "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller" Driver "i810" VideoRam 65535 Option "MonitorLayout" "CRT,LFP" Option "Clone" "true" BusID "PCI:0:2:0" EndSection Section "Monitor" Identifier "Generic Monitor" Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1280x800" EndSubSection SubSection "Display" Depth 4 Modes "1280x800" EndSubSection SubSection "Display" Depth 8 Modes "1280x800" EndSubSection SubSection "Display" Depth 15 Modes "1280x800" EndSubSection SubSection "Display" Depth 16 Modes "1280x800" EndSubSection SubSection "Display" Depth 24 Modes "1280x800" "1280x1024" "1024x768" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Synaptics Touchpad" EndSection Section "DRI" Mode 0666 EndSection Section "Extensions" Option "Composite" "Enable" EndSection

Lenovo 3000 v100 945GM Xorg i810 dual-screen config

Section "ServerLayout" Identifier "X.org Configured" Screen 0 "IntScreen" 0 0 Screen 1 "ExtScreen" LeftOf "IntScreen" Option "Xinerama" "true" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Synaptics Touchpad" EndSection Section "Files" RgbPath "/etc/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/X11R6/lib/ X11/fonts/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" #Load "glx" Load "extmod" #Load "dri" Load "dbe" Load "record" Load "xtrap" Load "type1" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" EndSection Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" EndSection Section "Monitor" #DisplaySize 370 300 # mm Identifier "ExtMonitor" VendorName "ACR" ModelName "Acer AL1912" ### Comment all HorizSync and VertSync values to use DDC: HorizSync 24.0 - 80.0 VertRefresh 49.0 - 75.0 Option "DPMS" EndSection Section "Monitor" Identifier "IntMonitor" Option "DPMS" EndSection Section "Device" ### Available Driver options are:- ### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz" ### [arg]: arg optional #Option "NoAccel" # [<bool>] #Option "SWcursor" # [<bool>] #Option "ColorKey" # <i> #Option "CacheLines" # <i> #Option "Dac6Bit" # [<bool>] #Option "DRI" # [<bool>] #Option "NoDDC" # [<bool>] #Option "ShowCache" # [<bool>] #Option "XvMCSurfaces" # <i> #Option "PageFlip" # [<bool>] Identifier "IntCard" Driver "i810" VendorName "Intel Corporation" BoardName "Mobile 945GM/GMS/940GML Express Integrated Graphics Controller" BusID "PCI:0:2:0" Option "MonitorLayout" "CRT,LFP" # Option "DevicePresence" "true" Screen 0 EndSection Section "Device" ### Available Driver options are:- ### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz" ### [arg]: arg optional #Option "NoAccel" # [<bool>] #Option "SWcursor" # [<bool>] #Option "ColorKey" # <i> #Option "CacheLines" # <i> #Option "Dac6Bit" # [<bool>] #Option "DRI" # [<bool>] #Option "NoDDC" # [<bool>] #Option "ShowCache" # [<bool>] #Option "XvMCSurfaces" # <i> #Option "PageFlip" # [<bool>] Identifier "ExtCard" Driver "i810" VendorName "Intel Corporation" BoardName "Mobile 945GM/GMS/940GML Express Integrated Graphics Controller" BusID "PCI:0:2:0" Option "MonitorLayout" "CRT,LFP" # Option "DevicePresence" "true" Screen 1 EndSection Section "Screen" Identifier "IntScreen" Device "IntCard" Monitor "IntMonitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x800" EndSubSection EndSection Section "Screen" Identifier "ExtScreen" Device "ExtCard" Monitor "ExtMonitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection EndSection