Slackware and a Dell 700m.
The Beginning
So I took the plunge and ordered my ultra-portable laptop from Dell. I shopped around and decided on the 700m because I had a $750 rebate and that meant I could load it up on extras.
It is a fantastic laptop but it comes with just one problem... no option for Linux!
So I decided to embark on the journey that is laptop installs and compatibility. My favorite distro has always been Slackware. I think it is a well maintained distribution and I love the package management and performance. The only drawback in using Slackware on my new laptop was that by default Slackware 10.1 comes with the 2.4.29 kernel. Although it is very stable and great for most desktops and servers it doesn't quite cut it for all the features on a laptop. On a side note... if you wish to just skip all this compatability stuff I strongly recommend SUSE 9.2 Pro. Everything worked out of the box with SUSE 9.2 Pro even the wifi. I just love Slackware and learning new stuff whereas SUSE just did everything for me.
If your still reading then your probably like me and want a good reference on how to get this thing to work.
Getting Slackware
Go to slackware.com and check out what Slackware is all about. While your at it download disc 1 and 2 of the installation ISO's. These ISO's will take a while to download so choose your mirror wisely. I have always liked ftp.nluug.nl.
After downloading the 2 ISO's burn them to cd's. This is always easier incase you need to reinstall or need something to boot your pc in an emergency. The 700m doesn't have a floppy drive... so having the boot cd's is a nice option.
In my case I have a dual boot system. Always install Windows first if your going to dual boot. I have an 80gb hard drive that I partitioned as:
/dev/hda1 - NTFS
/dev/hda2 - FAT32
/dev/hda3 - /
/dev/hda5 - /home
/dev/hda6 - swap
Use a schema that fits your needs. Always think about it first and plan what you think you will need.
Ok moving on to the good stuff. I've got Windows installed on one partition and its time to put on Slackware! Insert CD 1 and follow through the instructions. Typically I like to install everything except the extra languages. I find it easier to install them all and then remove what I don't want later with pkgtool. After the install finishes you will have Slackware installed with the 2.4.29 kernel and a semi-functional laptop. You should have access the your network card (eth0). Now that Slackware is installed you will want to hook up your laptop to the internet via the modem or nic card.
The first thing we want to do is download the newest kernel. At the time this was written it was 2.6.11.5. Go to http://www.kernel.org/pub/linux/kernel/v2.6/. Download the kernel you want and save it to /usr/src. Open up a terminal and change directory into /usr/src and unpack the kernel.
Kernel Upgrade
After unpacking our new kernel we must deal with the symlinks.
#rm -f linux
#ln -s linux-2.6.xx linux
Now lets copy our existing config from the 2.4.29 kernel and build upon it for the 2.6.xx kernel.
#cp /usr/src/linux-2.4.29/.config /usr/src/linux/
#cd linux
Here I break out of my console mode and use KDE's xconfig because it's the nicest choice and most intuitive for browsing the kernel options.
#make xconfig
Go to File > Load. Open /usr/src/linux/.conifg
This is the most important part. You have to make sure that specific kernel options are enabled.
I specifically installed the following in the kernel and not as modules.
CPU (Pentium 4 M), Filesystem (reiserfs), Net Radio, Loadable Firmware, ACPI, NIC Card, and HIMEM support. This part is really dependent on what hardware you have... so choose wisely. I had to compile the kernel 4 times to get this part right... so if you mess up don't feel bad about it but just keep trying. It is a great learning experience.
After configuring your new kernel go to File > Quit. Save your changes. And back to the console we go!
#make bzImage
#make modules
#make modules_install
#cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.xx
#cp /usr/src/linux/System.map /boot/System.map-2.6.xx
#cp /usr/src/linux/.config /boot/config-2.6.xx
#cd /boot
#rm System.map
#rm config
#ln -s System.map-2.6.xx System.map
#ln -s config-2.6.xx config
Now edit your /etc/lilo.conf. Add in a section and name it what you wish. Leave the existing 2.4.29 kernel but just copy the syntax. This could help bail you out if there is an issue.
image = /boot/vmlinuz-2.6.xx
root = /dev/hda? - Your root partition
label = Linux-2.6.xx
Save and exit.
#lilo
Now just reboot. When your bootloader comes up you should see your new kernel. Select that and when we boot up all kinds of new options are available.
The first thing you will notice is the the ACPI is now working! You can monitor that battery of yours.The cd-rw doesn't require scsi emulation now either.
Updates
At this point I like to update the system. I use the package manager Swaret. Use whatever manager you like but swaret does the job for me. Shilo has a wonderfull tutorial on how to use Swaret and Slackware. I recommend his site.
After your system is updated then the only thing left to do is get the wifi working.
Fixing the Resolution
By default the 700m has a unique 1280x800 widescreen that isn't support in x without a hack. Simple enough though...
Firstly we need to fix /etc/X11/xorg.conf. For the listing of Modes just add "1280x800". You might also want to update the horizontal and verticle sync. Vsync should be 50-100 and Hsync should be 30-60.
Add this to your Monitor Section. Modeline "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync
Now download the patch. 855resolution
Unpack the file and run #make and #make install
#./855resolution 34 1280 800
Then I add this to /etc/rc.d/rc.local to make the patch work after every reboot.
if [ `runlevel | cut -f2 -d' '` -eq 3 ]; then #runscript /usr/sbin/855resolution 34 1280 800 fi if [ `runlevel | cut -f2 -d' '` -eq 5 ]; then #runscript /usr/sbin/855resolution 34 1280 800 fi
Wireless in Slackware
This part relies on what you selected in your kernel configuration. If you made any mistakes you might have to try over again.
My laptop has the Intel Pro 2915abg wireless miniPCI card. So this tutorial is based on that. Go to the ipw2200 project and download the driver and the firmware. This is largely dependend on Wireless-Tools and Extensions. 10.1 has it by default, but you might want to consider upgrading so make sure you read over the ipw200 documentation.
Now we're back in the console. Unpack the ipw2000 driver and change into that directory
#make
#make install
Extract and copy the firmware drivers to /usr/lib/hotplug/firmware/
Now we have to create a symbolic link to the new firmware.
#ln -s /usr/lib/hotplug/firmware /lib/firmware
#modprobe ipw2200
Now when you reboot your wifi should work. Sorta =P
In my case, I have an open wireless network that restricts access by hardware address. There is no encryption enabled. This part your own your own. I will however give you some tips.
ifconfig is a helpful command in seeing your network interfaces.
iwconfig will show you the status of your wireless hardware.
iwlist is helpful in checking the signal from your access point.
Kwifimanager is loaded by default in 10.1 and that will also help you discover your network. Once you find your wifi network depending on your configuration..
#iwconfig eth0 essid "ssid of ap"
#dhcpcd eht0
After all that I had my 700m up and running and surfing on two seperate wireless networks. Good Luck!