Wednesday, January 23, 2008

Debian Work Desktop

This is my new Debian Unstable work desktop running GNOME on a Dell Optiplex 755 Intel Core Duo Quad with 4Gb of memory.

Getting it up and running wasn't as smooth as I first expected. First, due to the strangeness of the on-board Intel non-analog DVI connector, I put the dual-head ATI Radeon I was using on my old desktop. Because I have one wide screen and one standard LCD setting the resolutions was tricky, and I finally gave up on the ATI flglx driver after I discovered it couldn't do 1600x1050. It also caused weird corruption in the lower right hand of the screen and major stability issues. moving to the open source ATI driver and a combination of Xrandr I was able to setup each monitor properly and get them working as a "Big Desktop". Originally the on-board gigabit ethernet didn't have support in the kernel, and I used a common 10/100 PCI card, the latest 2.6.24 kernel added the e1000e module which took care of that.

Performance wise it's a beast, at first it was sluggish due to the AHCI and NCQ enabled on the hard-disk, but disabling it in BIOS solved that problem. The quad-cores absolutely scream, and it's a huge improvement over the original Vista install. In order to run our more MS specific apps (IE, Outlook, SQL Manager, Cisco), I installed the free Vmware server and setup a Windows XP virtual machine with 2gigs or memory and 2 processors. Enabling remote desktop and then logging in via the terminal server client makes it seem like Outlook is it's own "app". Native Debian apps I'm using are are mostly GNOME centric: Iceweasel (aka Firefox), GNOME Terminal, Gedit, Rhythmbox, Pidgin, Picasa, and a variety of other GNU programs.

Once I got everything up and running using the desktop has been a dream.
Using GNOME as a desktop manager works wonders, since I can place menu bars in any location with any number of apps that I'd like to use. Creating a "quick launch" section on the menus is also nice, since before I was using a multi-media keyboard to launch my common apps in an attempt to slim down the memory footprint of Windows. Other benefits are the copy/paste highlight/click functionality and sloppy window focus, which makes using multiple monitors more intuitive.

Overall I'm glad I spent the extra time getting Debian running on this new desktop, since it makes my workstation a lot more usable and I feel I can garner more out of this new machine that I would have with Vista.

Friday, January 18, 2008

Thinkpad T42 and Debian

The other week my wonderful girlfriend came over with a "present". While I was expecting food or something another I was pleasantly surprised when she handed me a relatively unused IBM Thinkpad T42. I have sort of a fetish for laptops, and at last count have around 6. All are in some state or working order save my poor iBook G3 which has suffered one to many logic board failures to resurrect again. This one however was different, it's almost perfect. It has all of the features and non of the defects than the others have. Each always had one thing that would bother me: trackpad would go crazy, lid was too loose and kept falling back, or simply ran way to hot. So far this Thinkpad is not only the best Linux laptop I've had but the best one I've owned period. Here's the specs:
  • Intel Pentium-M 1.7Ghz with SpeedStep
  • 1GB DDR Memory
  • 80Gb Hard Drive
  • DVD/CD-RW Drive
  • 802.11 B/G WiFi
  • 1 Gigabit Ethernet
  • ATI Mobility 7500 on a 1024x768 LCD

In the week or so leading up to getting the thinkpad I had been configuring my Dell Inspiron 8500 with Debian GNU/Linux Sid and found to my delight that transplanting it's 80Gb hard drive worked beautifully. All I needed to do was change the xorg.conf drive from the nvidia one to the Xorg ATI one. After that I was in business and with a few tweaks I got many things working properly:
  • ATI 7500 Mobility: Yes, Direct Rendering enabled using ati driver in xorg.conf (listed below)
  • Intel Pro Wireless 2100 3B MiniPCI: yes, after firmware download
  • Intel 82540EP Gigabit Ethernet: yes, with e1000 module
  • Intel SpeedStep: Yes, using cpufreq the processor will scale from 1.7Ghz down to 700Mhz depending on power settings
  • Suspend and Hibernate: Yes, using acpid. video and network come up correctly
  • HDAPS (disk head parking): sort of, works after a kernel patch, but seemed to cause instability and it was a bit too sensitive, somethings making the system unusable while it was parked.
The best resource I found when setting everything up and learning about the capabilities of the hardware was the ThinkWiki site that has excellent Linux information on almost all Thinkpad models.

Overall this is a solid laptop, I guess you could say the lid is a bit flimsy, but it's metal hinges are leagues above what Dells have. The gigabit ethernet is a big plus too, since we have gigabit connections at work and I'm planning to update my home router too. With auto-dim on the display, speedstep, and the tickless kernel option in 2.6.24 it's power management is capabilities are great. Hopefully this lasts me for a while with the only replacement part being the hard drive, but future laptop purchases will be guaged against this superb piece of hardware.

Some Linux info:

micheal@ruth:~$ lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]
02:00.0 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
02:00.1 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
02:01.0 Ethernet controller: Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) (rev 03)
02:02.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
micheal@ruth:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.70GHz
stepping : 6
cpu MHz : 1400.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe bts est tm2
bogomips : 2792.87
clflush size : 64
xorg.conf (touchpad is disabled here)
Section "Files"

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option "VertScrollDelta" "0"
Option "MaxTapTime" "0"

Section "Device"
Identifier "ATI Mobility 7500"
Driver "radeon"
BusID "PCI:1:0:0"
Option "RenderAccel" "true"
Option "backingstore" "true"
Option "AllowGLXWithComposite" "true"
Option "AddARGBGLXVisuals" "True"
Option "TripleBuffer" "True"

Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-64
VertRefresh 43-60

Section "Screen"
Identifier "Default Screen"
Device "ATI Mobility 7500"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Modes "1280x1024" "1024x768"

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"

Section "Extensions"
Option "Composite" "true"