• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

FAQ 2.0-Updated for Your Linux Pleasure

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.
What video cards support 3D acceleration under Linux?

At the moment (9/04), ATi and nVidia both have Linux support to some degree.

nVidia
nVidia has a very good sytem for installing their drivers, but it's proprietary. You can get the drivers here. The instructions are on the same page as the installer download. They may look like a lot, but there's a lot of extra information. Once you've done it, the second time will only take about 2 minutes.
Gentoo has its own simplified way of installing the nVidia drivers, although its installation process is not for the faint of heart. ;)

ATi
In the past, ATi's Linux drivers were clearly inferior to nVidia's. This is less true today. You can find how rogerdugans got ATi 3D acceleration working in this thread. It's not as easy as working with nVidia's drivers, but it doable. This interview with ATi on [H] may be of interest.
 
Last edited:
What native Linux games can you buy?

You can find a list of native Linux games at Tux Games. PomPom Games offers all their games in native windows, Linux and OSX versions, along with free demos. Their games are highly polished, very professional and a lot of fun.
I'm not much of a gamer, so I welcome any other links people care to provide.
This thread discusses the lack of native Linux games, among other things.
 
Last edited:
Can I run windows games in Linux?

You can run many native windows games via Cedega (formerly WineX). Cedega is Wine with some DirectX support added. Since it's emulation (well, it's actually an implementation of the windows and DirectX APIs), it's not perfect. You can find a list of what games are supported and how well they're supported here. Cedega is available for a small monthly charge. For each subscription, you get one vote on which game Transgaming will try to support next, in addition to the rights to download their precompiled binaries. There is minimum subscription of 3 months at 5$US, 5 Euro or 3GBP per month.
 
Last edited:
What are tarballs and why do I care?

Tarballs are *nix's version of zip files; they contain a bunch of other files (although they're not always compressed). Compressed tarballs usually end in .tar.gz, tar.bz2, .bz2 or .tgz, and uncompressed tarballs end in .tar . The .tar.gz and .tgz files are the same, and are compressed with gzip. .bz2 files are compressed with bzip2, which usually yields a better compression ratio. The tar command can gracefully handle both compressed and uncompressed tarballs, so pick whatever's smallest when you have a choice. tar xjf file.tar.bz2 extracts bz2'd tarballs, tar xzf file.tgz extracts gzip'd tarballs and tar xf file.tar extracts uncompressed tarballs.
The downside of bzip2 is that the compressed files take significantly longer to create than with gzip. If you're just making a backup and have plenty of space, gzip is a better choice.

Ryan0rZ and DarkArctic helped edit and proofread this answer.
 
Last edited:
Where can I find CLI tips?

The command line interface, or CLI, is the most powerful and the quickest way to get around in a *nix system. Unfortunately, it takes some getting used to for a recovering windows user. If you've never even seen a CLI before (DOS doesn't count), start here. The first section ("Linux command line") teaches you the very basics. The second section ("Great Linux command line features") shows off some of the features that make Bash fun. The third section ("Other command line related") has other miscelaneous tips. Every section on that page has something useful to offer. If you want to learn to enjoy the Linux CLI, consider them all required reading. The lesson on tab completion deserves special mention. This is possibly one of the most useful features in Bash. It's also important to note that the CLI in Linux is case-sensitive. In Bash readme and README are two different files.
The man pages are useful, but sometimes you'll come across a command that you just don't know. When that happens, you can probably find the command here.
 
Last edited:
How can I log into my computer remotely?

Use ssh . The syntax is quite simple. To log into the machine "shire" as the user "frodo", you run ssh frodo@shire . The name of the remote machine can also be an IP address. ssh [email protected] would let you have root access to your own box. If you omit the username, ssh will default to whatever user you're logged in as. This is handy if you have multiple machines on a LAN, but you should be explicit otherwise. See the man page for more info (run man ssh).
 
Last edited:
Can I use a GUI remotely?

Yes you can.
You have (at least) two options; VNC, and tunneling X over SSH.
VNC is very simple to set up, and lets you run a whole desktop over a network connection. TightVNC is a maintained OSS implementation of VNC. It worked for me without any problem, but I only tested it on my LAN.
To set up TightVNC, install it on both computers. On the server (the computer whose desktop you want to use), run vncserver :0 (use a different number if you're already running a desktop on the box). You'll be prompted for a password, and the server will be started. If you want what's served to look like your desktop, copy ~/.xinitrc into ~/.vnc/xstartup before running the server.
Once that's done, run vncviewer from the client like so: vncviewer remote_box:n where remote_box is either the name or IP address of the server, and n is the number you used when you started the server. With those steps, you can do most of what you can do on the desktop, but over a network connection. You can to stop the server with vncserver -kill :0 . (Note that there's one dash in -kill, which is unusual in Linux. The command won't work with two dashes.)
Tunnenling X over SSH is more secure than VNC, but can also be slower for GUI-intensive apps. In my experience, it doesn't work nearly as well as VNC.
Basically, it involves setting "X11Forwarding" to yes in /etc/ssh/sshd_config and restarting sshd (usually by doing /etc/init.d/sshd restart) on the server, and setting DISPLAY=:0 before you ssh into it. Once you've logged in, you can start a GUI program by name. With a little luck, you'll be able to use a GUI program from your server remotely.
You can find more information on X over SSH here. (It's old, but it still applies.)

DarkArctic helped edit and proofread this answer.
 
Last edited:
What are patches and diffs? How can I use them?

As far a Linux is concerned, you only care about patches and diffs if you're dealing with source code in some way. Of course since Linux is open source, everyone can compile and muck around in the source code to their heart's content. Vendors of binary-only products such as games and insecure OSs release patches too, but they aren't the same thing.
In the OSS world, a patch is essentially the differences between two sets of files. Its main purpose is to allow you to upgrade from one source tree to the next without downloading any unnecessary code. For instance, if you've got the 2.6.8 kernel source all unpacked, but it took you 3 days to download over your 28.8 modem, all you have to do to get the 2.6.9 source is download the patch, which is much smaller than the whole source tree.
Once you have a patch, you can apply it to the source like so:
1) Copy the patch into root dir of the source tree*.
2) Feed the patch into the program patch. If the patch is plaintext (ends in diff), you can run cat patch.diff | patch -p1 . For compressed patches, use zcat and bzcat for gzipped and bzip2'd files, respectively.
It's a good idea to run make clean after patching a source tree to guarantee that all source is compiled from the right files. You may be able to get away without doing this, since make is designed to check if a source file has been modified, but it may miss subtleties. At any rate, it's good form.

[*]The root dir of the source tree is usually where the README is. This is an oversimplification, but it usually works.
 
Last edited:
I only have network access (ie no disk drives). Can I still install Linux?

How patient are you?
If you have some form of I/O, you can install Linux. How long it takes and how easy it is to set up depends on what kind of I/O it is. Installing from a CD is the easiest method, but it's certainly not the only way. The laptop I'm writing this on runs Debian unstable, which was installed from a PXE boot server. You can find the instructions I used here. There are similar instructions for Gentoo and a fully automated RedHat install. Note that any computer can work as a PXE boot server, but you have to have 2 computers to make this work.
 
Last edited:
Some people say that Linux has the best backup tool. What is it?

The tool is dd . dd does nothing more than copy bytes from one place to another, but because of Linux's (and Unix's) "everything's a file" paradigm, this is extremely powerful. If you want to backup a partition to a file, all you have to do is run dd if=/dev/hda1 of=/mnt/nfs/hda1_backup . (In this case, you're backing up the first primary partition on the primary master IDE drive to the file /mnt/nfs/hda1_backup .)
If disaster strikes, you can simply copy the file back onto the partition with dd if=/mnt/nfs/hda1_backup of=/dev/hda1 . You should never backup a mounted partition. It's possible that the partition will be used while you're backing it up. The only way you'll know anything bad happened is when you try to mount the filesystem after restoring from a backup. The best possible result is some minor corruption, but if there was significant activity while you were backing up, your backup won't work.
Using Knoppix is a great way to ensure that your partitions won't be touched while you're backing them up.
 
Last edited:
What is distributed computing?

DC, or distributed computing, is a way to solve a computationally big problem without having to buy big hardware. The basic idea is that you take a problem that can be easily parallelized (ie split up into many parts that can be solved separately) and you send each of those parts to a remote computer (aka node) to work on. The pieces of work are generally called work units, or WUs. When the nodes are done with their WUs, they send the results back to the central server, which integrates the results with what it's already received. If there's more work to do, the server sends the node another WU, and the cycle continues.
Since this requires only a central server and enough bandwidth to coordinate all the nodes, it's much cheaper than a full-fledged supercomputer.
 
Last edited:
My puppy died from cancer. Can I fold protiens so that other puppies won't have to die?

You'll be happy to know that the Folding@Home project has a Linux client available, right along with its windows and OSX clients. You can find them all here. They treat puppies well.Note that if you run Overclockix, it will automatically start folding. That's one of the extras.
 
Last edited:
Can I crunch for SETI, even though they only find stuff in movies like "Contact"?

"Contact" was a very interesting movie. If outer space is more important than proteins, or the SETI@home team is more important than the F@H team, you can use SETI@Home's Linux client.
 
Last edited:
Can I look for prime numbers, even though it only makes number theory geeks happy?

"Pi" was a great movie, but a little on the wierd side. If you're trying to find the name of God, or just an unusually large prime number, you're also in luck. The GIMPS has a client for many OSs, including Linux.
 
Last edited:
My favorite DC project only has a windows client. What can I do?

Wine seems to work well for relatively simple programs like DC clients. If your project of choice doesn't have a Linux client, you can try to run the windows version under Wine. In the meantime, you should ask the people in charge of your favorite DC project to make a Linux version of their client. The F@H client may be better for windows, but there's no guarantee that this will always be the case.

stabob helped edit and proofread this answer.
 
Last edited:
Can I use my nVidia card?

Yes, you can. nVidia has done a good job with their Linux drivers. They have the same problem as ATi's, ie that they're proprietary and only available in binary form, but that's the nature of the beast for now. Binary-only drivers are a Bad Thing, but using an nVidia driver under Linux is better than staying with windows.
If openness is more important to you than gaming, there's a non-3D-accelerated OSS driver available for X. It's called "nv". This will allow you do do anything except 3D gaming just as well as nVidia's driver.

nVidia has a good sytem for installing their drivers. Some distros, like Gentoo, make installing nVidia's drivers as simple as running emerge nvidia-glx nvidia-kernel and editing X's config file. (In Gentoo in particular, installation is difficult and package management is a breeze. There aren't many distros that make both easy.) Even if your distro doesn't do this, you can get the drivers here. The instructions are on the same page as the installer download. Don't worry if they look long; there's a lot of extra information. Other than reading the docs, the install only takes about 2 minutes. If you're into tweaking, the README contains a bunch of information on extra parameters you can pass to the driver in appendix D.

SewerBeing helped edit and proofread this answer.
 
Last edited:
Does Linux support SMP and hyperthreading?

The stock Linux kernel can be configured for systems with as many as 255 CPUs, and modified kernels are used to power systems with more than 1000. So, yes, Linux does support SMP. If your distro doesn't have a pre-compiled SMP kernel available, rolling your own is as simple as specifying the number of CPUs in the kernel config menu, assuming you have everything else working.
Kernels 2.4.18 and up also support hyperthreading (aka SMT). The kernel config option is directly below SMP.

Ryan0rZ suggested that I add information on hyperthreading. DarkArctic corrected my numbers.
 
Last edited:
What's a good distro for an old computer (100+ mHz range)?

Since your computer could take over a week to install Gentoo (unless you're using distcc), it usually isn't an option. If you don't mind a simple (but increasingly better) installer, Debian is your best bet. Since it has a binary package system, and since apt, its package manager, automatically takes care of dependencies, you can tell it to install a dozen packages and go take a nap while it fetches and installs everything. Pure Debian (ie non a derivative like Knoppix, Linspire or Xandros) also does very little by default, which means it will spend most of its time doing only what you've told it to.
 
Last edited:
My computer's even slower than that. What can I do?

I'm going to experiment with setting up an old P100 laptop to run off a bootable floppy-based pseudo-distro. I hope to get all the bells and whistles in as little as 2MB of RAM. I'll put a writeup here once I'm happy with the results.
In the meantime, play with the Linux-Tiny set of kernel patches.* I've gotten my kernel image down to <400 K, although I haven't had a chance to test it. I also recommend BusyBox as a compact replacement for many common CLI tools. It has a very nice menu-based config system similar to the kernel's, and it's quite easy to tailor it to your needs.

* You can download and listen to the maintainer's OLS 2004 presentation here (about halfway through the list of presentations) with this xmms plugin. You can grab his Oo_O slideshow here to follow along. Some of it will go over mosty people's heads, but you should be able get something out of it. Listening to it will give you a better idea of what all those options do.
 
Last edited:
Why are binary-only drivers like nVidia and ATi's a Bad Thing?


While nVidia and ATi have good and useable (respectively) drivers, they both have a big problem in that they're proprietary and only available to the public in binary form.
Most new Linux users and some old ones who haven't bothered to dig too deeply don't care where their drivers come from or what form they're in. This is understandable considering windows, where the only available drivers are binaries and the concept of "Open Source" is either alien or unapplicable.
However, this is an Open Source world, and the way of thinking here is different. Software is free because that's the way it has to be to get as good as Linux-based OSs. *The* factor that makes Linux good is the Open Source method of software developemnt. Software is at its best only when everyone is free to look at its source code and modify it without onerous restrictions.
Often OSS devs and advocates will sound like unthinking fundamentalists in their attitude toward binary-only modules. They're uncompromising and they don't accept any arguments from the opposing side. This isn't because they're stupid; it's because they're not. Binary-only drivers really are bad for OSS.

Many of the reasons to avoid closed-source drivers are mentioned in this article. The most visible issue is 4K kernel stacks: they contribute to a faster and more efficient kernel (especially when memory fills up), but nVidia's driver before release 6111 wouldn't work with them. If the driver were in the kernel, the issue would have been fixed much sooner, before anyone noticed.Another thing is important to note; if you ever want to report a kernel bug*, you can't have any proprietary modules in your kernel. The kernel devs need to know the source for everything in your kernel to figure out what's going wrong, and the binary-only nature of nVidia's drivers prevents that. If they can't conclusively say that nVidia's driver isn't causing the problem, they'd be wasting their time to try finding something else as the cause. Because of this, kernel devs will usually refuse to even attept debugging a kernel with a binary-only module like nVidia's.

The best thing you can do is to write nVidia and ATi asking them to open source their drivers. It's important that they see demand not just for Linux drivers, but for Open Source Linux drivers.

*Everyone who uses Linux should report at least one bug before they die. Bug reports result in better software and are a great low-commitment way to contribute back to the community.
 
Last edited:
Back