I was looking for a cheap, good bang for the buck laptop I could take back and forth to class and also something I could play with Linux on outside of desktop/workstation boxes. I browsed NewEgg for a few weeks looking for good deals and finally settled on this one. There were two versions, one was a Celeron with 51MB RAM and about the time I settled on it, the price of this one dropped so went ahead and spent the extra for a Core Duo, double the RAM and a DVD burner.
It's a pretty run of the mill low end laptop. Nothing too fancy or too expensive .. here are the highlights.
- Model 530 (GU337AT#ABA)
- Screen 15.4" WXGA
- Memory Size 1GB DDR2
- Hard Disk 80GB
- Optical Drive DVD±R/RW
- Graphics Card Intel GMA950
- Video Memory shared memory
- CPU Type Intel Core Duo
- CPU Speed T2300E(1.66GHz)
- CPU FSB 667MHz
- CPU L2 Cache 2MB
- Resolution 1280 x 800
- GPU/VPU Intel GMA950
- Video Memory Up to 224-MB shared system memory
- Graphic Type Integrated Card
- HD Interface SATA
- Memory Slots 2 x SO-DIMM
- Memory Speed DDR2 667
The base install was extremely easy. Coming from Slackware I had a pretty good grasp of a text-based installer so I was right at home during the initial configuration. However, since this was my first experience with Arch I was a bit lost when it came time to configure the system. :^) I browsed the wiki here for a bit until I stumbled on the great Beginners Guide which I used to update the system, grab Xorg, XFCE and pretty much everything else it mentioned. If you're an Arch newb like I am I strongly suggest browsing over there and checking out that Intro, I can't recommend it enough. :-)
Combine the fact I was coming to Arch from Slack with my OCD nature, I ended up with a the following partitioning scheme.
/dev/sda6 /boot /dev/sda7 / /dev/sda8 /usr /dev/sda9 /home /dev/sda10 /var /dev/sda11 /tmp
With a 2048MB SWAP space (2*1024RAM)
I pretty much went down the aforementioned Beginners Guide the first reboot, so I won't go into a great deal of detail. Besides everyone has their own preferences on a lot of that stuff like media players and themes, fonts etc.
I updated via pacman then grabbed the Xorg, sound (alsa), XFCE and fonts packages mentioned there. Then I configured DBUS and HAL which were pretty much working out of the box and edited /etc/rc.conf to load the DAEMONS and MODULES I needed. Everything worked on the first try with little or no tweaking needed so I was up and running my first fully functional Arch install. :-)
I only had three real issues during the install -- wireless, CPU frequency scaling and sound the (prevalent?) Linux + Laptop problem of the internal speaker not being muted when headphones are plugged in. I'll tackle them in order of severity.
A laptop without wireless is pretty useless, and this is one of the areas Linux hasn't really shined in the past so I was a bit apprehensive when my wireless didn't work right out of the box. However after reading through most of the documentation on the Wiki and the Forums I got it working, so there is hope if you're struggling with it too.
If you haven't already, take a look at the wireless setup page. It's a good starting point/intro for wireless newbs like me. On there it mentions the method I use here as being the "non-preferred" method, but I couldn't get the "preferred" method there to work. Now that I know a little bit more about the process I may try to go back and look into it, but as long as it's not broken, I'm reluctant to "fix" it. :-/
First I grabbed the wireless tools package.
pacman -S wireless_tools
Then I figured out which type of card I had with lshwd (I actually had to grab lshwd with pacman first, but no biggie there!)
lshwd . . 10:00.0 Class 0280: Intel Corporation|PRO/Wireless 3945ABG (ipw3945) . .
So, I need the ipw3945 module which was already on my system, as determined by:
I checked to see if it was loaded already
lsmod | grep 3945
It wasn't, but the iwl3945 was so I removed it. (At this point I had installed so many different modules and packages trying to get wireless to work I'm not sure exactly what comes pre-loaded with the default install so YMMV on this next little bit).
Then I dropped in the ipw3945 module
Finally I needed to insert the ipw3945 module (and remove any iwl3945) into the MODULES array in /etc/rc.conf and ipw3945d daemon into the DAEMONS array in the same file. I'm not sure if it matters, but I made sure I put the daemon before all the other networking related daemons, again, YMMV slightly.
At this point you should have everything ready to go on the hardware side. You man want to reboot to make sure you got all the stuff in /etc/rc.conf correct since I thought I had things working a couple times until I rebooted then everything magically broke again. :^)
Software/User Space Stuff
(NOTE: I'm not endorsing one program/utility over another here, I'm just sharing what I got to work. :-) ) I browsed around the Arch site here and Google looking for a nice wireless connection utility and tried a couple different things. I tried networkmanagerbut that didn't really get me anywhere. Then I tried wicd and it had all the features I needed and seemed to work alright so I went with it. I pretty much followed the procedure on the wicd page and I was up and running in no time. I added wicd to my DAEMON array in /etc/rc.conf and launched it via the tray icon and it found my wireless connection ... and six of my neighbors. :^)
Basically I had no idea how to do wireless on any platform when I started. This section isn't really intended to be a guide on how you SHOULD do things, rather an electronic form of my notes on how I DID do things. :-)
CPU Frequency Scaling
DISCLAIMER: I'm still not entirely sure I've got this working like it should but I can watch the little Applet I put on my Panel change from 1GHz to 1.67GHz when I launch apps so I'm satisfied that it's at least doing something for the time being. :^)
Again, I refer you to the Beginners Guide as a starting point. I have an Intel based machine so I also relied heavily on the SpeedStep guide. I got the cpudyn method to work best so that's what I've stuck with so far. Nothing really exciting here I followed the guides mentioned and then appropriate daemons in the DAEMONS array in /etc/rc.conf.
I also ended up with acpi_cpufreq, cpufreq_userspace and cpufreq_ondemand modules in my MODULES array in /etc/rc.conf after my failed attempts to get frequency scaling to work. I'm not sure if that's necessary or if it's even advisable but it hasn't broken my system yet so I've just left them alone.
Sound and Headphones
The issue with the sound wasn't the sound itself (well, actually it was, the internal speaker sucks :^) ) but the (apparently?) widespread problem of said speakers not being muted when headphones are plugged in. My Googling brought me seemingly endless solutions to this problem which didn't work .. these were some of my favorites:
- Consider it a feature!
- Just cut the wires to the internal speaker.
- Don't do anything that needs sound.
Well I really don't want to annoy everyone within earshot, void my warranty or sit in silence while hacking out programs at the last minute so the following are a largely hodge-podge conglomeration of "solutions" I found. I'm not sure if any one of these did it or the combination of them all, but, again, it works so I'm not going to touch it!
- Grab alsa plugins (which I already I had IIRC)
pacman -S alsa-plugin
- Grab jack-audio-connection-kit (kind of makes sense from the name I guess?)
pacman -S jack-audio-connection-kit
- Then on some of the forums for other distros I saw a lot of suggestions to edit /etc/modprobe.conf in some form or fashion. Here's what mine looks like now and everything seems to work so I've just left it.
options snd-hda-intel module=laptop
There are still a few things I'd like to get working at some point so if anyone is reading this and has any suggestions I'd love to hear them. :-) Most are pretty low priority/eye candy type stuff.
- I'd like to have something like MacBooks where they "gradually" dim when idle as opposed to "entirely on" and "entirely off". I think that would come in handy when I just have my notebook open as a reference or something where I could still read it but not need it sitting there sucking my battery dry at full illumination.
- Anything to extend battery life. I haven't really looked into it but I'd like to find a way to scale the core voltage as well as frequency. I've seen Intel utilities that can do that on Windows desktops but nothing so far for Linux
- A way to kill the wireless card in software. This notebook comes with a button right by the power button to kill the wireless. It's not a big deal to hit the button I guess but it would be pretty neat if there was a way to simulate hitting the button in case I forget or I lose wireless connection for extended periods. I'm not even sure if this is possible or how it could be done, though.