From 60464e5c13a84ce986edd1806f158ae077381c6d Mon Sep 17 00:00:00 2001 From: gferg <> Date: Tue, 29 Jul 2003 19:48:36 +0000 Subject: [PATCH] updated --- .../docbook/Apache-WebDAV-LDAP-HOWTO.xml | 169 +- LDP/howto/docbook/Linux-Gamers-HOWTO.sgml | 1012 ++++--- LDP/howto/docbook/XFree86-R200.xml | 29 +- LDP/howto/linuxdoc/Modem-HOWTO.sgml | 45 +- LDP/howto/linuxdoc/User-Group-HOWTO.sgml | 2471 +++++++++-------- 5 files changed, 1980 insertions(+), 1746 deletions(-) diff --git a/LDP/howto/docbook/Apache-WebDAV-LDAP-HOWTO.xml b/LDP/howto/docbook/Apache-WebDAV-LDAP-HOWTO.xml index 783b93e5..6629d991 100644 --- a/LDP/howto/docbook/Apache-WebDAV-LDAP-HOWTO.xml +++ b/LDP/howto/docbook/Apache-WebDAV-LDAP-HOWTO.xml @@ -1,10 +1,9 @@ - - - + +
+ Apache based WebDAV Server with LDAP and SSL @@ -23,9 +22,18 @@ + + v4.0.1 + 2003-07-27 + sa + + Added more information to the SSL section. + + + v4.0 - 2002-06-29 + 2003-06-29 sa Updated the HOWTO for Apache 2.0. Also the source is in XML @@ -106,7 +114,7 @@ The tools needed to achieve this objective are: - + C Compiler e.g. GCC Apache 2 Web Server LDAP Module for Apache @@ -181,7 +189,7 @@ Download the iPlanet LDAP SDK from # make test # make install +Upon successful completion of the make install the openssl binaries should reside in /usr/local/ssl @@ -274,8 +283,28 @@ mysql 3256 3237 0 May29 ? 00:06:58 /usr/local/mysql/bin/mysqld --de -PHP +CERT DB for LDAPS:// + You will also need to get the cert7.db and key7.db from http://www.xml-dev.com/xml/key3.db and http://www.xml-dev.com/xml/cert7.db and place it in the /usr/local/apache2/sslcert/directory. + +PHP +Unzip the PHP Source Files +gzip -d php-xxx.tar.gz +tar -xvf php-xxx.tar + + +Configure and run the make command +cd php-xxx +./configure --with-mysql --with-apxs=/usr/local/apache2/bin/apxs + +Compile the source code +# make +# make install + + +Copy the php.ini file to the appropriate directory +cp php.ini-dist /usr/local/lib/php.ini + @@ -404,7 +433,7 @@ please use: # ps -ef | grep httpd Create a test directory called 'DAVtest' -under /usr/local/apache/htdocs : +under /usr/local/apache2/htdocs : # mkdir /usr/local/apache/htdocs/DAVtest @@ -572,18 +601,17 @@ has access to this folder. -Implementing and using SSL to secure WebDAV traffic +Implementing and using SSL to secure HTTP traffic Security of the data stored on a file server is very important these days. Compromised data can cost thousands of dollars to company. In the last section, we compiled LDAP authentication module into the Apache build to provide a Authentication mechanism. However HTTP traffic is very insecure, and all data is transferred in clear text - meaning, the LDAP authentication -(userid/passwd) will be transmitted as clear text as well. This create a problem. Anyone can sniff these userid/passwd and gain +(userid/passwd) will be transmitted as clear text as well. This creates a problem. Anyone can sniff these userid/passwd and gain access to DAV store. To prevent this we have to encrypt HTTP traffic, essentially HTTP + SSL or HTTPS. Anything transferred over -HTTPS is encrypted, so the LDAP userid/passwd can not be sniffed. HTTPS runs on port 443. The resulting build from the last +HTTPS is encrypted, so the LDAP userid/passwd can not be easily deciphered. HTTPS runs on port 443. The resulting build from the last section's compilation process will have Apache to listen to both port 80 (normal HTTP) and 443 (HTTPS). If you are just going to use this server for DAV, then I will highly suggest that you close port 80. In this section of the HOWTO I will provide some -information regarding SSL and maintaining SSL on a WebDAV server. However this is a not limited to a DAV server, it can be -used on any web server. +information regarding SSL and maintaining SSL on a Apache HTTP server. Introduction to SSL @@ -607,12 +635,10 @@ The following is a over-simplified structure of the layers involved in SSL. Encryption algorithms used in SSL -There are 2 kinds of encryption algorithms used in SSL. + There are three kinds of cryptographic techniques used in SSL: Public-Private Key, Symmetric Key, and Message Digest. -Public-Private Key Crytography - Initiating SSL connection: This algorithm is used for initiating the SSL session. In this algorithm, the encryption must -be performed using the Public Key, and the decryption can only be performed using the Private Key. The Web-server holds the -private Key, and sends the Public key to the client. The public key is sent to the client in a certificate. + Public-Private Key Crytography - Initiating SSL connection: In this algorithm, encryption and decryption is performed using a pair of private and public keys. The Web-server holds the private Key, and sends the Public key to the client in the Certificate. @@ -635,20 +661,20 @@ private Key, and sends the Public key to the client. The public key is sent to t If everything is successful the SSL connection is initiated. - +Note:Anything encrypted with Private Key can only be decrypted by using the Public Key. Similarly anything encrypted using the Public Key can only be decrypted using the Private Key. There is a common mis-conception that only the Public Key is used for encryption and Private Key is used for decryption. This is not case. Any key can be used for encryption/decryption. However if one key is used for encryption then the other key must be used for decryption. e.g. A message can not encrypted and then decrypted using only the Public Key. + Using Private Key to encrypt and a Public Key to decrypt ensures the integrity of the sender (owner of the Private Key) to the recipients. Using Public Key to encrypt and a Private Key to decrypt ensures that only the inteded recipient (owner of the Private Key) will have access to the data.(i.e. only the person who holds the Private Key will be able to decipher the message). -Symmetric Cryptography - Actuall transmission of data: After the SSL connection has been established, Symmetric cryptography -is used to encrypting data. Public-Private Key cryptography is CPU cycle intensive, so Symmetric cryptography is used. In -symmetric cryptography the data can be encrypted and decrypted using the same key. The Key for symmetric cryptography was -exchange in the initiation process. - + Symmetric Cryptography - Actual transmission of data: After the SSL connection has been established, Symmetric cryptography is used for encryption data as it uses CPU cycles. In symmetric cryptography the data can be encrypted and decrypted using the same key. The Key for symmetric cryptography is exchanged during the initiation process, using Public Private Key Cryptography. + +Message Digest The server uses message digest algoritm such as HMAC, SHA, MD5 to verify the integrity of the transferred data. + Test Certificates While compiling Apache we created a test certificate. We used the makefile provided by mod_ssl to create this custom Certificate. We used the command: -# make certificate TYPE=custom +# make certificate TYPE=custom This certificate can be used for testing purposes. @@ -656,10 +682,7 @@ mod_ssl to create this custom Certificate. We used the command: Certificates for Production use -For production use you will need a certificate from a CA. -CA or Certificate Authorities are certificate vendors, who are listed as a Trusted CA in user's browser client. As mentioned in -the Encryption Algorithms section, if the CA is not listed as a trusted authority, your user will get a warning message when -trying to connect to a secure location. + For production use you will need a certificate from a Certificate Authority (hereafter CA). Certificate Authorities are certificate vendors, who are listed as a Trusted CA in the user's browser. As mentioned in the Encryption Algorithms section, if the CA is not listed as a trusted authority, your user will get a warning message when trying to connect to a secure location. Similarly the test certificates will also cause a warning message to appear on the user's browser. @@ -676,26 +699,80 @@ and send it to the CA of your choice. -cd /usr/local/apache/conf/ -/usr/local/ssl/bin/openssl req -new -nodes -keyout private.key -out public.csr +# cd /usr/local/apache/conf/ +# /usr/local/ssl/bin/openssl req -new -nodes -keyout private.key -out public.csr +Generating a 1024 bit RSA private key +............++++++ +....++++++ +writing new private key to 'private.key' +----- +You are about to be asked to enter information that will be incorporated +into your certificate request. +What you are about to enter is what is called a Distinguished Name or a DN. +There are quite a few fields but you can leave some blank +For some fields there will be a default value, +If you enter '.', the field will be left blank. +----- +Country Name (2 letter code) [AU]:US +State or Province Name (full name) [Some-State]:California +Locality Name (eg, city) []:San Jose +Organization Name (eg, company) [Internet Widgits Pty Ltd]:Seagate +Organizational Unit Name (eg, section) []:Global Client Server +Common Name (eg, YOUR name) []:xml.seagate.com +Email Address []:saqib@seagate.com + +Please enter the following 'extra' attributes +to be sent with your certificate request +A challenge password []:badpassword +An optional company name []: + -At this point you will be asked several about your server location, to generat the Certificate Signing Request +At this point you will be asked several questions about your server to generate the Certificate Singning Request -Note: You Common Name is the DNS name of your webserver e.g. dav.server.com . If you put in anything else, it will NOT work. Remember the passwd that you use, for future reference. +Note: You Common Name (CN) is the DNS name of your webserver e.g. dav.server.com . If you put in anything else, it will NOT work. Remember the passwd that you use, for future reference. -Once the process is complete, you will have private.key and a public.csr . At this pointe the public.key is not encrypted. To encrypt" +Once the process is complete, you will have private.key and a public.csr . You will need to submit the public.csr to the Certification Authority. At this pointe the public.key is not encrypted. To encrypt: - -mv private.key private.key.unecrpyted -/usr/local/ssl/bin/openssl rsa -in private.key.unecrpyted -des3 -out private.key + + # mv private.key private.key.unecrpyted +# /usr/local/ssl/bin/openssl rsa -in private.key.unecrpyted -des3 -out private.key + +Installing Server Private Key, and Server Certificate + Once the Certification Authority processes your request, they will send an encoded certificate back to you. You will need to place this certificate on the server, and tell Apache where to find it. + For this example, the Private Key is placed in the /usr/local/apache2/conf/ssl.key/ directory, and the Sever Certificate is placed in the /usr/local/apache2/conf/ssl.crt/. + Copy the file received from the Certification to a file called server.crt in the /usr/local/apache2/conf/ssl.crt/. + And place the private.key generated in the previous step in the /usr/local/apache2/conf/ssl.key/ + Then modify the /usr/local/apache2/conf/ssl.conf to point to the correct Private Key and Server Certificate files: + + +# Server Certificate: +# Point SSLCertificateFile at a PEM encoded certificate. If +# the certificate is encrypted, then you will be prompted for a +# pass phrase. Note that a kill -HUP will prompt again. Keep +# in mind that if you have both an RSA and a DSA certificate you +# can configure both in parallel (to also allow the use of DSA +# ciphers, etc.) +SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt +#SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server-dsa.crt + +# Server Private Key: +# If the key is not combined with the certificate, use this +# directive to point at the key file. Keep in mind that if +# you've both a RSA and a DSA private key you can configure +# both in parallel (to also allow the use of DSA ciphers, etc.) +SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/private.key +#SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server-dsa.key + + + Removing passphrase from the RSA Private Key RSA Private Key stored on the webserver is usually encrypted, and you need a passphrase to parse the file. That is why you @@ -712,11 +789,9 @@ are prompted for a passphrase when start Apache with modssl: -Encrypting the RSA Private Key is very important. If somebody gets hold of the you "Unencrypted RSA Private Key" he/she can easily -impersonate your webserver. If the Key is encrypted, the hacker can not do anything without the passphrase. +Encrypting the RSA Private Key is very important. If a cracker gets hold of your "Unencrypted RSA Private Key" he/she can easily impersonate your webserver. If the Key is encrypted, the cracker can not do anything without brute forcing the passphrase. Use of a strong (ie: long) passphrase is encouraged. -However encrypting the Key can sometimes be nuisance, since you will be prompted for a passphrase everytime you start the web-server. -Specially if you are using rc scripts to start the webserver at boot time, the prompt for passphrase creates problems. +However encrypting the Key can sometimes be nuisance, since you will be prompted for a passphrase everytime you start the web-server. Especially if you are using rc scripts to start the webserver at boot time. The prompt for a passphrase will stop the boot process, waiting for your input. You can get rid of the passphrase prompt easily by decrypting the Key. However make sure that no one can hold of this Key. I would recommend Hardening and Securing guidelines be followed before decrypting the Key on the webserver. @@ -742,18 +817,26 @@ One way to secure the decrypted Private Key is to make readable only by the root Trusted Certificate Authorities The following is list of Certificate Authorities that are trusted by the various browsers: - + - Verisign + Baltimore + + Entrust + + Thawte + + Verisign + +
diff --git a/LDP/howto/docbook/Linux-Gamers-HOWTO.sgml b/LDP/howto/docbook/Linux-Gamers-HOWTO.sgml index eff7e6d1..891fd487 100644 --- a/LDP/howto/docbook/Linux-Gamers-HOWTO.sgml +++ b/LDP/howto/docbook/Linux-Gamers-HOWTO.sgml @@ -4,6 +4,11 @@ 2 spaces per indent level 4 spaces from left edge for environment + 5 newlines between level 1 sections. + 3 newlines between level 2 sections. + + 128 characters per line + Problems: “ and ” aren't yielding `` and ''. --> @@ -39,7 +44,7 @@ - v0.9.22, 2003-05-12 + v.0.9.34, 2003-07-29 2001 @@ -119,11 +124,12 @@ Moritz Muehlenhoff jmm@Informatik.uni-bremen.de for sending me updates (even if I'm eternally behind on them...) - Frédéric Delanoy for extensive diffs or correcting typos and docbook - mistakes + Fro?=do?=ric Delanoy for extensive diffs or correcting typos and docbook mistakes + I would also like to thank Michael Mc Donnell for sending in comments and corrections. + @@ -349,11 +355,11 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now What is Glide2? - Glide2 is a low level graphics API and driver that accesses 3D hardware accelerated functions on - 3dfx's Voodoo I, II and III cards, under XFree86 3.x. + Glide2 is a low level graphics API and driver that accesses 3D hardware accelerated functions on 3dfx's Voodoo I, II + and III cards, under XFree86 3.x. - A program can only use the special hardware accelerated features of these cards by using the - Glide2 library in one of two ways: + A program can only use the special hardware accelerated features of these cards by using the Glide2 library in one + of two ways: @@ -533,7 +539,7 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now The most striking part of SDL is that it's a cross platform library. Except for a few details, a program written in SDL will compile under Linux, MS Windows, BeOS, MacOS, MacOS X, Solaris, IRIX, FreeBSD, QNX and OSF. There are SDL - extentions written by various people to do things like handle any graphics format you care to mention, play mpegs, display + extensions written by various people to do things like handle any graphics format you care to mention, play mpegs, display truetype fonts, sprite handling and just about everything under the sun. SDL is an example of what all graphics libraries should strive for. @@ -609,8 +615,8 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now DirectX is a collection of proprietary multimedia API's, first developed by Microsoft in 1995, for its various Windows OS's. It's a mistake to say something like "DirectX is like OpenGL" or "DirectX is like SDL", as is commonly said in DirectX tutorials. Multimedia API's are more centralized on Windows than they are on Linux. A more accurate - statement would be something like "DirectX is like DRI, OpenGL and SDL combined". As of Feb 2002, the most recent version - of DirectX is 8.1. The components of DirectX are: + statement would be something like "DirectX is like DRI, OpenGL and SDL combined". As of June 2003, the most recent version + of DirectX is 9.0. The components of DirectX are: @@ -656,11 +662,10 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now DirectX and therefore limit their audience to Windows users only. If you're a game writer, please consider using cross platform libraries and stay away from DirectX. - A company named realtechVR started an open - source project, DirectX Port, <> which, like wine, provides a Direct3D emulation - layer that implements Direct3D calls. The project was focused on the BeOS platform, but is now focused - on MacOS and Linux. You can get the latest cvs - from their sourceforge page at <>. + A company named realtechVR started an open source project, DirectX Port, <> which, like wine, provides a Direct3D emulation layer that implements + Direct3D calls. The project was focused on the BeOS platform, but is now focused on MacOS and Linux. You can get the + latest cvs from their sourceforge page at <>. @@ -683,172 +688,14 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now -Definitions: Video Card and 3D Terminology - - We'll cover video card and 3D graphics terminology. This material isn't crucial to actually getting a - game working, but may help in deciding what hardware and software options are best for you. - - - - Textures - - A rendered scene is basically made up of polygons and lines. A texture is a 2D image (usually a - bitmap) covering the polygons of a 3D world. Think of it as a coat of paint for the polygons. - - - - - - T&L: Transform and Lighting - - The T&L is the process of translating all the 3D world information (position, distance, and - light sources) into the 2D image that is actually displayed on screen. - - - - - - AA: Anti Aliasing - - Anti aliasing is the smoothing of jagged edges along a rendered curve or polygon. Pixels are - rectangular objects, so drawing an angled line or curve with them results in a 'stair step' effect, also - called the 'jaggies'. This is when pixels make, what should be a smooth curve or line, jagged. AA uses - CPU intensive filtering to smooth out these jagged edges. This improves a game's visuals, but can also - dramatically degrade performance. - - AA is used in a number of situations. For instance, when you magnify a picture, you'll notice - lines that were once smooth become jagged (try it with The Gimp). Font rendering is another big - application for AA. - - AA can be done either by the application itself (as with The Gimp or the XFree86 font system) or - by hardware, if your video card supports it. Since AA is CPU intensive, it's more desirable to perform - it in hardware, but if we're talking about semi-static applications, like The Gimp, this really isn't an - issue. For dynamic situations, like games, doing AA in hardware can be crucial. - - - - - - FSAA: Full Screen Anti-Aliasing - - FSAA usually involves drawing a magnified version of the entire screen in a separate framebuffer, - performing AA on the entire image and rescaling it back to the normal resolution. As you can imagine, - this is extremely CPU intensive. You will never see non hardware accelerated FSAA. - - - - - - Mip Mapping - - Mip mapping is a technique where several scaled copies of the same texture are stored in the video - card memory to represent the texture at different distances. When the texture is far away a smaller - version of the texture (mip map) is used. When the texture is near, a bigger one is used. Mip mapping - can be used regardless of filtering method (). Mip mapping reduces - memory bandwidth requirements since the images are in hardware, but it also offers better quality in the - rendered image. - - - - - - Texture Filtering - - Texture filtering is the fundamental feature required to present sweet 3D graphics. It's used for - a number of purposes, like making adjacent textures blend smoothly and making textures viewed from an - angle (think of looking at a billboard from an extreme angle) look realistic. There are several common - texture filtering techniques including point-sampling, bilinear, trilinear and anisotropic - filtering. - - When I talk about 'performance hits', keep in mind that the performance hit depends on what - resolution you're running at. For instance, at a low resolution you may get only a very slight hit by - using trilinear filtering instead of bilinear filtering. But at high resolutions, the performance hit - may be enormous. Also, I'm not aware of any card that uses anisotropic texture filtering. TNT drivers - claim they do, but I've read that these drivers still use trilinear filtering when actually rendering an - image to the screen. - - - - Point Sampling Texture Filtering - - Point sampling is rare these days, but if you run a game with 'software rendering' (which - you'd need to do if you run a 3D accelerated game without a 3D accelerated board) you're likely to - see it used. - - - - - - Bilinear Texture Filtering - - Bilinear filtering is a computationally cheap but low quality texture filtering. It - approximates the gaps between textures by sampling the color of the four closest (above, below, left - and right) texels. All modern 3D accelerated video cards can do bilinear filtering in hardware with - no performance hit. - - - - - - Trilinear Texture Filtering - - Trilinear filtering is a high quality bilinear filter which uses the four closest pixels in - the second most suitable mip map to produce smoother transitions between mip map levels. Trilinear - filtering samples eight pixels and interpolates them before rendering. Trilinear filtering always - uses mip mapping. Trilinear filtering eliminates the banding effect that appears between adjacent - mip map levels. Most modern 3D accelerated video cards can do trilinear filtering in hardware with - no performance hit. - - - - - - Anisotropic Texture Filtering - - Anisotropic filtering is the best but most CPU intensive of the three common texture filtering - methods. Trilinear filtering is capable of producing fine visuals, but it only samples from a - square area which in some cases is not the ideal method. Anisotropic (meaning 'from any direction') - samples from more than 8 pixels. The number of sampled pixels and which sampled pixels it uses - depends on the viewing angle of the surface relative to your screen. It shines when viewing - alphanumeric characters at an angle. - - - - - - - - - Z Buffering - - A Z buffer is a portion of RAM which represents the distance between the viewer (you) and each - pixel of an object. Many modern 3D accelerated cards have a Z buffer in their video RAM, which speeds - things up considerably, but Z buffering can also be done by the application's rendering engine. - However, this sort of thing clearly should be done in hardware wherever possible. - - Every object has a stacking order, like a deck of cards. When objects are rendered into a 2D - frame buffer, the rendering engine removes hidden surfaces by using the Z buffer. There are two - approaches to this. Dumb engines draw far objects first and close objects last, obscuring objects below - them in the Z buffer. Smart engines calculate what portions of objects will be obscured by objects - above them and simply not render the portions that you won't see anyhow. For complicated textures this - is a huge savings in processor work. - - - - - - - - - XFree86 and You - If you're going to game under X, it's crucial that you know a bit about X. The "X Window User HOWTO", - and especially "man XF86Config" are required reading. Don't short change yourself; - read them. They have an extremely high "information to space" ratio. Many problems can be fixed easily if - you know your way around XF86Config (or XF86Config-4). + If you're going to game under X, it's crucial that you know a bit about X. The "X Window User HOWTO", and especially + "man XF86Config" are required reading. Don't short change yourself; read them. They have an extremely + high "information to space" ratio. Many problems can be fixed easily if you know your way around + XF86Config (or XF86Config-4). Getting information about your X system @@ -908,7 +755,10 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now the 4 horizontal and 4 vertical numbers which defines your videomode (the 1st horizontal/vertical numbers gives the screen resolution). These 8 numbers will tell you which modeline your X uses. See the XFree86 Video - Modetiming Howto for more information. + Timings Howto for more information. Note that explicit modelines are no longer necessary, since XFree 4.0.1 and up + computes modetimings automatically based on your monitor's and video card's capabilities. However, there may be times + when you'll want to play around with mode timings, like for weird hardware or if want to tweak your + display. the "dot clock" your videocard is running at. @@ -940,8 +790,8 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now Getting information about your 3D system - glxinfo gives lots of useful information about OpenGL (whether direct rendering is being used - or not, the currently installed versions of glx and mesa), vendor/renderer strings, the GL library files being used and + glxinfo gives lots of useful information about OpenGL like whether direct rendering enabled, + the currently installed versions of glx and mesa, vendor/renderer strings, the GL library files being used and more. @@ -951,9 +801,42 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now - Playing Games In X Without a Window Manager + Playing Games In X Without a Window Manager - + When playing a game under X, you should consider starting X without a window manager (wm). Heavy weight wm's, like + Enlightenment, may produce a noticeable slow down. Even light weight wm's, like twm, rob your CPU of clock cycles (and in + twm's case, even full screen games will have a frame around the window). To run a game without a wm, modify + .xinitrc, which tells X what to run upon starting, in your home directory. Here is what my .xinitrc + looks like: + + + #quake3 +set r_gldriver libGR.so.1 + #exec ut + #lsdldoom -server 2 + #exec tribes2 + exec /usr/bin/enlightenment + + + You'll usually see a window or desktop manager being executed from this file (GNOME or KDE). Comment out the lines + containing the wm or desktop manager with a pound sign (#) and place your game on a new line with any command line + arguments you want to pass. If the game is not located in your $PATH, give its full path name. Note that this is for + people who use `startx' to start X. + + I never use things like gdm or run-level 5 (so I'm not positive here), but I suspect that if you do, you'll need to + do things a bit differently. My best guess is to go to single user mode (run-level 1) by: + + + # telinit 1 + + + then edit .xinitrc, then go back to run-level 5 by + + + # telinit 5 + + + Then when you stop playing, go to run-level 1, modify .xinitrc then go back to run-level 5. I don't use this stuff, + so I'm not sure, but you may need to kill gdm. I'd appreciate some feedback on this. @@ -967,77 +850,33 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now Various Topics - Memory Type Register Ranges + Memory Type Range Registers - Starting with Pentium class processors and including Athlon, K6-2 and other CPUs, there are Memory - Type Register Ranges (MTRR) which control how the processor accesses ranges of memory locations. - Basically, it turns many smaller separate writes to the video card into a single write (a burst). This - increases efficiency in writing to the video card and can speed up your graphics by 250% or more. + Starting with Pentium class processors and including Athlon, K6-2 and other CPUs, there are Memory Type Range + Registers (MTRR) which control how the processor accesses ranges of memory locations. Basically, it turns many smaller + separate writes to the video card into a single write (a burst). This increases efficiency in writing to the video card and + can speed up your graphics by 250% or more. - See /usr/src/linux/Documentation/mtrr.txt for details. Note that since this - file was written, XFree86 has been patched to automatically detect your video RAM base address and size - and set up the MTRRs. + See /usr/src/linux/Documentation/mtrr.txt for details. Note that since this file was written, + XFree86 has been patched to automatically detect your video RAM base address and size and set up the MTRRs. - Milking performance from your system for all it's worth + Milking performance from your system for all it's worth If for some reason you're using X 3.3, follow the instructions given by mtrr.txt (see - section 5.1) to set up your MTRRs. X 4.0 does this automatically for you. + section to set up your MTRRs. X 4.0 does this automatically for you. - Don't run a window manager (wm). Some wm's like twm don't take up much CPU cycles, but - still rob you of performance. Some window managers like enlightenment will definitely produce a - noticeable slow down. To run a game without a wm, you modify .xinitrc in your home directory. Here is - what my .xinitrc looks like: + If you're playing a game under X, don't run a window manager, and certainly don't run a + desktop manager like GNOME or KDE. See section for details. - - #quake3 +set r_gldriver libGR.so.1 - #/usr/local/games/SinDemo/Sin - #exec ut - #lsdldoom -server 2 - #exec tribes2 - exec /usr/bin/enlightenment - - - This file tells X what client to run upon starting. Usually this is your wm, and/or a desktop - manager (GNOME or KDE). Comment out the lines containing a wm and desktop manager with a pound sign (#) - and place your game on a new line with any command line arguments you want to pass. If the game is not - located in your $PATH, give its full path name. Note that this is for people who use `startx' to start - X. - - I never use things like gdm or run-level 5 (so I'm not positive here), but I suspect that if you do, - you'll need to do things a bit differently. My best guess is to go to single user mode (run-level 1) - by: - - - # telinit 1 - - - then edit .xinitrc, then go back to run-level 5 by - - - # telinit 5 - - - Then when you stop playing, go to run-level 1, modify .xinitrc then go back to run-level 5. I don't - use this stuff, so I'm not sure, but you may need to kill gdm. I'd appreciate some feedback on - this. - - Kill all not-essential processes. Of course you'll have to do this as root. A better way to do - this than typing "ps ax", getting ntpd's pid, and sending it a SIGKILL (with kill -9) is to make use of - pidof: - - - # kill -9 `pidof ntpd` - - - However, an even better alternative is to use the startup scripts on your system. On Debian, the - startup scripts for run-level 2 are located in /etc/rc2.d/. You can kill a service in an orderly manner - by sending its startup scrip the `stop' command: + Kill all non-essential processes (you'll have to do this as root) by using the startup scripts on your system. On + Debian, the startup scripts for run-level 2 are located in /etc/rc2.d/. You can kill a service in an orderly manner by + sending its startup script the `stop' command: # cd /etc/rc2.d @@ -1050,10 +889,9 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now # telinit 1 - This will even get rid of getty; your system will be running nothing which is absolutely crucial to - its operation. You'll have something like 10 processes running. The downside is that you'll have to play - the game as root. But your process table will be a ghost town, and all that extra CPU will go straight to - your game. + This will even get rid of getty; your system will only be running whatever is absolutely crucial to its operation. + You'll have something like 10 processes running. The downside is that you'll have to play the game as root. But your + process table will be a ghost town, and all that extra CPU will go straight to your game. @@ -1326,16 +1164,14 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now Saved Games - If your game allows for saved games, then sending the author a copy of the saved game is useful - because it helps the tech reproduce whatever is going wrong. For commercial games, this option is more - fruitful than sending a core file or call stack since commercial games can't be recompiled to include - debugging information. You should definitely ask before sending a save game file because they tend to - get long, but a company like Loki Software has lots of bandwidth. Mike Phillips (formerly of Loki - Software) mentioned that sending in saved games to Loki is definitely a good thing. + If your game allows for saved games, then sending the author a copy of the saved game is useful because it helps the + tech reproduce whatever is going wrong. For commercial games, this option is more fruitful than sending a core file or + call stack since commercial games can't be recompiled to include debugging information. You should definitely ask before + sending a save game file because they tend to be long, but gaming companies usually have lots of bandwidth. Mike Phillips + (formerly of Loki Software) mentioned that sending in saved games to Loki is definitely a good thing. - Needless to say, this only applies if your game crashes reproducably at a certain point. If the - game segfaults every time you run it, or is incredibly slow, a saved game file won't be of much - help. + Needless to say, this only applies if your game crashes reproducably at a certain point. If the game segfaults + every time you run it, or is incredibly slow, a saved game file won't be of much help. @@ -1360,32 +1196,31 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now Suppose gfx.wad is already on my system, but couldn't be found because it isn't in the right - directory. Then where IS the right directory? Wouldn't it be helpful to know where these programs - looked for the missing files? + directory. Then where IS the right directory? Wouldn't it be helpful to know where these programs looked for the missing + files? - This is where strace shines. strace tells you what system calls are being made, with what - arguments, and what their return values are. In my `Kernel Module Programming Guide' (due to be - released to LDP soon), I outline everything you may want to know about strace. But here's a brief - outline using the canonical example of what strace looks like. Give the command: + This is where strace shines. strace tells you what system calls are being made, with what arguments, and what their + return values are. In my `Kernel Module Programming Guide' (due to be released to LDP soon), I outline everything you may + want to know about strace. But here's a brief outline using the canonical example of what strace looks like. Give the + command: strace -o ./LS_LOG /bin/ls - The -o option sends strace's output to a file; here, LS_LOG. The last argument to strace is the - program we're inspecting, here, "ls". Look at the contents of LS_LOG. Pretty impressive, eh? Here is - a typical line: + The -o option sends strace's output to a file; here, LS_LOG. The last argument to strace is the program we're + inspecting, here, "ls". Look at the contents of LS_LOG. Pretty impressive, eh? Here is a typical line: open(".", O_RDONLY|O_NONBLOCK|0x18000) = 4 - We used the open() system call to open "." with various arguments, and "4" is - the return value of the call. What does this have to do with files not being found? + We used the open() system call to open "." with various arguments, and "4" is the return value + of the call. What does this have to do with files not being found? - Suppose I want to watch the StateOfMind demo because I can't ever seem to get enough of it. One - day I try to run it and something bad happens: + Suppose I want to watch the StateOfMind demo because I can't ever seem to get enough of it. One day I try to run it + and something bad happens: % ./mind.i86_linux.glibc2.1 @@ -1407,20 +1242,19 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now write(2, "Can\'t open data file \'mind.dat\'."..., ) = 33 - It was looking for mind.dat in only one directory. Clearly, mind.dat isn't - in /usr/share. Now we can - try to locate mind.dat and move it - into /usr/share, or better, create a symbolic link. + It was looking for mind.dat in only one directory. Clearly, mind.dat + isn't in /usr/share. Now we can try to locate mind.dat and + move it into /usr/share, or better, create a symbolic link. - This method works for libraries too. Suppose the library libmp3.so.2 is in /usr/local/include but - your new game "Kill-Metallica" can't find it. You can use strace to determine where Kill-Metallica was - looking for the library and make a symlink from /usr/local/include/libmp3.so.2 to wherever Kill-Metallica - was looking for the library file. + This method works for libraries too. Suppose the library libmp3.so.2 is in + /usr/local/include but your new game "Kill-Metallica" can't find it. You can use + strace to determine where Kill-Metallica was looking for the library and make a symlink from /usr/local/include/libmp3.so.2 to wherever Kill-Metallica was looking for the library + file. - strace is a very powerful utility. When diagnosing why things aren't being found, it's your best - ally, and is even faster than looking at source code. As a last note, you can't look up information in - source code of commercial games from Lokisoft or Tribsoft. But you can still use strace with - them! + strace is a very powerful utility. When diagnosing why things aren't being found, it's your best ally, and is even + faster than looking at source code. As a last note, you can't look up information in source code of commercial games from + Lokisoft or Tribsoft. But you can still use strace with them! @@ -1437,9 +1271,9 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now At the prompt, type "reset". This should clear up many problems, including consoles hosed by an SVGAlib or ncurses based game. - Try running the game again and normally. Once I had to kill Quake III in a hurry, so I gave it the 3 - fingered salute. The console was hosed with a quasi-graphics screen. Running Quake III and quitting normally fixed the - problem. + Try running the game again and normally. Once I had to kill Quake III in a hurry, so I performed a + Ctl-Alt-Backspace. The console was hosed with a quasi-graphics screen. Running Quake III and quitting + normally fixed the problem. The commands deallocvt and openvt will work for most of the other problems you'll have. deallocvt N kills terminal N entirely, so that Alt-FN doesn't @@ -1522,69 +1356,317 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now -Hardware - I'm no Tom's Hardware or Anandtech, and don't have access to all the wealth of hardware that's out there. Contributions - and information to fill out this section would is welcome. This stuff changes very often, and peoples' experience with - hardware would be useful. +Video Cards - Which video card is the best? - If you're using Linux, you must be smart enough to know that there isn't a plain answer to this question. There - seem to be 3 choices for hardware accelerated 3D these days: + History - - 3dfx: Voodoo cards - Nvidia: GeForce - ATI: Radeon - + Once upon a time, a company in San Jose, California named 3dfx Interactive was king of the gaming video card market. + In October 1996 they released the Voodoo I, which was a phenomenal success. It was the first hardware accelerated card, + but only rendered 3D; it had to be piggybacked with a 2D video card. The idea was that 2D rendering was handled by a high + quality 2D video card (Matrox was immensely popular at the time) but 3D information (see Glide2, section ) would be passed to the Voodoo I and rendered, using the Voodoo's fast hardware to perform the necessary + graphics calculations. They released the Voodoo Rush in April 1996. It should've been a more powerful card, with a 50MHz + GPU and 8MB of RAM. Even better, it was their first combined 2D/3D card, meaning that it freed up a valuable PCI slot + (most PC's only had a couple of PCI slots back then) but the Rush wasn't as popular. 3dfx removed the multi-texturing + unit from the Rush, and it was outperformed by the Voodoo I. At the time, ATI had their Rage series and Nvidia had their + Riva 128, but the Voodoo I blew them all away. - According to Tom's Hardware and Anadtech, the Radeon is king when playing at very high resolution (as in 1600x1200), - at 32bpp, in Windows. Otherwise the GeForce is king. There are two problems with this. We don't normally play at - 1600x1200/32bb, and we don't play on Windows (at least I don't). + This was a good time for Linux. id Software's open sourced the Doom codebase and ported Quake I to Linux (December + 1996). We were getting our first tastes of real commercial gaming. Life was simple: you purchased a Voodoo. And it felt + good, because 3dfx open sourced their drivers. The king of video cards worked with Linux developers. Not only did we + have the best video cards, but the drivers were all open source. - There aren't many recent video card benchmarks out for Linux. The most recent one I've seen is from March 2001 at - . Considering the dearth of benchmarks - out there, this needs to be taken as a canonical benchmark, so I simply quote their conclusion: - -
- - At this point the performance numbers tell a pretty simple story, if it's raw speed you are looking for, the - GeForce 2 is your choice. There is very little performance drawback to running your favorite games in Linux instead of - Windows with this card. It provides a truly impressive performace across the board. The Radeon's performance will almost - definitely improve as the DRI drivers mature, but for now, especially for the impatient, it is simply not a good choice - for the hard core 3d gamer. + In March 1998, 3dfx released their Voodoo II, with its 3.6GB/sec memory bandwith, 12MB of video memory and 90MHz + core. It supported resolutions up to 1024x768. This was 3dfx in its heyday. Like the Voodoo I, the Voodoo II was a 3D + only card, and piggy backed with a 2D video card. The Voodoo Banshee was released in September 1998 as a combined 2D/3D + card, like the Rush. Despite the faster 100MHz core, the Banshee was outperformed by the Voodoo II because its + multi-texturing unit was removed, like with the Rush. And again like the Rush, it wasn't popular. But 3dfx reigned + supreme, and nobody could touch them. - If, however, you are a graphics designer, and want a card with impeccable 2d image quality, with 3d graphics only - a secondary priority, the Radeon is your best bet. The DRI drivers, even in their current state, are quite usable. For - 2d only users, XFree86 4.0.2 provides production quality 2d drivers. The GeForce thoroughly trounced the Radeon in the - Xmark performance test, so if you aren't running at a ultra high resolution, or aren't that picky, the GeForce is once - again a better pick. - -
+ In April 1999, the Voodoo III was released. There were a number of Voodoo III's, ranging from a 143MHz core speed + to 183MHz. There were TV-out versions. There were PCI and AGP versions (it was the first AGP video card). It was + another success, but 3dfx began to lose ground to Nvidia, which released their TNT 2. The TNT 2 outperformed the Voodoo + II, and accelerated 3D graphics at full 32 bit color, while the Voodoo's were stuck at 16 bit color. But life was still + good for Linux. We had a card that was almost neck-to-neck with Nvidia, our drivers were open source, and in December + 1999, id Software gave us a huge gift: they open sourced the Quake I codebase. - Now for my own input. The Radeon is a pretty amazing card. It's what I use, and I have yet to see a game that - needs more power than the Radeon is able to provide. However, the OpenGL renderer for the Radeon is buggy, although the - only games I've seen that suffer greatly are Loki Software's Heavy Metal and Soldier Of Fortune. Hopefully the people - doing Mesa for the Radeon will fix this very soon since the Radeon is the best option for people who don't want to rely on - the closed source, proprietary GeForce. As of June 2002, SVGAlib support Radeon cards is shaky. Developers have reported - that SVGAlib works on the Radeon 7500, Radeon QD (ddr 64MB model) but has problems on the Radeon VE. + Then Nvidia released the GeForce 256 in October 1999. 3dfx's Voodoo IV, its direct competitor, was about a year + late which is very bad when you're competing for a bleeding edge market. While Nvidia was putting real R&D into their + cards, 3dfx was simply adding more and faster RAM. The Voodoo IV and V rendered in full 32bpp color, had great AA support + (section ), featured a 2nd GPU, more memory, and was arguably the king of of video cards. However, + 3dfx's late release of the Voodoo IV and V coupled with the fact that the GeForce could be had for half the price meant + that 3dfx was sinking fast. For Linux, the newest Voodoo's could only accelerate at 16 and 24 bit color. Worse still, + the Voodoo V's 2nd GPU was unused by the Linux driver (and to this day, the Voodoo V is functionally equivalent to the + single GPU Voodoo IV on Linux). Most Windows users were switching to Nvidia, and despite the fact that the Nvidia drivers + were proprietary, even Linux users began to jump onto the Nvidia bandwagon. VA Linux, the largest Linux server vendor, + put Nvidia into their machines. - Now about the Voodoo cards. Unfortunately, 3dfx was bought out by nVidia, so these cards are a dead end market. If - you're out to play the bleeding edge games like Rune or Tribes2, you'll want the Voodoo 3, 4 or 5. Preferably the 4 or 5. - I think the Voodoo 5 is basically a Voodoo 4 with a second processer. However, this processor is not utilized by the - Linux driver, and rumor says that the Linux 3dfx driver will never support it. So as far as Linux is concerned, the - Voodoo 4 and 5 are the same card. All the drivers, Glide2 library and OpenGL renderers for the Voodoo cards were open - sourced by 3dfx before they when under. It is an embarrasment to the Linux and open source community in general that this - company failed. SVGAlib officially supports only the Voodoo Banshee and the Voodoo III, but from first hand experience, - I've seen SVGAlib programs run on all the Voodoo cards. + Then in April 2000, 3dfx was attacked on a different front: ATI started releasing their first generation Radeons. + Until this point, ATI had always been an innovative (they developed their own 3D acceleration chips in 1996, about the + same time as 3dfx), but sleepy graphics chipset manufacturer. The Radeons were their first 3D accelerated card that + gamers took any real serious interest in. Their Radeons trounced both Nvidia and 3dfx. They worked with Linux + developers, open sourced all their drivers and were hailed as the great hope for Linux gaming. Nvidia came back with + fists swinging, but this was all too much for 3dfx. Between losing the benchmark wars to the GeForce and Radeon, their + lateness with new cards and high prices, 3dfx lost its market share and didn't have the funds to stay into business. On + April 18 2001, they sold most of their assets and technology to Nvidia, and in October 2002, they finally declared + bankruptcy. + + The demise of 3dfx was quite sudden and a slap in the face to the open source community. I still remember my friend + Gabe Rosa emailing me with just "Look at /." and seeing the news. It was the 2nd worst day for Linux + gaming (the 1st being the demise of Loki). And it was also a shame. 3dfx was getting ready to release a new Voodoo V + featuring 4 GPU's which would've trounced the ATI and Nvidia offerings, as well as a new card code named "Rampage" which + reportedly would've put them firmly back as the king of the hill. There are reports that the Rampage's technology (which + was sold to Nvidia) went into the GeForce 5900. Not too shabby for 3 year old technology! + + At first, things were still simple. Linux gamers would either keep their open source Voodoos, get an open source + Radeon or a closed source GeForce. However, with bigger and better games on the horizon, it was only a matter of time + before the Voodoos would no longer be a viable graphics card for modern gaming. People were still using Voodoo's, but + they were essentially out of the game at this point. + + ATI started to release a tremendous number of versions of each video card, and keeping up with them and their + terminology started to become very difficult. ATI, together with NVidia, played king of hill. Their products have been + neck to neck ever since, with GeForce taking the lead a bit more times than the Radeon. But the Radeon's drivers were + open source, so many Linux users stuck by them. Then things got even more complicated. + + ATI started becoming more and more reluctant to open source drivers for their new releases, and suddenly, it wasn't + clear who the "good guy" was anymore. Nvidia's party line was they license some of their GL code from another company, + and is thus non-releasable. Presumably, ATI doesn't want to release drivers to keep their trade secrets, well, a secret. + And it gets worse. The ATI Linux drivers have been plagued by extremely poor performance. Even when an ATI offering is + better than the current GeForce offering for Windows, the card is always trounced by GeForce on Linux. Because of the ATI + Linux driver woes, Linux users cannot use MS Windows based benchmarks or card stats. They simply don't apply to us. And + that's pretty much where we are right now. + + As a last note, the only systematic Linux video card benchmarking effort I'm aware of was done, unfortunately, in + March 2001, between a Radeon 32 DDR and a GeForce 2. You can read it for yourself at , but conclusion is that the GeForce 2 firmly + and soundly trounced the Radeon 32 DDR.
+ Current Status (13 July 2003) + + Nvidia's latest offering is the GeForce 5900, based on the NV35 chipset. It's well supported by Linux with high + quality but proprietary drivers. They do not release information to Linux developers, and so you need to use their binary + only drivers; they are not part of XFree86. Nvidia uses a convenient combined driver architecture; their driver will + support the TNT 2 all the way up to the GeForce 5900. + + ATI's has worked with Linux developers for all their Radeons up to and including the Radeon 9200. These cards have + 2D and 3D support in XFree86. I'm not entirely sure of the quality of these open source drivers, however, Soldier of + Fortune I and Heavy Metal still have opaque texture problems under first generation Radeons. Beyond the 9200, you need to + use ATI's binary only proprietary drivers, available in rpm format from ATI's website. These drivers are piss poor; a + friend of mine claims his GeForce 4400 outperforms his Radeon 9700 pro. That's shameful. + + On paper, and in the Windows benchmarks, the Radeon 9800 trounces the ill-conceived GeForce 5800 and slightly edges + out the GeForce 5900 according to the latest benchmarks. On paper, it's simply the more impressive card. But again, the + driver issue makes this information unusable for us. If you have your heart set to buy the best card for Linux, you'll + want to go with the GeForce 9800. Just prepare to be eating Ramen noodles for a few months; both cards are hellaciously + expensive. + + SVGAlib Support + + As of June 2002, SVGAlib support Radeon cards is shaky. Developers have reported that SVGAlib works on the + Radeon 7500, Radeon QD (64MB DDR model) but has problems on the Radeon VE. + + I have no information about SVGAlib and the GeForce cards. + + + + + + + + Which Video Card Should I Buy? (13 July 2003) + + The answer was very difficult last year, but here's my take on it these days: + + + + All GeForce cards require a proprietary driver which will "taint" your kernel. However, all ATI cards + beyond the Radeon 9200 also require a proprietary driver that will "taint" your kernel as well. + + Nvidia has proven that they care enough about Linux to write and maintain current and very high quality + drivers for Linux. Even when ATI open sourced its video card driver, they played the "we'll make Linux developers write + our drivers for us" game. Their current proprietary drivers are lousy. + + The current Radeon 9800 barely beats out the GeForce 5900 in benchmarks and card specs, but Linux users + won't benefit from this because of the 9800's poor drivers. + + ATI has a very long history of dropping support for hardware as fast as they can get away with + it. + + On MS Windows, when the GeForce beat out its main competing Radeon, the review claimed that the Radeon + generally had better visuals. I have no idea how this translates to Linux. + + + + Given all this, most people will want to by a GeForce at this point in time. + + + + + + Definitions: Video Card and 3D Terminology + + We'll cover video card and 3D graphics terminology. This material isn't crucial to actually getting a game working, + but may help in deciding what hardware and software options are best for you. + + + + Textures + + A rendered scene is basically made up of polygons and lines. A texture is a 2D image (usually a bitmap) covering + the polygons of a 3D world. Think of it as a coat of paint for the polygons. + + + + + + T&L: Transform and Lighting + + The T&L is the process of translating all the 3D world information (position, distance, and light sources) + into the 2D image that is actually displayed on screen. + + + + + + AA: Anti Aliasing + + Anti aliasing is the smoothing of jagged edges along a rendered curve or polygon. Pixels are rectangular objects, + so drawing an angled line or curve with them results in a 'stair step' effect, also called the 'jaggies'. This is when + pixels make, what should be a smooth curve or line, jagged. AA uses CPU intensive filtering to smooth out these jagged + edges. This improves a game's visuals, but can also dramatically degrade performance. + + AA is used in a number of situations. For instance, when you magnify a picture, you'll notice lines that were + once smooth become jagged (try it with The Gimp). Font rendering is another big application for AA. + + AA can be done either by the application itself (as with The Gimp or the XFree86 font system) or by hardware, if + your video card supports it. Since AA is CPU intensive, it's more desirable to perform it in hardware, but if we're + talking about semi-static applications, like The Gimp, this really isn't an issue. For dynamic situations, like games, + doing AA in hardware can be crucial. + + + + + + FSAA: Full Screen Anti-Aliasing + + FSAA usually involves drawing a magnified version of the entire screen in a separate framebuffer, performing AA on + the entire image and rescaling it back to the normal resolution. As you can imagine, this is extremely CPU intensive. + You will never see non hardware accelerated FSAA. + + + + + + Mip Mapping + + Mip mapping is a technique where several scaled copies of the same texture are stored in the video card memory to + represent the texture at different distances. When the texture is far away a smaller version of the texture (mip map) + is used. When the texture is near, a bigger one is used. Mip mapping can be used regardless of filtering method (). Mip mapping reduces memory bandwidth requirements since the images are in hardware, but + it also offers better quality in the rendered image. + + + + + + Texture Filtering + + Texture filtering is the fundamental feature required to present sweet 3D graphics. It's used for a number of + purposes, like making adjacent textures blend smoothly and making textures viewed from an angle (think of looking at a + billboard from an extreme angle) look realistic. There are several common texture filtering techniques including + point-sampling, bilinear, trilinear and anisotropic filtering. + + When I talk about 'performance hits', keep in mind that the performance hit depends on what resolution you're + running at. For instance, at a low resolution you may get only a very slight hit by using trilinear filtering instead + of bilinear filtering. But at high resolutions, the performance hit may be enormous. Also, I'm not aware of any card + that uses anisotropic texture filtering. TNT drivers claim they do, but I've read that these drivers still use + trilinear filtering when actually rendering an image to the screen. + + + + Point Sampling Texture Filtering + + Point sampling is rare these days, but if you run a game with 'software rendering' (which you'd need to do if + you run a 3D accelerated game without a 3D accelerated board) you're likely to see it used. + + + + + + Bilinear Texture Filtering + + Bilinear filtering is a computationally cheap but low quality texture filtering. It approximates the gaps + between textures by sampling the color of the four closest (above, below, left and right) texels. All modern 3D + accelerated video cards can do bilinear filtering in hardware with no performance hit. + + + + + + Trilinear Texture Filtering + + Trilinear filtering is a high quality bilinear filter which uses the four closest pixels in the second most + suitable mip map to produce smoother transitions between mip map levels. Trilinear filtering samples eight pixels + and interpolates them before rendering. Trilinear filtering always uses mip mapping. Trilinear filtering + eliminates the banding effect that appears between adjacent mip map levels. Most modern 3D accelerated video cards + can do trilinear filtering in hardware with no performance hit. + + + + + + Anisotropic Texture Filtering + + Anisotropic filtering is the best but most CPU intensive of the three common texture filtering methods. + Trilinear filtering is capable of producing fine visuals, but it only samples from a square area which in some cases + is not the ideal method. Anisotropic (meaning 'from any direction') samples from more than 8 pixels. The number of + sampled pixels and which sampled pixels it uses depends on the viewing angle of the surface relative to your screen. + It shines when viewing alphanumeric characters at an angle. + + + + + + + + Z Buffering + + A Z buffer is a portion of RAM which represents the distance between the viewer (you) and each pixel of an object. + Many modern 3D accelerated cards have a Z buffer in their video RAM, which speeds things up considerably, but Z + buffering can also be done by the application's rendering engine. However, this sort of thing clearly should be done in + hardware wherever possible. + + Every object has a stacking order, like a deck of cards. When objects are rendered into a 2D frame buffer, the + rendering engine removes hidden surfaces by using the Z buffer. There are two approaches to this. Dumb engines draw + far objects first and close objects last, obscuring objects below them in the Z buffer. Smart engines calculate what + portions of objects will be obscured by objects above them and simply not render the portions that you won't see anyhow. + For complicated textures this is a huge savings in processor work. + + + + + +
+ + + + + +Sound + Which sound card is best? + By the word "best" I mean best for gaming. Gamers want high quality sound for our games with the least amount of + tinkering. On the other hand, a musician would have a very different concept of what "best sound card" would mean. + If you're a musician, you might want to check out the Linux Audio + Quality HOWTO. + Now that Linux is beginning to mature, this question isn't as important as it used to be. Once upon a time, soundcards without onboard MIDI chips (most PCI sound cards) didn't do MIDI. This was mostly a problem for things like xdoom or lxdoom using musserv. These days we have MIDI emulators like Timidity and libraries like SDL which don't require @@ -1603,11 +1685,14 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now drivers on Linux. These cards include the older Ensoniq es1370 and newer Creative PCI-128. These cards are extremely cheap and trivial to get working under Linux. - I used to be quite a big fan of the Creative Soundblaster AWE 32, AWE 64 and AWE 64 gold soundcards. They are ISA, - but are plug-n-play. A couple of issues to note. First, the Creative AWE HOWTO is very out of date. Second, AFAIK, - Creative never released a Linux driver that uses the AWE 64's extra 32 voices (and they never released programming - information for it either). So to a Linux users, the AWE 64 and 32 are nearly identical sound cards. If anyone has more - information about the differences that a Linux user would see between the AWE 64 and 32, I'd like to hear from you. + I used to be a fan of the Creative Soundblaster AWE 32, AWE 64 and AWE 64 gold soundcards. These ISA PnP cards are + well supported by both OSS and Alsa. They all use the same E-mu 8000 synthesis chip which enables them to play 32 voices + simultaneously (they have 32 "channels"). A few notes: First, the Soundblaster AWE HOWTO is very out of date. Second, the + AWE 64 and AWE 64 gold can play 64 voices simultaneously, but this is done in software. Creative never released a Linux + driver for these cards (and they never released programming information to Linux developers), so Linux users cannot use + the extra 32 channels on the AWE 64 and AWE 64 gold. As far Linux users are concerned, all three cards are completely + identical (although the AWE 64 gold has gold plated connectors, which are better for sound quality than the more common + steel connectors). The Creative Soundblaster Live! is an extremely popular PCI sound card these days. I've never owned one, so I cannot comment here. However, there have been numerous reports about serious problems with the Live! and AMD motherboards @@ -1620,115 +1705,6 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now - - - - - - -Miscellaneous Problems - - Hardware Acceleration Problems - - XFree86 4.x provides a more centralized and self-contained approach to video. Much of the funkyness like kernel - modules for non-root access of video boards is, thankfully, gone. - - Hardware acceleration isn't working at all - - If you're getting like 1 fps, then your system isn't using hardware 3D acceleration. There's one of two things - that can be going on. - - - Your 3D system is misconfigured (more likely) - Game X is misconfigured (less likely) - - - The first step is to figure out which one is happening. - - - - If you have X 4.0 (X 3.* users procede to step 2), look at the output of X - -probeonly. You'll see: - - (II) XXXXXX: direct rendering enabled - - or - - (II) XXXXXX: direct rendering disabled - - where XXXXXXX depends on which video card you have. If direct rendering is disabled, then your X - configuration is definitely faulty. Your game is not at fault. You need to figure out why DRI is disabled. The - most important tool for you to use at this point is the `DRI Users Guide'. It is an excellently written document - that gives you step by step information on how to get DRI set up correctly on your machine. A copy is kept at - . - - Note that if you pass this test, your system is CAPABLE of direct rendering. Your libraries can still be - wrong. So procede to step 2. - - There is a program called gears which comes with the "mesademos" package. You can get mesademos - with Debian ( apt-get install mesademos) or you can hunt for the rpm on . You can also download and compile the source yourself from the mesa - homepage. - - Running gears will show some gears turning. The xterm from which you run gears will read "X frames in Y - seconds = X/Y FPS". You can compare your system to the list of benchmarks below. - - - CPU TYPE VIDEO CARD X VERSION AVERAGE FPS - - - Compiling Mesa and DRI modules yourself can increase your FPS by 15 FPS; quite a performance boost! So if - your number is, say, about 20 FPS slower than a comparable machine, chances are that gears is falling back on - software rendering. In other words, your graphics card isn't 3D accelerating graphics. - - More important than FPS is having a constant FPS for small and large windows. If hardware acceleration is - working, the FPS for gears should be nearly independent of window size. If it's not, then you're not getting - hardware acceleration. - - - - - - - - - - Hardware acceleration works only for the root user - - XFree86 4.x - - If the following lines aren't present in your XF86Config file, put them in: - - - Section "DRI" - Mode 0666 - EndSection - - - This allows all non-root users to use DRI. For the paranoid, it's possible to restrict DRI to only a few - non-root users. See the DRI User Guide. - - - - - - XFree86 3.x - - Voodoo cards - - Voodoo card hardware acceleration only takes place ONLY at 16bpp color and fails silently when starting X - in another color depth. - - Also, Voodoo cards need the 3dfx.o kernel module and a /dev/3dfx device file (major 107, minor 0) for non-root hardware acceleration. - Neither the module nor the device file are used under XFree86 4.x. - - - - - - - Why isn't my sound working? @@ -1796,8 +1772,8 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now ISA cards can be set to use a specific IRQ using jumpers on the card itself. With these types of cards, you need to pass the correct IRQ and memory access, "I/O port", to the driver.
- This is a sound card specific issue, and beyond the scope of this HOWTO. (I should write about how to pass info - to the driver). + This is a sound card specific issue, and beyond the scope of this HOWTO. + @@ -1886,17 +1862,125 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now +Miscellaneous Problems + + Hardware Acceleration Problems + + XFree86 4.x provides a more centralized and self-contained approach to video. Much of the funkyness like kernel + modules for non-root access of video boards is, thankfully, gone. + + Hardware acceleration isn't working at all + + If you're getting like 1 fps, then your system isn't using hardware 3D acceleration. There's one of two things + that can be going on. + + + Your 3D system is misconfigured (more likely) + Game X is misconfigured (less likely) + + + The first step is to figure out which one is happening. + + + + If you have X 4.0 (X 3.* users procede to step 2), look at the output of X + -probeonly. You'll see: + + (II) XXXXXX: direct rendering enabled + + or + + (II) XXXXXX: direct rendering disabled + + where XXXXXXX depends on which video card you have. If direct rendering is disabled, then your X + configuration is definitely faulty. Your game is not at fault. You need to figure out why DRI is disabled. The + most important tool for you to use at this point is the `DRI Users Guide'. It is an excellently written document + that gives you step by step information on how to get DRI set up correctly on your machine. A copy is kept at + . + + Note that if you pass this test, your system is CAPABLE of direct rendering. Your libraries can still be + wrong. So procede to step 2. + + There is a program called glxgears which comes with the "mesademos" package. You can get mesademos + with Debian ( apt-get install mesademos) or you can hunt for the rpm on . You can also download and compile the source yourself from the mesa + homepage. + + Running glxgears will show some gears turning. The xterm from which you run glxgears will read "X + frames in Y seconds = X/Y FPS". You can compare your system to the list of benchmarks below. + + + CPU TYPE VIDEO CARD X VERSION AVERAGE FPS + + + Compiling Mesa and DRI modules yourself can increase your FPS by 15 FPS; quite a performance boost! So if + your number is, say, about 20 FPS slower than a comparable machine, chances are that glxgears is falling back on + software rendering. In other words, your graphics card isn't 3D accelerating graphics. + + More important than FPS is having a constant FPS for small and large windows. If hardware acceleration is + working, the FPS for glxgears should be nearly independent of window size. If it's not, then you're not getting + hardware acceleration. + + + + + + + + + + Hardware acceleration works only for the root user + + XFree86 4.x + + If the following lines aren't present in your XF86Config file, put them in: + + + Section "DRI" + Mode 0666 + EndSection + + + This allows all non-root users to use DRI. For the paranoid, it's possible to restrict DRI to only a few + non-root users. See the DRI User Guide. + + + + + + XFree86 3.x + + Voodoo cards + + Voodoo card hardware acceleration only takes place ONLY at 16bpp color and fails silently when starting X + in another color depth. + + Also, Voodoo cards need the 3dfx.o kernel module and a /dev/3dfx device file (major 107, minor 0) for non-root hardware acceleration. + Neither the module nor the device file are used under XFree86 4.x. + + + + + + + + + + + + + Emulation and Virtual Machines Linux gets ragged on a lot because we don't have the wealth of games that other platforms have. Frankly, there's enough games for me, although it would be really nice to have some of the bleeding edge games and classics like Half-life and - Carmageddon. Fortunately, we have more emulators than you can shake a stick at. Although playing an emulated game is not - quite as fun as playing it on the native machine, and getting some of the emulators to work well can be a difficult task, - they're here, and there's alot of them! + Carmageddon. Fortunately, we have more emulators than you can shake a stick at. Although playing an emulated game is + sometimes not quite as fun as playing it on the native machine, and getting some of the emulators to work well can be a + difficult task, they're here, and there's alot of them! - + Apple 8-bit @@ -2040,7 +2124,7 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now <application>rewind</application> Rewind <> was started by Eric Pouech (a wine - developer) and Ove Kåven (a winex developer) in response to wine's license change (). It started + developer) and Ove Ko?=ven (a winex developer) in response to wine's license change (). It started out life as a snapshot of the last version of wine which was completely licensed under the MIT/X11 license. The aim is to keep rewind MIT/X11 based so that companies like Transgaming can offer wine based products. @@ -2088,13 +2172,12 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now Win4Lin - Win4Lin <> is a commercial product by - Netraverse. Like vmware () it uses the virtual machine approach to running Windows - applications, so you'll get a big window from which you can boot Windows and run all kinds of Windows applications. - Unlike vmware, win4lin only does Windows 95/98/ME, but this turns out to be better for gamers. Because win4lin - concentrates on these operating systems, reports say that it's faster and does a better job at running games under - these operating system than vmware. It's also much cheaper than vmware. The most recent version of Win4Lin as of May - 2002 is 4.0. + Win4Lin <> is a commercial product by Netraverse. Like + vmware () it uses the virtual machine approach to running Windows applications, so you'll get a + big window from which you can boot Windows and run all kinds of Windows applications. Unlike vmware, win4lin only + does Windows 95/98/ME, but this turns out to be better for gamers. Because win4lin concentrates on these operating + systems, reports say that it's faster and does a better job at running games under these operating system than vmware. + It's also much cheaper than vmware. The most recent version of Win4Lin as of June 2003 is 5.0. @@ -2104,9 +2187,9 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now It only supports serial and parallel devices. This is important for people who use USB joysticks. Note that vmware supports up to 2 USB devices. - As of January 2002, expect to pay $80 without printed docs and $90 with printed docs. In addition, - there isn't an evaluation copy available, although you get a 30 day money back guarantee. However, since it's - commercial you do get tech support. vmware is considerably more expensive. + As of June 2003, expect to pay $89.99 without printed docs and $99.99 with printed docs. In addition, + there isn't an evaluation copy available, although you get a 30 day money back guarantee. However, since it's + commercial you do get tech support. vmware is considerably more expensive. Like vmware, you're required to have a licensed copy of Win95 or Win98. Win4Lin cannot use an existing Windows installation the way wine can. @@ -2328,7 +2411,7 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now ebgames <> no longer officially sells Linux software. They stopped selling Linux games and distributions at around the same time Loki Software declared bankruptcy, which is a - shame because they had the lowest prices on Linux games I've ever seen. However, occaisionally, they'll have things + shame because they had the lowest prices on Linux games I've ever seen. However, occasionally, they'll have things like Code Warrior or Redhat Linux on sale. @@ -2417,6 +2500,11 @@ Inside the bag is a clove of garlic and a cheese sandwich. The oven door is now FAQ is a fantastic place to start with. In addition, the FAQ keeps a fairly large database of Linux Games.
+ Linux Audio Quality HOWTO + This HOWTO is mainly of interest to musicians who want professional or semi professional sound cards + for the recording and making of music on a computer. The information is very detailed, and perhaps overkill for + gamers. + diff --git a/LDP/howto/docbook/XFree86-R200.xml b/LDP/howto/docbook/XFree86-R200.xml index 3dc863fd..917cc921 100644 --- a/LDP/howto/docbook/XFree86-R200.xml +++ b/LDP/howto/docbook/XFree86-R200.xml @@ -2,7 +2,6 @@ - @@ -14,8 +13,20 @@ -2002-09-12 - + 2003-07-27 + + + 1.3 + 2003-07-27 + HS + Aternative 2 updated. + + + 1.2.1 + 2003-07-15 + HS + Date fixes. + 1.2 2003-07-14 @@ -112,10 +123,8 @@ use XFree86. The bad news is that this driver only supports 2D (meaning DRI won' -Experiences with ATI's own driver - DEPRECATED -This alternative is now deprecated, since ATI has suddenly decided that their cards do not support Linux. -ATI currently have no Linux drivers available for the R200 chipset. Please let me know if this changes without -me noticing it. +Experiences with ATI's own driver +This alternative uses ATIs own drivers for the Linux operating system. The drivers are developed by 3rd party Linux developers for ATI. The driver supports some 3D acceleration, and works almost "out of the box". @@ -188,9 +197,9 @@ Driver "ati" -Alternative 2: Using ATI's own R200 Driver - DEPRECATED +Alternative 2: Using ATI's own R200 Driver -ATI's R200 driver comes in two distributions - one for XFree4.1 and one for XFree4.2. You can download ATIs driver from here. Sadly, for those of us who do not use RedHat, the package is only available in RPM format (yes, I know that other distributions support RPM as well, but far from all of them). For those of us who do not have RPM support, alien is the program to use. Alien converts between various package formats. To convert the ATI driver package to a .deb package, use alien --to-deb packagename.rpm. To convert it to a .tgz package, use alien --to-tgz packagename.rpm. +ATI's R200 driver comes in two distributions - one for XFree4.1 and one for XFree4.2. You can download ATIs driver from here. Sadly, for those of us who do not use a RedHat-based or other RPM-supporting distribution, the package is only available in RPM format. For those of us who do not have RPM support, alien is the program to use. Alien converts between various package formats. To convert the ATI driver package to a .deb package, use alien --to-deb packagename.rpm. To convert it to a .tgz package, use alien --to-tgz packagename.rpm. You are now ready to install the driver. To install it, use: @@ -315,7 +324,7 @@ First, download the driver file for either Links - http://www.ati.com/support/products/pc/radeon8500/linux/radeon8500linuxdrivers.html - ATIs R200 driver for XFree86 4.1.x/4.2.x - DEPRECATED + http://mirror.ati.com/support/drivers/linux/radeon-linux.html - ATIs R200 driver for XFree86 4.1.x/4.2.x http://gatos.sf.net/ - The GATOS Projects homepage - ATI drivers and utilities http://gatos.sourceforge.net/project/showfiles.php?group_id=12629 - The download section of the GATOS project's website. http://dri.sf.net/ - The DRI Project, the Direct Rendering Infrastructure for XFree86. 3D Support, drivers and documentation. diff --git a/LDP/howto/linuxdoc/Modem-HOWTO.sgml b/LDP/howto/linuxdoc/Modem-HOWTO.sgml index 808be822..dda5d6b8 100644 --- a/LDP/howto/linuxdoc/Modem-HOWTO.sgml +++ b/LDP/howto/linuxdoc/Modem-HOWTO.sgml @@ -3,10 +3,11 @@ Modem-HOWTO <author>David S.Lawyer <tt><url url="mailto:dave@lafn.org"></tt> -<date> v0.28, June 2003 +<date> v0.29, July 2003 <!-- Change log: + => added more info ++ => added new topic +v0.29 July 2003 New gromitkc url, but many links in it are broken v0.28 June 2003 Parallel port modems, lockfile permissions for wvdial v0.27 May 2003: "Flow control" improved v0.26 March 2003: USB clarity improved, v.92 modem "on hold" supported?, @@ -182,7 +183,7 @@ send me any other info that you think belongs in this document. Your problem might be solved in the latest version. It will be available to browse and/or download at LDP mirror sites. For a list of such sites see: <url url="http://www.tldp.org/mirrors.html"> If you -only want to quickly compare the date of this the version v0.28, June 2003 with +only want to quickly compare the date of this the version v0.29, July 2003 with the date of the latest version go to: <url url="http://www.tldp.org/HOWTO/Modem-HOWTO.html"> @@ -191,6 +192,7 @@ url="http://www.tldp.org/HOWTO/Modem-HOWTO.html"> the source file (in linuxdoc format) at <url url="http://www.ibiblio.org/pub/linux/docs/HOWTO/other-formats/sgml/Modem-HOWTO.sgml.gz">. <itemize> +<item>v0.29 July 2003 New gromitkc url, but many links in it are broken <item>v0.28 June 2003: Parallel port modems, lockfile permissions for wvdial <item>v0.27 May 2003: "Flow control" improved <item>v0.26 March 2003: USB clarity improved, v.92 modem "on hold" supported?, @@ -273,10 +275,10 @@ name="All Modems"> for further instructions. <sect2> Internal Modems (ISA, PCI and AMR) <p> The first thing to do is to make sure that the modem will work under Linux since (as of 2002) many modems don't. See <url -url="http://www.idir.net/~gromitkc/winmodem.html" name="modem list">. -If the modem is both PnP and directly supported by the serial driver -(kernel 2.4 +) then there is no configuring for you to do since the -Linux serial driver will configure it. +url="http://personal.myvine.com/~gromitkc/winmodem.html" name="modem +list">. If the modem is both PnP and directly supported by the serial +driver (kernel 2.4 +) then there is no configuring for you to do since +the Linux serial driver will configure it. To physically install a modem card, remove the cover of the PC by /removing some screws (perhaps screw size 6-32 in the U.S.). Find a @@ -346,7 +348,7 @@ dialing program. If you have an Internet Service Provider (ISP) you might configure one of these : wvdial, gnome-ppp, modem lights (Gnome) or kppp. They not only dial out but start PPP, which you need to connect to the Internet. Otherwise, you might try configuring the -mimicom dialer which isn't designed for connecting to the Internet, +minicom dialer which isn't designed for connecting to the Internet, but is good for testing. Whether it's minicom or a dialer that starts PPP, set the serial port speed to a baud rate a few times higher than the bit rate of your modem. See <ref id="speed_table" name="Speed @@ -581,7 +583,7 @@ details. <item> <url url="http://linmodems.org"> is a project to turn winmodems into linmodems. Has a mailing list. <item>Conexant+Rockwell-modem-HOWTO -<item><url url="http://www.idir.net/~gromitkc/winmodem.html" +<item><url url="http://personal.myvine.com/~gromitkc/winmodem.html" name="modem list">. Has links to linmodem info. <item> PCTel-HSP-MicroModem-Configuration-mini-HOWTO </itemize> @@ -5035,7 +5037,7 @@ than in the HOWTO. <sect1> Web Sites <label id="web_sites"> <p> <itemize> <item> Modem List of modems which work/don't_work under Linux - <url url="http://www.idir.net/~gromitkc/winmodem.html"> + <url url="http://personal.myvine.com/~gromitkc/winmodem.html"> <item> <url url="http://serial.sourceforge.net/" name="Linux Serial Driver home page"> Includes info about support for PCI modems. <item>Hayes AT modem commands @@ -5058,7 +5060,7 @@ name="Controlling your Modem with AT Commands"> name="Navas 28800-56K Modem FAQ"> <item> <url url="http://www.net-boy.com" name="Curt's High Speed Modem Page"> -<item> Much info on 56k modems <url url="http://808hi.com/56k/" +<item> Much info on 56k modems <url url="http://modemsite.com/56k/" name= "56k Modem = v.Unreliable"> <item> <url url="http://www.56k.com/links/Modem_Manufacturers/" name="Links to modem manufacturers"> @@ -5342,7 +5344,24 @@ predict what echos the transmitted signal will cause. Then this predicted echo signal is subtracted from the received signal. This cancels out the echoes. -<sect> Appendix B: (Reserved for future use) +<sect> Appendix B: Analog Voice Infeasible Over Non-Voice Modem +<p>Sometimes people look for software that will allow them to transmit +ordinary analog voice over a modem that doesn't support voice. It +doesn't exist since it's just not very feasible to do this. Of +course, one can use VOIP to send digital voice over a modem. And when +one makes a call and the other side picks up the line, one might be +able to hear voice for a few seconds until negotiations for a +connection begin. + +But once a modem is connected, sending analog voice over it just isn't +feasible. For phase-amplitude modulation, carrier frequencies of +fixed values are used which doesn't allow the continuously variable +frequencies required in analog voice. V.90 and V.92 might be feasible, +but if line conditions deteriorate, they fall back to phase-amplitude +modulation which won't work. Furthermore, V.90 uses phase-amplitude +in one direction. Also, both V.90 and V.92 don't permit all +amplitudes to be used, which limits the waveshapes which can be +created. <sect>Appendix C: "baud" vs. "bps" <sect1> A simple example @@ -5875,3 +5894,7 @@ V42bis (compression). Many modems support both MNP and V42. END OF Modem-HOWTO </article> +--------------------------------------------------------------------- +To unsubscribe, e-mail: submit-unsubscribe@en.tldp.org +For additional commands, e-mail: submit-help@en.tldp.org + diff --git a/LDP/howto/linuxdoc/User-Group-HOWTO.sgml b/LDP/howto/linuxdoc/User-Group-HOWTO.sgml index 09b4cd8e..eb559403 100644 --- a/LDP/howto/linuxdoc/User-Group-HOWTO.sgml +++ b/LDP/howto/linuxdoc/User-Group-HOWTO.sgml @@ -1,1220 +1,1251 @@ -<!doctype linuxdoc system> - -<article> - -<title>Linux User Group HOWTO -<author><url name="Kendall Grant Clark" url="mailto:kclark@cmpu.net"></author> -<date>v.1.6.2, 24 April 1998 - -<abstract> -The Linux User Group HOWTO is a guide to founding, maintaining, and -growing a Linux User Group. -</abstract> - -<toc> - -<sect>Introduction - -<sect1>Purpose -<p> -The Linux User Group HOWTO is intended to serve as a guide to founding, -maintaining, and growing a Linux User Group. - -Linux is a freely-distributable implementation of Unix for personal -computers, servers and workstations. It was developed on the i386 and -now supports i486, Pentium, Pentium Pro, and Pentium II processors, as -well as x86-clones from AMD, Cyrix, and others. It also supports many -SPARC, DEC Alpha, PowerPC/PowerMac, Motorola 68x0 Mac/Amiga machines. - -<sect1>Other sources of information -<p> -If you want to learn more about Linux, the <url -url="http://sunsite.unc.edu/LDP/" name="Linux Documentation Project"> -is a good place to start. - -For general information about computer user groups, please see the -<url name="Association of PC Users Groups" -url="http://www.apcug.org/">. - -<sect>What is a Linux User Group? -<p> - -<sect1>What is Linux? -<p> -In order to appreciate and understand fully the significant role of -LUGs in the Linux Movement, it is important to understand what makes -Linux unique among computer operating systems. - -Linux as an operating system is very efficient and very powerful. But, -Linux as an <it><bf>idea</bf></it> about how software ought to be -developed is even more powerful. Linux is a <bf>free</bf> operating -system: it is licensed under the GNU Public License. The source code -is freely available to anyone who wants it and always will be. It is -developed by a unstructured group of programmers from around the -world, under the technical direction of Linus Torvalds and other key -developers. Linux is a world-wide movement without any central -structure, bureaucracy, or entity to control, coordinate, or otherwise -direct its affairs. While this situation is a powerful part of the -appeal and technical quality of Linux as an computer operating system, -it can make for inefficient allocation of human resources, ineffective -and even detrimental advocacy, public relations, user education and -training. - -<sect1>How is Linux unique? -<p> -This loose structure is not likely to change with regard to Linux as a -software project. And it's a good thing, too. Linux works precisely -because people are free to come and go as they please: <bf>free -programmers are happy programmers are effective programmers</bf>. - -But this loose structure can make the average Linux user's life a -little complicated--especially if that user isn't a programmer by -profession or by vocation. Who does she call for support, training, or -education? How does she know the kinds of uses for which Linux is -well-suited? - -In large part local LUGs provide the answers to these kinds of -question. This is why LUGs are a crucial part of the Linux -Movement. Because there is no ``regional office'' of the Linux -Corporation in your town or village or metropolis, the local LUG takes -on many of the same roles that a regional office does for a large -multi-national corporation.. - -Linux is unique because it does not have, nor is it burdened by, a -central structure or bureaucracy to allocate its resources, train its -users, or provide support for its products. These jobs get done in a -variety of ways: the Internet, consultants, VARs, support companies, -colleges and universities. But, increasingly, in many places around -the globe, they get done by a local LUG. - -<sect1>What is a user group? -<p> -Computer user groups, at least in the United States, are not a new -phenomenon; in fact, they played an important role in the history of -the personal computer. The personal computer arose in large part to -satisfy the demand of electronics, Ham Radio, and other hobbyist user -groups, as well as trade shows and swap meets, for affordable, -personal access to computing resources. Of course eventually giants -like IBM discovered that the PC was a good and profitable thing, but -the impetus for the PC came from the people, by the people, and for -the people. - -In the United States, user groups have changed, and many for the -worse, with the times. The financial woes of the largest user group -ever, the <url name="Boston Computer Society" -url="http://www.bcs.org/"> have been well-reported; but all over the -U.S. most of the big PC user groups have seen a decline in real -membership. American user groups in their heyday concentrated on the -production of newsletters, the maintenance of shareware and diskette -libraries, meetings, social events, and, sometimes, even Bulletin -Board Systems. With the advent of the Internet, however, many of the -services that user groups once provided were transferred to things -like CompuServe, AOL, and the Web. - -The rise of Linux, however, coincided with and was intensified by -general public's ``discovery'' of the Internet. As the Internet grew -more popular, so did Linux: the Internet brought new users, -developers, and vendors to the Linux Movement. - -So just when traditional PC user groups were declining because of the -Internet's popularity, this popularity propelled Linux forward, -creating new demand for new user groups dedicated exclusively to -Linux. To give just one indication of the ways in which a LUG is -different than a traditional user group, I call the reader's attention -to a curious fact: traditional user groups have had to maintain a -fairly tight control over the kinds of software that its users copy -and trade at its meetings. While illegal copying of commercial -software certainly occurred at these meetings, it was officially -discouraged and for good reason. - -At a LUG meeting, however, this entire mindset simply does not -apply. Far from being the kind of thing that a LUG ought to -discourage, the free copying of Linux itself ought to be one of the -primary activities of a LUG. In fact there is anecdotal evidence that -traditional user groups sometimes have a difficult time adapting to -the fact that Linux can be freely copied as many times as one needs or -wants. - -<sect1>Summary -<p> -In order for the Linux Movement to continue to flourish, the -proliferation and success of local LUGs, along with other factors, is -an absolute requirement. Because of the unique status of Linux, the -local LUG must provide some of the same functions that a ``regional -office'' provides for large computer corporations like IBM, Microsoft, -or Sun. LUGs can and must train, support, and educate Linux users, -coordinate Linux consultants, advocate Linux as a computing solution, -and even serve as a liason to local media outlets like newspapers and -television. - -<sect>What LUGs are there? -<p> -Since this document is meant as a guide not only to maintaining and -growing LUGs but also to founding them, it would be well before we go -much further to determine what LUGs there are. - -<sect1>Lists of LUGs -<p> -There are several lists of LUGs available on the Web. If you want to -found a local LUG, one of the first things to do is to determine where -the nearest LUG is. <it>Your best bet may be to join a LUG that is -already established in your area rather than founding a new one.</it> - -As of the mid-1997, there are LUGs in all 50 states, the District of -Columbia, and 26 other countries, including India, Russia, and most of -Western and Eastern Europe. - -Note: the biggest untapped computing market on the planet, China, does -not yet appear to have a LUG, and India, the second most populous -country on the planet, has only a few. - -<itemize> - <item><url name="Finding Groups of Linux Users Everywhere" url="http://www.ssc.com/glue/groups/"></item> - <item><url name="LUG List Project" url="http://www.nllgg.nl/lugww/"></item> - <item><url name="LUG Registry" -url="http://www.linux.org/users/index.html"></item> -</itemize> - -<p> -It appears that the GLUE list is more comprehensive for American LUGs, -while the LUG List Project offers more comprehensive international -coverage. - -<sect1>Solidarity versus convenience -<p> -While the lists of LUGs on the Web are well-maintained, it is likely -that they do not list every LUG. In addition to consulting these -lists, I suggest, if you are considering founding a LUG, that you post -a short message asking about the existence of a local LUG to <url -name="comp.os.linux.announce" url="news:comp.os.linux.announce">, <url -name="comp.os.linux.misc" url="news:comp.os.linux.misc">, or an -appropriate regional Usenet hierarchy. If there isn't a LUG already in -your area, then posting mesages to these groups will alert potential -members of your plans. - -If you plan to found a local LUG, you should carefully balance -convenience against solidarity. In other words, if there is a LUG in -your metropolitan area, but on the other side of the city, it may be -better to start a new group for the sake of convenience. But it may be -better to join the pre-existing group for the sake of unity and -solidarity. <bf><it>Greater numbers almost always means greater power, -influence, and efficiency</it></bf>. While it might be nice to have -two groups of 100 members each, there are certain advantages to one -group of 200 members. Of course if you live in a small town or -village, any group is better than no group at all. - -The point is that starting a LUG is an arduous undertaking, and one -that ought to be entered into with all the relevant facts, and with -some appreciation of the effect on other groups. - -<sect>What does a LUG do? -<p> -The goals of local LUGs are as varied as the locales in which they -operate. There is no master plan for LUGs, nor is this document meant -to supply one. Remember: Linux is free from bureaucracy and -centralized control and so are local LUGs. - -It is possible, however, to identify a core set of goals for a local -LUG: - -<itemize> - <item>advocacy</item> - <item>education</item> - <item>support</item> - <item>socializing</item> -</itemize> - -Each local LUG will combine these and other goals in a unique way in -order to satisfy the unique needs of its membership. - -<sect1>Linux advocacy -<p> -The urge to advocate the use of Linux is as natural to computer users -as is eating or sleeping. When you find something that works and works -well, the natural urge is to tell as many people about it as you -can. The role of LUGs in Linux advocacy cannot be overestimated, -especially since the wide-scale commercial acceptance of Linux which -it so richly deserves has not yet been achieved. While it is certainly -beneficial to the Linux Movement each and every time a computer -journalist writes a positive review of Linux, it is also beneficial -every time satisfied Linux users tell their friends, colleagues, -employees or employers about Linux. - -There is effective advocacy and there is ineffective carping: as Linux -users, we must be constantly vigilant to advocate Linux in such a way -as to reflect positively on both the product, its creators and -developers, and our fellow users. The Linux Advocacy mini-HOWTO, -available at the Linux Documentation Project, gives some helpful -suggestions in this regard. Suffice it to say that advocacy is an -important aspect of the mission of a local LUG. - -There may come a time when Linux advocacy is pretty much beside the -point because Linux has more or less won the day, when the phrase ``No -one ever got fired for using Linux'' becomes a reality. Until that -time, however, the local LUG plays an indispensable role in promoting -the use of Linux. It does so because its advocacy is free, -well-intentioned, and backed up by organizational commitment. If a -person comes to know about Linux through the efforts of a local LUG, -then that person, as a new Linux user, is already ahead of the game: -<it>she is already aware of the existence of an organization that will -help her install, configure, and even maintain Linux on whatever -computers she is willing to dedicate to it.</it> - -New Linux users who are already in contact with a local LUG are ahead -of those whose interest in Linux has been piqued by a computer -journalist, but who have no one to whom to turn to aid them in their -quest to install, run, and learn Linux. - -It is, therefore, important for local LUGs to advocate Linux because -their advocacy is effective, well-supported, and free. - - -<sect1>Linux education -<p> -Not only is it the business of a local LUG to advocate the use of -Linux, it may also turn its efforts to training its members, as well as -the computing public in its area, to use Linux and associated -components. In my own estimation, the goal of user education is the -single most important goal a LUG may undertake. Of course, as I have -already pointed out, LUGs are perfectly free to organize themselves -and their activities around any of these, or other, goals. I believe, -however, that LUGs can have the greatest impact on the Linux Movement -by educating and training Linux users. - -Local LUGs may choose to undertake the goal of education simply -because there is no other local entity from which a Linux user may -receive technically-oriented education. While it is certainly the case -that universities, colleges, and junior colleges are increassingly -turning to Linux as a way to educate their students, both efficiently -and cheaply, about Unix-like operating systems, some Linux users are -either unable or unwilling to register for courses in order to learn -Linux. For these users the local LUG is a valuable resource for -enhancement or creation of advanced computer skills: Unix-like system -administration, system programming, support and creation of Internet -and Intranet technologies, etc. - -In an ironic twist, many local LUGs are even sharing the burden of -worker training with large corporations. Every worker at Acme Corp -that expands her computer skills by participating in a local LUG is -one less worker Acme Corp has to train or pay to train. Even though -using and administering a Linux PC at home isn't the same as -administering a corporate data warehouse, call center, or similar -high-availability facility, it is light years more complex, more -rewarding, and more educational than using and administering a Windows -95 PC at home. As Linux itself advances toward things like journalling -filesystems, high-availability, real-time capacity, and other high-end -Unix features, the already blurry line between Linux and the ``real'' -Unixes will get even more indistinct. - -Not only is such education a form of worker training, but it will also -serve, as information technology becomes an increasingly vital part of -the global economy, as a kind of community service. In most -metropolitan areas in the United States, for example, it is possible -for a local LUG to take Linux into local schools, small businesses, -community and social organizations, and other non-corporate -environments. This accomplishes the task of Linux advocacy and also -helps train the general public about Linux as a Unix-like operating -system. As more and more of these kinds of organizations seek to -establish an Internet presence or provide dial-in access to their -workers, students, and constituents, the opportunities arise for local -LUGs to participate in the life of their community by educating it -about a free and freely-available operating system. This kind of -community service allows the average Linux user to emulate the kind of -generosity that has characterized Linux, and the free software -community, from the very beginning. Most Linux users can't program -like Linus Torvalds, but we can all all give our time and abilities to -other Linux users, the Linux community, and the broader community in -which work and live. - -Linux is a natural fit for these kinds of organization because -deploying it doesn't commit them to expensive license, upgrade, or -maintenance fees. Because Linux is also technically elegant and -economical, it runs very well on the the kinds of disposable hardware -that corporations typically cast off and that non-profit organizations -are only too happy to use. As more and more people discover every day, -that old 486 collecting dust in the closet can do <bf>real work</bf> -if someone will install Linux on it. - -In addition, Linux education has a cumulative effect on the other -goals of a local LUG, in particular the goal of Linux support -discussed below. Better Linux education means better Linux -support. The more people that a LUG can count on to reach its support -goals, the easier support becomes and, therefore, the more of it can -be done. The more new and inexperienced users a local LUG can support -and eventually educate about Linux, the larger and more effective the -LUG can become. In other words, if a LUG focuses solely on Linux -support to the neglect of Linux education, the natural barriers to -organizational growth will be more restrictive. If only two or three -percent of the members of a LUG take upon themselves the task of -supporting the others, the growth of the LUG will be stifled. One -thing you can count on: <bf><it>if new and inexperienced users don't -get the help with Linux they need from a local LUG, they won't -participate in that LUG for very long</it></bf>. If a larger -percentage of members support the others, the LUG will be able to grow -much larger. Linux education is the key to this dynamic: education -turns new Linux users into experienced ones. - -Free education about free Linux also highlights the degree to -which Linux is part and parcel of the free software Community. So it -seems appropriate that local LUGs focus not solely on Linux education -but also education about all of the various software systems and -technologies that run under Linux. These include, for instance, the -GNU suite of programs and utilities, the Apache Web server, the -XFree86 implementation of X Windows, TeX, LaTeX, etc. Fortunately the -list of free software that runs under Linux is a long and diverse one. - -Finally, Linux is a self-documenting operating environment; in other words, -if we don't write the documentation, nobody is going to do it for us. Toward -that end, make sure that LUG members are well aware of the <url name="Linux -Documentation Project" url="http://sunsite.unc.edu/LDP/">, which can be -found at mirrors worldwide. Consider providing an LDP mirror for the local -Linux community and for LUG members. Also make sure to publicize---through -<tt>comp.os.linux.announce</tt>, the LDP, and other pertinent sources of -Linux information---any relevant documentation that is developed by the LUG: -technical presentations, tutorials, local FAQs, etc. There is a lot of Linux -documentation produced in LUGs that doesn't benefit the worldwide Linux -community because no one outside the LUG knows about it. Don't let the LUGs -efforts in this regard go to waste: it is highly probable that if someone at -one LUG had a question or problem with something, then people at other LUGs -around the world will have the same questions and problems. - -<sect1>Linux support -<p> -Of course for the desperate <bf>newbie</bf> the primary role of a -local LUG is Linux support. But it is a mistake to suppose that Linux -support only means <it>technical</it> support for new Linux users. It -can and should mean much more. - -Local LUGs have the opportunity to support: - -<itemize> - <item>users</item> - <item>consultants</item> - <item>businesses, non-profit organizations, and schools</item> - <item>the Linux Movement</item> -</itemize> - -<sect2>Users -<p> -The most frequent complaint from new Linux users, once they have -gotten Linux installed, is the steep learning curve which is not at -all unique to Linux but is, rather, a characteristic of all modern -Unixes. With the steepness of the learning curve, however, comes the -power and flexibility of a complex operating system. A local LUG is -often the only resource that a new Linux user has available to help -flatten out the learning curve. - -But even if a new Linux user doesn't know it yet, she needs more than -just technical support: Linux and the free software worlds are both -rapidly moving targets. The local LUGs form an invaluable conduit of -information about Linux and other free software products. Not only -does Linux lack a central bureaucracy, but it also for the most part -lacks the kind of journalistic infrastructure from which users of -other computer systems benefit. The Linux Movement does have resources -like <url name="Linux Journal" url="http://www.ssc.com/lj/"> and <url -name="Linux Gazette" url="http://www.ssc.com/lg/">, but many new Linux -users are unaware of these resources. In addition, as <it>monthly</it> -publications they are often already out of date about bugfixes, -security problems, patches, new kernels, etc. This is where the local -LUG as a source and conduit of timely information is so vital to new -and experienced Linux users alike. - -For example, until a new Linux user knows that the newest kernels are -available from <url name="ftp.kernel.org" url="ftp://ftp.kernel.org"> -or that the <bf>Linux Documentation Project</bf> usually has newer -versions of Linux HOWTOs than a CD-based Linux distribution, it is up -to the local LUG, as the primary support entity, to be a conduit of -timely and useful information. - -In fact it may be just a bit misleading to focus on the support role -that local LUGs provide to new users: intermediate and advanced users -also benefit from the proliferation of timely and useful tips, facts, -and secrets about Linux. Because of the complexity of Linux, even -advanced users often learn new tricks or techniques simply by becoming -involved in a local LUG. Sometimes they learn about software packages -they didn't know existed, sometimes they just remember that arcane -<tt>vi</tt> command sequence they've not used since college. - -<sect2>Consultants -<p> -It is, I think, rather obvious to claim that local LUGs ought to be in -the business of supporting new Linux users. After all, if they're not -supposed to be doing that, what are they to do? It may not be as -obvious that local LUGs can play an important role in supporting local -Linux consultants. Whether they do Linux consulting full-time or only -part-time, consultants can be an important part of a local LUG. How -can the LUG support them? - -The answer to that question is just the answer to another question: -what is it that Linux consultants want and need? <bf><it>They need -someone for whom to consult.</it></bf> A local LUG provides the best -way for those who <it>offer</it> Linux consulting to find those who -<it>need</it> Linux consulting. The local LUG can informally broker -connections between consulting suppliers and consulting consumers -simply by getting all, or as many as possible, of the people -interested in Linux in a local area together and talking with one -another. How LUGs do that will occupy us below. What is important here -is to point out that LUGs can and should play this role as well. The -Linux Consultants HOWTO is an important document in this regard, but -it is surely the case that only a fraction of the full-time and -part-time Linux consultants worldwide are registered in the -Consultants HOWTO. - -The relationship is mutually beneficial. Consultants aid LUGs by -providing experienced leadership, both technically and -organizationally, while LUGs aid consultants by putting them in -contact with the kinds of people who need their services. New and -inexperienced users gain benefit from both LUGs and consultants since -their routine or simple requests for support are handled by LUGs -<it>gratis</it>, and their complex needs and problems---the kind that -obviously require the services of a paid consultant---can be handled -by the consultants whom the local LUG helps them contact. - -The line between support requests that need a consultant and those -that do not is sometimes indistinct; but in most cases the difference -is clear. While a local LUG doesn't want to gain the reputation for -pawning new users off unnecessarily on consultants--as this is simply -rude and very anti-Linux behavior--there is no reason for LUGs not to -help broker contacts between the users who need consulting services -and the professionals who offer them. - -Please see Martin Michlmayr's <url name="Linux Consultants HOWTO" -url="http://sunsite.unc.edu/LDP/HOWTO/Consultants-HOWTO.html"> for an -international list of Linux consultants. - -<sect2>Businesses, non-profit organizations, and schools -<p> -LUGs also have the opportunity to support local businesses and -organizations. This support has two aspects. First, LUGs can support -businesses and organizations that want to use Linux as a part of their -computing and IT efforts. Second, LUGs can support local businesses -and organizations that develop for Linux, cater to Linux users, -support or install Linux, etc. - -The kinds of support that LUGs can provide to local businesses that -want to use Linux as a part of their computing operations isn't really -all that different from the kinds of support LUGs give to individuals -who want to run Linux at home. For example, compiling the Linux kernel -doesn't really vary from home to business. Supporting businesses using -Linux, however, may mean that a LUG needs to concentrate on commercial -software that runs on Linux, rather than concentrating solely on free -software. If Linux is going to continue to maintain its momentum as a -viable computing alternative, then it's going to take software vendors -who are willing to write for and port to Linux as a -commercially-viable platform. If local LUGs can play a role in helping -business users evaluate commercial Linux solutions, then more software -vendors will be encouraged to consider Linux in their development and -planning. - -This leads us directly to the second kind of support that a local LUG -can give to local businesses. Local LUGs can serve as a clearing house -for the kind of information that is available in very few other -places. For example: - -<itemize> - - <item>Which local ISP is Linux-friendly?</item> - <item>Are there any local hardware vendors that build Linux PCs?</item> - <item>Does anyone sell Linux CDs locally?</item> - -</itemize> - -Maintaining and making this kind of information public not only helps -the members of a local LUG, but it also helps Linux-friendly local -businesses as well, and it encourages them to continue to be -Linux-friendly. It may even, in some cases, help contribute to a -competitive atmosphere in which other businesses are encouraged to -become Linux-friendly too. - -<sect2>Free software development -<p> -Finally, LUGs may also support the Linux Movement by soliciting and -organizing charitable giving. <url name="Chris Browne" -url="mailto:cbbrowne@hex.het"> has thought about this issue as much as -anyone I know, and he contributes the following. - -<sect3>Chris Browne on free software philanthropy -<p> -A further involvement can be to encourage sponsorship of various -Linux-related organizations in a financial way. With the <url -url="http://counter.li.org" name="multiple millions"> of Linux users, -it would be entirely plausible for grateful users to individually -contribute a little. Given millions of users, and the not unreasonable -sum of a hundred dollars of ``gratefulness'' per Linux user ($100 being -roughly the sum <em/not/ spent this year upgrading a Microsoft OS), -that could add up to <em/hundreds of millions/ of dollars towards -development of improved tools and applications for Linux. - -<p> -A users group can encourage members to contribute to various -``development projects.'' If it has some form of ``charitable tax -exemption'' status, that can encourage members to contribute directly -to the group, getting tax deductions as appropriate, with -contributions flowing on to other organizations. - -<p> -It is appropriate, in any case, to encourage LUG members to direct -contributions to organizations with projects and goals that they -individually wish to support. - -<p> -This section lists possible candidates. None are explicitly being -recommended here, but the list can represent useful ``food for -thought.'' Many are registered as charities in the United States, thus -making U.S. contributions tax deductible. - -<p> -Here are organizations with activities particularly directed towards -development of software that works with Linux: - -<itemize> -<item><url url="http://www.li.org/About/Fund/Welcome.html" name=" -Linux International Project Sponsorship Fund"> -<item><url url="http://www.debian.org/donations.html" -name="Debian/Software In the Public Interest"> -<item><url url="http://www.fsf.org/help/donate.html" name="Free -Software Foundation"> -<item> <url url="http://www.xfree86.org/donations.html" name=" The -XFree86 Project"> -</itemize> - -<p> -Contributions to these organizations has the direct effect of -supporting the creation of freely redistributable software usable with -Linux. Dollar for dollar, such contributions almost certainly have -greater effect on the Linux community as a whole than any other -specific kind of spending. - -<p> -There are also organizations that are less directly associated -with Linux that may nonetheless be worthy of assistance, such as: - -<itemize> -<item> <url url="http://www.lpf.org" name=" League for Programming Freedom"> - -<p> -This is not a Linux-specific organization; they are involved in -general advocacy activities that touch on people involved with -software development. Involvement in this organization represents -something closer to involvement in a ``political lobby'' group. - -<p> -There is somewhat of a ``USA bias;'' there are nonetheless -international implications, and the international community as often -follows the American lead in computing-related matters as vice-versa. - -<item>The LaTeX3 Project Fund - -<p> -The <url url="http://www.tug.org" name=" TeX Users Group (TUG) "> is -working on the ``next generation'' version of the LaTeX publishing -system, known as LaTeX3. Linux is one of the platforms on which TeX -and LaTeX are best supported. -<p> Donations for the project can be sent to: -<tscreen> -<verb> -TeX Users Group -P.O. Box 1239 -Three Rivers, CA 93271-1239 -USA -</verb> -</tscreen> -or, for those in Europe, -<tscreen> -<verb> -UK TUG -1 Eymore Close -Selly Oaks -Burmingham B29 4LB -UK -</verb> -</tscreen> - -<item> <URL URL="http://www.promo.net/pg/lists/list.html" -name="Project Gutenberg"> - -<p> -Their purpose is to make freely available in electronic form the -texts of out-of-copyright books. This isn't directly a ``Linux thing,'' -but it seems fairly worthy, and they actively encourage platform -independence, which means that their ``products'' are quite usable with Linux. - -</itemize> - - -<sect2>Linux Movement -<p> -I have referred throughout this HOWTO to something I call the -<bf>Linux Movement</bf>. There really is no better way to describe the -international Linux phenomenon than to call it a movement: it isn't a -bureaucracy, but it is organized; it isn't a corporation, but it is -important to businesses all over the world. The best way for a local -LUG to support the international Linux movement is to work to insure -that the local Linux community is robust, vibrant, and growing. Linux -is <it>developed</it> internationally, which is easy enough to see by -reading <file>/usr/src/linux/MAINTAINERS</file>. But Linux is also -<it>used</it> internationally. And this ever-expanding user base is -the key to Linux's continued success. And that is where the local LUG -plays an incalculably important role. - -The strength of the Linux Movement internationally is the simple fact -that Linux offers unprecedented computing power and sophistication for -its cost and for its freedom. The keys are value and independence from -proprietary control. Every time a new person, group, business, or -organization has the opportunity to be exposed to Linux's inherent -value the Linux Movement grows in strength and numbers. Local LUGs can -make that happen. - -<sect1>Linux socializing -<p> -The last goal of a local LUG that I will mention here is -socializing. In some ways this is the most difficult goal to discuss -because it is not clear how many or to what degree LUGs engage in -it. While it would be strange to have a local LUG that didn't engage -in the other goals, there very well may be local LUGs somewhere in the -world for which socialization isn't an important consideration. - -It seems, however, that whenever two or three Linux users get together -fun, highjinks, and, often, beer are sure to follow. Linus Tovalds has -always had one enduring goal for Linux: to have more fun. For hackers, -kernel developers, and Linux users, there's nothing quite like -downloading a new kernel, recompiling an old one, twittering with a -window manager, or hacking some code. It is the sheer fun of Linux -that keeps many LUGs together, and it is this kind of fun that leads -many LUGs naturally to socializing. - -By ``socializing'' here I mean primarily sharing experiences, forming -friendships, and mutually-shared admiration and respect. There is -another meaning, however, one that social scientists call -<it>socialization</it>. In any movement, institution, or human -community, there is the need for some process or pattern of events in -and by which, to put it in Linux terms, newbies are turned into -hackers. In other words, socialization turns you from ``one of them'' -to ``one of us''. - -For armed forces in the U.S. and in most countries, this process is -called boot camp or basic training. This is the process whereby -civilians are transformed into soldiers. The Linux movement has -analogous requirements. It is important that new Linux users come to -learn what it means to be a Linux user, what is expected of them as a -member of an international community, the special vocabulary of the -Linux movement, its unique requirements and opportunities. This may be -as simple as how Linux users in a partcicular locale pronounce -``Linux''. It may be as profound as the ways in which Linux users -should advocate, and the ways in which they should, more importantly, -<it>refrain</it> from advocating Linux. - -Linux socialization, unlike `real world' socialization, can occur on -mailing lists and Usenet, although the efficacy of the latter is -constantly challenged precisely by poorly socialized users. In my -view, socialization and socializing are both done best in the company -of real, flesh-and-blood fellow human beings, and not by incorporeal -voices on a mailing list or Usenet group. - -<sect>Local LUG activities -<p> -In the previous section I focused exclusively on what LUGs do and what -they ought to be doing. In this section the focus shifts to practical -strategies for accomplishing these goals. - -There are, despite the endless permutations of form, two basic things -that local LUGs do: first, they meet together in physical space; -second, they communicate with each other in cyberspace. Everything or -nearly everything that LUGs do can be seen in terms of meetings and -online resources. - -<sect1>Meetings -<p> -As I said above, physical meetings are synonymous with LUGs and with -most computer user groups. LUGs have these kinds of meetings: - -<itemize> - <item>social</item> - <item>technical presentations</item> - <item>informal discussion groups</item> - <item>user group business</item> - <item>Linux installation</item> - <item>configuration and bug-squashing</item> -</itemize> - -What do LUGs do at these meetings? - -<itemize> - <item>Install Linux for newbies and strangers</item> - <item>Teach members about Linux</item> - <item>Compare Linux to other operating systems</item> - <item>Teach members about the software that runs on Linux</item> - <item>Discuss the ways in which Linux can be advocated</item> - <item>Discuss the importance of the Free Software Movement</item> - <item>Discuss the business of the user group</item> - <item>Eat, drink, and be merry</item> -</itemize> - - -<sect1>Online resources -<p> -The commercial rise of the Internet coincided roughly with the rise of -Linux, and the latter in large part owes something to the former. The -Internet has always been an important asset for Linux development. It -is no different for LUGs. Most LUGs have web pages if not whole -Web sites. In fact, I am not sure how else to find a local LUG but to -check the Web. - -It makes sense, then, for a local LUG to make use of whatever Internet -technologies they can appropriate: Web sites, mailing lists, gopher, -FTP, e-mail, WAIS, finger, news, etc. As the world of commerce is -discovering, the Internet can be an effective way to advertise, -inform, educate, and even sell. The other reason that LUGs make -extensive use of Internet technologies is that it is the very essence -of Linux to <it>provide</it> a stable and rich platform for the -deployment of these technologies. So not only do LUGs benefit from, -say, the establishment of a Web site because it advertizes their -existence and helps organize their members, but in deploying these -technologies, the members of the LUG are provided an opportunity to -learn about this technology and see Linux at work. - -Some LUGs that use the Internet effectively: - -<itemize> - - <item><url name="Atlanta Linux Enthusiasts" -url="http://www.ale.org/"></item> - - <item><url name="North Texas Linux Users Group" -url="http://www.ntlug.org/"></item> - - <item><url name="Boston Linux and Unix" -url="http://www.blu.org/"></item> - - <item><url name="Colorado Linux Users and Enthusiasts" -url="http://spot.elfwerks.com/~clue/"></item> - - <item><url name="BLUG - BHZ Linux Users Group (Brazil)" -url="http://www.bhz.ampr.org/~linux/"></item> - - <item><url name="Ottawa Carleton Linux Users Group" -url="http://www.oclug.on.ca/"></item> - - <item><url name="Provence Linux Users Group" -url="http://www.pipo.com/plug/"></item> - - <item><url name="Duesseldorf Linux Users Group" -url="http://www.hsp.de/~dlug/"></item> - - <item><url name="Linux User Group Austria" url="http://www.luga.or.at/"></item> - - <item><url name="Israeli Linux Users Group" -url="http://www.linux.org.il/"></item> - - <item><url name="Tokyo Linux Users Group" -url="http://www.twics.co.jp/~tlug/"></item> - - <item><url name="Linux in Mexico" -url="http://www.linux.org.mx/"></item> - - <item><url name="Netherlands Linux Users Group (NLLGG)" -url="http://www.nllgg.nl/"></item> - - <item><url name="St. Petersburg Linux User Group" -url="http://ethereal.ru/~mbravo/spblug/index.html"></item> - - <item><url name="Linux User Group of Singapore" -url="http://www.lugs.org.sg/"></item> - -<item><url name="Victoria Linux User Group" -url="http://www.linux.victoria.bc.ca/"> -</item> - - <item><url name="Essex Linux User Group" -url="http://www.epos.demon.co.uk/"></item> - - <item><url name="Turkish Linux User Group" -url="http://www.linux.org.tr/"></item> - - <item><url name="Linux User Group of Rochester" -url="http://www.lugor.org/"></item> - - <item><url name="Korean Linux Users Group" -url="http://www.linux-kr.org"></item> - -</itemize> - -<p> -Please let me know if your LUG uses the Internet in an important or -interesting way; I'd like this list to include your group. - -<sect>Practical suggestions -<p> -Finally, I want to make some very practical, even mundane, suggestions -for anyone wanting to found, maintain, or grow a LUG. - -<sect1>LUG support organizations -<p> - -There are several organizations that offer assistance to local LUGs. - -<descrip> - - <tag>GLUE</tag> Groups of Linux Users Everywhere is a user group - coordination and support program started by SSC, the same people who - publish <it>Linux Journal</it>. The <url name="GLUE program" - url="http://www.ssc.com/glue/"> is an inexpensive way for a local - LUG to provide some benefits to its membership. - - <tag>Linux Systems Labs</tag> <url name="LSL" - url="http://www.lsl.com/"> offers their Tri-Linux Disk set (Three - Linux distributions on four CDs: Red Hat, Slackware, and Debian) to - LUGs for resale at a considerable discount. - - <tag>Linux Mall User Group Program</tag> Sponsored by WorkGroup - Solutions, the <url name="Linux Mall User Group Program" - url="http://www.LinuxMall.com/usergrp.program.html"> offers a range - of benefits for participating User Groups. LUGs are also free to - participate in <url name="Linux Mall's Referral Program" - url="http://www.LinuxMall.com/mallrfr.html"> as well. - - <tag>Cleveland Linux User's Group</tag> Owns the Internet domain, - <tt>lug.net</tt>. They will provide your LUG an Internet domain name - at <tt>lug.net</tt>: your-LUG-name-or-city<tt>lug.net</tt>. More - information may be found at <url name="LUG.NET" - url="http://www.lug.net/"> or by e-mailing <htmlurl name="Jeff - Garvas" url="mailto:jeff@cia.net">. - - <tag>Red Hat Software's User Group Program</tag> Assists LUGs to - develop and grow. More information may be found at <url - url="http://www.redhat.com/redhat/rhug.html" name="Red Hat Web - site"> - -</descrip> - -<sect1>Founding a LUG -<p> - -<itemize> - - <item>Determine the nearest pre-existing LUG</item> - <item>Announce your intentions on <tt>comp.os.linux.announce</tt> and on an appropriate regional hierarchy</item> - <item>Announce your intention wherever computer users are in your area: bookstores, swap meets, cybercafes, colleges and universities, corporations, Internet service providers, etc.</item> - <item>Find Linux-friendly businesses or institutions in your area that may be willing to help you form the LUG</item> - <item>Form a mailing list or some means of communication between the people who express an interest in forming a LUG</item> - <item>Ask key people specifically for help in spreading the word about your intention to form a LUG</item> - <item>Solicit space on a Web server to put a few HTML pages together about the group</item> - <item>Begin looking for a meeting place</item> - <item>Schedule an initial meeting</item> - <item>Discuss at the initial meeting the goals for the LUG</item> - -</itemize> - -<sect1>Maintaining and growing a LUG -<p> - -<itemize> - - <item>Make the barriers to LUG membership as low as possible</item> - <item>Make the LUG's Web site a priority: keep all information current, make it easy to find details about meetings (who, what, and where), and make contact information and feedback mechanisms prominent</item> - <item>Install Linux for anyone who wants it</item> - <item>Post flyers, messages, or handbills wherever computer users are in your area</item> - <item>Secure dedicated leadership</item> - <item>Follow Linus's <it>benevolent dictator</it> model of leadership</item> - <item>Take the big decisions to the members for a vote</item> - <item>Start a mailing list devoted to technical support and ask the ``gurus'' to participate on it</item> - <item>Schedule a mixture of advanced and basic, formal and informal, presentations</item> - <item>Support the software development efforts of your members</item> - <item>Find way to raise money without dues: for instance, selling Linux merchandise to your members and to others</item> - <item>Consider securing formal legal standing for the group, such as incorporation or tax-exempt status</item> - <item>Find out if your meeting place is restricting growth of the LUG</item> - <item>Meet in conjunction with swap meets, computer shows, or other community events where computer users---i.e., potential Linux converts---are likely to gather</item> - <item>Elect formal leadership for the LUG as soon as is practical: some helpful officers might include President, Treasurer, Secretary, Meeting Host (general announcements, speaker introductions, opening and closing remarks, etc.), Publicity Coordinator (handles Usenet and e-mail postings, local publicity), and Program Coordinator (organizes and schedules speakers at LUG meetings)</item> - <item>Provide ways for members and others to give feedback about the direction, goals, and strategies of the LUG</item> - <item>Support Linux and Free Software development efforts by donating Web space, a mailing list, or FTP site</item> - <item>Establish an FTP site for relevant software</item> - <item>Archive everything the LUG does for the Web site</item> - <item>Solicit ``door prizes'' from Linux vendors, VARs, etc. to give away at meetings</item> - <item>Give credit where credit is due</item> - <item>Join SSC's GLUE (Groups of Linux Users Everywhere) but be aware they charge a membership fee</item> - <item>Submit your LUG's information to all of the Lists of LUGs</item> - <item>Publicize your meetings on appropriate Usenet groups and in local computer publications and newspapers</item> - <item>Compose promotional materials, like Postscript files, for instance, that members can use to help publicize the LUG at workplaces, bookstores, computer stores, etc.</item> - <item>Make sure you know what LUG members want the LUG to do</item> - <item>Release press releases to local media outlets about any unusual LUG events like an Installation Fest, Net Day, etc.</item> - <item>Use LUG resources and members to help local non-profit organizations and schools with their Information Technology needs</item> - <item>Advocate the use of Linux zealously but responsibly</item> - <item>Play to the strengths of LUG members</item> - <item>Maintain good relations with Linux vendors, VARs, developers, etc.</item> - <item>Identify and contact Linux consultants in your area - <item>Network with the leaders of other LUGs in your area, state, region, or country to share experiences, tricks, and resources</item> - <item>Keep LUG members advised on the state of Linux software---new kernels, bugs, fixes, patches, security advisories---and the state of the Linux world at large---new ports, trademark and licensing issues, where Linus is living and working, etc.</item> - <item>Notify the Linux Documentation Project---and other pertinent sources of Linux information---about the documentation that the LUG produces: technical presentations, tutorials, local HOWTOs, etc.</item> -</itemize> - -<sect>Legal and political issues -<p> - -<sect1>Legal issues -<p> -<sect1>United States - -<p> -There is a strong case to be made for formal organization of local -LUGs. I will not make that case here. If, however, you are interested -in formally organizing your local LUG, then this section will -introduce you to some of the relevant issues. - -<bf>Note:</bf> this section should not be construed as competent legal -counsel. These issues require the expertise of competent legal -counsel; you should, before acting on any of the statements made in -this section, consult an attorney. - -There are at least two different legal statuses that a local LUG in -the United States may attain: - -<enum> - <item>incorporation as a non-profit entity</item> - <item>tax-exemption</item> -</enum> - -Although the relevant statutes differ from state to state, most states -allow user groups to incorporate as non-profit entitites. The benefits -of incorporation for a local LUG may include limitations of liability -of LUG members and volunteers, as well as limitation or even exemption -from state corporate franchise taxes. - -While you should consult competent legal counsel before incorporating -your LUG as a non-profit entity, you can probably reduce your legal -fees if you are acquainted with the relevant issues before consulting -with an attorney. I recommend the <it>Non-Lawyers Non-Profit -Corporation Kit</it> (ISBN 0-937434-35-3). - -As for the second status, tax-exemption, this is not a legal status so -much as a judgment by the Internal Revenue Service. It is important -for you to know that incorporation as a non-profit entity <bf>does -not</bf> insure that the IRS will rule that your LUG is to be -tax-exempt. It is possible to have a non-profit corporation that is -<bf>not</bf> also tax-exempt. - -The IRS has a relatively simple document that explains the criteria -and process for tax-exemption. It is <bf>Publication 557:</bf> -<it>Tax-Exempt Status for Your Organization</it>. It is available as -an Adobe Acrobat file from the IRS's Web site. I strongly recommend -that you read this document <bf>before</bf> filing for incorporation -as a non-profit entity. While becoming a non-profit corporation cannot -insure that your LUG will be declared tax-exempt by the IRS, there are -ways to incorporate that will <bf>prevent</bf> the IRS from declaring -your LUG to be tax-exempt. <it>Tax-Exempt Status for Your -Organization</it> clearly sets out the necessary conditions for your -LUG to be declared tax-exempt. - -Finally, there are resources available on the Internet for non-profit -and tax-exempt organizations. Some of the material is probably -relevant to your local LUG. - -<sect1>Canada -<p> -Thanks to <htmlurl name="Chris Browne" url="mailto:cbbrowne@hex.net"> -for the following comments about the Canadian situation. - -<p> -The Canadian tax environment strongly parallels the US environment, in -that the ``charitable organization'' status confers similar tax -advantages for donors over mere ``not for profit'' status, while -requiring that similar sorts of added paperwork be filed by the -``charity'' with the tax authorities in order to attain and maintain -certified charity status. - - -<sect1>Political issues -<p> -<url name="Chris Browne" url="mailto:cbbrowne@hex.net"> has the -following to say about the kinds of inter-LUG political dynamics that -often crop up. - -<sect2>People have different feelings about free software. -<p> -Linux users are a diverse bunch. As soon as you try to put a lot of -them together, there are <em> some </em> problem issues that can come -up.There are those that are nearly political radicals that believe -that all software, always, should be ``free.'' Because Caldera charges -quite a lot of money for their distribution, and doesn't give all -profits over to <it> (pick favorite advocacy organization), </it> they -must be ``evil.'' Ditto for Red Hat or S.u.S.E. Keep in mind that all -three of these companies have made and continue to make significant -contributions to free software. - -<p> -Others may figure that they can find some way to highly exploit the -``freeness'' of the Linux platform for their fun and profit. Be aware -that many users of the BSD UNIX variants consider that <it> their -</it> licenses that <it> do </it> permit companies to build -``privatized'' custom versions of their OSes are preferable to the -``enforced permanent freeness'' of the GPL as applied to Linux. Do not -presume that all people promoting this sort of view are necessarily -greedy leeches. - -<p> -If these people are put together in one place, disagreements can -occur. - -<p> -Leaders should be clear on the following facts: - -<itemize> - -<item> There are a lot of opinions about the GPL and how it is supposed -to work. It is easy to misunderstand both the GPL and alternative -licensing schemes. - -<item> Linux benefits from contributions from many places, and can -support some freeloaders, particularly if this encourages more -people to get involved, thus pulling in further contributors. - -<item> Many significant contributions have been made to Linux by -commercial enterprises. Examining the sources to the Linux kernel, -and notable subsystems such as XFree86 and GCC show a surprising -number of commercial contributors. - -<item> Commercial does not always imply ``better,'' but it also does not -always imply ``horrible.'' - -</itemize> - -<p> -The main principle can be extended well beyond this; computer ``holy -wars'' have long been waged over the virtues of one system over -another, whether that be (in modern day) between Linux, other UNIX -variants, and Microsoft OSes, or between the ``IBM PC'' and the various -Motorola 68000-based systems, or between the many 8 bit systems of the -1970s. Or of KDE versus GNOME. - -<p> -A wise LUG leader will seek to smooth over such differences, rather -than inciting them. LUG leaders <it> must </it> have thick skins. - -<p> -There <it> will </it> be disagreements at some point as diverse -views collide with one another, and leaders must be able to cope with -this, resolving disagreements rather than contributing to the problem. - -<sect2>Nonprofit organizations and money don't mix terribly well. -<p> -It is important to be quite careful in dealing with finances in a -nonprofit organization of any sort. In businesses, where profitable -flows of monies are the goal, people are not typically too worried -about ``nagging details'' such as possible misspending of immaterial -sums of money. - -<p> -The same cannot be said about nonprofit organizations. Some people -are involved for reasons of principle, and can easily give minor -problems inordinate attention. And the potential for wide -participation at business meetings correspondingly expands the -potential for inordinate attention to be drawn to things. - -<p> -As a result, it is probably preferable for there to <it> not </it> be -a membership fee for a LUG, as that provides a specific thing for -which people can reasonably demand accountability. Fees that are not -collected cannot, by virtue of the fact that they don't exist, be -misused. - -<p> -If there <it> is </it> a lot of money and/or other such resources -floating around, it is important for the user group to be accountable -to its members for it. - -<p> -In a vital, growing group, there should be more than one person -involved. In troubled nonprofit organizations, financial information -is often tightly held by someone who will not willingly relinquish -control of funds. Ideally, there should be <it> some </it> rotation of -duties in a LUG including that of control of the finances. - -<p> -Regular useful financial reports should be made available to those -that wish them. A LUG that maintains an official ``charitable status'' -for tax purposes will have to file at least annual financial reports -with the local tax authorities, which would represent a minimum -financial disclosure for the purposes of the members. - -<p> -With the growth of Linux-based financial software, it should be -readily possible to create reports on a regular basis. With the -growth of the Internet, it should even be possible to publish these on -the World Wide Web. - - -<sect>About this document - -<sect1>Terms of use -<p> -Copyright (c) 1997 by Kendall Grant Clark. This document may be -distributed under the terms set forth in the LDP license at <url -name="http://sunsite.unc.edu/LDP/COPYRIGHT.html" -url="http://sunsite.unc.edu/LDP/COPYRIGHT.html">. - -<sect1>New versions -<p> -New versions of the Linux User Group HOWTO will be periodically -uploaded to various Linux WWW and FTP sites, principally <url -url="http://www.ntlug.org/~kclark/" name="my homepage"> and -the <url name="Linux Documentation Project" -url="http://sunsite.unc.edu/LDP/"> - -<sect1>Please contribute to this HOWTO -<p> -I welcome questions about and feedback on this document. Please send -them to me at <htmlurl name="kclark@cmpu.net" -url="mailto:kclark@cmpu.net">. <it>I am especially interested in -hearing from leaders of LUGs from around the world</it>. I would like -to include real-life examples of the things described here. I would -also like to include a section on LUGs outside the United States, -since this HOWTO as it stands now is rather US-centric. Please let me -know if your group does things that should be mentioned in this HOWTO. - -<sect1>Document history -<p> -<itemize> - <item>1.0 released on 13 July 1997</item> - <item>1.1: expanded online resources section</item> - <item>1.3: added LUG Support Organizations and expanded the Legal and Organizational Issues section</item> - <item>1.3.1: general editing for clarity and conciseness</item> - <item>1.4: general editing, added new LUG resources</item> - <item>1.4.1: general editing for clarity</item> - <item>1.5: added some resources, some discussion of LUG documentation, also general editing</item> - <item>1.5.1: changed Web location for this document and author's email address.</item> - <item>1.5.2: new copyright and license</item> - <item>1.5.3: miscellaneous edits and minor re-organizations</item> - <item>1.6: added Chris Browne's material: Linux philanthropic -donations and LUG political considerations</item> - <item>1.6.1: very minor additions</item> - <item>1.6.2: minor corrections</item> -</itemize> - - -<sect1>Acknowledgements -<p> -I want to thank all the great people I've met and worked with during -the time I've served as President of the North Texas Linux Users -Group. They helped inspire me to use Linux full-time. The best thing -about Linux really is the people you meet. - -I especially want to thank <url name="Chris Browne" -url="mailto:cbbrowne@hex.net"> for describing the situation with -non-profit and charitable groups in Canada, his thoughts on financial -donations as a way to participate in Linux and the free software -movement, and his ideas about the kinds of political issues that may -arise within LUGs. - -In addition, the following people have made helpful comments and -suggestions: - -<itemize> - <item>Hugo van der Kooij</item> - <item>Greg Hankins</item> - <item>Charles Lindahl</item> - <item>Rick Moen</item> - <item>Jeff Garvas</item> - <item>James Hertzler</item> -</itemize> - - -</article> +<!doctype linuxdoc system> + +<article> + +<title>Linux User Group HOWTO +<author><url name="Rick Moen" url="mailto:rick@linuxmafia.com"></author> +<date>v1.6.3, 2003-07-25 + +<abstract> +The Linux User Group HOWTO is a guide to founding, maintaining, and +growing a Linux user group, co-authored by Kendall Clark and Rick Moen +(now maintained by Rick Moen). +</abstract> + +<toc> + +<sect>Introduction + +<sect1>Purpose +<p> +The Linux User Group HOWTO is intended to serve as a guide to founding, +maintaining, and growing a Linux user group. + +Linux is a freely-distributable implementation of Unix for personal +computers, servers, and workstations. It was developed on the i386 and +now supports i486, Pentium, Pentium Pro, Pentium II, Pentium III, and +Pentium IV processors, as well as IA32 clones from AMD, Cyrix, VIA, IDT, +Winchip, NexGen, Transmeta, and others. It also supports most SPARC, +DEC Alpha, PowerPC/PowerMac, and Motorola 68x0 Mac/Amiga/Atari ST. + +It supports well as Hitachi H8 series, Motorola Dragonball, Motorola +ColdFire, Motorola QUICC, ETRAX, Intel i960, NEC V850E, MPC, MediaGX, +STPC, SH3/SH4, Intel ARM/StrongARM, and PRISMA +embedded/microcontroller/PDA machines, as well as Cisco 2500, 3000, and +4000 series routers. + +It supports MIPS, PA-RISC, AMD x86-64 "Hammer", and IA64/Itanium +minicomputers. It supports IBM S/390 and Fujitsu AP1000+ mainframes. + +<sect1>Other sources of information +<p> +If you want to learn more about Linux, the <url +url="http://www.tldp.org/" name="Linux Documentation Project"> +is a good place to start. + +For general information about computer user groups, please see the +<url name="Association of PC Users Groups" +url="http://www.apcug.org/">. + +<sect>What is a Linux user group? +<p> + +<sect1>What is Linux? +<p> +In order to appreciate and understand fully the significant role of +LUGs in the Linux movement, it is important to understand what makes +Linux unique among computer operating systems. + +Linux as an operating system is very efficient and very powerful -- but +Linux as an <it><bf>idea</bf></it> about how software ought to be +developed is even more powerful. Linux is a <bf>free</bf> operating +system: it is licensed under the GNU Public Licence. The source code +is freely available to anyone who wants it, and always will be. It is +developed by a unstructured group of programmers from around the +world, under the technical direction of Linus Torvalds and other key +developers. Linux is a world-wide movement without any central +structure, bureaucracy, or entity to control, coordinate, or otherwise +direct its affairs. While this situation is a powerful part of the +appeal and technical quality of Linux as an computer operating system, +it can make for inefficient allocation of human resources, ineffective +and even detrimental advocacy, public relations, user education, and +training. + +<sect1>How is Linux unique? +<p> +This loose structure is not likely to change with regard to Linux as a +software project. That's a good thing, too. Linux works precisely +because people are free to come and go as they please: <bf>Free +programmers are happy programmers are effective programmers</bf>. + +However, this loose structure can make the average Linux user's life a +little complicated -- especially if that user isn't a programmer by +profession or by vocation. Whom does she call for support, training, or +education? How does she know the kinds of uses for which Linux is +well suited? + +In large part, local LUGs provide the answers to these kinds of +questions. This is why LUGs are a crucial part of the Linux +movement. Because there is no "regional office" of the Linux +Corporation in your town or village or metropolis, the local LUG takes +on many of the same roles that a regional office does for a large +multi-national corporation. + +Linux is unique because it does not have, nor is it burdened by, a +central structure or bureaucracy to allocate its resources, train its +users, or provide support for its products. These jobs get done in a +variety of ways: the Internet, consultants, VARs, support companies, +colleges, and universities. However, increasingly, in many places around +the globe, they get done by a local LUG. + +<sect1>What is a user group? +<p> +Computer user groups, at least in the United States, are not a new +phenomenon: In fact, they played an important role in the history of +the personal computer. The personal computer arose in large part to +satisfy the demand of electronics, ham radio, and other hobbyist user +groups, as well as trade shows and swap meets, for affordable, +personal access to computing resources. Of course, eventually giants +like IBM discovered that the PC was a good and profitable thing, but +the impetus for the PC came from the people, by the people, and for +the people. + +In the United States, user groups have changed, and many for the worse, +with the times. The financial woes and dissolution of the largest user +group ever, the Boston Computer Society, have been well-reported; but, +all over the U.S., most of the big PC user groups have seen a decline in +real membership. American user groups in their heyday concentrated on +the production of newsletters, maintenance of shareware and diskette +libraries, meetings, social events, and, sometimes, even electronic +bulletin board systems (BBSes). With the advent of the Internet, +however, many of the services that user groups once provided were +transferred to things like CompuServe, AOL, and the Web. + +The rise of Linux, however, coincided with and was intensified by +general public's "discovery" of the Internet. As the Internet grew +more popular, so did Linux: The Internet brought new users, +developers, and vendors to the Linux movement. + +So, just when traditional PC user groups were declining because of the +Internet's popularity, this popularity propelled Linux forward, +creating demand for new user groups dedicated exclusively to +Linux. To give just one indication of the ways in which a LUG is +different than a traditional user group, I call the reader's attention +to a curious fact: Traditional user groups have had to maintain +fairly tight control over the kinds of software that its users copy +and trade at its meetings. While illegal copying of restricted +proprietary software certainly occurred at these meetings, it was +officially discouraged and for good reason. + +At a LUG meeting, however, this entire mindset simply does not +apply. Far from being the kind of thing that a LUG ought to +discourage, unrestricted copying of Linux itself ought to be one of +a LUG's primary activities. In fact, there is anecdotal evidence that +traditional user groups sometimes have difficulty adapting to +the fact that Linux can be freely copied as many times as one needs or +wants. + +(Caveat: A few Linux distributions bundle Linux with proprietary +software packages whose terms don't permit public redistribution. +Check licence terms, if in doubt.) + +<sect1>Summary +<p> +In order for the Linux movement to continue to flourish, the +proliferation and success of local LUGs, along with other factors, is +an absolute requirement. Because of the unique status of Linux, the +local LUG must provide some of the same functions that a "regional +office" provides for large computer corporations like IBM, Microsoft, +or Sun. LUGs can and must train, support, and educate Linux users, +coordinate Linux consultants, advocate Linux as a computing solution, +and even serve as a liason to local media outlets like newspapers and +television. + +<sect>What LUGs are there? +<p> +Since this document is meant as a guide not only to maintaining and +growing LUGs but also to founding them, it would be well before we go +much further to determine what LUGs there are. + +<sect1>Lists of LUGs +<p> +There are several lists of LUGs available on the Web. If you want to +found a local LUG, one of the first things to do is to determine where +the nearest LUG is. <it>Your best bet may be to join a LUG that is +already established in your area rather than founding a new one.</it> + +As of mid-2003, there are LUGs in all 50 states, the District of +Columbia, and over 100 other countries, including India, Russia, China, +and most of Western and Eastern Europe. + +<itemize> + <item><url name="Groups of Linux Users Everywhere (GLUE)" url="http://www.ssc.com:8080/glue/groups/"></item> + <item><url name="LUGs WorldWide Project" url="http://lugww.counter.li.org/"></item> + <item><url name="Linux Online -- User Groups" url="http://www.linux.org/groups/"></item> + <item><url name="Red Hat User Group Program" url="http://www.redhat.com/apps/community/LUG/"></item> + <item><url name="Open Directory: LUGS" url="http://dmoz.org/Computers/Software/Operating_Systems/Linux/User_Groups/"></item> + <item><url name="LUG Webring" url="http://nlug.org/webring/"></item> +</itemize> + +<p> +It appears that the GLUE list is more comprehensive for USA LUGs, +while the LUGs WorldWide Project offers more comprehensive +coverage elsewhere. + +<sect1>Solidarity versus convenience +<p> +While the lists of LUGs on the Web are well-maintained, it is likely +that they do not list every LUG. In addition to consulting these +lists, I suggest, if you are considering founding a LUG, that you post +a short message asking about the existence of a local LUG to <url +name="comp.os.linux.announce" url="news:comp.os.linux.announce">, <url +name="comp.os.linux.misc" url="news:comp.os.linux.misc">, or an +appropriate regional Usenet hierarchy. If there isn't a LUG already in +your area, then posting mesages to these groups will alert potential +members of your plans. + +If you plan to found a local LUG, you should carefully balance +convenience against solidarity. In other words, if there is a LUG in +your metropolitan area, but on the other side of the city, it may be +better to start a new group for the sake of convenience. However, it may be +better to join the pre-existing group for the sake of unity and +solidarity. <bf><it>Greater numbers almost always means greater power, +influence, and efficiency</it></bf>. While it might be nice to have +two groups of 100 members each, there are certain advantages to one +group of 200 members. Of course, if you live in a small town or +village, any group is better than no group at all. + +The point is that starting a LUG is an arduous undertaking, and one +that ought to be entered into with all the relevant facts, and with +some appreciation of the effect on other groups. + +<sect>What does a LUG do? +<p> +The goals of local LUGs are as varied as the locales in which they +operate. There is no master plan for LUGs, nor is this document meant +to supply one. Remember: Linux is free from bureaucracy and +centralised control, and so are local LUGs. + +It is possible, however, to identify a core set of goals for a local +LUG: + +<itemize> + <item>advocacy</item> + <item>education</item> + <item>support</item> + <item>socialising</item> +</itemize> + +Each local LUG will combine these and other goals in a unique way, in +order to satisfy the unique needs of its membership. + +<sect1>Linux advocacy +<p> +The urge to advocate the use of Linux is as natural to computer users +as is eating or sleeping. When you find something that works and works +well, the natural urge is to tell as many people about it as you +can. The role of LUGs in Linux advocacy cannot be overestimated, +especially since wide-scale commercial acceptance of Linux +is only newly underway. While it is certainly +beneficial to the Linux movement, each and every time a computer +journalist writes a positive review of Linux, it is also beneficial +every time satisfied Linux users tell their friends, colleagues, +employees, or employers about Linux. + +There is effective advocacy, and there is ineffective carping: As Linux +users, we must be constantly vigilant to advocate Linux in such a way +as to reflect positively on the product, its creators and +developers, and our fellow users. The Linux Advocacy mini-HOWTO, +available at the Linux Documentation Project, gives some helpful +suggestions in this regard. Suffice it to say that advocacy is an +important aspect of the mission of a local LUG. + +There may come a time when Linux advocacy is pretty much beside the +point, because Linux has more or less won the day, when the phrase "no +one ever got fired for using Linux" becomes a reality. Until that +time, however, the local LUG plays an indispensable role in promoting +the use of Linux. It does so because its advocacy is free, +well-intentioned, and backed up by organisational commitment. If a +person comes to know about Linux through the efforts of a local LUG, +then that person, as a new Linux user, is already ahead of the game: +<it>She is already aware of the existence of an organisation that will +help her install, configure, and even maintain Linux on whatever +computers she is willing to dedicate to it.</it> + +New Linux users who are already in contact with a local LUG are ahead +of those whose interest in Linux has been piqued by a computer +journalist, but who have no one to whom to turn to aid them in their +quest to install, run, and learn Linux. + +It is, therefore, important for local LUGs to advocate Linux, because +their advocacy is effective, well-supported, and free. + + +<sect1>Linux education +<p> +Not only is it the business of a local LUG to advocate the use of +Linux, but also it may turn its efforts to training its members, as well as +the computing public in its area, to use Linux and associated +components. In my own estimation, the goal of user education is the +single most important goal a LUG may undertake. Of course, as I have +already pointed out, LUGs are perfectly free to organise themselves +and their activities around any of these, or other, goals. I believe, +however, that LUGs can have the greatest impact on the Linux movement +by educating and training Linux users. + +Local LUGs may choose to undertake the goal of education, simply +because there is no other local entity from which a Linux user may +receive technically-oriented education. While it is certainly the case +that universities, colleges, and junior colleges are increassingly +turning to Linux as a way to educate their students, both efficiently +and cheaply, about Unix-like operating systems, some Linux users are +either unable or unwilling to register for courses in order to learn +Linux. For these users, the local LUG is a valuable resource for +enhancement or creation of advanced computer skills: Unix-like system +administration, system programming, support and creation of Internet +and Intranet technologies, etc. + +In an ironic twist, many local LUGs are even sharing the burden of +worker training with large corporations. Every worker at Acme Corp +who expands her computer skills by participating in a local LUG is +one worker fewer Acme Corp has to train or pay to train. Even though +using and administering a Linux PC at home isn't the same as +administering a corporate data warehouse, call centre, or similar +high-availability facility, it is light years more complex, more +rewarding, and more educational than using and administering an MS-Windows +PC at home. As Linux itself advances toward things like journaling +filesystems, high availability, real-time capacity, and other high-end +Unix features, the already blurry line between Linux and the "real" +Unixes has become increasingly indistinct. + +Not only is such education a form of worker training, but it will also +serve, as information technology becomes an increasingly vital part of +the global economy, as a kind of community service. In most +metropolitan areas in the United States, for example, it is possible +for a local LUG to take Linux into local schools, small businesses, +community and social organisations, and other non-corporate +environments. This accomplishes the task of Linux advocacy and also +helps train the general public about Linux as a Unix-like operating +system. As more and more of these kinds of organisations seek to +establish an Internet presence or provide dial-in access to their +workers, students, and constituents, the opportunities arise for local +LUGs to participate in the life of their community by educating it +about a free and freely-available operating system. This kind of +community service allows the average Linux user to emulate the kind of +generosity that has characterised Linux, and the free software +community, from the very beginning. Most Linux users can't program +like Linus Torvalds, but we can all all give our time and abilities to +other Linux users, the Linux community, and the broader community in +which we work and live. + +Linux is a natural fit for these kinds of organisation, because +deploying it doesn't commit them to expensive license, upgrade, or +maintenance fees. Because Linux is also technically elegant and +economical, it runs very well on the the kinds of disposable hardware +that corporations typically cast off and that non-profit organisations +are only too happy to use. As more and more people discover every day, +that old 486 collecting dust in the closet can do <bf>real work</bf> +if someone will install Linux on it. + +In addition, Linux education has a cumulative effect on the other +goals of a local LUG, in particular the goal of Linux support +discussed below. Better Linux education means better Linux +support. The more people a LUG can count on to reach its support +goals, the easier support becomes and, therefore, the more of it can +be done. The more new and inexperienced users a local LUG can support +and eventually educate about Linux, the larger and more effective the +LUG can become. In other words, if a LUG focuses solely on Linux +support to the neglect of Linux education, the natural barriers to +organisational growth will be more restrictive. If only two or three +percent of the members of a LUG take upon themselves the task of +supporting the others, the growth of the LUG will be stifled. One +thing you can count on: <bf><it>If new and inexperienced users don't +get the help with Linux they need from a local LUG, they won't +participate in that LUG for very long</it></bf>. If a larger +percentage of members support the others, the LUG will be able to grow +much larger. Linux education is the key to this dynamic: Education +turns new Linux users into experienced ones. + +Free education about free Linux also highlights the degree to +which Linux is part and parcel of the free software community. So, it +seems appropriate that local LUGs focus not solely on Linux education, +but also education about all of the various software systems and +technologies that run under Linux. These include, for instance, the +GNU suite of programs and utilities, the Apache Web server, the +XFree86 implementation of the X Window System, TeX, LaTeX, etc. +Fortunately, the list of free software that runs under Linux is a long +and diverse one. + +Finally, Linux is a self-documenting operating environment; in other words, +if we don't write the documentation, nobody is going to do it for us. Toward +that end, make sure that LUG members are well aware of the <url name="Linux +Documentation Project" url="http://www.tldp.org/">, which can be +found at mirrors worldwide. Consider providing an LDP mirror for the local +Linux community and for LUG members. Also, make sure to publicise -- through +<tt>comp.os.linux.announce</tt>, the LDP, and other pertinent sources of +Linux information -- any relevant documentation developed by the LUG: +technical presentations, tutorials, local FAQs, etc. There is a lot of Linux +documentation produced in LUGs that doesn't benefit the worldwide Linux +community because no one outside the LUG knows about it. Don't let the LUGs' +efforts in this regard go to waste: It is highly probable that if someone at +one LUG had a question or problem with something, then people at other LUGs +around the world will have the same questions and problems. + +<sect1>Linux support +<p> +Of course, for the desperate <bf>newcomer</bf>, the primary role of a +local LUG is Linux support -- but it is a mistake to suppose that Linux +support only means <it>technical</it> support for new Linux users. It +can and should mean much more. + +Local LUGs have the opportunity to support: + +<itemize> + <item>users</item> + <item>consultants</item> + <item>businesses, non-profit organisations, and schools</item> + <item>the Linux movement</item> +</itemize> + +<sect2>Users +<p> +The most frequent complaint from new Linux users, once they have +gotten Linux installed, is the steep learning curve that is not at +all unique to Linux but that is, rather, a characteristic of all modern +Unixes. With the steepness of the learning curve, however, comes the +power and flexibility of a complex operating system. A local LUG is +often the only resource that a new Linux user has available to help +flatten out the learning curve. + +However, even if a new Linux user doesn't know it yet, she needs more than +just technical support: Linux and the free software worlds are both +rapidly moving targets. The local LUGs form an invaluable conduit of +information about Linux and other free software products. Not only +does Linux lack a central bureaucracy, but it also for the most part +lacks the kind of journalistic infrastructure from which users of +other computer systems benefit. The Linux movement does have resources +like <url name="Linux Journal" url="http://www.linuxjournal.com/"> and <url +name="Linux Gazette" url="http://www.linuxgazette.com/">, but many new Linux +users are unaware of these resources. In addition, as <it>monthly</it> +publications, they are often already out of date about bugfixes, +security problems, patches, new kernels, etc. This is where the local +LUG as a source and conduit of timely information is so vital to new +and experienced Linux users alike. + +For example, until a new Linux user knows that the newest kernels are +available from <url name="ftp.kernel.org" url="ftp://ftp.kernel.org"> +or that the <bf>Linux Documentation Project</bf> usually has newer +versions of Linux HOWTOs than does a CD-based Linux distribution, it is up +to the local LUG, as the primary support entity, to be a conduit of +timely and useful information. + +In fact, it may be just a bit misleading to focus on the support role +that local LUGs provide to new users: intermediate and advanced users +also benefit from the proliferation of timely and useful tips, facts, +and secrets about Linux. Because of Linux's complexity, even +advanced users often learn new tricks or techniques simply by becoming +involved in a local LUG. Sometimes, they learn about software packages +they didn't know existed; sometimes, they just remember that arcane +<tt>vi</tt> command sequence they've not used since college. + +<sect2>Consultants +<p> +It is, I think, rather obvious to claim that local LUGs ought to be in +the business of supporting new Linux users. After all, if they're not +supposed to be doing that, what are they to do? It may not be as +obvious that local LUGs can play an important role in supporting local +Linux consultants. Whether they do Linux consulting full-time or only +part-time, consultants can be an important part of a local LUG. How +can the LUG support them? + +The answer to that question is just the answer to another question: +What is it that Linux consultants want and need? <bf><it>They need +someone for whom to consult.</it></bf> A local LUG provides the best +way for those who <it>offer</it> Linux consulting to find those who +<it>need</it> Linux consulting. The local LUG can informally broker +connections between consulting suppliers and consulting consumers +simply by getting all, or as many as possible, of the people +interested in Linux in a local area together and talking with one +another. How LUGs do that will occupy us below. What is important here +is to point out that LUGs can and should play this role as well. The +Linux Consultants Guide is an important document in this regard, but +it is surely the case that only a fraction of the full-time and +part-time Linux consultants worldwide are registered in the +Consultants Guide. + +The relationship is mutually beneficial. Consultants aid LUGs by +providing experienced leadership, both technically and +organisationally, while LUGs aid consultants by putting them in +contact with the kinds of people who need their services. New and +inexperienced users gain benefit from both LUGs and consultants, since +their routine or simple requests for support are handled by LUGs +<it>gratis</it>, and their complex needs and problems -- the kind that +obviously require the services of a paid consultant -- can be handled +by the consultants whom the local LUG helps them contact. + +The line between support requests that need a consultant and those +that do not is sometimes indistinct; but, in most cases, the difference +is clear. While a local LUG doesn't want to gain the reputation for +pawning new users off unnecessarily on consultants -- as this is simply +rude and very anti-Linux behaviour -- there is no reason for LUGs not to +help broker contacts between the users who need consulting services +and the professionals who offer them. + +Please see Joshua Drake's <url name="Linux Consultants Guide" +url="http://www.tldp.org/LDP/lcg/html/"> for an +international list of Linux consultants. + +<sect2>Businesses, non-profit organisations, and schools +<p> +LUGs also have the opportunity to support local businesses and +organisations. This support has two aspects: First, LUGs can support +businesses and organisations that want to use Linux as a part of their +computing and IT efforts. Second, LUGs can support local businesses +and organisations that develop for Linux, cater to Linux users, +support or install Linux, etc. + +The kinds of support that LUGs can provide to local businesses +wanting to use Linux as a part of their computing operations isn't really +all that different from the kinds of support LUGs give to individuals +who want to run Linux at home. For example, compiling the Linux kernel +doesn't really differ from home to business. Supporting businesses using +Linux, however, may mean that a LUG needs to include proprietary +software that runs on Linux, rather than concentrating solely on free +software. If Linux is going to continue to maintain its momentum as a +viable computing alternative, then it's going to take software vendors +who are willing to write for and port to Linux as a +commercially-viable platform. If local LUGs can play a role in helping +business users evaluate proprietary Linux solutions, then more software +vendors will be encouraged to consider Linux in their development and +planning. + +This leads us directly to the second kind of support that a local LUG +can give to local businesses: Local LUGs can serve as a clearing house +for the kind of information that is available in very few other +places. For example: + +<itemize> + + <item>Which local ISP is Linux-friendly?</item> + <item>Are there any local hardware vendors that build Linux PCs?</item> + <item>Does anyone sell Linux CDs locally?</item> + +</itemize> + +Maintaining and making this kind of information public not only helps +the members of a local LUG, but also helps Linux-friendly local +businesses as well, and encourages them to continue to be +Linux-friendly. It may even, in some cases, help contribute to a +competitive atmosphere in which other businesses are encouraged to +become Linux-friendly too. + +<sect2>Free software development +<p> +Finally, LUGs may also support the Linux movement by soliciting and +organising charitable giving. <url name="Chris Browne" +url="mailto:cbbrowne@cbbrowne.com"> has thought about this issue as much as +anyone I know, and he contributes the following. + +<sect3>Chris Browne on free software philanthropy +<p> +A further involvement can be to encourage sponsorship of various +Linux-related organisations in a financial way. With the <url +url="http://counter.li.org" name="multiple millions"> of Linux users, +it would be entirely plausible for grateful users to individually +contribute a little. Given millions of users, and the not-unreasonable +sum of a hundred dollars of "gratefulness" per Linux user ($100 being +roughly the sum <em>not</em> spent this year upgrading a Microsoft OS), +that could add up to <em>hundreds of millions</em> of dollars towards +development of improved tools and applications for Linux. + +<p> +A users group can encourage members to contribute to various +"development projects". If it has some form of "charitable tax +exemption" status, that can encourage members to contribute directly +to the group, getting tax deductions as appropriate, with +contributions flowing on to other organisations. + +<p> +It is appropriate, in any case, to encourage LUG members to direct +contributions to organisations with projects and goals they +individually wish to support. + +<p> +This section lists possible candidates. None are explicitly being +recommended here, but the list can represent useful "food for +thought". Many are registered as charities in the United States, thus +making U.S. contributions tax deductible. + +<p> +Here are organisations with activities particularly directed towards +development of software that works with Linux: + +<itemize> +<item><url url="http://www.li.org/grants/grantdonation.php" name=" Linux International Development Grant Fund Donations"> +<item><url url="http://www.debian.org/donations.html" name="Debian/Software In the Public Interest"> +<item><url url="http://www.fsf.org/help/donate.html" name="Free Software Foundation"> +<item><url url="http://www.kde.org/helping/" name="KDE Project"> +<item><url url="http://www.gnome.org/friends/" name="GNOME Foundation"> +</itemize> + +<p> +Contributions to these organisations has the direct effect of +supporting the creation of freely redistributable software usable with +Linux. Dollar for dollar, such contributions almost certainly have +greater effect on the Linux community as a whole than any other +specific kind of spending. + +<p> +There are also organisations that are less directly associated +with Linux that may nonetheless be worthy of assistance, such as: + +<itemize> +<item> <url url="http://lpf.ai.mit.edu/" name="League for Programming Freedom"> + +<p> +This is not a Linux-specific organisation; they are involved in +general advocacy activities that touch on people involved with +software development. Involvement in this organisation represents +something closer to involvement in a "political lobby" group. + +<p> +There is somewhat of a "USA bias"; there are nonetheless +international implications, and the international community as often +follows the American lead in computing-related matters as vice-versa. + +<item>The <url url="http://www.eff.org/" name="Electronic Frontier Foundation"> + +<p> +Based in San Francisco, EFF is a donor-supported membership organization +working to protect our fundamental rights regardless of technology; to +educate the press, policy-makers, and the general public about civil +liberties issues related to technology; and to act as a defender of +those liberties. Among our various activities, EFF opposes misguided +legislation, initiates and defends court cases preserving individuals' +rights, launches global public campaigns, introduces leading edge +proposals and papers, hosts frequent educational events, engages the +press regularly, and publishes a comprehensive archive of digital civil +liberties information at one of the most linked-to Web sites in the +world. + +<item>The LaTeX3 Project Fund + +<p> +The <url url="http://www.tug.org/" name="TeX Users Group (TUG)"> is +working on the "next generation" version of the LaTeX publishing +system, known as LaTeX3. Linux is one of the platforms on which TeX +and LaTeX are best supported. +<p> Donations for the project can be sent to: +<tscreen> +<verb> +TeX Users Group +P.O. Box 1239 +Three Rivers, CA 93271-1239 +USA +</verb> +</tscreen> +or, for those in Europe, +<tscreen> +<verb> +UK TUG +1 Eymore Close +Selly Oaks +Burmingham B29 4LB +UK +</verb> +</tscreen> + +<item> <URL URL="http://promo.net/pg/" name="Project Gutenberg"> + +<p> +Their purpose is to make freely available in electronic form the +texts of public-domain books. This isn't directly a "Linux thing", +but it seems fairly worthy, and they actively encourage platform +independence, which means that their "products" are quite usable with Linux. + +<item> <url url="http://www.osef.org/donations.html" name="Open Source +Education Foundation"> + +<p> +The Open Source Education Foundation's purpose to enhance k-12 education +through the use of technologies and concepts derived from The Open +Source and Free Software movement. In conjunction with Tux4Kids, OSEF +created a bootable distribution of GNU/Linux based on Klaus Knopper's +Knoppix, aimed at kids, parents, teachers, and other school officials. +OSEF installs and supports school computer labs, and has developed a +"K12 Box" as a compact Plug and Play workstation computer for student +computer labs. + +<item> <url url="http://www.osafoundation.org/donations.htm" name="Open +Source Applications Foundation"> + +<p>OSAF is Mitch Kapor's non-profit foundation to create and popularise +open source application software of uncompromising quality, starting +with its pioneering personal information manager, Chandler. + +</itemize> + + +<sect2>Linux movement +<p> +I have referred throughout this HOWTO to something I call the +<bf>Linux movement</bf>. There really is no better way to describe the +international Linux phenomenon than to call it a movement: it isn't a +bureaucracy, but it is organised; it isn't a corporation, but it is +important to businesses all over the world. The best way for a local +LUG to support the international Linux movement is to work to insure +that the local Linux community is robust, vibrant, and growing. Linux +is <it>developed</it> internationally, which is easy enough to see by +reading <file>/usr/src/linux/MAINTAINERS</file>. But Linux is also +<it>used</it>, internationally -- and this ever-expanding user base is +the key to Linux's continued success. That is where the local LUG +plays an incalculably important role. + +The Linux movement's strength internationally lies in the simple fact +that Linux offers unprecedented computing power and sophistication for +its cost and freedom. The keys are value and independence from +proprietary control. Every time a new person, group, business, or +organisation has the opportunity to be exposed to Linux's inherent +value, the Linux movement grows in strength and numbers. Local LUGs can +make that happen. + +<sect1>Linux socialising +<p> +The last goal of a local LUG that I will mention here is +socialising. In some ways, this is the most difficult goal to discuss, +because it is not clear how many or to what degree LUGs engage in +it. While it would be strange to have a local LUG that didn't engage +in the other goals, there very well may be local LUGs somewhere in the +world for which socialisation isn't an important consideration. + +It seems, however, that whenever two or three Linux users get together, +fun, highjinks, and, often, beer are sure to follow. Linus Tovalds has +always had one enduring goal for Linux: to have more fun. For hackers, +kernel developers, and Linux users, there's nothing quite like +downloading a new kernel, recompiling an old one, twittering with a +window manager, or hacking some code. It is the sheer fun of Linux +that keeps many LUGs together, and it is this kind of fun that leads +many LUGs naturally to socialising. + +By "socialising", here I mean primarily sharing experiences, forming +friendships, and mutually-shared admiration and respect. There is +another meaning, however -- one that social scientists call +<it>acculturation</it>. In any movement, institution, or human +community, there is the need for some process or pattern of events in +and by which, to put it in Linux terms, newcomers are turned into +hackers. In other words, acculturation turns you from "one of them" +to "one of us". + +For armed forces in the U.S. and in most countries, this process is +called boot camp or basic training. This is the process whereby +civilians are transformed into soldiers. The Linux movement has +analogous requirements. It is important that new Linux users come to +learn what it means to be a Linux user, what is expected of them as a +member of an international community, the special vocabulary of the +Linux movement, its unique requirements and opportunities. This may be +as simple as how Linux users in a particular locale pronounce +"Linux". It may be as profound as the ways in which Linux users +should advocate, and the ways in which they should, more importantly, +<it>refrain</it> from advocating Linux. + +Linux acculturation, unlike `real world' acculturation, can occur on +mailing lists and Usenet, although the latter's efficacy is +constantly challenged precisely by poorly acculturated users. In my +view, acculturation and socialising are both done best in the company +of real, flesh-and-blood fellow human beings, and not by incorporeal +voices on a mailing list or Usenet group. + +<sect>Local LUG activities +<p> +In the previous section I focused exclusively on what LUGs do and what +they ought to be doing. In this section, the focus shifts to practical +strategies for accomplishing these goals. + +There are, despite the endless permutations of form, two basic things +that local LUGs do: First, they meet together in physical space; +second, they communicate with each other in cyberspace. Everything or +nearly everything that LUGs do can be seen in terms of meetings and +online resources. + +<sect1>Meetings +<p> +As I said above, physical meetings are synonymous with LUGs and with +most computer user groups. LUGs have these kinds of meetings: + +<itemize> + <item>social</item> + <item>technical presentations</item> + <item>informal discussion groups</item> + <item>user group business</item> + <item>Linux installation</item> + <item>configuration and bug-squashing</item> +</itemize> + +What do LUGs do at these meetings? + +<itemize> + <item>Install Linux for newcomers and strangers</item> + <item>Teach members about Linux</item> + <item>Compare Linux to other operating systems</item> + <item>Teach members about the software that runs on Linux</item> + <item>Discuss the ways in which Linux can be advocated</item> + <item>Discuss the importance of the free software movement</item> + <item>Discuss the business of the user group</item> + <item>Eat, drink, and be merry</item> +</itemize> + + +<sect1>Online resources +<p> +The commercial rise of the Internet coincided roughly with the rise of +Linux, and the latter in large part owes something to the former. The +Internet has always been an important asset for Linux development. It +is no different for LUGs. Most LUGs have Web pages if not whole +Web sites. In fact, I am not sure how else to find a local LUG but to +check the Web. + +It makes sense, then, for a local LUG to make use of whatever Internet +technologies they can appropriate: Web sites, mailing lists, wikis, +FTP, e-mail, Web discussion forums, netnews, etc. As the world of commerce is +discovering, the Internet can be an effective way to advertise, +inform, educate, and even sell. The other reason that LUGs make +extensive use of Internet technologies is that it is the very essence +of Linux to <it>provide</it> a stable and rich platform for the +deployment of these technologies. So not only do LUGs benefit from, +say, the establishment of a Web site because it advertises their +existence and helps organise their members, but, in deploying these +technologies, the members of the LUG are provided an opportunity to +learn about this technology and see Linux at work. + +Some LUGs that use the Internet effectively: + +<itemize> + + <item><url name="Atlanta Linux Enthusiasts" url="http://www.ale.org/"></item> + + <item><url name="North Texas Linux Users Group" url="http://www.ntlug.org/"></item> + + <item><url name="Boston Linux and Unix" url="http://www.blu.org/"></item> + + <item><url name="Colorado Linux Users and Enthusiasts" url="http://clue.denver.co.us/"></item> + + <item><url name="BLUG - BHZ Linux Users Group (Brazil)" url="http://www.artsoft.com.br/blug/"></item> + + <item><url name="Ottawa Carleton Linux Users Group" url="http://www.oclug.on.ca/"></item> + + <item><url name="Provence Linux Users Group" url="http://www.plugfr.org/"></item> + + <item><url name="Düsseldorfer Linux Users Group" url="http://www.dlug.de/"></item> + + <item><url name="Linux User Group Austria" url="http://www.luga.or.at/"></item> + <item><url name="Israeli Group of Linux Users" url="http://www.linux.org.il/"></item> + + <item><url name="Tokyo Linux Users Group" url="http://www.tlug.jp/"></item> + + <item><url name="Linux México" url="http://www.linux.org.mx/"></item> + + <item><url name="Nederlandse Linux Gebruikers Groep (Netherlands Linux Users Group or NLLGG)" url="http://www.nllgg.nl/"></item> + + <item><url name="St. Petersburg Linux User Group" url="http://linux.spb.org/"></item> + + <item><url name="Linux User Group of Singapore" url="http://www.lugs.org.sg/"></item> + +<item><url name="Victoria Linux User Group" url="http://www.vlug.org/"></item> + + <item><url name="Essex Linux User Group" url="http://www.epos.demon.co.uk/"></item> + + <item><url name="Turkish Linux User Group" url="http://www.linux.org.tr/"></item> + + <item><url name="Linux User Group of Rochester" url="http://www.lugor.org/"></item> + + <item><url name="Korean Linux Users Group" url="http://www.lug.or.kr/"></item> + +</itemize> + +<p> +Please let me know if your LUG uses the Internet in an important or +interesting way; I'd like this list to include your group. + +<sect>Practical suggestions +<p> +Finally, I want to make some very practical, even mundane, suggestions +for anyone wanting to found, maintain, or grow a LUG. + +<sect1>LUG support organisations +<p> + +There are several organisations that offer assistance to local LUGs. + +<descrip> + + <tag>GLUE</tag> Groups of Linux Users Everywhere is a user group + coordination and support program started by SSC, the same people who + publish <it>Linux Journal</it>. The <url name="GLUE program" + url="http://www.ssc.com:8080/glue/groups/"> is an inexpensive way + for a local LUG to provide some benefits to its membership. + + <tag>Cleveland Linux User's Group</tag> Owns the Internet domain, + <tt>lug.net</tt>. They will provide your LUG an Internet domain name + at <tt>lug.net</tt>: your-LUG-name-or-city<tt>lug.net</tt>. More + information may be found by e-mailing <htmlurl name="Jeff + Garvas" url="mailto:jeff@cia.net">. + + <tag>Red Hat Software's User Group Program</tag> Assists LUGs to + develop and grow. More information may be found at <url + url="http://www.redhat.com/apps/community/LUG/" name="Red Hat Web + site"> + +</descrip> + +<sect1>Founding a LUG +<p> + +<itemize> + + <item>Determine the nearest pre-existing LUG</item> + <item>Announce your intentions on <tt>comp.os.linux.announce</tt> and on an appropriate regional hierarchy</item> + <item>Announce your intention wherever computer users are in your area: bookstores, swap meets, cybercafes, colleges and universities, corporations, Internet service providers, etc.</item> + <item>Find Linux-friendly businesses or institutions in your area that may be willing to help you form the LUG</item> + <item>Form a mailing list or some means of communication among the people who express an interest in forming a LUG</item> + <item>Ask key people specifically for help in spreading the word about your intention to form a LUG</item> + <item>Solicit space on a Web server to put a few HTML pages together about the group</item> + <item>Begin looking for a meeting place</item> + <item>Schedule an initial meeting</item> + <item>Discuss at the initial meeting the goals for the LUG</item> + +</itemize> + +<sect1>Maintaining and growing a LUG +<p> + +<itemize> + + <item>Make the barriers to LUG membership as low as possible</item> + <item>Make the LUG's Web site a priority: keep all information current, make it easy to find details about meetings (who, what, and where), and make contact information and feedback mechanisms prominent</item> + <item>Install Linux for anyone who wants it</item> + <item>Post flyers, messages, or handbills wherever computer users are in your area</item> + <item>Secure dedicated leadership</item> + <item>Follow Linus's <it>benevolent dictator</it> model of leadership</item> + <item>Take the big decisions to the members for a vote</item> + <item>Start a mailing list devoted to technical support and ask the "gurus" to participate on it</item> + <item>Schedule a mixture of advanced and basic, formal and informal, presentations</item> + <item>Support the software development efforts of your members</item> + <item>Find way to raise money without dues: for instance, selling Linux merchandise to your members and to others</item> + <item>Consider securing formal legal standing for the group, such as incorporation or tax-exempt status</item> + <item>Find out if your meeting place is restricting growth of the LUG</item> + <item>Meet in conjunction with swap meets, computer shows, or other community events where computer users -- i.e., potential Linux converts -- are likely to gather</item> + <item>Elect formal leadership for the LUG as soon as is practical: Some helpful officers might include President, Treasurer, Secretary, Meeting Host (general announcements, speaker introductions, opening and closing remarks, etc.), Publicity Coordinator (handles Usenet and e-mail postings, local publicity), and Program Coordinator (organises and schedules speakers at LUG meetings)</item> + <item>Provide ways for members and others to give feedback about the direction, goals, and strategies of the LUG</item> + <item>Support Linux and free software development efforts by donating Web space, a mailing list, or FTP site</item> + <item>Establish an FTP site for relevant software</item> + <item>Archive everything the LUG does for the Web site</item> + <item>Solicit ``door prizes'' from Linux vendors, VARs, etc. to give away at meetings</item> + <item>Give credit where credit is due</item> + <item>Join SSC's GLUE (Groups of Linux Users Everywhere) but be aware they charge a membership fee</item> + <item>Submit your LUG's information to all of the lists of LUGs</item> + <item>Publicise your meetings on appropriate Usenet groups and in local computer publications and newspapers</item> + <item>Compose promotional materials, like Postscript files, for instance, that members can use to help publicise the LUG at workplaces, bookstores, computer stores, etc.</item> + <item>Make sure you know what LUG members want the LUG to do</item> + <item>Release press releases to local media outlets about any unusual LUG events like an Installation Fest, Net Day, etc.</item> + <item>Use LUG resources and members to help local non-profit organisations and schools with their Information Technology needs</item> + <item>Advocate the use of Linux zealously but responsibly</item> + <item>Play to the strengths of LUG members</item> + <item>Maintain good relations with Linux vendors, VARs, developers, etc.</item> + <item>Identify and contact Linux consultants in your area + <item>Network with the leaders of other LUGs in your area, state, region, or country to share experiences, tricks, and resources</item> + <item>Keep LUG members advised on the state of Linux software -- new kernels, bugs, fixes, patches, security advisories -- and the state of the Linux world at large -- new ports, trademark and licensing issues, where Linus is living and working, etc.</item> + <item>Notify the Linux Documentation Project -- and other pertinent sources of Linux information -- about the documentation that the LUG produces: technical presentations, tutorials, local HOWTOs, etc.</item> +</itemize> + +<sect>Legal and political issues +<p> + +<sect1>Legal issues +<p> +<sect1>United States + +<p> +There is a strong case to be made for formal organisation of local +LUGs. I will not make that case here. If, however, you are interested +in formally organising your local LUG, then this section will +introduce you to some of the relevant issues. + +<bf>Note:</bf> this section should not be construed as competent legal +counsel. These issues require the expertise of competent legal +counsel; you should, before acting on any of the statements made in +this section, consult an attorney. + +There are at least two different legal statuses that a local LUG in +the United States may attain: + +<enum> + <item>incorporation as a non-profit entity</item> + <item>tax-exemption</item> +</enum> + +Although the relevant statutes differ from state to state, most states +allow user groups to incorporate as non-profit entitites. The benefits +of incorporation for a local LUG may include limitations of liability +of LUG members and volunteers, as well as limitation or even exemption +from state corporate franchise taxes. + +While you should consult competent legal counsel before incorporating +your LUG as a non-profit entity, you can probably reduce your legal +fees if you are acquainted with the relevant issues before consulting +with an attorney. I recommend the <it>Non-Lawyers Non-Profit +Corporation Kit</it> (ISBN 0-937434-35-3). + +As for the second status, tax-exemption, this is not a legal status so +much as a judgment by the Internal Revenue Service. It is important +for you to know that incorporation as a non-profit entity <bf>does +not</bf> insure that the IRS will rule that your LUG is to be +tax-exempt. It is possible to have a non-profit corporation that is +<bf>not</bf> also tax-exempt. + +The IRS has a relatively simple document that explains the criteria +and process for tax-exemption. It is <bf>Publication 557:</bf> +<it>Tax-Exempt Status for Your Organization</it>. It is available as +an Adobe Acrobat file from the IRS's Web site. I strongly recommend +that you read this document <bf>before</bf> filing for incorporation +as a non-profit entity. While becoming a non-profit corporation cannot +insure that your LUG will be declared tax-exempt by the IRS, there are +ways to incorporate that will <bf>prevent</bf> the IRS from declaring +your LUG to be tax-exempt. <it>Tax-Exempt Status for Your +Organization</it> clearly sets out the necessary conditions for your +LUG to be declared tax-exempt. + +Finally, there are resources available on the Internet for non-profit +and tax-exempt organisations. Some of the material is probably +relevant to your local LUG. + +<sect1>Canada +<p> +Thanks to <htmlurl name="Chris Browne" url="mailto:cbbrowne@cbbrowne.com"> +for the following comments about the Canadian situation. + +<p> +The Canadian tax environment strongly parallels the US environment, in +that the "charitable organisation" status confers similar tax +advantages for donors over mere "not for profit" status, while +requiring that similar sorts of added paperwork be filed by the +"charity" with the tax authorities in order to attain and maintain +certified charity status. + +<sect1>Germany +<p> +Correspondent <htmlurl name="Thomas Kappler" url="Thomas.Kappler@stud.uni-karlsruhe.de"> warns that the process of founding a non-profit entity in Germany +is a bit complicated, but is comprehensively covered at <url +name="http://www.wegweiser-buergergesellschaft.de/praxishilfen/arbeit_im_verein/vereinsrecht/vereinsgruendung_1.php" url="http://www.wegweiser-buergergesellschaft.de/praxishilfen/arbeit_im_verein/vereinsrecht/vereinsgruendung_1.php">. + + + +<sect1>Political issues +<p> +<url name="Chris Browne" url="mailto:cbbrowne@cbbrowne.com"> has the +following to say about the kinds of inter-LUG political dynamics that +often crop up. + +<sect2>People have different feelings about free software. +<p> +Linux users are a diverse bunch. As soon as you try to put a lot of +them together, there are <em> some </em> problem issues that can come +up.There are those that are nearly political radicals that believe +that all software, always, should be "free". Because Caldera charges +quite a lot of money for their distribution, and doesn't give all +profits over to <it> (pick favorite advocacy organisation), </it> they +must be "evil". Ditto for Red Hat or SuSE. Keep in mind that all +three of these companies have made and continue to make significant +contributions to free software. + +(HOWTO maintainer's note: The above was a 1998 note, from before +Caldera exited the Linux business, renamed itself to The SCO Group, +Inc., and launched its copyright / contract / patent / trade-secret +lawsuit and PR campaign against Linux users. My, those times do change. +Still, we're grateful to the Caldera Systems that <em> was </em>, for +its gracious donation of hardware to help Alan Cox develop SMP kernel +support, for funding the development of RPM, and for other past +contributions.) + +<p> +Others may figure that they can find some way to highly exploit the +"freeness" of the Linux platform for their fun and profit. Be aware +that many users of the BSD Unix variants consider that <it> their +</it> licenses that <it> do </it> permit companies to build +"privatised" custom versions of their OSes are preferable to the +"enforced permanent freeness" of the GPL as applied to Linux. Do not +presume that all people promoting this sort of view are necessarily +greedy leeches. + +<p> +If these people are put together in one place, disagreements can +occur. + +<p> +Leaders should be clear on the following facts: + +<itemize> + +<item> There are a lot of opinions about the GPL and how it is supposed +to work. It is easy to misunderstand both the GPL and alternative +licensing schemes. + +<item> Linux benefits from contributions from many places, and can +support some freeloaders, particularly if this encourages more +people to get involved, thus pulling in further contributors. + +<item> Many significant contributions have been made to Linux by +commercial enterprises. Examining the sources to the Linux kernel, +and notable subsystems such as XFree86 and GCC show a surprising +number of commercial contributors. + +<item> Proprietary does not always imply "better", but it also does not +always imply "horrible". + +</itemize> + +<p> +The main principle can be extended well beyond this; computer "holy +wars" have long been waged over the virtues of one system over +another, whether that be (in the modern day) between Linux, other Unix +variants, and Microsoft OSes, or between the "IBM PC" and the various +Motorola 68000-based systems, or between the many 8-bit systems of the +1970s. Or of KDE versus GNOME. + +<p> +A wise LUG leader will seek to smooth over such differences, rather +than inciting them. LUG leaders <it> must </it> have thick skins. + +<p> +There <it> will </it> be disagreements at some point as diverse +views collide with one another, and leaders must be able to cope with +this, resolving disagreements rather than contributing to the problem. + +<sect2>Non-profit organisations and money don't mix terribly well. +<p> +It is important to be quite careful in dealing with finances in a +non-profit organisation of any sort. In businesses, where profitable +flows of monies are the goal, people are not typically too worried +about "nagging details" such as possible misspending of immaterial +sums of money. + +<p> +The same cannot be said about non-profit organisations. Some people +are involved for reasons of principle, and can easily give minor +problems inordinate attention. And the potential for wide +participation at business meetings correspondingly expands the +potential for inordinate attention to be drawn to things. + +<p> +As a result, it is probably preferable for there to <it> not </it> be +a membership fee for a LUG, as that provides a specific thing for +which people can reasonably demand accountability. Fees that are not +collected cannot, by virtue of the fact that they don't exist, be +misused. + +<p> +If there <it> is </it> a lot of money and/or other such resources +floating around, it is important for the user group to be accountable +to its members for it. + +<p> +In a vital, growing group, there should be more than one person +involved. In troubled nonprofit organisations, financial information +is often tightly held by someone who will not willingly relinquish +control of funds. Ideally, there should be <it> some </it> rotation of +duties in a LUG including that of control of the finances. + +<p> +Regular useful financial reports should be made available to those +that wish them. A LUG that maintains an official "charitable status" +for tax purposes will have to file at least annual financial reports +with the local tax authorities, which would represent a minimum +financial disclosure for the purposes of the members. + +<p> +With the growth of Linux-based financial software, it should be +readily possible to create reports on a regular basis. With the +growth of the Internet, it should even be possible to publish these on +the World Wide Web. + + +<sect>About this document + +<sect1>Terms of use +<p> + +Copyright (C) 2003, Rick Moen. Copyright (C) 1997 by Kendall Grant +Clark. This document may be distributed under the terms set forth +in the LDP license at <url +name="http://www.tldp.org/COPYRIGHT.html" +url="http://www.tldp.org/COPYRIGHT.html">. + +<sect1>New versions +<p> +New versions of the Linux User Group HOWTO will be periodically +uploaded to various Linux WWW and FTP sites, principally <url +url="http://linuxmafia.com/lug/" name="http://linuxmafia.com/lug/"> and +the <url name="Linux Documentation Project" +url="http://www.tldp.org/">. + +<sect1>Please contribute to this HOWTO +<p> +I welcome questions about and feedback on this document. Please send +them to me at <htmlurl name="rick@linuxmafia.com" +url="mailto:rick@linuxmafia.com">. <it>I am especially interested in +hearing from leaders of LUGs from around the world</it>. I would like +to include real-life examples of the things described here. I would +also like to include a section on LUGs outside the United States, +since this HOWTO as it stands now is rather US-centric. Please let me +know if your group does things that should be mentioned in this HOWTO. + +<sect1>Document history +<p> +<itemize> + <item>1.0 released on 13 July 1997</item> + <item>1.1: expanded online resources section</item> + <item>1.3: added LUG support organisations and expanded the Legal and Organisational Issues section</item> + <item>1.3.1: general editing for clarity and conciseness</item> + <item>1.4: general editing, added new LUG resources</item> + <item>1.4.1: general editing for clarity</item> + <item>1.5: added some resources, some discussion of LUG documentation, also general editing</item> + <item>1.5.1: changed Web location for this document and author's email address.</item> + <item>1.5.2: new copyright and license</item> + <item>1.5.3: miscellaneous edits and minor re-organisations</item> + <item>1.6: added Chris Browne's material: Linux philanthropic +donations and LUG political considerations</item> + <item>1.6.1: very minor additions</item> + <item>1.6.2: minor corrections</item> + <item>1.6.3: Maintenance assumed by Rick Moen: General initial touchup, +correction of broken URLs, etc. +</itemize> + + +<sect1>Acknowledgements +<p> + +I would like to give a big thank-you to Kendall Grant Clark for the +initial versions of this document in 1997-1998, and trusting me to take +over and renovate his creation starting in 2003. + +Warn regards and thanks to <url name="Chris Browne" +url="mailto:cbbrowne@cbbrowne.com"> for describing the situation with +non-profit and charitable groups in Canada, his thoughts on financial +donations as a way to participate in Linux and the free software +movement, and his ideas about the kinds of political issues that may +arise within LUGs. + +In addition, the following people have made helpful comments and +suggestions: + +<itemize> + <item>Hugo van der Kooij</item> + <item>Greg Hankins</item> + <item>Charles Lindahl</item> + <item>Jeff Garvas</item> + <item>James Hertzler</item> + <item>Thomas Kappler</item> +</itemize> + + +</article> +