All Together Now

Here's everything stuck on one page. I won't be updating this page as frequently as the other pages, so make sure to check out the main pages for the latest breaking news.

If you'd like something that is easy to print up, blood_omen over at http://linuxquestions.org was nice enough to make this handy PDF . It should print up beautifully for you. You can also save it to your own computer if you'd like to have a handy reference available all the time.

Welcome to My Slackware Site

Here's how I go about getting my Slackware box up and flying. It's a work in progress, so let me know if you have any suggestions. Feel free to ask questions, too. As a disclaimer, this is what works for me. Maybe it will work for you, too! Maybe not. I have trashed my box many times. If you end up trashing your installation you're in luck. You're about to learn a whole lot more about Slackware and Linux. Try to share what you learn.

I may use some examples which are from my current box that will seem not to make sense. For instance, I may show my /etc/lilo.conf file with a reference to a 2.6.5 kernel before I ever get around to telling you about upgrading to the 2.6.5 kernel. Don't let it throw you off. I just think it is sometimes easier for someone to see the whole file that I am talking about when I reference it instead of just showing the lines that are relevant to what I am currently talking about. Gives you an idea of where everything goes. Hope it helps someone.

Get Slackware CDs

Get Slackware. There are two methods, buy a copy or download your own.

Buying Slackware is a good option for a couple of reasons. The first reason is to support Slackware. The second reason is you may not have a speedy internet connection. If both of these seem like good things to you, you should probably go here and order a copy. A cheaper option would be to go here or a similar site and search for Slackware. They send you a copy for much cheaper, but your cutting the Slackware team out of some bucks. There are a lot of other sites which offer similar services, so search the web.

Download the Slackware ISO files. Personally, I like to use BitTorrent to get my ISO files. It's really fast. Anyways, if you want to use the BitTorrent Files, go here. If You want to download the usual way (it' going to take a lot longer!!!), go here and pick a server. As a note, there are two .iso files that you will need, the first two.

I used Windows ME to download mine. I used Nero to make the Cd's from the .iso files. If you don't have Nero, I'm sure you'll know what it is you do have to make Cd's, so just go with that.

After I've got my installation Cd's all made, it's time to reboot. While the computer is rebooting, I hit the delete key to enter the BIOS setup mode. You might have to press something else, I don't know. Just read the computer screen while it is booting up and it will usually give you a clue. I needed to change a few things in my BIOS to make things go smooth. First I reset the boot order. I like the order to go

Next, I disable BIOS virus protection. I do this because I am going to be writing LILO to the MBR. If the BIOS virus protection is enabled (at least on my computer) you won't be allowed to write to the MBR. I also disable the plug&play OS option. Don't remember why I do that. Seem to remember reading it somewhere. Try it my way and see if it works for you. Save your changes, throw your installation CD into the drive, and reboot.

Install Slackware

Do a full install. Don't bother with kdei, that is the internationalization package for KDE. I never need any of the international settings. I also get rid of lprng. I use CUPS. If you have trouble with CUPS, try making sure that the lprng package is removed and re-install the CUPS package. I also start up everything except rc.atalk, rc.bind, rc.lprng, rc.pcmcia, and rc.mysqld. I go about securing my box later. I just find that I have no use for any of these things. YMMV. A great website to check out for some tips on installing Slackware is here.

I know that a lot of people get hung up on partitioning. My recommendation is that you go with the path of least resistance. That means that you are only gonna need two partitions for your install, a root partition and a swap partition. There are a lot better partitioning schemes out there, but this one will work. Just make a swap partition twice the size of your RAM and another partition that takes up whatever free space you have. This is simple and doesn't require a lot of thought. When you feel more comfortable with Slackware and Linux in general, you will probably want to make separate partitions for /home, /var, and /tmp to make your box more secure (stable) and make upgrading easier. When I started out, though, partitioning was confusing. If you run only a root and a swap partition, you will get a feel for how big to make each of your partitions in the future.

I was scared the first time I installed Slackware. I kept thinking I was going to screw my perfectly good Windows installation up. I decided to boot from a floppy. Finally, I decided to install lilo on the MBR. Lo and behold, it worked great. Made booting up a lot smoother, too. Don't be scared to go with the MBR. Just make sure that you make a boot disk when the installer asks if you want to. Saved my butt more than a few times.

Make Searching Easy

After installing everything, the first thing I like to do is:

touch /var/lib/slocate/slocate.db

This creates a search database. It's empty, so the next thing I do is

updatedb&

This updates your search database. It makes it very easy to find things with the slocate command. Now, whenever you want to find something on your computer, you can use:

slocate name of what you are looking for

This also sets up the search feature in Gnome. I use it all the time. Slackware is also set by default to update your database once a day. Don't forget to manually update the database with the updatedb& command if you do a bunch of updates and want to look for the newly installed files right away. If you use slocate from the command line, it's important to remember that the results are from the most recent database. It may show you files that no longer exist and leave out files that do exist if you haven't updated your database since the changes. The Gnome search tool will not give you false positives, though, as it checks to make sure that the files actually still exist before giving you your results.

Get Your X Server Working

Run xf86config. This is where you set up your X server. This can be frustrating. Read a lot. A great place to learn about using xf86config is here. I like to make sure X is working here before I go any further. If you are new to Linux, it sure is helpful to have X up and running right off the bat. One tip, if you have a scroll wheel mouse and it isn't scrolling properly, edit your xf86config file to read something like this:

Section "InputDevice"

# Identifier and driver

	Identifier	"Mouse1"
	Driver	"mouse"
	Option "Protocol"    "IMPS/2"
	Option "Device"      "/dev/mouse"
	Option "ZAxisMapping" "4 5"

That last line is the important one you may have to add.

Throw in Some Nvidia Drivers

Install the Nvidia drivers. Now if you don't have an Nvidia video card, you can be sure that you can skip this step! Go here to get them if you need them. I just download the NVIDIA-Linux-x86-1.0-5336-pkg1.run file, change over to the directory that I downloaded it to, and type

sh NVIDIA-Linux-x86-1.0-5336-pkg1.run

End of Story.

Now, sometimes I guess you have to edit your xf86config file and stuff. I didn't have to, so I wasn't too worried about it. Worked like a charm.

OK, so you probably do need to edit your xf86config file. Here's how to do that. (Note: This part is contributed by jontamask over at http://www.linuxquestions.org .)

I had to edit xf86config to really make it work. I made these changes:

from

Section "Device"
Identifier "RIVA TNT2"
Driver "nv"
#VideoRam 32768
# Insert Clocks lines here if appropriate

to

Section "Device"
Identifier "RIVA TNT2"
Driver "nvidia"
#VideoRam 32768
# Insert Clocks lines here if appropriate

also changed the

# This loads the GLX module
# Load "glx"
# This loads the DRI module
# Load "dri"

to

# This loads the GLX module
Load "glx"
# This loads the DRI module
# Load "dri"

This gives you a really big Nvidia logo when starting up X. If you maybe want to disable the logo, edit your xf86config to look like this:

Section "Device"
Identifier "RIVA TNT2"
Driver "nvidia"
Option "nologo" "1"
#VideoRam 32768
# Insert Clocks lines here if appropriate

ATI Drivers

Now here is a little something contributed by dawizman over at http://www.linuxquestions.org. He realized that not everyone is using the Nvidia video cards, so he was nice enough to give me these steps for getting the ATI drivers working. If you use this, make sure you pay attention. Following my directions will have you upgrading to xfree86 4.4, then to the xorg X server, and also using the 2.6.5 kernel. Looks like the ATI drivers wouldn't be to happy about that.

Note: You cannot use Xfree 4.4 or kernel 2.6 with these drivers.

Download the proper drivers for your X-Free version off of ATI.com

Then login as root

su

Then cd into the directory containing the drivers and run the following:

rpm2tgz filename.rpm
installpkg filename.tgz
cd /lib/modules/fglrx/build_mod
sh make.sh
cd ..
sh make_install.sh

Make sure in your Kernel that you have the DO NOT have DRI compiled or Moduled in and that for agpgart you have it Moduled in with your correct AGP Chipset compiled in. From there type in the ATI X config command that is giving at the last command to go through there auto XF86Config maker. Then load the modules for your AGP Chipset and fglrx like so

modprobe agp-gart
modprobe intel-agp
modprobe fglrx

Then run ATI's xf-config utility

fglrxconfig

Moving on to Dropline

Install Dropline Gnome. Go here . Download the installer. Myself, I like to shut down X and go to the command line to install this. Use the command:

installpkg dropline-installer.tgz

after that, type:

dropline-installer

and go through the entire install process. Go for full.

One thing to note. I have purposely done all of my configuration to the xf86config file before I install Dropline. This is important because Dropline is going to remove xfree86 and replace it with the xorg X server. When it does that, it's going to use your xf86config file to set up it's configuration file, /etc/X11/xorg.conf. I don't want to do some configuring on one file, then have to go do some more configuring on another if it can be avoided. That's why I get all my X configuring out of the way before installing Dropline.

Since we are talking about Dropline, this is a great spot to show you a package I found from a member on the Dropline forums. This package is great. It's a codecs package to make a bunch of movie types work in Linux. Save the package, go to a command line, and change to the directory you downloaded the package to. Now type:

installpkg codecs-0.2-noarch-1xs.tgz

You should be able to view a whole bunch of different types of movie files now. Check out some of the guys other packages while your there.

Making Sure You've got the Latest & Greatest

Install SWareT. Go here to get the package. The first thing you will want to do is edit the /etc/swaret.conf file. Change the version to current.


# NOTE: If you want to use Slackware Linux Current,
#       set VERSION to 'current' (VERSION=current).
#
VERSION=current

Uncomment the line for linuxpackages.net.


# NOTE 1: The REPOSITORY NAME can only be ONE Keyword!
# NOTE 2: swaret will use the order of the specified REPOS_ROOT URL's.
#
REPOS_ROOT=LinuxPackagesDOTNET%ftp://ftp.linuxpackages.net/pub/Slackware-9.1

Enable slocate.


# Set to 1, if you want swaret to use the 'slocate' program
# to Search for missing Libraries.
# (be sure to issue the 'updatedb' Command regularly!)
# If DSEARCHM is set to 0, swaret will use 
# the 'find' program to locate missing Libraries.
# -> 1 for yes, 0 for no.
#
DSEARCHM=1

Unless you really know what you are doing, you should leave everything else alone. It's a good idea to update your search database at this point. So now type:

updatebd

When that's all done, go ahead and type:

swaret --update 
swaret --upgrade -a
swaret --dep

This will take awhile. I run swaret --upgrade -a a few times, because you will usually have a few packages that didn't get downloaded on the first try. If you're short on hard drive space like me, you might want to wrap everything up with a

swaret --purge

That will get rid of all of the packages that you just installed. Once they are installed, you really don't need them anymore. If your not sure, or if you're like me and re-install everything quite a bit, you might want to burn all of those packages onto a cd-rw, first. You can use that when you re-install to save a lot of downloading

Making Sure the Latest & Greatest Works!!!

Here's a step everyone seems to miss. Since you have done a fresh install, the configuration files should all still be stock. When you upgrade packages, you get a lot of files that end in .new. These are the new configuration files. The updaters that you have run didn't want to get rid of possibly custom configuration files. Since none of our configuration files are custom yet, it's pretty safe to do this:

updatedb

to update the search database. Now type:

slocate .new

Go to each one of those files and drop the .new off of the filename. You'll have to also delete the other file with the same name first. I really hope that makes sense. It really is one of the most important steps. If you don't do this, you will eventually have problems. You'll try looking for help and if you get your problems solved, they will involve manually correcting your configuration files. There can be 40+ updated configuration files, so manually updating them will take you forever. Save yourself the headache.

Wanna Print?

Configure CUPS. I use CUPS. Maybe you prefer something else. Oh well, I can't help you too much with that. What I can help you with is setting up CUPS. Your in an X session, right? Well fire up your favorite browser. In the address bar, type:

http://localhost:631

It will ask you for a username and password. username is root and the password is your root password. Everything from there should be easy-breezy. Just follow along on the web page and add your printer(s). Make sure you print out a test page for your printer(s) to see if you set them up right. That's all there is to it. I would also like to remind you that lprng and CUPS don't get along so well. Make sure you don't have lprng running, if you even still have it on your system. Me, I like to remove lprng with pkgtool to make sure there are no conflicts.

Now it was pointed out to me that not everyone is as lucky as I am. J.W. over at http://www.linuxquestions.org noted that you may have to install drivers for your specific printer. The drivers for my printers were all included in my full install. If yours weren't, J.W. recommends heading over to http://www.linuxprinting.org to get the ones you need.

Sounds Good to Me

Configure ALSA. Really easy for me. I just typed:

alsaconf

and, BLAM, everything just worked. Sure, it doesn't work for anyone but root, but that is easy enough to fix. Type:

chmod 666 /dev/dsp*
chmod 666 /dev/mixer*

Works for me. Now some people will tell you there is a better way, where you make a sound group, put all of the sound devices in that group, and add the users you want to have sound into that group. Well that works, too. Takes a whole lot more typing, and if you're new like I was the first time I installed Slackware, you probably just want to get everything working as quickly and easily as possible. You've got all the time in the world once you have everything working to go back and do security tweaks.

Also, since we're dealing with sound and Gnome (at least I am), go to the Desktop Preferences and Sound. Click Enable sound server startup and Sounds for events and close.

Going Graphical

Configure LILO for graphical login. I like LILO. It just makes sense to me. Maybe because that's what Slackware uses, so that's what I learned how to use. The big thing I think that turns people on about other boot loaders like GRUB is the cool graphics. Well wouldn't you know it, you can get some cool graphics for LILO, too. I sure prefer the graphics to the boring red LILO menu.

Here's what I do: Edit /etc/lilo.conf, save your changes, and run /sbin/lilo. Easy, huh? Of course it helps to know what you should edit in /etc/lilo.conf to make this work, so here is mine.


# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
#compact        # faster, but won't work on all systems.
prompt
timeout = 600
# VESA framebuffer console @ 800x600x64k
vga=788
# ramdisk = 0     # paranoia setting
map = /boot/map-bmp
install=/boot/boot-bmp.b
bitmap = /boot/logo64a.bmp
bmp-colors = 15,,0;5,,15
bmp-table = 59,5,1,18,
bmp-timer= 66,28,6,8,0
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz-2.6.5
root = /dev/hda2
label = Slackware-2.6.5
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends
# DOS bootable partition config begins
other = /dev/hda1
label = WindowsME
table = /dev/hda
# DOS bootable partition config ends

Fire up your favorite text editor and open up /etc/lilo.conf. Most of the stuff probably already looks similar to mine. The interesting part is the line that starts "map=" through the end of the LILO global section. Now it's not going to work if you don't have the files that are being referenced, namely /boot/logo64a.bmp. If it isn't in your /boot directory, use slocate to find it and copy it over to the /boot directory. Edit up that /etc/lilo.conf file and run /sbin/lilo. No errors, right? Well then, reboot and check out your cool new boot screen.

A side note, I got my /boot/logo64a.bmp file from the Internet (I re-named it to logo64a.bmp). The one that comes with LILO just didn't float my boat. You can use any bmp file you like just make sure that it is 640x480x16. Here's a couple more places I found with pre-made images:

Now seems like as good a time as any to change my default run level. I use the graphical login as well as the graphical LILO. Why? Well I prefer to boot to console, myself. But if you're like me, you're not the only one using the computer. My friends and family that have never even heard of Linux before regularly use Linux on my computer without any problems. I think they would have been a little less willing to try out Linux if I had it booting to console. Maybe I'm wrong, but, whatever.

Anyhow, crank up your favorite text editor and open /etc/inittab . Now see that line that says:


# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

Change it to:


# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:

Now you'll be greeted by your shiney new graphical login manger when you boot up. If you're like me, you'll have your share of troubles and wish you were logging into console. When something like that comes up, it's nice to remember that ctrl-alt-f6 opens up a text console. Ctrl-alt-f7 takes you back to X.

I Call This Section fstab

Edit /etc/fstab. Slackware did a pretty good job of setting things up for me. It missed my cd-rw, but as you can see in my /etc/fstab, it's really easy to add it in.


/dev/hda3        swap             swap        defaults         		0   0
/dev/hda2        /                reiserfs    defaults       		1   1
/dev/hda1        /fat-c           vfat        auto,rw,umask=000         1   0
/dev/cd-rw       /mnt/cd-rw       iso9660     noauto,user,ro  		0   0
/dev/dvd-rom     /mnt/dvd-rom     iso9660     noauto,user,ro  		0   0
/dev/fd0         /mnt/floppy      auto        noauto,user     		0   0
devpts           /dev/pts         devpts      gid=5,mode=620   		0   0
none             /proc            proc        defaults         		0   0
none		 /sys		  sysfs	      defaults			0   0

You'll notice that for my Windows partition, I've added umask=000. This makes it so that my regular users can use the partition. Also notice that my cd-rw is read only. You don't mount it to burn Cd's, so you don't need write permission in order to use it. I also added the sysfs entry. Something you have to do if you're going to be using the 2.6.xx kernel. I like the 2.6.xx kernel because I no longer need to enable SCSI emulation in order to use my cd-rw. I believe that's all the modifications I had to make to the /etc/fstab file. I also had to create /mnt/cd-rw, /mnt/dvd-rom, /dev/cd-rw, and /dev/dvd-rom. The devices I created are links to /dev/hdc and /dev/hdd . To give you an example of how I did this, you can use a command like:

ln -s /dev/hdc /dev/cd-rw

While we are working on the optical drives, now's a good time to make sure that /dev/dvd and /dev/cdrom point where you want them to. Also, check to see that users have permission to use all of those devices. Will save you a lot of headaches when you are trying to figure out why you can't listen to CD's and DVD's.

Fixing a Major Issue

Disable system beep. This is one of those things that just annoys me. When I'm typing away at the command line, I make a mistake and I get an annoying beep from the PC speaker. It's easy as pie to get rid of, though. Open up the file /etc/inputrc and you should see a line that says:

set bell-style audible

Change that to:

set bell-style none

and save the file. When you boot up again, that annoying beep is history.

Time for a New Kernel

Install new kernel. If your still with me at this point, I'm thinking that you might be a lot like me. You know there is something new and better than what you have out there. Why else are you using swaret to upgrade you to the latest and greatest every day? So you probably want to check out the new 2.6.5 kernel. Here's how I do it, and it has worked like a charm every time. Note: When I wrote this, 2.6.5 was latest stable kernel. These directions work for all of the 2.6.xx kernels, though.

Maybe, like I was the first time, you are a little nervous and want to make sure you get everything just right. I do all of my kernel upgrades right inside Gnome. It just seems easier to me. First off, you need to get the new kernel. Crank up the favorite browser and point it to http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.bz2 . If your setup is like mine, your going to get a pop-up window asking you where you would like to store this bad boy. A real good choice is /usr/src . After it finishes, use your file manager to open up /usr/src . Double-click on the package that you just downloaded. That will open up file-roller. Click on extract. Make sure that the re-create folders option is checked and click ok. You'll now see a new folder (linux-2.6.5) in /usr/src. While your looking, you should also see a folder with a shortcut mark named linux in /usr/src. Go ahead and delete that folder. Now, right click on the new folder that you created a second ago (linux-2.6.5) and pick "Make Link". There is a new folder now named "link to linux-2.6.5". Right click on that folder, pick rename, and change the name to "linux" (no quotes). Wow, we are moving right along here.

Now we are going to open up a terminal. Type:

cd /usr/src/linux

Now we are going to type:

make gconfig

As if by magic, you should see a new window pop up that is named "Linux Kernel v2.6.5 Configuration". You are going to go to that window and click "Options". Then, you need to make sure that the "Show all options" is checked. A lot of people leave that out. It's a lot easier to miss something when you don't have that checked. You see, the menus will usually only show you options that you are able to select. Some options require other options in order to work properly. As you go through the list, you may think that you've selected all of the options you need, but some obscure option is missing. That's because as you worked your way down, new options were appearing ahead of you that you knew nothing about. I try to avoid that type of situation by clicking on the "Show all options" button. It also helps to go through the entire menu about three times. Might seem like overkill, but it sure does scuk if you don't find out you missed something until your new kernel refuses to boot.

Now comes the most difficult part. Every computer is different, so I can't offer tons of help here. I definately recommend that you click on every single choice and read the help that is printed about it. I follow all of the recomendations that they make as to including an option or not. One thing I can say is that you should definately choose your processor and you should probably also choose the preemptible kernel option. Also, I always choose the "Prompt for development and/or incomplete code/drivers". Some more tips? Make sure you don't cofigure your filesystems as modules. You'll need the filesystems (at least one of them) a long time before your computer ever gets around to loading modules.

Anyways, spend a long time going through all of those options. If in doubt, don't leave it out. If everything works for you and you think you have a bunch of stuff you don't need, you can always recompile later. Beats the alternative of not being able to boot your new kernel. That gaurantees you will be recompiling, ya know! When you are happy with all of you choices, go ahead and click "File" and "Quit". You'll be asked if you want to save your changes. Say yes and all of your choices will be stored in a file named /usr/src/linux/.config . Of course, since /usr/src/linux is a link to /usr/src/linux-2.6.5, your file is really saved as /usr/src/linux-2.6.5/.config , but don't let that confuse you a bit.

We are on easy street, now. No more choices!!! Go to that terminal you have open. You should still be in /usr/src/linux (or /usr/src/linux-2.6.5 , It's the same thing). Type:

echo 'You are almost done'

and press enter. You should get a motivational message. Now type:

make bzImage

and watch the text fly by. When the text finally stops (it could take awhile) you need to type:

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.5

Now what I like to do at this point is use my file manager to look in the /boot directory. You should see vmlinuz-2.6.5 in there now. You'll also see vmlinuz-2.4.22, I believe. There is also a file, vmlinuz, which is a link to vmlinuz-2.4.22. Go ahead and delete /boot/vmlinuz. Now right click on /boot/vmlinuz-2.6.5 and pick "make link". Rename the link /boot/vmlinuz.

Switching back to that terminal of yours, type:

make modules

After all the text finishes blowing past you, type:

make modules_install

Now type:

cp System.map /boot/System.map-2.6.5
cp .config /boot/config-2.6.5

Now those two files aren't gonna be doin' anything for us with those names. I just like to give them names to keep track of which kernel goes with which files. You're going to need some symlinks. You can do like I did earlier with the file manager, or you can just type:

ln -s /boot/System.map-2.6.5 /boot/System.map
ln -s /boot/config-2.6.5 /boot/config

Now your new kernel is all in place. All you've got to do is tell LILO about it. Open up /etc/lilo.conf in you favorite text editor. See the part that looks like this:


# Linux bootable partition config begins
image = /boot/vmlinuz-2.4.22
root = /dev/hda2
label = Slackware
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends

You're going to need to copy all of that and paste it at the end of the file. Then, change the line that reads "image = /boot/vmlinuz-2.4.22" to "image = /boot/vmlinuz-2.6.5" on the section you just pasted. Also, you need to change the new "label = Slackware" to something catchy, like "label = Slackware-2.6.5". Now, I could really be messing you up here. If LILO originally pointed you to vmlinuz-2.4.22, then everything is peachy-keen. If, on the other hand, it only pointed to vmlinuz, you'll remember that we changed that and made that a shortcut to vmlinuz-2.6.5. That would leave us with two choices both pointing to your new kernel. Not good if there are problems with the new kernel. Make sure that your first choice is pointing to the kernel that is running now. It should be in the /boot folder, if your having trouble figuring it out. Got that all? Save the file and let's roll.

Well, now. Go back to your terminal and type:

/sbin/lilo

Make sure you didn't get any error messages. Reboot. You should have a couple o' choices, like maybe Slackware or Slackware-2.6.5. Pick the Slackware-2.6.5. Everything work? Good. If you've been following along, everything should be in graphical mode. OH, SNAP!!! I've got the Nvidia drivers, and they don't work with my cool new kernel. Oh well, easy enough to fix. Ctrl-alt-f6 takes me to a console login. I already have the Nvidia installer from when I installed those puppies the first time. You didn't delete them, did you? Great, just go to the directory that you put them in and type:

sh NVIDIA-Linux-x86-1.0-5336-pkg1.run

Everything should be right in the world now.

Get Yourself a Net Presence

I use a cable internet conection. My ISP gives me a static IP address. This can be a huge hurdle for some people to overcome. How are people gonna find your computer on the internet? Luckily, there is a solution. I am gonna recommend that you buy some new computer equipment if you don't have it already. It's a router. Now buying a router doesn't have to break the bank. I got mine here. I bought the D-Link DI-604. It was on sale when I bought it, along with a $20 rebate. It seems like these things are always on sale somewhere, so shop around.

Now why did I have you go buy a router? There are a couple of good reasons to have one. First, it can help protect your system by acting as a firewall. Next, you can share your internet connection and files with other computers in your house. Third, it helps people find my computer on the internet. How? Read on.

Surf on over to http://dyndns.org . Sign up ther and get yourself set up as something catchy, like username.dyndns.org . Make sure you give it your current IP address. Now, username.dyndns.org points to your router. Next, I set up my router. No need for an IP updating program on my computer, I just let my router take care of the automatic updating. You'll want to set up port forwarding on your router so that any requests to your router get sent on to your computer. You'll also want to set up the firewall by opening up the ports for the services you are gonna be running. I recommend openning up 21(FTP server), 22(ssh server), 25(mail server), 80(webpages), 110(POP3 server), and 143(IMAP sever).

Next, I'm gonna change the name of my computer. I use netconfig to change my hostname to username and my domain name to dyndns.org. This matches the setting for my account that I set up on http://dyndns.org . Now we are ready to start servin' up to the net.

SSH, be vewy,vewy, quiet

The first service I like to get up and running is ssh. That is the Secure Shell. What's so great about ssh? Well, I like to log into my computer from work and kill some time playing around with adding new software, updates, checking my email, etc. Anything you can do from the command line while sitting in front of your computer can be done through ssh. If you have a Windows computer at work, you can use a great free program called PuTTY from here http://www.chiark.greenend.org.uk/~sgtatham/putty/ to connect to your computer when you are all done. On to the setup.

First off, let's see if ssh is already working

ssh localhost

Did it tell you about an RSA Fingerprint and ask you for a password? Congratulations!!! Ssh is already set up on your computer. Not so lucky? That's OK, it's easy as pie to get things cranked up. Type:

chmod +x /etc/rc.d/rc.sshd

to make sure that sshd is running when you boot your box. Then, type:

/etc/rc.d/rc.sshd start

to get things going right now. You shouldn't have to do anything else. Your user names are the same as the usernames on your computer, and the passwords are the same, too.

Now this is a contribution from Bebo over at http://www.linuxquestions.org It seems that the default set up for sshd uses two different protocols, an old, busted, insecure one (1) and the shiney, new, secure one (2). Turns out, if protocol 2 isn't working, sshd will fall back to protocol 1. Well that's no good. Here's how we're gonna fix it. Fire up the ol' text editor and open the file /etc/ssh/sshd_config. We are gonna change the part that looks like this:


#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::

To look like this


#Port 22
Protocol 2
#ListenAddress 0.0.0.0
#ListenAddress ::

Now, you just have to restart sshd.


/etc/rc.d/rc.sshd stop
/etc/rc.d/rc.sshd start

Now I've never had any trouble with ssh, so if you're having some problems, let me know so that I can type some more about it.

Servin' Up Files FTP Style

Next up is your ftp server. You've probably used ftp before. I'm not gonna go into what ftp is or why you might want an ftp server. We're just gonna set one up and let you figure out what you're gonna do with it.

First, to check if you already have your ftp server running. Type:

ftp localhost

If that doesn't work, we're gonna have to get things started for you. Open up /etc/inetd.conf and search for a line that looks like:

#ftp stream tcp nowait root /usr/sbin/tcpd proftpd

Remove the hash mark (#) and save the file. Now your ftp server should fire up when you reboot. Feeling a bit impatient? Try this.

ps ax

Take note of the number next to inetd. That's the pid, or process ID number. Now we are gonna restart inetd with the following command:

kill -HUP pid of inetd

You should be all set at this point. Just like with ssh, the users are the same users that you already have on your system. The only thing that we may want to do is add anonymous ftp. To do that, we need to edit one last file. Open up /etc/ftpusers. To make anonymous ftp work, you need to remove ftp from the list. While your in there, go ahead and add the names of any users you don't want using ftp.

We should be all set with ftp now

Email is Good

So you want to run your very own webserver, huh? Or maybe your wondering, "Why would I want to run my very own webserver?" Well, I'll tell you a few reasons why I decided to run my own mail server. The first, of course, was to prove that I could. Second, I wanted to have mail coming from my domain. Guess I could have just spoofed a domain email address and done some forwarding, but then I would have felt like such a poser. Besides, that's what I had been doing before; I needed a new project. Lastly, I saw this killer app. It's called Squirrelmail, and I'm gonna talk about it, too. It's kind of like your own personal hotmail, without all of the spam and mailbox limits.

Man, so far, out of everything I've learned with Linux, Sendmail has got to be the hardest. I got some help on the internet, like I always do, but there was a whole lot less help than usual when It came to mail servers. Why? Who knows. It's one of two things, as I see it. Number one, Most of the people who know Sendmail had to read that gigantic O'Reilly book with the bat on the cover. If you've had to go through that, why are you gonna let the new guys off easy. OK, OK, that was just my attempt at dry humor. I think the reality is, there are a whole lot less people using Sendmail than people using, oh let's just say Mozilla Thunderbird. The more people that use a program, the more likely you are to get some help.

Well, it turns out that setting up your own email server isn't that hard after all. Just like anything, the more options you want to use, the more complex it's gonna get. I'm gonna go with what I think is a pretty nifty basic setup. If you need more, well you'll already have a really good base to start from. If you need less, just take what you need

I am making the assumption that you followed my guide and have an account through dyndns.org or someone. Either that, or you have a static IP address on the internet. Otherwise, how's all that mail gonna find you?

We're gonna start off by checking some things out. Let's just start out with this:

chmod +x /etc/rc.d/rc.sendmail

If Sendmail wasn't starting at boot time before, it will be now. If it was already starting at boot time, don't worry, you didn't break anything

Next we're gonna fire up the old text editor. Open up the file /etc/inetd.conf. We are gonna be looking for something that looks like this:


# POP and IMAP mail servers
#
# Post Office Protocol version 3 (POP3) server:
pop3    stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/popa3d
# Internet Message Access Protocol (IMAP) server:
imap2   stream  tcp     nowait  root    /usr/sbin/tcpd  imapd

If your file still has these lines commented out, time to uncomment them. Now, we could restart inetd without doing a reboot, but since we've got a lot of stuff to do, we are gonna go the simple route and reboot. When your computer finishes rebooting, You are gonna run the command:

nmap localhost

You should now see at least the following


Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-05-15 17:08 PDT
Interesting ports on localhost (127.0.0.1):
(The 1645 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
25/tcp  open  smtp
110/tcp open  pop3
143/tcp open  imap

You probably have a lot more open ports than that, but this isn't the security section, so we're not gonna worry about it. At this point, you may have a fully functioning mail server. We are going to configure it, now. This is where most people get lost, because it's not just a matter of editing one file. Not to worry, we're gonna take it step by step.

We are gonna start by backing up a file that we are gonna be using to configure Sendmail. This way, if we eff it up, we can always go back to the beginning. Type:

cp /usr/share/sendmail/cf/cf/sendmail-slackware.mc /usr/share/sendmail/cf/cf/sendmail-slackware.mc.orig

Now, we're gonna open up /usr/share/sendmail/cf/cf/sendmail-slackware.mc in our most favorite text editor. We are gonna look for the line that looks like this:

dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

And we're gonna change it to look like this:


dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun,goaway')dnl

This increases your mail server security a bit.

Next, we're gonna change our smart relaying feature. You see, a lot of big mail servers aren't going to accept your email. They think your a spammer. Your no spammer, right? To get your mail through, we are going to first send it through your ISP's mail server, then your ISP's mail server will send it out to where ever it needs to go. To do this, you need to know the name of your ISP's mail server. It is probably something like smtp.myisp.com. We'll just assume that this is the name of your ISP's mail server for this article and you can adjust accordingly. Anyway, look for the line that looks like this:


dnl# Uncomment the line below to send outgoing mail through an external server:
dnl define(`SMART_HOST',`mailserver.example.com')

And change it to look like this:


dnl# Uncomment the line below to send outgoing mail through an external server:
define(`SMART_HOST',`smtp.myisp.com')

You can adjust more settings if you know what you are doing, but that's gonna do it for me. Save the file and we're off to the next step. Follow along. This will create a new /etc/mail/sendmail.cf file (Sendmail's configuratioin file) based on the changes that you made to the sendmail-slackware.mc file.


cd /usr/share/sendmail/cf/cf
cp sendmail-slackware.mc config.mc
m4 /usr/share/sendmail/cf/m4/cf.m4 config.mc > /etc/mail/sendmail.cf

Now, we should be on easy street. I'm gonna restart Sendmail with the new configuration file. But first, I want to watch what happens to make sure that there aren't any errors. Open up a console and type

tail -f /var/log/maillog

It doesn't matter what it says at this point. We just want to watch it to make sure there are no errors reported during the next step. Open up another console and restart Sendmail with the command:

/etc/rc.d/rc.sendmail restart

Hopefully, you didn't see any new error messages in either of your consoles. You are rockin' now. You'll probably want to start testing out you new mail server. I like to use pine to check everything out. If you don't know how to use pine, just type:

pine

The directions are amazingly simple to follow. Send out some emails. Mkae sure to send some to local users and other people. Preferably, send the messages to other email accounts of your own that you may have. I send out messages to like four different email accounts of my own, one of which is a normal user on my box. Next, go check all of your other inboxes. Did you get the message at all of them? Good. Now, reply from all of your other boxes and make sure you receive the replay message. If you got no errors, your work here is done.

Now here's something cool you can do. Do you get email at work? Well you can check your home email from work now. Just tell your boss that I said it ways OK. Set up a new account on your works email client (Outlook, Outlook Express, whatever). For the incoming mail server name, type in the name of your computer, for instance user.dyndns.org. For the type, pick POP3 (or IMAP, but if you don't know what you're doing, POP3 is easier) . For your user name, choose a user name from your home computer and type in the appropriate password. For the outgoing mail server, you're gonna have to stick with the outgoing mailserver you currently use at work. Your computer won't allow "relaying" of messages at this point. That's a good thing, as spammers can't use your mail server

Well, we're all done. I'm gonna post how to install squirrelmail, a cool web based email program, in the future. First I have to get your webserver up and running. So move right along to the next section for now. There's more great stuff coming later.

I, Webmaster

Get Things Crankin'

You've Got Issues, Man

Slack-a-Mania

http://slackware.com

I'm sure you already knew about his one. Just felt like I couldn't not have a link to it.

http://linuxquestions.org

This is the place to go when you are looking for answers to your problems. There are all kinds of sections. I like the Slackware forum the best, though.

http://members.cox.net/laitcg/new/intro.html

If you haven't seen this site, you don't know what you're missing! This guy has tons of cool Tips&Tricks.

http://userlocal.com

Can't get enough of the Slackware forums. I guess this one used to actually be THE Slackware forum. Always tons of good advice.

http://slackbook.yoshiwara.org.uk

The book on the Slackware site was getting kinda dated. These guys got together and are re-writing the whole thing. It's a must read for beginners

http://dropline.net

Not only is this the place to get one of the greatest things to happen to Slackware, but it's also got a forum full of helpful people.

http://swaret.org

Get SWareT. Get help on SWareT. Get info on SWareT. Get over to this website!

http://www.bitbenderforums.com/vb22/showthread.php?postid=311808

This guy is has some of the all-time greatest posts.

http://www.bitbenderforums.com/vb22/showthread.php?threadid=60285

Here's another one from him.

http://www.nvidia.com/content/drivers/drivers.asp

If you've got an Nvidia graphics card, you need to go here.

http://ati.com/support/driver.html

If you've got an ATI graphics card, you need to go here.

http://dyndns.org

This is one of the best free services ever offered. Check it out.

http://slackpkg.ath.cx/~xspace/packages

Here's some packages for Slackware. This guy is from the Dropline forums. I've never had any issues with the packages he puts out.

http://www.kernel.org

One reason I love Slackware is that there aren't a bunch of patches to the kernel. Go here to get THE kernel source code. It always works with Slackware!

http://www.sourceforge.net

Well, you've got your computer dialed in. Your getting kinda bored now, with no more computer tweaking left to keep you busy. What are you gonna do with all that free time? Go here and check out all of the new projects! You'll be sure to find something that strikes your interest.

Valid HTML 4.01! Valid CSS!