I'm not going to tackle the sound question -- sound and print have always been massively more complicated than seems reasonable (this has been true for 30 years, it's not unique to Linux), and I"ve never understood why. If video can be gotten to the point where it's an absolute no-brainer, then why....
Anyway, networking. We may have to make a couple of passes at this, both because I may assume some things are easy/obvious when they're not, and because I'm not going to try to explain every possible case of "if you do X, then do Y, but if you do A, then do B, C, and then
First, the view from 10,000 feet of networking. (One of the simplifications I'm going to make is that we're talking Ethernet.)
[list=1][*]The device driver is either compiled into the kernel, or loaded as a module. Once that code is in the kernel, the kernel can "see" the card.[*]Some program (the two most common are "ifconfig" and DHCP) sets the IP information on the card. This tells the card which IP address to "answer the phone" for, and a few other things we can't see from this height.[*]A route gets added to the kernel's routing table (see it/set it with the "route" command) which tells the kernel what to do with any packets it may have to deal with.[*]The device driver accepts data from the kernel (which in turn got it from some application program like a browser) and sends it off. It also tickles the kernel to let it know when the card has data coming in that the kernel needs to handle.[/list=1]
I'm not 100% sure what "Internet Connection Sharing" is, and I'm fairly certain Linux can't used Windows' version of it. I'd be amazed, though, if there's anything Windows can do with networking that Linux can't do.
My first guess is that ICS means using this computer as a gateway so that all the other computers can get out to the Internet, even though it's the only one with a DSL/Cable modem (or even a regular modem).
If so, yes, Linux can do that. If the other machines on your network are... Hold it. That's exactly what I said I was not
going to do -- get sidetracked onto 18 million "what-if"s. If you need your Linux box to function as a gateway, let me know and we'll cover that.
Just so you know what's possible, Linux sees any DSL or cable modem as an Ethernet connection. (Slight oversimplification. Don't worry about it.)
It can use an ordinary modem to make several kinds of modem connection, the most common of which is called PPP. (If you're not planning on using a regular modem anytime soon, throw that piece of info out for now.)
Linux can handle a real modem just fine. It sometimes has problems with what are sometimes called "winmodems" or "software modems". These are things where the hardware is absolutely the cheapest, simplest it can possibly be, and a whole bunch of what is done in hardware on a regular modem is done in software on these.
Unfortunately, the manufacturers don't write device drivers for Linux, and they don't publish the specs so somebody else can write them. This situation has steadily gotten better, but there's still a possibility you won't be able to use a built-in modem.
(And I just realized I went off on yet one more
Ok, first step: loading the module.
You said that the device driver (which is a module) was dmfe. You can check whether it's loaded by doing "lsmod". It will be in the left-hand column if it's loaded.
If it's not, say "modprobe dmfe" and that should load it. You can run "dmesg" and look at the last few lines. If it recognized your card, there should be something about eth0 in there. (Try "dmesg | grep eth0". Grep is a command for finding text.)
Your IP address breaks down into one of two classes: static or dynamic.
Static is easy. You just run the "ifconfig" command and set the IP address. For example "ifconfig eth0 10.1.1.50 netmask 255.255.255.0 gw 10.1.1.1 up" would set interface eth0 (your first (and probably only) ethernet card, to IP address 10.1.1.50, with a netmask of 255.255.255.0, which means that the "10.1.1" part is a network, and the "50" is a host. (In IP, everything is either a host (a computer) or a network.) Finally, it says that the default gateway, the place your box sends packets when it doesn't know else to do with them, is 10.1.1.1. (In real life, you'll get the gateway address and your IP address from your ISP. They should also tell you what netmask to use. They might call it a "subnet".)
DHCP is even easier to use, although it's a little harder to understand the guts of it. I'm not going to go into the guts here and now.
The most common DHCP client is dhcpcd. (DHCP client daemon. Sorry, I don't remember exactly what DHCP stands for, and I'm feeling too lazy to look it up. Just remember what it does -- it goes and gets an IP address for you.)
You normally just run "dhcpcd" (see the man pages for options. You may want to specify a couple of them, but it should work without them.)
One point to clear up: You don't normally run each of these commands by hand every time you boot the system. There are normally system config files that you edit, and once you've set it up right, it's completely automatic -- you boot the system, you have networking (and if you've got something "always on" like DSL, you have Internet). I don't use Debian normally, so I can't tell you how that's done in Debian. Hopefully, armed with more info about what's going on, you'll be able to find help in the Debian documentation.
Finally, run the "route" command. In the example above, the output would look something like:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.1.1.1 0.0.0.0 UG 0 0 0 eth0
The first line is the network for your ethernet card. It will be the network portion of your IP address, followed by zeroes. The "Genmask" should be the same as the netmask you set earlier.
The 127.0.0.0 line is the loopback address. X (and a few other things) use it, but it never goes out of the box. Don't turn it off, but otherwise, ignore it.
The last line is your default gateway. It works just like the headers read: This is the default destination for everything (the 0.0.0.0 netmask) and its gateway is 10.1.1.1.
That means when the kernel looks at something like 188.8.131.52, it says "I have no clue where this is. 10.1.1.1, you're my gateway; here, you deal with it."
I've recently come down with carpal tunnel, and I"m in agony, plus, your brain is probably full at this point. Ask for whatever steps you want next (or which of these you need more detail on.)