OpenSUSE Linux Rants

OpenSUSE Linux Tips, tricks, how-tos, opinions, and news

My Resume  -  My LinkedIn Profile

November 20, 2009

Enhancing openSUSE 11.2: Adding Repositories and Packages – Joe Brockmeier

by @ 9:58 am. Filed under General SUSE, How-To, SUSE Tips & Tricks

openSUSE Blog Linux Wallpapers

Zonker, you rock, brother. Joe ‘Zonker’ Brockmeier has provided us with a nice explanation of enhancing openSUSE 11.2. He talks about adding repositories and packages. It’s a little more user-friendly to new users than my quick summary: OpenSUSE Linux: Quick Zypper Tutorial.

Aimed at new users, he provides a nice detailed article on repositories, packages, and how to use zypper to manage them from the command-line.


“So you’ve got that shiny new openSUSE 11.2 system up and running. Now what? The default repositories have plenty of software, but there’s much more for openSUSE in community and semi-official repositories that you might find useful.

“openSUSE comes with an enormous amount of software in the official repositories. But, sometimes you just need something that isn’t in the default release. Either because the package isn’t offered through the official repos, or because you want to track software that’s ahead of the current release.”

Take a look at Enhancing openSUSE 11.2: Adding Repositories and Packages

July 14, 2009

Securing Linux – A Crash Course in iptables

by @ 6:27 pm. Filed under command-line, General Linux, How-To, security

Once in awhile, it’s nice to block hostile machines on the kernel level. Specifically, this is done with iptables or ipchains. Iptables if you are living in this millenium.

If a specific host is known to be hostile, execute the ‘whois’ command on the ip address. This will give you the IP range of the organization assigned the ip block to which the offending ip belongs. If it is outside of the country and you only service clients inside your country, it doesn’t hurt to block the whole ip range. So, we’re going to block a hostile block from China. As root, run the following command:

iptables -I INPUT -s -j DROP

Why not REJECT instead of drop? This adds a rule to the firewall that simply drops the packets. This is more annoying to the other end because they never get a response. If you explicitly reject the packets, they get a message to the effect instantaneously. You want them to have to wait. It slows them down, which is bad for them.

To list the rules in the INPUT chain:

iptables –line-numbers -L INPUT

To delete a rule from the INPUT chain:

iptables -D INPUT [line number]

ex. iptables -D INPUT 1

Would delete the first rule in the INPUT chain.

Cool subnet calculator at :

Helpful comments with more useful or better commands welcome.

April 3, 2009

Linux Commands to Create NTFS Filesystem on USB Stick

by @ 9:26 am. Filed under bash, command-line, How-To, Linux tips

First, the stick should be in, but not mounted. If it is mounted, find the partition represented by your usb stick, as such:

[0959][scott@laptop:~]$ mount
/dev/sda2 on / type ext3 (rw,acl,user_xattr)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/sda1 on /windows/C type fuseblk (rw,allow_other,blksize=4096)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
gvfs-fuse-daemon on /home/scott/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=scott)
/dev/sdc1 on /media/disk-1 type vfat (rw,nosuid,nodev,shortname=winnt,uid=1000)
/dev/sdb1 on /media/disk-2 type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=1024)

It will likely be a /dev/sdxx type device. In this case, the one I’m looking for is sdb1.

We need to unmount it as root (‘su’):

laptop:/home/scott # umount /dev/sdb1
laptop:/home/scott #

Now, fdisk the usb stick, and not the partition. In other words, leave off the trailing digit:

laptop:/home/scott # fdisk /dev/sdb

Command (m for help):

Press ‘p’ to view the partitions on the drive. Delete all partitions. Create a new one with ‘n’. It will be a primary partition, and it will be partition 1. Now, we need to set the filesystem type. Press ‘t’, and then if you’d like to see all the filesystem types, press ‘L’, but I’ll just tell you that NTFS is 7. Press ‘7’, and then ‘w’ to write the partition table, and exit:

Command (m for help): p

Disk /dev/sdb: 1027 MB, 1027604480 bytes
64 heads, 32 sectors/track, 980 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x610fbfb2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         980     1003504    c  W95 FAT32 (LBA)

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-980, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-980, default 980):
Using default value 980

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
laptop:/home/scott #

Now, we need to actually format the new partition. Include the partition number at the end. It should be 1. You will do this as root (‘su’), like so:

laptop:/home/scott # mkntfs /dev/sdb1
Cluster size has been automatically set to 1024 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
laptop:/home/scott #

K, well, there you are. Mount it up any way you see fit, and you are all set.

March 31, 2009

Linux Contributions from Andrew

by @ 9:02 am. Filed under How-To, Linux tips

Recently, Andrew wrote me an email, which I shall pass on for the benefit of all:

Hi Scott
I started off writing a serious email, but your “why Santa Can’t Exist” converted me to tears of laughter, the story above it soon gave me a reality check, poor girl.

I was before I was interrupted with humour reading your blog posts on Linux, and was very impressed with the informative way that you write. We create video based tutorials and over the last 18 months we have been turning more of our resources to covering Linux based subjects. We have also been converting our videos to play in Flash as well as QuickTime, so Linux users don’t have to mess around installing 3rd party apps and invoke all kinds of trickery just to watch a simple training video.

I was wondering if you would consider offering some of our links to your visitors, I have listed the tutorials below that may be of interest:-

Thanks, Andrew.

June 12, 2008

How many ways can you install an RPM in OpenSUSE Linux?

by @ 7:02 am. Filed under command-line, How-To, SUSE Tips & Tricks

Package management in OpenSUSE in recent years has had its share of challenges. In OpenSUSE 10.1, the package management was an epic trainwreck. Package management in OpenSUSE 10.3 is as good as that was bad. There are various types of speed improvements. Some of them huge. There is some caching of the repository package info. Progress bars so the user knows what’s going on. All sorts of goodness.

But I wanted to see how many ways I could install a package on OpenSUSE 10.3 (and 11.0, for that matter) without any help from any third-party package management tools that don’t come stock on a fresh OpenSUSE install. Like no apt, yum, smart, etc. Just using the package management tools that come on the fresh install, how many ways can one install a package? There’s a method to this madness, too. You never know under what circumstances you’ll have what access to the machine you’re working on, especially if it is remote. One of the mantras of Linux pros is that there is four billion ways to skin a cat. OK, so I made that up. It’s good to know many ways of doing the same thing, though.

Especially if we want to automate something. If we do it one way, maybe it requires human interaction. If we do it a different way, no human interaction is required, and thus, we can automate that process.

OK, without any more excessive yammer, let’s take a look, shall we?

RPM Installation Methods

1. Use YAST – Let’s get the obvious one out of the way. Click on the YAST icon, put in your root password. In the window that appears, select SOFTWARE from the left, and SOFTWARE MANAGEMENT on the right. At some point, the YAST Package Management window appears. Search for the desired package, click ACCEPT. Approve any additional necessary packages. YAST installs everything, and asks if you want to install or remove more packages. Say no, and you’re done.

This is the classic way to install packages in OpenSUSE using YAST. One benefit is that it does a good job of resolving dependencies for you. One possible drawback is that it reauires all kinds of human interaction. So there’s our first way.

2. Use zypper – This is a powerful command-line tool used in OpenSUSE much in the same way we might use something like apt-get. To see all the ways you can use this tool, run zypper –help from a command line:

[2318][root@linux:/]$ zypper --help
        --help, -h              Help.
        --version, -V           Output the version number.
        --quiet, -q             Suppress normal output, print only error messages.
        --verbose, -v           Increase verbosity.
        --terse, -t             Terse output for machine consumption.
        --table-style, -s       Table style (integer).
        --rug-compatible, -r    Turn on rug compatibility.
        --non-interactive, -n   Don't ask anything, use default answers automatically.
        --no-gpg-checks         Ignore GPG check failures and continue.
        --root, -R <dir>        Operate on a different root directory.

        help, ?                 Help
        shell, sh               Accept multiple commands at once
        install, in             Install packages or resolvables
        remove, rm              Remove packages or resolvables
        search, se              Search for packages matching a pattern
        repos, lr               List all defined repositories.
        addrepo, ar             Add a new repository
        removerepo, rr          Remove specified repository
        renamerepo, nr          Rename specified repository
        modifyrepo, mr          Modify specified repository
        refresh, ref            Refresh all repositories
        patch-check, pchk       Check for patches
        patches, pch            List patches
        list-updates, lu        List updates
        xml-updates, xu         List updates and patches in xml format
        update, up              Update installed resolvables with newer versions.
        info, if                Show full information for packages
        patch-info              Show full information for patches
        source-install, si      Install a source package

To install a package from the command line using zypper, you’ll do that this way:

[2321][root@linux:/]$ zypper install bzflag
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading repository 'openSUSE-10.3-OSS-KDE 10.3' cache
* Reading repository 'Jpackage' cache
* Reading repository 'Main Repository (NON-OSS)' cache
* Reading repository 'Eric Lavar - Germany' cache
* Reading repository 'Main Repository (OSS)' cache
* Reading installed packages [100%]

The following NEW package is going to be installed:

Overall download size: 10.8 M. After the operation, additional 15.0 M will be used.
Continue? [yes/no]: yes
Downloading package bzflag-2.0.8-78.x86_64, 10.8 M (15.0 M unpacked)
Downloading: media
* Downloading [100%]
Downloading: bzflag-2.0.8-78.x86_64.rpm
* Downloading [100%]
* Installing: bzflag-2.0.8-78 [100%]

It resolves all dependencies, and installs everything it needs. Great way to do things without so much human interaction. There are even flags that will allow us to omit human interaction entirely (–non-interactive and –no-gpg-checks). Very nice.

3. Use the rpm command – Every once in awhile, there is a package that YAST cannot find in the available repositories. When this happens, I head over to one of three places:, Rpmfind, or In almost every case, I can find an RPM that was built for whatever version of OpenSUSE that I am using on that particular box. I just download the RPM in question, and install it with the rpm command. Many people suggest doing this in the following manner:

[2215][scott@linux:~]$ rpm -Uvh [full path to RPM here]

This is one of the possibly more difficult ways to install an RPM. Not because it’s a difficult command, but because it doesn’t resolve dependencies. If there are dependencies, you get to resolve those babies yourself. It’s possible, but I would definitely prefer a poke in the eye with a sharp stick.

4. 1-Click Install – Tell you what, one of the coolest things that OpenSUSE has come up with thus far is the 1-Click Install. At first, I thought it was an April Fool’s Joke. But realizing it wasn’t April, I decided to give it a try. To see how cool this is, head over to the OpenSUSE Build Service. Search for a package like kopete. Scroll through the results. When you find the one you want to install, click on the “1-Click Install” button off to the right side. You’ll have to verify some things and provide your root password, but other than that, it is virtually hands-off installation of the package. Hands-down easiest way to install packages in OpenSUSE.

5. Install with YAST from custom installation repository – Sometimes, you will have an rpm that you want installed, but cannot find it in YAST. You can download it and try to install it with rpm. The problem is that it has 12 dependencies. What then? Switch distributions to something more sensible? No way, we’ll just take the easy way out. Create our own repository and point YAST to that. This process is very simple.

Install the createrepo package. Then, create a directory to be used as the repository. Dump the RPM in there. Then, run the createrepo command on that directory. For example, make a directory called /my_inst_src. Throw your RPM (as hard as you can) into that folder. Then, create the repository with this command:

[2246][root@linux:/home/scott]$ createrepo /my_inst_src
1/1 - pidgin-2.4.2-5.1.i586.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata

Then, just add that directory as an installation source in YAST=>SOFTWARE=>SOFTWARE REPOSITORIES.

Finally, go into YAST=>SOFTWARE=>SOFTWARE MANAGEMENT and search for the RPM you placed into your new repository. You should be able to find and install it easily. The great part here is that YAST should be able to resolve the package dependencies.

Yes, there are a few steps involved here. However, you can take this concept and apply it to an entire network of desktop or server machines. Pick a repository server on your network and create your own repository on it. Then, export that repo via NFS to the rest of the network. Next, just add that repository to the other machines on the network. The great part is that you only have to add the repository to each of the other machines once. But then, instant access to install that package on any of those boxes. This particular solution has been very helpful for me on several occasions.

6. Install with zypper from custom installation repository – Same thing as the previous method. We download a stand-alone RPM that has many dependencies. So the approach will be similar. Install createrepo, make a repository directory, and put your RPM in there. Use createrepo to build your repository as demonstrated above.

Then, instead of YAST, go ahead and add your new repository using the zypper command, like so:

[2308][root@linux:/home/scott]$ zypper addrepo /my_inst_src "My Installation Source"
* Adding repository 'My Installation Source'
Repository 'My Installation Source' successfully added:
Enabled: Yes
Autorefresh: Yes
URL: dir:///my_inst_src

Make sure it was installed properly, again using zypper:

[2258][root@linux:/home/scott]$ zypper repos
# | Enabled | Refresh | Type   | Alias                                                             | Name
1 | Yes     | Yes     | rpm-md | openSUSE-10.3-Updates                                             | openSUSE-10.3-Updates
2 | Yes     | No      | yast2  | openSUSE-10.3-OSS-KDE 10.3                                        | openSUSE-10.3-OSS-KDE 10.3
3 | No      | Yes     | NONE   |        |
4 | Yes     | Yes     | rpm-md | Jpackage                                                          | Jpackage
5 | Yes     | Yes     | yast2  |      | Main Repository (NON-OSS)
6 | Yes     | Yes     | rpm-md | Eric_Lavar_-_Germany                                              | Eric Lavar - Germany
7 | Yes     | Yes     | rpm-md  | My Installation Source                                            | My Installation Source
8 | Yes     | Yes     | yast2  | | Main Repository (OSS)

There it is, highlighted in red. Rock on, now we can make sure zypper finds our new package, thusly:

[2309][root@linux:/home/scott]$ zypper search pidgin
Refreshing 'My Installation Source'
repomd.xml is unsigned, continue? [yes/no]: yes
* Building repository 'My Installation Source' cache
* Reading installed packages [100%]

S | Repository                                                        | Type    | Name                   | Version    | Arch
  | | package | pidgin                 | 2.1.1-13   | i586
i | | package | pidgin                 | 2.1.1-13   | x86_64
v | My Installation Source                                            | package | pidgin                 | 2.4.2-10.1 | x86_64
  | | package | pidgin-bot-sentry      | 1.1.0-45   | i586
  | | package | pidgin-bot-sentry      | 1.1.0-45   | x86_64
  | | package | pidgin-bot-sentry-lang | 1.1.0-45   | i586
  | | package | pidgin-bot-sentry-lang | 1.1.0-45   | x86_64
  | | package | pidgin-devel           | 2.1.1-13   | i586
  | | package | pidgin-devel           | 2.1.1-13   | x86_64

The one we’re looking for is highlighted in red. Looks like we’re ready to go ahead and install the application:

[2313][root@linux:/home/scott]$ zypper in pidgin

If the package is so brand-new that it has dependencies that are unresolvable, obviously you’ll have problems. But for many common packages, this method works great.

As a side note, you can also set your machines up so that you don’t even need the discs to install packages. Put the DVD ISO on your machine and you can put that into YAST as an installation source. Disable the source that uses the local optical drive. Then, it will pull packages from the ISO.

Even better, you can put that DVD ISO on a server on your network. Mount it on that server, and export the mount point via NFS to the rest of the network. Go to each machine in the network. Disable the source that uses the local optical drive. Add the NFS share from the server as an installation source on each box. Then, the machines on the network will pull packages from the NFS share.


There are at least a handful of ways to get installed what you need installed on your box. Depending on whether you are a home user with one computer or a Linux system administrator with 100 servers, or anything in between, you’re bound to use one or more of these methods. And these methods work on both OpenSUSE 10.3 and 11.0. Have a lot of fun…

June 10, 2008

Download OpenSUSE 11.0: The Very Latest and Greatest of the Linux Desktop

by @ 6:57 am. Filed under How-To, SUSE releases

Download OpenSUSE 11.0 and take the latest release candidate for a spin. The new KDE 4 surely put a grin on my face. The fact that it installs from a LiveCD is a huge improvement. This makes the LiveCD much more useful than the previous types of install CDs. This is true in so many ways, I won’t even try to list them all.

Downloading the most recent development release of OpenSUSE 11.0 is quite simple. You will be very glad you did. This is one of the most polished, easy-to-use versions of Linux that I have personally seen up until the present time. Get pumped for when the Golden Master hits the servers.

Pick your architecture, pick your medium, pick your download type, bake yer disc, experience the joy.

Looking for a DVD image to download? Currently, DVDs are available only via Bittorrent. If that’s cool with you, do it that way.

If you’re ok with a LiveCD based off your favorite desktop environment, you’ll be able to pull down a CD image directly from FTP.

To grab your ISO, there are really only a few short steps.

1. – Select your architecture. 32 bit, 64 bit, or PowerPC.

2. – Select the type of medium you wish to download. CD or DVD. I guess they didn’t like my dead badger ISO suggestion.

3. – Pick a download method for your copy of OpenSUSE 11.0. If you want to do FTP, or want a CD, either option is possible for the other. Unless you want a DVD, then FTP is not an option, rather Bittorrent is your only choice. If your preferred method of delivery is Bittorrent, you can get either the DVD ISO, or a CD ISO of either Gnome or KDE, but not both on the same disc. If you want both, you must either do the DVD via Bittorrent, or two CDs via FTP or Bittorrent. You may optionally elect to do one CD using Bittorrent and the other CD utilizing an FTP server. Unfortunately, at this time, it is not possible to retrieve a DVD ISO image from an FTP server. I just selected ‘standard FTP’.

4. – Start your download. If you selected Bittorrent, you’re given a link to a torrent. If you selected FTP, you’re given a link to the CD image you had selected to download.

5. – Burn the image as an ISO image. Do not burn the ISO onto the disc. In K3B, the option you are looking for says “Burn CD Image” or “Burn DVD ISO Image.”

Where can you cash in on all this happiness? From the Latest openSUSE Developer Versions Download Page.

January 28, 2008

Want the new Linux 2.6.24 Kernel? Easy Upgrade Tutorial

by @ 7:11 am. Filed under General Linux, General SUSE, How-To, kernel, Linux tips, SUSE Tips & Tricks


Now and then, you will likely need to familiarize yourself with a technically scientific process called “Fiddling With the Kernel.” There is quite a bit of documentation on this topic. I don’t want to go too far into the specifics of which options to set and how to tweak everything.

What I hope to do here is introduce you to a general overview of the steps involved with upgrading your kernel. I can hear it now, “You mean I can upgrade my kernel without knowing what CONFIG_INIT_ENV_ARG_LIMIT or CONFIG_USB_EHCI_ROOT_HUB_TT or CONFIG_SOUND_TRACEINIT means?” Why yes, yes, you can. I did this very process only yesterday, and I realized that I had done this process a number of times successfully. Thus, it seemed only fair to release it into the wild in hopes that someone else may benefit from it.

What on earth would possess someone to do something like upgrade a kernel? Well, let’s say you are using an RPM-based distro, such as OpenSUSE 10.x. You need the kernel source header files so that you can install the Nvidia driver for your new ultra-sick Nvidia card. You may need to compile the ndiswrapper kernel module. You may need to install VMware, which compiles a kernel module. Easy, right? Just install the kernel-source package that matches the kernel version you are running.

K, what if you have a newer kernel installed that the newest kernel-source package available? Or, what if you were anxiously awaiting some feature of the kernel that was just released, and you don’t want to wait for it to be available from a repository? There could be a host of reasons why you’d want to upgrade your kernel. This is a gentle introduction to one way of doing this.

Please be aware, though. You will usually not want to put a brand new kernel onto a production box, unless you have an exact reason in mind. Also, understand that you are doing this stuff at your own risk. Like I said, I did this yesterday, and have done it many times before. If you do it and your computer turns into radioactive hazardous waste (which it really shouldn’t do), don’t come crying to me.

All that disclaimer-ish junk out of the way, let’s get on to the cool stuff.

What will we be doing?

Step 1. – Download and unarchive the kernel source code
Step 2. – Prep and compile the kernel
Step 3. – Install the new kernel
Step 4. – Set up Grub
Step 5. – Reboot into the new kernel


First things first. We’ll need the latest release of the kernel source code, available from none other than On this page, you are looking for where it says, “The latest stable version of the Linux kernel is:”. Just to the right of the date on that line, there is a hyperlinked “F”. That is the Full source to the kernel. Right-click, copy the link.

Then, open a terminal and switch to root (with ‘su’). Change over to the /usr/src/ directory. Then, download the source using ‘wget’. When you’re done, unarchive it. This process should look something like this:

[1314][scott@linux:~]$ su
linux:/home/scott # cd /usr/src
linux:/usr/src # wget
           => `linux-2.6.24.tar.bz2'
Connecting to||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 46,737,783 (45M) [application/x-bzip2]

100%[=============================================>] 46,737,783   578.56K/s    ETA 00:00

13:15:36 (604.56 KB/s) - `linux-2.6.24.tar.bz2' saved [46737783/46737783]

linux:/usr/src # tar -xvf linux-2.6.24.tar.bz2

Then you hang for awhile until the source decompresses.


Next, we need to make sure we have everything installed as necessary. Depending on the machine and what you already have installed, you may need to install one or more packages. Here are a few of the packages I have had to install to make things work properly:

gcc – this is the compiler – you won’t get far without this
nfs-kernel-server – on pre-OpenSUSE 10.3 boxes, use nfs-utils
oprofileabout this package

An easy way to see if they are installed or which need to be installed is with the rpm command. Install missing packages with yast. Recheck to make sure everything is there:

linux:/usr/src # rpm -qa gcc nfs-kernel-server oprofile ncurses-devel
linux:/usr/src # yast -i nfs-kernel-server oprofile ncurses-devel
linux:/usr/src # rpm -qa gcc nfs-kernel-server oprofile ncurses-devel
linux:/usr/src # 

If one of the packages doesn’t show up, go ahead and use YAST to install it. Also, note that the one package is nfs-utils on OpenSUSE 10.2 and older, and nfs-kernel-server on OpenSUSE 10.3.

Next, we need to compile the kernel. Put away the defibrillation paddles. Contrary to popular belief, this step does not cause cardiac arrest (at least it didn’t in the lab rats we trained on kernel upgrades).

In your terminal, make sure you are in the directory with the kernel source code, something like /usr/src/linux-2.6.24/. Make sure you are working with a clean directory. Then, we are going to grab the configuration of the kernel that is currently running. This is as simple as:

linux:/usr/src # cd linux-2.6.24/
linux:/usr/src/linux-2.6.24 # make mrproper
linux:/usr/src/linux-2.6.24 # zcat /proc/config.gz > .config
linux:/usr/src/linux-2.6.24 #

Just about every time a new kernel comes out, new configuration options appear in it. If we were to just jump right in and start compiling the kernel now, it would stop when it reaches each new option and ask us what we want to do with it. Fortunately, there is a simple way around this. Unfortunately, the cost of simplicity is that you are accepting the default values for these options. But again, the object here is to keep it simple. If you’re feeling leet and hardcore, you can always go back and fiddle.

To get around this problem, we run make menuconfig just like if we were going to go in and hand-tweak the kernel. Instead of doing a thing, however, we tab over to EXIT and hit ENTER. We make sure to save the configuration.

We are ready to compile the kernel and all the modules, done by running this commandline:

linux:/usr/src/linux-2.6.24 # make ; make modules ; make modules_install

Because we have left everything with default settings, we will be compiling here for a long time. Actual time spent depends on your hardware specs.


When all the compiling finishes, you need to do two more things. You have to install the new kernel and configure grub to use it upon restart.

Next, we have to get our new kernel installed. We just copy a few files and create an initial ramdisk. We will copy the kernel image and to /boot. We can then generate an initial ramdisk from that kernel and file. Finally, I also like to back up .config to /boot as well, just so everything is in the same place. To accomplish all of this, these are the commands you will execute:

linux:/usr/src/linux-2.6.24 # cp arch/`uname -i`/boot/bzImage /boot/vmlinuz-2.6.24
linux:/usr/src/linux-2.6.24 # cp /boot/
linux:/usr/src/linux-2.6.24 # cp /boot/
linux:/usr/src/linux-2.6.24 # cp .config /boot/config-2.6.24
linux:/usr/src/linux-2.6.24 # mkinitrd -k vmlinuz-2.6.24 -i initrd-2.6.24

Kernel image:   /boot/vmlinuz-2.6.24
Initrd image:   /boot/initrd-2.6.24
Root device:    /dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 (/dev/sda2) (mounted on / as ext3)
Resume device:  /dev/sda1
Kernel Modules: processor thermal scsi_mod libata ahci pata_atiixp fan jbd mbcache ext3 edd sd_mod usbcore ohci-hcd uhci-hcd ehci-hcd ff-memless hid usbhid
Features:       block usb resume.userspace resume.kernel
Bootsplash:     SuSE (800x600)
36561 blocks
linux:/usr/src/linux-2.6.24 #

Because I don’t really care to type all of that out every time, I have created a script that will do all of this for me:



rm -f /boot/bzImage-$KERNEL_VERSION
rm -f /boot/$KERNEL_VERSION
rm -f /boot/config-$KERNEL_VERSION

cp /usr/src/linux-"$KERNEL_VERSION"/arch/`uname -i`/boot/bzImage /boot/vmlinuz-$KERNEL_VERSION
cp /usr/src/linux-"$KERNEL_VERSION"/ /boot/$KERNEL_VERSION
cp /usr/src/linux-"$KERNEL_VERSION"/.config /boot/config-$KERNEL_VERSION

rm -f /boot/
cp /usr/src/linux-"$KERNEL_VERSION"/ /boot/

mkinitrd -k vmlinuz-$KERNEL_VERSION -i initrd-$KERNEL_VERSION
rm -f /boot/

You should now have a kernel compiled very closely to the one your system is currently running, but with the newest kernel source. The compiled kernel image should now be in /boot, along with an initial ramdisk to go with it. All we have left is to set up grub to see the new kernel. Then, we can reboot into it.


This is one of the easiest steps. We are going to open up a text file, copy and paste a few lines, change just a bit, and save the file back out. So go ahead and edit /boot/grub/menu.lst in your favorite text editor. You will see something like this:

# Modified by YaST2. Last modification on Sun Dec 30 21:00:56 MST 2007
default 0
timeout 8
gfxmenu (hd0,1)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=0x314 resume=/dev/sda1 splash=silent showopts
    initrd /boot/initrd-

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd-

Copy the section that begins with the line “####Don’t change this comment – YaST2 identifier: Original name: linux###” and ends at the line “initrd /boot/initrd-”. Your version number may be different. We are just duplicating the original kernel entry. We are not going to edit that one directly, because we want to use it to get back into the system in case things go south.

You should now have something that looks like this (the green is what I pasted as a new entry):

# Modified by YaST2. Last modification on Sun Dec 30 21:00:56 MST 2007
default 0
timeout 8
gfxmenu (hd0,1)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=0x314 resume=/dev/sda1 splash=silent showopts
    initrd /boot/initrd-

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=0x314 resume=/dev/sda1 splash=silent showopts
    initrd /boot/initrd-

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd-

Now, for the edits. Go to the ‘title’ line of that section you pasted. Change the title to reflect the new kernel, maybe something like this: “title openSUSE 10.3 – 2.6.24 [TEST]”. Then, we’re looking for the line that starts with “kernel”. Change the version on the end of “vmlinuz” to the correct version. In this case, it is 2.6.24. Then, change the line that starts with “initrd” the same way. These two paths are pointing to your new kernel image and your new initial ram disk image, respectively.

If you want to make sure that you have the paths correct, you can use file. If you have the correct files, this is what you will see:

linux:/usr/src/linux-2.6.24 # file /boot/vmlinuz-2.6.24
/boot/vmlinuz-2.6.24: Linux/x86 Kernel, Setup Version 0x207, bzImage, Version 2.6.24, RO-rootFS, root_dev 0x802, swap_dev 0x1, Normal VGA
linux:/usr/src/linux-2.6.24 # file /boot/initrd-2.6.24
/boot/initrd-2.6.24: gzip compressed data, from Unix, last modified: Sat Jan 26 19:44:58 2008, max compression
linux:/usr/src/linux-2.6.24 # 

If the files do not exist, you will see this:

linux:/usr/src/linux-2.6.24 # file /boot/vmlinuz-2.6.24
/boot/vmlinuz-2.6.24: cannot open `/boot/vmlinuz-2.6.24' (No such file or directory)
linux:/usr/src/linux-2.6.24 # file /boot/initrd-2.6.24
/boot/initrd-2.6.24: cannot open `/boot/initrd-2.6.24' (No such file or directory)
linux:/usr/src/linux-2.6.24 # 

At this point, you should have the right paths to these two files and that you have them in your menu.lst file correctly. It might look something like this (the green bits are what I have changed):

# Modified by YaST2. Last modification on Sun Dec 30 21:00:56 MST 2007
default 0
timeout 8
gfxmenu (hd0,1)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 - 2.6.24 [TEST]
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.24 root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=0x314 resume=/dev/sda1 splash=silent showopts
    initrd /boot/initrd-2.6.24

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=0x314 resume=/dev/sda1 splash=silent showopts
    initrd /boot/initrd-

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.3 -
    root (hd0,1)
    kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_WDC_WD1200BEVS-_WD-WXEX07392815-part2 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd-

With this step, we’ve opened the grub configuration file and made a copy of the entry running the current kernel. Then, we’ve changed it to give it a new title, and pointed it to the new kernel and initial ramdisk. Save the file and exit.


All that we really have left now is to reboot into the new kernel. We still have the original installed and working. The grub configuration for the original is still intact. Because of this, if we have any problems whatsoever, we can just reboot and use that kernel instead. So, we can reboot with this command:

linux:/usr/src/linux-2.6.24 # shutdown -r now

Broadcast message from root (pts/2) (Sat Jan 26 20:32:20 2008):

The system is going down for reboot NOW!
linux:/usr/src/linux-2.6.24 # 

When the grub menu comes up, make sure you select the entry called “title openSUSE 10.3 – 2.6.24 [TEST]” (or whatever you called the new one). You should be able to boot just fine off this kernel (this process has always worked for me). If not, reboot and select the original one when the grub menu appears. This will get you back into your original kernel.

January 25, 2008

Linux commands for “What is taking up all my space?”

by @ 6:49 am. Filed under bash, command-line, General Linux, How-To, Linux tips

Terminal Icon

When you’re in the trenches, pounding out solutions, it’s nice to have any added advantage that you can. Finding the source of what is taking up all the space on a given Linux partition may just find itself on your priority list some day. And when you need to know right now where it is, it’s great to have the following solutions.

Should you need to find the source of what is taking up the space on one of your Linux boxen, you can use this command to get you through:

stage:/ # du -s * | sort -g
0       proc
0       sys
4       media
4       mnt
16      lost+found
68      tmp
100     srv
112     dev
2564    home
7568    bin
9280    sbin
9916    boot
28528   etc
70844   lib
209624  var
221708  root
429396  opt
1848788 VM
2686844 usr
stage:/ # 

So now obviously, my /usr path is taking up the most space. Let’s head into /usr and run the command again:

stage:/ # cd usr
stage:/usr # du -s * | sort -g
0       tmp
12      X11R6
16      i586-suse-linux
76      local
3404    games
12124   include
18100   sbin
100424  bin
331616  src
1103240 share
1117832 lib
stage:/usr # 

We then see that /var/lib and /var/share are taking up the most space.

Once you find the culprits, you can archive them, back them up, truncate them, or just plain rm them (please use ‘rm’ with care).

Also, if you are looking for all files on your drive larger than a certain size, the following script may be useful to you. Don’t forget to ‘chmod +x’ it to make it executable:


# In kilobytes on older machines


# Find the files and put them in a list
FILELIST=`find . -size +"$MINSIZE"k -print`

for FILE in $FILELIST ; do

        FILESIZE=`stat \-\-format=%s "$FILE"`
        FILEM=$(echo "scale=2;$FILESIZE/1048576" | bc -l)
        printf ""$FILE"\\n"
        printf "\\tsize is "$FILEM" Megabytes\\t"
        printf "\\ttype is `file -b "$FILE"`\\n\\n"


You may ask, “What is this IFS thing?” Well, it is explained quite well on But for those of us who don’t want to go read that, I’ll just copy and paste the important part for ya’ll:

internal field separator

This variable determines how Bash recognizes fields, or word boundaries, when it interprets character strings.

In other words, bash by default uses spaces to separate things into lists. You are telling it to split the list of files up by the \n or carriage return character rather than by spaces.

Anyway, use the command demonstrated above, and the bash script demonstrated below, to find the files that are taking up all your space.

January 17, 2008

Want to be a Linux admin? 8 Ways to hone your skills

by @ 4:31 pm. Filed under computer tips, education, General Linux, How-To, Linux tips, My Opinion

Tux - Linux Mascot

Every once in awhile, I am asked, “How do I get good at Linux?” Semi-jokingly, I reply, “Beats me. But please let me know when you find out.” Thus the question, “How does one get to become known as ‘the Resident Linux Guy’?” To take it even further, what if one wishes to have a career as a Linux system administrator? Here are a few suggestions on how you might wish to go about this. By no means is it comprehensive:

  1. Try Stuff – The first thing that I might suggest is to “try stuff.” Build yourself a small lab out of a few computers and a switch. Get creative. Do whatever it takes, but get several machines. Experiment. Set things up. Try things out. Create an environment where you can screw things up and it doesn’t matter. Find tutorials on how to install and configure various types of applications and services. Learn to set up servers, services, processes of varying types. Web server, email server, database server, DHCP server. Learn to set up a router from a machine with two NICs. Learn to install and configure PHP, Perl, or Python.
  2. Solve Problems – One of the things that will help you to learn Linux is to assume the role of your own technical support. Take ownership of all problems that occur. Learn the process of troubleshooting. Gather as much data as you can about the problem. This includes any output, any logs (especially system logs), or any hardware specs that may relate to the problem. Gather information. Learn to look up problems on your favorite search engine. Paste any errors into Google exactly as they appear.
  3. Network with people – Build a network of people who are interested in Linux. Don’t focus solely on the people who know more than you. You don’t want to be a sponge. Look for opportunities to help anyone who may need it. You don’t have to know the solution to their problem to help. You just need to know how to solve problems. Solving problems teaches you skills.
  4. Be persuasive – Learn to argue your cause. I have to tread a little lightly with this one, because I’m not saying learn to argue. I have learned from personal experience that pushing as hard as you can to get others to adopt your point of view does result in movement on their part. Away from Linux. You do, however, need to learn persuasive conversation. Learn to discover others’ hesitations about using Linux. If they are valid, don’t push. If they are not, outline why you believe they may wish to reconsider. For example, let’s say someone says this to you: “I thought you had to install Linux from the command line. I could never do that. I don’t want to try Linux.” You might ask, “What makes you believe that?” or “Where did you hear that?” or “Have you ever tried installing Linux? When?” Based off their answer, you can show them that installing OpenSUSE (and several other distros) is really a matter of being able to click a button with a mouse.
  5. Learn how to learn – Do you know the most effective way for you, personally, to learn? Are you a visual learner? Do you prefer to learn things conceptually? Can you learn by just reading? Do you best learn by hands-on practice? Do you learn best when someone is teaching you one-on-one? Or do you learn best when you do your own research at your own pace? Figure out the process that works the best for you and stick with that in your quest for Linux mastery.
  6. Buy books – There are several excellent books available for getting started with Linux. Go over to Amazon. Search the books for “Linux.” Read the reviews on the books. Pick a couple and jump into them. There are a number of great Linux books from SAMS, O’Reilly, Wiley, and Apress, etc. I bought one of each for OpenSUSE.
  7. Contribute – Find a way to make some kind of contribution to the cause. Participate in the local open source community. This may be by any combination of the following: attending or organizing install fests, creating a blog and writing about the things you learn, letting other people know that you are available to help. There are a very large number of ways to contribute. Are you a developer? Work on the code. Are you great with documentation? Help out with that aspect.
  8. Classes – I left the most obvious for last. Take classes or courses on Linux. A bunch of certifications are available. There may be a Linux class in your vicinity that will introduce you to Linux. Many people have found The Easiest Linux Guide You’ll Ever Read to be quite helpful. You may also benefit from the “Intro to Linux” course avaible from the right nav on my Linux blog.

The number of ways to get started with Linux is limited only by your creativity. Most importantly, just start somewhere. Then, work with what you have to learn the best way that works for you. Give it some time, work at it diligently, and don’t give up. At some point, you’ll have the skills and knowledge that you seek. Good luck, and enjoy the journey.

December 23, 2007

Make Broadcom Wifi Work With Ndiswrapper on openSUSE 10.3

by @ 10:10 pm. Filed under General SUSE, How-To, SUSE Tips & Tricks

So yeah, how you been? Me, good. Tryin’ to keep everything together… survivin’…. etc. K, let’s get to it.

Back in March, I bought myself a new laptop. The specs are on that link, but the hardware of interest to this article is the wifi card. It is a Broadcom BCM94311MCG. I’m not a wireless fan, so I didn’t worry about setting it up until recently, when I bought my wife a laptop for her birthday. Her card is the same as mine, but to use it, she had to boot into the Windows partition. As the truly informed can attest, this is unacceptable.

I set out to get the wireless working on my laptop so I could get Windows off hers. Go me.

The exact specs of the wireless card, as listed by 'lspci -v' are:

0c:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)
Subsystem: Dell Unknown device 0007
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at ecffc000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 2
Capabilities: [58] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
Capabilities: [d0] Express Legacy Endpoint IRQ 0
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel

That’s the bad boy that we’re going to get set up with wireless in this very article on an openSUSE 10.3 laptop. Let’s have a moment of silence.

A basic outline of what we’ll cover: 1) First, determine the driver currently running the wireless card. We will then instruct the system never to load that driver ever again (and make a few threats just in case). 2) Second, we are then going to set up ndiswrapper to run the card. 3) Third and finally, we will set up the system so that when we reboot the machine, ndiswrapper is automatically loaded and we can hop on our wireless connection easily.

Out With the Bad

The kernel module that serves as the device driver for this wireless card is called ‘bcm43xx’. As root, remove it from memory, as in this example:

[2338][scott@laptop:~]$ su
laptop:/home/scott # rmmod bcm43xx

Now, we have to politely instruct the system to refrain from loading this module ever again. To do this, we are going to ‘blacklist’ the module. As root, edit /etc/modprobe.conf.local . Add this line to tell it to never load the bcm43xx module:

blacklist bcm43xx
In With the Good

Ndiswrapper is a way to use a Windows driver in Linux. Thusly, the first thing you need to do is grab said Windows driver from this link. Download it to somewhere that you will remember. When it is done, go there, and extract the file (can be done as regular user):

[2339][scott@laptop:~]$ tar -jxvf bcmwl5.tar.bz2

Next, as root, let’s install ndiswrapper using YAST with this simple command:

[2340][scott@laptop:~]$ su
laptop:/home/scott # yast -i ndiswrapper 

Now we need to get ndiswrapper to run the wireless card. This is done as root as in this example:

[2341][scott@laptop:~]$ su
laptop:/home/scott # ndiswrapper -i /path/to/bcmwl5.inf

You can use ndiswrapper to make sure it worked like this:

[2342][scott@laptop:~]$ su
laptop:/home/scott # ndiswrapper -l
bcmwl5 : driver installed
        device (14E4:4311) present

If you see something like that, you are golden.

Next, we need to write a config file for ndiswrapper. This is done with the following command (as root):

[2342][scott@laptop:~]$ su
laptop:/home/scott # ndiswrapper -m

Remove all CAT-5 cables from your machine, and then let’s start up ndiswrapper (as root):

[2342][scott@laptop:~]$ su
laptop:/home/scott # modprobe ndiswrapper 

It’s just about set up. Now, we need to make sure it will work properly when we reboot. We also need to put in the wireless networking configuration for this adapter.

Make It Work Automatically on Reboot

Now obviously, when the machine reboots, we want to ensure that ndiswrapper is loaded and used to run this wifi card. To do this is absolute cake. Go into YAST, go into the Network Devices, and then into the Network Card. Select the Broadcom wifi card in the list of adapters. Click CONFIGURE. In the HARDWARE tab, there is a drop-down box called “Module Name”. Type ‘ndiswrapper‘ in there. Click NEXT to configure your wireless network settings for this adapter.

If you have set up the wireless access point, you should know all the configuration details that should be entered into this screen. If you don’t, you can ask your system administrator to help you figure it out. In any case, fill out this screen with all the appropriate information.

Click NEXT again, and then FINISH.

Take all CAT-5 cables out of your machine, and reboot. When it comes back up, use iwconfig and ifconfig to see if you have an IP address. Head to google and search for something. If you are able to do this, you are in great shape. As such, we are done here.

October 10, 2007

The Perfect Desktop – OpenSUSE 10.3 (GNOME)

by @ 6:43 am. Filed under General Linux, General SUSE, How-To, Linux tips, SUSE Tips & Tricks

Acquiring and retaining new users is how we are able to help grow the Linux user base. Contributing to this requires helpful and informative how-tos, much like those supplied by my good buddy Falko Timme. He has written many many great howtos and tutorials on good, better, best, and PERFECT ways to use Linux. One of his most recent posts includes “The Perfect Desktop – OpenSUSE 10.3 (GNOME).”


“This tutorial shows how you can set up an OpenSUSE 10.3 desktop that is a full-fledged replacement for a Windows desktop, i.e. that has all the software that people need to do the things they do on their Windows desktops. The advantages are clear: you get a secure system without DRM restrictions that works even on old hardware, and the best thing is: all software comes free of charge.”

Take a look at this well-written post, as it is packed with excellent information. We’ll forgive him for recommending Gnome over KDE.

Read the entire post here.

October 2, 2007

Delete all Messages From Your Postfix Queue

by @ 4:24 pm. Filed under How-To, Linux tips

Time for a quick tip regarding Postfix. It beats Exchange, hands-down.

OK, that’s not really my tip (unless you didn’t already know that).

I use Postfix. I host a family mailing list on my server. My parents’ siblings love to send large amounts of email messages with large attachments to said family mailing list. This caused my server much headache today.

Basically, all I had to do was delete the messages from the Postfix queue and I was all good.

If you ever have this need, the simple command:

postsuper -d ALL

will delete all the messages from the queue. Yes, this is a little brutal, so if you want to delete only certain kinds of messages, read the man page and it will explain everything to you.

So there’s my tip of the day.

September 11, 2007

Reboot a locked Linux box with the Magic SysRq Keys

by @ 3:25 pm. Filed under General Linux, How-To

I ran across this rather informative Wikipedia page about something called the “Magic SysRq key.” It is a mechanism built into the kernel that allows you to reboot a machine without having to hold in the Power button. Because your disks don’t have a chance to sync, and other complications that can occur with such a shutdown, this is a great alternative. If your system becomes completely unresponsive, this is a forceful way to reboot the machine, but more graceful than the 6-second power button charade.

First, to see if your machine is set up to do this, run this command:

cat /proc/sys/kernel/sysrq

If you see a “0”, it is disabled. If you see a “1”, it is enabled.

To enable it, do this:

echo 1 > /proc/sys/kernel/sysrq

To disable it, do this:

echo 0 > /proc/sys/kernel/sysrq

Once you have it enabled, you can proceed to perform the operation.

To do this, you will need to hold down the ALT and SYSRQ (or PRINT SCREEN) buttons while typing the following key sequence:

(taken from wikipedia)

Alt + SysRq + R – takes the keyboard out of raw mode.

Alt + SysRq + E – terminates all processes (except init).

Alt + SysRq + I – kills all processes (except init).

Alt + SysRq + S – synchronizes the disk.

Alt + SysRq + U – remounts all filesystems read-only.

Alt + SysRq + B – reboots the machine.

One thing to keep in mind, however, is that you will want to give the machine time to complete each command, especially time between the last three commands. You want to make sure that the machine syncs the disk before remounting the filesystems, and you want to wait a moment to reboot the machine after it performs the remount.

July 14, 2007

Opening up the Wallet for OpenSSH

by @ 4:06 am. Filed under General Linux, General SUSE, How-To, ssh tips, SUSE Tips & Tricks

One of the greatest tools that has ever been invented in the networking/connectivity/protocol/technician world is OpenSSH. Please, if you have found OpenSSH to be useful, or at least worth $25, go to the main OpenSSH page and buy a T-Shirt from them. Stop and think for a second whether your very job has been made easier kind of like breathing air makes things easier, just by having OpenSSH available. If so, I implore you to at least make a small donation of any kind to these great folks. They have made my life so much better just by that one program.

This is the T-Shirt that I just bought from them.

Let me tell you why.

Well, if the fact that it makes my very job possible weren’t enough, there is another small reason. Believe me, it is so insignificant, you’d be better off reading a blog post written by a doorknob to a dead snail than continuing to read this.

Oh, man, we just couldn’t drop it, could we… ? Since you are still reading, I can only assume that somehow you are interested in what made me just buy a $25 T-Shirt from the OpenSSH folks.

*rolls eyes and sighs irritatedly* (it is 4:00 am and you are keeping me up you know)

I have a firewall at my place of employment. This firewall terminates latent connections originating from within the company network to any outside machine. This means that if I leave my ssh connections open for more than 4 minutes without typing something, they all get reset. This thing I do not appreciate. In the words of one great Dr. Suess, “And we did not like it. Not one little bit.” I have hated this with some infinite amount of passion since the day I began work there, over a year ago, now.

Well tonight, I finally took 5.3 seconds and did a Google search on “ssh keepalive.” The very first page that came up suggested that I try something super easy. Create a file at $HOME/.ssh/config and put in it the line “ServerAliveInterval 60” and that this would keep my connection alive. Lo, and behold, I have had a connection open now for 8 hours without a single hiccup. That makes me so wonderfully excited that I could just give everyone on the entire planet $400.

Since obviously this is not possible, I decided that I would give the OpenSSH folks $25 because of my newfound happiness which they made possible by writing such a wonderfully cool application that makes my very livelihood possible.

June 13, 2007

New Free e-book Available!

by @ 6:41 am. Filed under ebook, freebies, How-To, SUSE Tips & Tricks

Good morning, everyone. Welcome to another wonderful Wednesday morning. I just wanted to let you know that I have completed another free ebook. It is 25 pages and covers the basics of managing software with YAST. It goes over what Installation Sources are, how to get a full list of them, and how to put them in. I also cover the basics of adding and removing software via YAST. The goal of such a book is to give people who have not yet had a chance the ability to get started quickly learning the basics of YAST so they can jump right in and be immediately productive in openSUSE, one of the best distributions of Linux available today.

A short table of contents includes:

Open YAST……………………………………………6
Installation Sources………………………………….8
Finding YAST Installation Sources………………………9
Registering Installation Sources in YAST……………….10
Installing Software in YAST…………………………..17
Uninstalling Software in YAST…………………………21

To get this book, you just sign up for the free “Introduction to Linux” course available from the left nav of my site: After the last class comes to you, a few days later, the free ebook arrives as a special bonus.

For anyone who has signed up previously, you will get a link in an email that you can use to download the ebook. If you are interested in the ebook, go ahead and enroll in the free Introduction to Linux course (available from my site). The course covers:

For anyone who may just be getting started using Linux, this course is for you!

OpenSUSE Linux Rants
Official OpenSUSE Linux Site

internal links:


SUSE Resources

search blog:


May 2021
« Feb    

75 queries. 0.536 seconds