FAQ Questions:

Did you know that "FAQ" stands for "Frequently Asked Questions" so "FAQ Questions" is redundant?

Actually, I did know that. But when I write "FA Questions" it looks boorish.



What does "RTFM" mean?

When asking questions, you may hear this a lot. It means "Read the fscking Manual", or (for those who prefer to be couth) "Read the Fine Manual". The fsck manual may not seem relevant but you should read it anyway. You should read everything you can before you commit changes to your hard drive. It's extremely important that you read and learn as much as possible on your own. If you get stuck, then there's nothing wrong asking others for assistance. However, if the answer is plainly stated in the man page or other documentation, it's very likely someone will tell you to Read The Fucking Manual.




I don't understand so I thought about asking a complete stranger with no particular qualifications how to fix my system. Is this a good idea?

Obviously not. Any advice you get or commands that you are asked to perform you should 1) read the man page 2) read your particular distro's manual on the usage and repercussions of such action or google it.

Another fine reason to read the manual yourself. Check your distro for wikis and instructions on configuration second, google the forums third, post to the forums fourth and ask for help last. With this knowledge in your hand you are less likely to find yourself in a worse predicament then when you simply couldn't get your wireless to address correctly.

While this list is hardly exhaustive an example of the hazards of simply taking advice.




Alright I took your advice but Google doesn't send back any relevant results!

Googling "I can't get my wireless to work" won't help you any more than posting that in a chat room. Don't bother googling "I need help" seven times either (unless you capitalize it). If you are looking for help on your wireless, you should tell google what hardware it is, what distro it is. Googling; "realtek rt8171 USB ubuntu" might find you some really useful information.




Googling isn't for me. I hate google!

Post to a forum then. They are moderated, many people will see your question and can post to it. Your question may help many other people who can google.




I still just want live help. Why are they ignoring me in the chatroom?"

Remember that Linux is a free. Those people chatting about something completely random in that chat room are not paid, have no commitments to help you* or anyone else. They are helping you out of the kindness of their hearts; so be patient, polite and respectful, pay attention to what they say, answer their questions or if you don't understand their questions explain that to them. If they ignore your first posting of your question spend some time googling - likely they don't know, are away from the keyboard or are in the middle of something. Repeating your demand for attention or getting angry will likely just get you ignored.

* The percentage of linux users assigned to work release working or community service working off their sentence helping in a chat-room is very small

Politeness also dictates that you should ask before PM-ing a complete stranger. Please ask first.




Isn't there a GUI (Graphical User Interface) to do that? Why does everything have to be done with commandline!

There may well be. Linux is all about empowering the user, not hobbling them. A GUI is often simply a "front end" for a command line function so they have simply filtered the results of the commandline function to fit in their window. If you are troubleshooting a system it is preferred to have as much information as possible not let someone else filter your results for you. Once the system is up and working is the time to search for that "cool app" that puts the status at your fingertips on your desktop. It is out there - you just have to find it.




I can't figure out how to install the distro of my choice!

First off, you're going to need to know what kind of processor your computer uses. For example, is it i386 architecture? PowerPC? ARM? Here's a basic (albeit incomplete) list which will cover most users. If you're still not sure, then you should probably choose i386 32 bit.

Here are links to the installation guides for the distributions mentioned previously:

GNU/Linux Distributions
Ubuntu
OpenSUSE
Fedora Core
CentOS
Debian
Arch Linux
Slackware
BSD Distributions
FreeBSD
OpenBSD
NetBSD

Keep in mind that you'll probably end up trying many different distributions before you find one that you like. Don't be afraid to experiment.




My hardware doesn't work. I have had no luck with any of the forums, all google returns is the same complaint. Why doesn't Linux support my hardware?

Linux OS is still a small percentage of the market. It is therefore "not" the target audience of the major manufacturers - if they see no profit or increase in sales by supplying linux support they likely will not. Further, the GPL licensing is often seen as prohibitive; if they create opensource drivers than they are opening their hardware to scrutiny (not necessarily true but it is often a complaint). If they create proprietary drivers it expands their support commitment. Again seldom seen as a profitable move. The only way this situation is likely to change is if they see a large percentage of complaints and returns based upon this - what you can do to help increase the support is to post on the offending manufacturers forum your complaint and request for support by supplying drivers for linux.



What are the basic commands I'll need to get started?

There are a few things anyone should know when becoming aware of and learning new things about their environment:

Being aware of your environment is especially important. You don't want to risk executing the wrong command on the wrong system as this could easily result in days of frustration while trying to undo what ye hath wrought or being fired from a job which feeds you and your family. Destroying your data or your client's $500,000 dollar data is a possibility. Execute with caution.

That being said, please continue without fear, but the knowledge that not being aware of your environment may screw up your whole day.

Who am I?

whoami and $USERNAME

questionablemoose@donkey:~$ whoami
questionablemoose
questionablemoose@donkey:~$ echo $USERNAME
questionablemoose
questionablemoose@donkey:~$ id
uid=1000(questionablemoose) gid=1000(questionablemoose) groups=4(adm),20(dialout),24(cdrom),46(plugdev),104(lpadmin),115(admin),120(sambashare),1000(questionablemoose)

Where am I?

questionablemoose@donkey:~$ hostname
donkey
questionablemoose@donkey:~$ echo $HOSTNAME
donkey
questionablemoose@donkey:~$ pwd
/home/questionablemoose
questionablemoose@donkey:~$ echo $PWD
/home/questionablemoose
questionablemoose@donkey:~$ ls
Backup filename torrents zinc-1.1.11 zinc-1.1.11.tar.gz

What am I doing?

questionablemoose@donkey:~$ ps
PID TTY TIME CMD
2497 pts/1 00:00:00 bash
3065 pts/1 00:00:00 ps

Who else is here?

questionablemoose@donkey:~$ who
# The formatting got slaughtered here, I'll fix it later.

What are they doing?

questionablemoose@donkey:~$ w
# The formatting got slaughtered here, I'll fix it later.

Alright, alright! I'm aware of my environment and want to start manipulating it!

man is short for "manual". It shows manual pages for commands. Every UNIX-like distribution has man pages somewhere, and usually installs them by default. You can even just google them if you want! Remember that it's probably important to use the manual pages when someone suggests that you cd /; sudo rm -rf / or the like.

questionablemoose@donkey:~$ man man

Or:

questionablemoose@donkey:~$ man rm

cd allows you to "change directory":

tacothief@donkey:~$ pwd
/home/tacothief
tacothief@donkey:~$ ls
examples.desktop tacostand
tacothief@donkey:~$ cd tacostand
tacothief@donkey:~/tacostand$ pwd
/home/tacothief/tacostand

cp is used to copy files from one location to another. Usually, the original file will remain intact. This is useful for backing up configuration files before you edit them:

questionablemoose@donkey:~$ cp /home/questionablemoose/filename /home/questionablemoose/torrents/filename.bak

mv moves or renames files. This is used less for backing up configuration files before you edit them:

questionablemoose@donkey:~$ mv /home/questionablemoose/filename /home/questionablemoose/filename.bak

cat is usually used to output the contents of a file to your terminal:

questionablemoose@donkey:~$ cat filename
Apple
apple
Pear
orange
bicycle
Muffin
Porkchop
toast
Taco
Gingerbread horror
fork
A perfect resume
A new job
A better pay rate
Failure
Lost the house
Had to eat the pets and kids
Live in a ditch now
A sunny meadow
What
is
the
meaning
of
this?
questionablemoose@donkey:~$

You've probably noticed that cat doesn't allow you to scroll up or down to read long files. That's where there's more:

questionablemoose@donkey:~$ more filename
Apple
apple
Pear
orange
bicycle
Muffin
Porkchop
toast
Taco
Gingerbread horror
fork
A perfect resume
A new job
A better pay rate
Failure
Lost the house
Had to eat the pets and kids
Live in a ditch now
A sunny meadow
What
is
the
meaning
--More--(96%)

less does the same as more, except is has far more options. Remember, less is more!




I can't read/write/execute a file!

The permissions are probably wrong. Time to learn about UNIX permissions!




I don't understand this wireless thing at all. What can I do to make it work?

Again, there are only a few manufacturers that support Linux directly although a lot of secondary work has been done in this area. However things change quickly and things get left behind. Your card may well be supported even directly but it may require tweaking to get it to work properly. Someone has installed that same card in that same distro. They may or may not have gotten it to work but they likely documented their progress or posted the procedure in a forum so as usual the first thing to do is to google or read the distro wikis.

That being said there are some tools you can use to help save you some hair;

What is the general procedure to troubleshoot wireless issues?

The first thing is to see if the kernel has identified it as a wireless network device and passed it on to the Network.

iwconfig
iwconfig is used to configure a wireless device. It is similar to ifconfig in usage. Running it without options it will tell you if any wireless devices have been identified as such, their names( hardware identifier);

 $ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

ra0       RT3070 Wireless ESSID:"" Nickname:""
          Mode:Auto Frequency=2.412 GHz
          Link Quality=10/100 Signal level:0 dBm Noise level:-143 dBm
          Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Thus device "ra0" has been identified as a wireless device. You can proceed with configuration

lsusb
If the hardware is not started and sent to Network first is to identify which "bus" it is on - this one is on the USB bus so to list the hardware on the USB bus;

 $ lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 007: ID 148f:3070 Ralink Technology, Corp. RT2870 Wireless Adapter
Bus 001 Device 006: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 001 Device 005: ID 03f0:0317 Hewlett-Packard LaserJet 1200
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 003: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Properly found and identified.

lspci
You can also look on the PCI bus;

 $ lspci
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

dmesg
dmesg is the "voice" of your Kernel. When the Kernel does something important it announces it in dmesg. If you wish to see the last 10 lines of this you can filter the results through "tail". So if you were to plug in your wireless USB card then running "dmesg | tail" will output the last 10 lines the kernel said. That will give you an idea of why the kernel isn't happy with your hardware;

$ dmesg |tail
---> RTMPFreeTxRxRingMemory
<--- RTMPFreeTxRxRingMemory
RTUSB disconnect successfully
usb 1-5: new high speed USB device using ehci_hcd and address 8
usb 1-5: configuration #1 chosen from 1 choice


=== pAd = ffffc9001b270000, size = 502624 ===

<-- RTMPAllocAdapterBlock, Status=0
lspci
Speaking of the Kernel, it is time to see what modules have been loaded that would operate the wireless card. Sometimes these are in conflict or are simply the wrong ones. There are many modules that are loaded so for this example I am going to limit the results with grep for brevity's sake;

$ lsmod |grep rt3070sta
rt3070sta     555006 0
usbcore       140517 8 pl2303,usbserial,usblp,usbhid,uhci_hcd,ehci_hcd,rt3070sta

So if you have found your wireless card the next step will be configuring it.. If you have not you will need to find out why - as always google is your best friend here. Go to your distro's wiki, see if they have any information on your card then start googling the forums. You now should have a fairly good idea where your hardware failed and how to get it back under control;

it should be noted that there are often very handy GUI's to do these tasks for you and if you have gotten this far there is no shame in using them if you prefer. Check your distro

Configuring your wireless

ifconfig
The first thing to do is to bring the appliance "up." we do that with ifconfig. We can also address the unit and many other things. ifconfig is a very powerful tool and it is highly recommended that you read up on it. You can use dhcp to address as well.

$ifconfig ra0 up 192.168.1.2

iwlist
we can now see what networks are available to us. iwlist will do this for us and a few other things;

$ iwlist scanning
lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

ra0       Scan completed :

         Cell 01 - Address: 00:22:A4:E2:38:89
                    Protocol:802.11b/g
                    ESSID:"2WIRE096"
                    Mode:Managed
                    Channel:9
                    Quality:57/100 Signal level:-67 dBm Noise level:-115 dBm
                    Encryption key:on
                    Bit Rates:18 Mb/s
         Cell 02 - Address: 00:1C:DF:F8:B2:36
                    Protocol:802.11b/g
                    ESSID:"belkin54g"
                    Mode:Managed
                    Channel:11
                    Quality:68/100 Signal level:-63 dBm Noise level:-115 dBm
                    Encryption key:off
                    Bit Rates:54 Mb/s

So now we can use iwconfig to set essential parameters such as "essid", "channel", "mode", "enc", "key" and others. Some cards have additional configuration items set via "iwpriv". For additional security configuration details refer to wpa_supplicant and here.

yes, this is the hard way to configure your wireless card. In certain distros this information may even be overwritten by the GUI but if all else fails these tools are available and they are pretty well documented.

Good luck.




Go Home