https://wiki.archlinux.org/api.php?action=feedcontributions&user=Xiol&feedformat=atom
ArchWiki - User contributions [en]
2024-03-29T11:38:54Z
User contributions
MediaWiki 1.41.0
https://wiki.archlinux.org/index.php?title=KEYMAP&diff=232138
KEYMAP
2012-10-28T12:06:42Z
<p>Xiol: United Kingdom keymap isn't "uk", it's "gb".</p>
<hr />
<div>[[Category:Internationalization]]<br />
[[es:KEYMAP]]<br />
[[pt:KEYMAP]]<br />
[[tr:Klavye_düzeni]]<br />
[[zh-CN:KEYMAP]]<br />
The '''KEYMAP''' variable is specified in the [[Systemd#Console_and_keymap|{{ic|/etc/vconsole.conf}}]] file. It defines what keymap the keyboard is in the virtual consoles. Keytable files are provided by the {{Pkg|kbd}} package.<br />
<br />
==Keyboard layouts==<br />
This is the list of known keymap settings to work for the corresponding keyboard layouts. Most keymaps can be found in the {{ic|/usr/share/kbd/keymaps/i386/''layout''}} (''layout''=qwerty, azerty, dvorak, etc.) directory.<br />
<br />
Less common but nonetheless useful keymaps for Arch Linux are found in the {{ic|/usr/share/kbd/keymaps/''architecture''}} (''architecture''=mac, sun, etc.) directory.<br />
<br />
{{Note|In an X session, you can use setxkbmap to instantly apply keyboard layout: {{Ic|setxkbmap -layout dvorak}}}}<br />
<br />
{{Note|If these keymaps do not work for you, make sure the keymap file exists in {{ic|/usr/share/kbd/keymaps/}} using {{Ic|find}}: {{Ic|find /usr/share/kbd/keymaps/ -name "*[your desired keymap]*"}}}}<br />
<br />
{| class="wikitable" border="1"<br />
|-<br />
! Keyboard<br />
! Keymap setting<br />
|-<br />
|Belgian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>be-latin1}}<br />
|-<br />
|Brazilian Portuguese<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>br-abnt2}}<br />
|-<br />
|Canadian-French<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>cf}}<br />
|-<br />
|Canadian Multilingual (''in [[Arch User Repository|AUR]]'') <br />
|{{Ic|KEYMAP<nowiki>=</nowiki>ca_multi}}<br />
|-<br />
|Colemak ''(US)''<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>colemak}}<br />
|-<br />
|Croatian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>croat}}<br />
|-<br />
|Czech<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>cz-lat2}}<br />
|-<br />
|Dvorak<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>dvorak}}<br />
|-<br />
|French<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>fr-latin1}}<br />
|-<br />
|German<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>de-latin1}}<br />
|-<br />
|German ''(no dead keys)''<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>de-latin1-nodeadkeys}}<br />
|-<br />
|Italian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>it}}<br />
|-<br />
|Lithuanian ''(qwerty)''<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>lt.baltic}}<br />
|-<br />
|Norwegian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>no-latin1}}<br />
|-<br />
|Polish<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>pl}}<br />
|-<br />
|Portuguese<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>pt-latin9}}<br />
|-<br />
|Romanian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>ro_win}}<br />
|-<br />
|Russian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>ru4}}<br />
|-<br />
|Singapore<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>sg-latin1}}<br />
|-<br />
|Slovene<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>slovene}}<br />
|-<br />
|Swedish<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>sv-latin1}}<br />
|-<br />
|Swiss-French<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>fr_CH-latin1}}<br />
|-<br />
|Swiss-German<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>de_CH-latin1}}<br />
|-<br />
|Spanish<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>es}}<br />
|-<br />
|Spanish Latinoamerican<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>la-latin1}}<br />
|-<br />
|Turkish<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>tr_q-latin5}}<br />
|-<br />
|Ukrainian<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>ua}}<br />
|-<br />
|United Kingdom<br />
|{{Ic|KEYMAP<nowiki>=</nowiki>gb}}<br />
|}<br />
<br />
==Configuring the Console Keymap==<br />
<br />
#{{ic|cd}} to {{ic|/usr/share/kbd/keymaps/i386/qwerty}}<br />
#Copy your default keymap ({{ic|us.map.gz}}) to a new file {{ic|personal.map.gz}}<br />
#{{ic|gunzip}} the new map file<br />
#Edit {{ic|personal.map}} using your favorite editor. Examples:<br />
#*'''Make the Right Alt key same as Left Alt key (Emacs)'''<br>change the line {{ic|include "linux-with-alt-and-altgr"}} to {{ic|include "linux-with-two-alt-keys"}}<br />
#*'''Swap CapsLock with Escape (Vim)'''<br>make {{ic|keycode 1 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Escape}}<br />
#*'''Make CapsLock another Control key'''<br>change the line {{ic|keycode 58 <nowiki>=</nowiki> Caps_Lock}} to {{ic|keycode 58 <nowiki>=</nowiki> Control}}<br />
#*'''Swap CapsLock with Left Control key'''<br>make {{ic|keycode 29 <nowiki>=</nowiki> Caps_Lock}} and {{ic|keycode 58 <nowiki>=</nowiki> Control}}<br />
#{{ic|gzip}} the map file<br />
#Change the default keyboard layout file that will be used by editing {{ic|/etc/vconsole.conf}} (you might have to create this file) and changing the line that says {{ic|KEYMAP<nowiki>=</nowiki>us}} to {{ic|KEYMAP<nowiki>=</nowiki>personal}}<br />
#Reboot to use your keymap the way nature intended (or run "loadkeys personal")</div>
Xiol
https://wiki.archlinux.org/index.php?title=OpenVPN&diff=202974
OpenVPN
2012-05-27T11:06:32Z
<p>Xiol: /* Configuring the kernel */ How to figure out if your running kernel has CONFIG_TUN or not.</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
{{i18n|OpenVPN}}<br />
{{Expansion}}<br />
<br />
<!--' Todo (at least :)<br />
add support for ipv6 and L2 ethernet bridging<br />
'--><br />
<br />
This article describes a basic installation and configuration of [http://openvpn.net OpenVPN], suitable for private and small business use. For more detailed information, please see the official [http://openvpn.net/index.php/manuals/427-openvpn-22.html OpenVPN 2.2 man page] and the [http://openvpn.net/index.php/open-source/documentation OpenVPN documentation].<br />
<br />
If your VPN provider gave you credentials (i.e. their cert, your cert and your key) and you want to use those to connect, much of this page can be ignored. See [[Airvpn]].<br />
<br />
OpenVPN is a robust and highly flexible [[Wikipedia:VPN|VPN]] daemon. OpenVPN supports [[Wikipedia:SSL/TLS|SSL/TLS]] security, [[Wikipedia:Bridging_(networking)|ethernet bridging]], [[Wikipedia:Transmission_Control_Protocol|TCP]] or [[Wikipedia:User_Datagram_Protocol|UDP]] [[Wikipedia:Tunneling_protocol|tunnel transport]] through [[Wikipedia:Proxy_server|proxies]] or [[Wikipedia:Network address translation|NAT]], support for dynamic IP addresses and [[Wikipedia:Dynamic_Host_Configuration_Protocol|DHCP]], scalability to hundreds or thousands of users, and portability to most major OS platforms.<br />
<br />
OpenVPN is tightly bound to the [http://http://www.openssl.org OpenSSL] library, and derives much of its crypto capabilities from it.<br />
<br />
OpenVPN supports conventional encryption using a [[Wikipedia:Pre-shared_key|pre-shared secret key]] (Static Key mode) or [[Wikipedia:Public_key|public key security]] ([[Wikipedia:SSL/TLS|SSL/TLS]] mode) using client & server certificates. OpenVPN also supports non-encrypted TCP/UDP tunnels.<br />
<br />
OpenVPN is designed to work with the [[Wikipedia:TUN/TAP|TUN/TAP]] virtual networking interface that exists on most platforms.<br />
<br />
Overall, OpenVPN aims to offer many of the key features of [[Wikipedia:Ipsec|IPSec]] but with a relatively lightweight footprint.<br />
<br />
OpenVPN was written by James Yonan and is published under the [[Wikipedia:GNU General Public License|GNU General Public License (GPL)]].<br />
<br />
<!--'<br />
==Preamble==<br />
'--><br />
<br />
==Installing OpenVPN==<br />
[[pacman|Install]] {{Pkg|OpenVPN}}, available in the [[Official Repositories]].<br />
<br />
{{Note|The software contained in this package supports both server and client mode, so install it on all machines that need to create vpn connections.}}<br />
<br />
<!--' what does this do, and is the package still supported?<br />
You may also want to install {{AUR|openvpn-authldap-plugin}}, available in the [[Arch User Repository]].<br />
'--><br />
<br />
==Configuring the kernel==<br />
<br />
OpenVPN requires the Universal TUN/TAP device driver support. Add the tun module to the modules array in /etc/rc.conf on both servers and clients.<br />
<br />
The default Arch Linux kernel is already properly configured, but if you build your own kernel make sure that you enable the TUN/TAP module.<br />
<br />
{{hc|Kernel config file|<br />
Device Drivers ---><br />
Network device support ---><br />
[*]Network device support<br />
<M> Universal TUN/TAP device driver support }}<br />
<br />
To see if your running kernel has this support enabled, run the following and check the output:<br />
<br />
<pre><br />
[myuser@rpi0 ~]# zgrep CONFIG_TUN /proc/config.gz <br />
CONFIG_TUN=m<br />
</pre><br />
<br />
CONFIG_TUN should be either 'm' or 'y'.<br />
<br />
==Public Key Infrastructure (PKI)==<br />
<br />
The first step when setting up OpenVPN is to create a [[Wikipedia:Public key infrastructure|Public Key Infrastructure (PKI)]]. The PKI consists of:<br />
<br />
* A public master [[Wikipedia:Certificate Authority|Certificate Authority (CA)]] certificate and a private key.<br />
* A separate public certificate and private key for each server and each client.<br />
<br />
To facilitate the key/certificate creation process, OpenVPN comes with a collection of [[Wikipedia:RSA (algorithm)|RSA]] key manangement scripts (based on the openssl command line tool) known as easy-rsa.<br />
<br />
{{Note| Only .key files need to be kept secret, .crt and .csr files can be sent over insecure channels such as plaintext email.}}<br />
<br />
In this article the needed keys and certificates are created in root's home directory. This ensures that the generated files have the right ownership and permissions, thus being safe from other users.<br />
<br />
{{Note|The keys and certificates can be created on any machine. For the highest security, generate the keys on a physically secure machine disconnected from any network, and make sure that the generated ca.key private key is backed up and never accessible to anyone.}}<br />
<br />
{{Warning|Make sure that the generated files are backed up, especially the ca.key and ca.crt files, since if lost you will not be able to create any new, nor revoke any comprised keys and certificates, thus requiring the generation of a new [[Wikipedia:Certificate Authority|Certificate Authority (CA)]] certificate and key, invalidating the entire PKI infrastructure.}}<br />
<br />
===Installing the easy-rsa scripts===<br />
<br />
Install the scripts by doing the following:<br />
<br />
{{bc|# cp -r /usr/share/openvpn/easy-rsa /root}}<br />
<br />
===Creating keys and certificates===<br />
<br />
Now you need to create the needed keys and certificates.<br />
<br />
Change to the directory where you installed the scripts.<br />
<br />
{{bc|# cd /root/easy-rsa}}<br />
<br />
To ensure the consistent use of values when generating the PKI, set default values to be used by the PKI generating scripts. Edit /root/easy-rsa/vars and at a minimum set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters (do not leave any of these parameters blank). Change the KEY_SIZE parameter to 2048 for the SSL/TLS to use 2048bit RSA keys for authentication.<br />
<br />
{{hc|/root/easy-rsa/vars|<nowiki><br />
# easy-rsa parameter settings<br />
<br />
# NOTE: If you installed from an RPM,<br />
# don't edit this file in place in<br />
# /usr/share/openvpn/easy-rsa --<br />
# instead, you should copy the whole<br />
# easy-rsa directory to another location<br />
# (such as /etc/openvpn) so that your<br />
# edits will not be wiped out by a future<br />
# OpenVPN package upgrade.<br />
<br />
# This variable should point to<br />
# the top level of the easy-rsa<br />
# tree.<br />
export EASY_RSA="`pwd`"<br />
<br />
#<br />
# This variable should point to<br />
# the requested executables<br />
#<br />
export OPENSSL="openssl"<br />
export PKCS11TOOL="pkcs11-tool"<br />
export GREP="grep"<br />
<br />
<br />
# This variable should point to<br />
# the openssl.cnf file included<br />
# with easy-rsa.<br />
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`<br />
<br />
# Edit this variable to point to<br />
# your soon-to-be-created key<br />
# directory.<br />
#<br />
# WARNING: clean-all will do<br />
# a rm -rf on this directory<br />
# so make sure you define<br />
# it correctly!<br />
export KEY_DIR="$EASY_RSA/keys"<br />
<br />
# Issue rm -rf warning<br />
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR<br />
<br />
# PKCS11 fixes<br />
export PKCS11_MODULE_PATH="dummy"<br />
export PKCS11_PIN="dummy"<br />
<br />
# Increase this to 2048 if you<br />
# are paranoid. This will slow<br />
# down TLS negotiation performance<br />
# as well as the one-time DH parms<br />
# generation process.<br />
</nowiki>'''export KEY_SIZE&#61;2048'''<nowiki><br />
<br />
# In how many days should the root CA key expire?<br />
export CA_EXPIRE=3650<br />
<br />
# In how many days should certificates expire?<br />
export KEY_EXPIRE=3650<br />
<br />
# These are the default values for fields<br />
# which will be placed in the certificate.<br />
# Don't leave any of these fields blank.<br />
<br />
</nowiki><br />
'''export KEY_COUNTRY&#61;"US"'''<br />
'''export KEY_PROVINCE&#61;"CA"'''<br />
'''export KEY_CITY&#61;"Acme Acres"'''<br />
'''export KEY_ORG&#61;"Acme"'''<br />
'''export KEY_EMAIL&#61;"roadrunner@acmecorp.org"'''<br />
'''#export KEY_EMAIL&#61;mail@host.domain'''<br />
'''export KEY_CN&#61;Acme-CA'''<br />
'''export KEY_NAME&#61;Acme-CA'''<br />
'''export KEY_OU&#61;""'''<nowiki><br />
export PKCS11_MODULE_PATH=changeme<br />
export PKCS11_PIN=1234<br />
</nowiki>}}<br />
<br />
Export the environment variables.<br />
<br />
{{bc|# source ./vars}}<br />
<br />
Delete any previously created certificates and keys.<br />
<br />
{{bc|# ./clean-all}}<br />
<br />
{{Note| Entering a . (dot) when prompted for a value, blanks out the parameter.}}<br />
<br />
The build-ca script generates the [[Wikipedia:Certificate Authority|Certificate Authority (CA)]] certificate/key pair.<br />
<br />
{{hc|# ./build-ca|<nowiki><br />
Generating a 2048 bit RSA private key<br />
..............++++++<br />
...++++++<br />
writing new private key to 'ca.key'<br />
-----<br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [US]:<br />
State or Province Name (full name) [CA]:<br />
Locality Name (eg, city) [Acme Acres]:<br />
Organization Name (eg, company) [Acme]:<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, your name or your server's hostname) [Acme-CA]:<br />
Name [Acme-CA]:<br />
Email Address [roadrunner@acmecorp.org]:<br />
</nowiki>}}<br />
<br />
The build-key-server script (followed by the server name) generates a certificate/key pair for a server. Make sure that the server name (Common Name when running the script) is unique.<br />
<br />
{{Note|Do not enter a challenge password or company name when the script prompts you for one.}}<br />
<br />
{{hc|# ./build-key-server elmer|<nowiki><br />
Generating a 2048 bit RSA private key<br />
.....................++++++<br />
.......................................................++++++<br />
writing new private key to 'elmer.key'<br />
-----<br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [US]:<br />
State or Province Name (full name) [CA]:<br />
Locality Name (eg, city) [Acme Acres]:<br />
Organization Name (eg, company) [Acme]:<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, your name or your server's hostname) [elmer]:<br />
Name [Acme-CA]:<br />
Email Address [roadrunner@acmecorp.org]:<br />
<br />
Please enter the following 'extra' attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:<br />
Using configuration from /root/easy-rsa/openssl-1.0.0.cnf<br />
Check that the request matches the signature<br />
Signature ok<br />
The Subject's Distinguished Name is as follows<br />
countryName :PRINTABLE:'US'<br />
stateOrProvinceName :PRINTABLE:'CA'<br />
localityName :PRINTABLE:'Acme Acres'<br />
organizationName :PRINTABLE:'Acme'<br />
commonName :PRINTABLE:'elmer'<br />
name :PRINTABLE:'Acme-CA'<br />
emailAddress :IA5STRING:'roadrunner@acmecorp.org'<br />
Certificate is to be certified until Dec 27 19:11:59 2021 GMT (3650 days)<br />
Sign the certificate? [y/n]:y<br />
<br />
<br />
1 out of 1 certificate requests certified, commit? [y/n]y<br />
Write out database with 1 new entries<br />
Data Base Updated<br />
</nowiki>}}<br />
<br />
The build-dh script generates the [http://www.rsa.com/rsalabs/node.asp?id=2248 Diffie-Hellman parameters] .pem file needed by the server.<br />
<br />
{{Note|It would be better to generate a new one for each server, but you can use the same one for your servers if you want to.}}<br />
<br />
{{hc|# ./build-dh|<br />
Generating DH parameters, 2048 bit long safe prime, generator 2<br />
This is going to take a long time<br />
..+.............................................................................<br />
.<br />
.<br />
.<br />
............+...............+...................................................<br />
..................................................................++*++*}}<br />
<br />
The build-key script (followed by a client name) generates a certificate/key pair for a client. Make sure that the client name (Common Name when running the script) is unique.<br />
<br />
{{Note|Do not enter a challenge password or company name when the script prompts you for one.}}<br />
<br />
{{hc|# ./build-key bugs|<nowiki><br />
Generating a 2048 bit RSA private key<br />
....++++++<br />
.............................................................++++++<br />
writing new private key to 'bugs.key'<br />
-----<br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [US]:<br />
State or Province Name (full name) [CA]:<br />
Locality Name (eg, city) [Acme Acres]:<br />
Organization Name (eg, company) [Acme]:<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, your name or your server's hostname) [bugs]:<br />
Name [Acme-CA]:<br />
Email Address [roadrunner@acmecorp.org]:<br />
<br />
Please enter the following 'extra' attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:<br />
Using configuration from /root/easy-rsa/openssl-1.0.0.cnf<br />
Check that the request matches the signature<br />
Signature ok<br />
The Subject's Distinguished Name is as follows<br />
countryName :PRINTABLE:'US'<br />
stateOrProvinceName :PRINTABLE:'CA'<br />
localityName :PRINTABLE:'Acme Acres'<br />
organizationName :PRINTABLE:'Acme'<br />
commonName :PRINTABLE:'bugs'<br />
name :PRINTABLE:'Acme-CA'<br />
emailAddress :IA5STRING:'roadrunner@acmecorp.org'<br />
Certificate is to be certified until Dec 27 19:18:27 2021 GMT (3650 days)<br />
Sign the certificate? [y/n]:y<br />
<br />
<br />
1 out of 1 certificate requests certified, commit? [y/n]y<br />
Write out database with 1 new entries<br />
Data Base Updated<br />
</nowiki>}}<br />
<br />
Generate a secret [[Wikipedia:HMAC|Hash-based Message Authentication Code (HMAC)]] by running:<br />
{{ic|# openvpn --genkey --secret /root/easy-rsa/keys/ta.key}}<br />
<br />
This will be used to add an additional HMAC signature to all SSL/TLS handshake packets. In addition any UDP packet not having the correct HMAC signature will be immidiately dropped, protecting against:<br />
<br />
* Portscanning.<br />
* DOS attacks on the OpenVPN UDP port.<br />
* SSL/TLS handshake initiations from unauthorized machines.<br />
* Any eventual buffer overflow vulnerabilities in the SSL/TLS implementation.<br />
<br />
All the created keys and certificates have been stored in /root/easy-rsa/keys. If you make a mistake, you can start over by running the clean-all script again.<br />
<br />
{{Warning|This will delete any previously generated keys and certificates stored in /root/easy-rsa/keys.}}<br />
<br />
The final step of the key creation process is to copy the files needed to the correct machines through a secure channel.<br />
<br />
{{Note|In this article the keys and certificates will be placed into /etc/openvpn on the server and the client.}}<br />
<br />
The public ca.crt certificate will be needed on all servers and clients. The private ca.key key is secret and only needed on the key generating machine.<br />
<br />
The public server.crt, and dh2048.pem, and private server.key, and ta.key files are needed on the server.<br />
<br />
The public client.crt, and private client.key, and ta.key files are needed on the client.<br />
<br />
==Configuring OpenVPN==<br />
<br />
OpenVPN is an extremely versatile software and many configurations are possible, in fact machines can be both "servers" and "clients", blurring the distinction between server and client.<br />
<br />
What really distinguishes a server from a client is the configuration file itself. The openvpn daemon startup script reads all the .conf configuration files it finds in /etc/openvpn on startup, and acts accordingly. In fact if it finds more than one configuration file it will start one OpenVPN processes per configuration file.<br />
<br />
This article explains how to setup a machine that is called the server (elmer), and a machine that connects to it is called the client (bugs). More servers and clients can easily be added, by creating more key/certificate pairs and adding more server and client configuration files.<br />
<br />
The OpenVPN package comes with a collection of example configuration files for different purposes. The sample server and client configuration files make an ideal starting point for a basic OpenVPN setup with the following features:<br />
<br />
* Uses [[Wikipedia:Public key infrastructure|Public Key Infrastructure (PKI)]] for authentication.<br />
* Creates a VPN using a virtual TUN network interface (OSI L3 IP routing).<br />
* Listens for client connections on UDP port 1194 (OpenVPN's [[Wikipedia:Port_number|official IANA port number]]).<br />
* Distributes virtual addresses to connecting clients from the 10.8.0.0/24 subnet.<br />
<br />
For more advanced configurations, please see the official [http://openvpn.net/index.php/manuals/427-openvpn-22.html OpenVPN 2.2 man page] and the [http://openvpn.net/index.php/open-source/documentation OpenVPN documentation].<br />
<br />
===The server configuration file===<br />
<br />
Copy the example server configuration file to /etc/openvpn/server.conf<br />
<br />
{{bc|# cp /usr/share/openvpn/examples/server.conf /etc/openvpn/server.conf}}<br />
<br />
Edit the following:<br />
<br />
* The ca, cert, key, and dh parameters to reflect the path and names of the keys and certificates. Specifying the paths will allow you to run the OpenVPN executable from any directory for testing purposes.<br />
* Enable the SSL/TLS HMAC handshake protection. '''Note the use of the parameter 0 for a server'''.<br />
*It is recommended to run OpenVPN with reduced privileges once it has initialized, do this by uncommenting the user and group directives.<br />
<br />
{{hc|/etc/openvpn/server.conf|<br />
ca /etc/openvpn/ca.crt<br />
cert /etc/openvpn/elmer.crt<br />
key /etc/openvpn/elmer.key<br />
<br />
dh /etc/openvpn/dh2048.pem<br />
.<br />
.<br />
tls-auth /etc/openvpn/ta.key '''0'''<br />
.<br />
.<br />
user nobody<br />
group nobody<br />
}}<br />
<br />
{{Note|Note that if the server is behind a firewall or a NAT translating router, you will have to forward the OpenVPN UDP port (1194) to the server.}}<br />
<br />
===The client configuration file===<br />
<br />
Copy the example client configuration file to /etc/openvpn/client.conf<br />
<br />
{{bc|# cp /usr/share/openvpn/examples/client.conf /etc/openvpn/client.conf}}<br />
<br />
Edit the following:<br />
<br />
* The remote directive to reflect the server's [[Wikipedia:Fully qualified domain name|Fully Qualified Domain Name]], hostname (as known to the client) or IP address.<br />
* Uncomment the user and group directives to drop privileges.<br />
* The ca, cert, and key parameters to reflect the path and names of the keys and certificates.<br />
* Enable the SSL/TLS HMAC handshake protection. '''Note the use of the parameter 1 for a client'''.<br />
<br />
{{hc|/etc/openvpn/client.conf|<br />
remote elmer.acmecorp.org 1194<br />
.<br />
.<br />
user nobody<br />
group nobody<br />
.<br />
.<br />
ca /etc/openvpn/ca.crt<br />
cert /etc/openvpn/bugs.crt<br />
key /etc/openvpn/bugs.key<br />
.<br />
.<br />
tls-auth /etc/openvpn/ta.key '''1'''<br />
}}<br />
<br />
==Testing the OpenVPN configuration==<br />
<br />
Run {{ic|# openvpn /etc/openvpn/server.conf}} on the server, and {{ic|# openvpn /etc/openvpn/client.conf}} on the client. You should see something similar to this:<br />
<br />
{{hc|# openvpn /etc/openvpn/server.conf|<nowiki><br />
Wed Dec 28 14:41:26 2011 OpenVPN 2.2.1 x86_64-unknown-linux-gnu [SSL] [LZO2] [EPOLL] [eurephia] built on Aug 13 2011<br />
Wed Dec 28 14:41:26 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables<br />
Wed Dec 28 14:41:26 2011 Diffie-Hellman initialized with 2048 bit key<br />
Wed Dec 28 14:41:26 2011 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]<br />
Wed Dec 28 14:41:26 2011 Socket Buffers: R=[126976->131072] S=[126976->131072]<br />
Wed Dec 28 14:41:26 2011 ROUTE default_gateway=10.66.0.1<br />
Wed Dec 28 14:41:26 2011 TUN/TAP device tun0 opened<br />
Wed Dec 28 14:41:26 2011 TUN/TAP TX queue length set to 100<br />
Wed Dec 28 14:41:26 2011 /usr/sbin/ip link set dev tun0 up mtu 1500<br />
Wed Dec 28 14:41:26 2011 /usr/sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2<br />
Wed Dec 28 14:41:26 2011 /usr/sbin/ip route add 10.8.0.0/24 via 10.8.0.2<br />
Wed Dec 28 14:41:26 2011 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]<br />
Wed Dec 28 14:41:26 2011 GID set to nobody<br />
Wed Dec 28 14:41:26 2011 UID set to nobody<br />
Wed Dec 28 14:41:26 2011 UDPv4 link local (bound): [undef]:1194<br />
Wed Dec 28 14:41:26 2011 UDPv4 link remote: [undef]<br />
Wed Dec 28 14:41:26 2011 MULTI: multi_init called, r=256 v=256<br />
Wed Dec 28 14:41:26 2011 IFCONFIG POOL: base=10.8.0.4 size=62<br />
Wed Dec 28 14:41:26 2011 IFCONFIG POOL LIST<br />
Wed Dec 28 14:41:26 2011 Initialization Sequence Completed<br />
Wed Dec 28 14:41:51 2011 MULTI: multi_create_instance called<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 Re-using SSL/TLS context<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 LZO compression initialized<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 Local Options hash (VER=V4): '530fdded'<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 Expected Remote Options hash (VER=V4): '41690919'<br />
Wed Dec 28 14:41:51 2011 95.126.136.73:48904 TLS: Initial packet from 95.126.136.73:48904, sid=163f4a5e e0399137<br />
Wed Dec 28 14:41:53 2011 95.126.136.73:48904 VERIFY OK: depth=1, /C=US/ST=CA/L=Acme Acres/O=Acme/CN=Acme-CA/name=Acme-CA/emailAddress=roadrunner@acmecorp.org<br />
Wed Dec 28 14:41:53 2011 95.126.136.73:48904 VERIFY OK: depth=0, /C=US/ST=CA/L=Acme Acres/O=Acme/CN=bugs/name=Acme-CA/emailAddress=roadrunner@acmecorp.org<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA<br />
Wed Dec 28 14:41:54 2011 95.126.136.73:48904 [bugs] Peer Connection Initiated with 95.126.136.73:48904<br />
Wed Dec 28 14:41:54 2011 bugs/95.126.136.73:48904 MULTI: Learn: 10.8.0.6 -> bugs/95.126.136.73:48904<br />
Wed Dec 28 14:41:54 2011 bugs/95.126.136.73:48904 MULTI: primary virtual IP for bugs/95.126.136.73:48904: 10.8.0.6<br />
Wed Dec 28 14:41:57 2011 bugs/95.126.136.73:48904 PUSH: Received control message: 'PUSH_REQUEST'<br />
Wed Dec 28 14:41:57 2011 bugs/95.126.136.73:48904 SENT CONTROL [bugs]: 'PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' (status=1)<br />
</nowiki>}}<br />
<br />
{{hc|# openvpn /etc/openvpn/client.conf|<nowiki><br />
Wed Dec 28 14:41:50 2011 OpenVPN 2.2.1 i686-pc-linux-gnu [SSL] [LZO2] [EPOLL] [eurephia] built on Aug 13 2011<br />
Wed Dec 28 14:41:50 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables<br />
Wed Dec 28 14:41:50 2011 LZO compression initialized<br />
Wed Dec 28 14:41:50 2011 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]<br />
Wed Dec 28 14:41:50 2011 Socket Buffers: R=[114688->131072] S=[114688->131072]<br />
Wed Dec 28 14:41:51 2011 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]<br />
Wed Dec 28 14:41:51 2011 Local Options hash (VER=V4): '41690919'<br />
Wed Dec 28 14:41:51 2011 Expected Remote Options hash (VER=V4): '530fdded'<br />
Wed Dec 28 14:41:51 2011 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay<br />
Wed Dec 28 14:41:51 2011 UDPv4 link local: [undef]<br />
Wed Dec 28 14:41:51 2011 UDPv4 link remote: 85.93.204.250:1194<br />
Wed Dec 28 14:41:51 2011 TLS: Initial packet from 85.93.204.250:1194, sid=5f379f35 50c9ab11<br />
Wed Dec 28 14:41:52 2011 VERIFY OK: depth=1, /C=US/ST=CA/L=Acme Acres/O=Acme/CN=Acme-CA/name=Acme-CA/emailAddress=roadrunner@acmecorp.org<br />
Wed Dec 28 14:41:52 2011 VERIFY OK: nsCertType=SERVER<br />
Wed Dec 28 14:41:52 2011 VERIFY OK: depth=0, /C=US/ST=CA/L=Acme Acres/O=Acme/CN=elmer/name=Acme-CA/emailAddress=roadrunner@acmecorp.org<br />
Wed Dec 28 14:41:54 2011 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key<br />
Wed Dec 28 14:41:54 2011 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication<br />
Wed Dec 28 14:41:54 2011 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key<br />
Wed Dec 28 14:41:54 2011 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication<br />
Wed Dec 28 14:41:54 2011 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA<br />
Wed Dec 28 14:41:54 2011 [elmer] Peer Connection Initiated with 85.93.204.250:1194<br />
Wed Dec 28 14:41:57 2011 SENT CONTROL [elmer]: 'PUSH_REQUEST' (status=1)<br />
Wed Dec 28 14:41:57 2011 PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'<br />
Wed Dec 28 14:41:57 2011 OPTIONS IMPORT: timers and/or timeouts modified<br />
Wed Dec 28 14:41:57 2011 OPTIONS IMPORT: --ifconfig/up options modified<br />
Wed Dec 28 14:41:57 2011 OPTIONS IMPORT: route options modified<br />
Wed Dec 28 14:41:57 2011 ROUTE default_gateway=10.64.64.64<br />
Wed Dec 28 14:41:57 2011 TUN/TAP device tun1 opened<br />
Wed Dec 28 14:41:57 2011 TUN/TAP TX queue length set to 100<br />
Wed Dec 28 14:41:57 2011 /usr/sbin/ip link set dev tun1 up mtu 1500<br />
Wed Dec 28 14:41:57 2011 /usr/sbin/ip addr add dev tun1 local 10.8.0.6 peer 10.8.0.5<br />
Wed Dec 28 14:41:57 2011 /usr/sbin/ip route add 10.8.0.1/32 via 10.8.0.5<br />
Wed Dec 28 14:41:57 2011 GID set to nobody<br />
Wed Dec 28 14:41:57 2011 UID set to nobody<br />
Wed Dec 28 14:41:57 2011 Initialization Sequence Completed<br />
</nowiki>}}<br />
<br />
On the server, find the IP assigned to the tunX device:<br />
<br />
{{hc|# ip addr show|<nowiki><br />
.<br />
.<br />
.<br />
40: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100<br />
link/none<br />
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0</nowiki>}}<br />
<br />
Here we see that the server end of the tunnel has been given the IP address 10.8.0.1.<br />
<br />
Do the same on the client:<br />
<br />
{{hc|# ip addr show|<nowiki><br />
.<br />
.<br />
.<br />
37: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100<br />
link/none<br />
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun1</nowiki>}}<br />
<br />
And the client side has been given the IP 10.8.0.6.<br />
<br />
Now try pinging the interfaces.<br />
<br />
On the server:<br />
<br />
{{hc|# ping 10.8.0.6|<nowiki><br />
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.<br />
64 bytes from 10.8.0.6: icmp_req=1 ttl=64 time=238 ms<br />
64 bytes from 10.8.0.6: icmp_req=2 ttl=64 time=237 ms<br />
64 bytes from 10.8.0.6: icmp_req=3 ttl=64 time=205 ms<br />
^C<br />
--- 10.8.0.6 ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2002ms<br />
rtt min/avg/max/mdev = 205.862/227.266/238.788/15.160 ms<br />
</nowiki>}}<br />
<br />
On the client:<br />
<br />
{{hc|# ping 10.8.0.1|<nowiki><br />
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.<br />
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=158 ms<br />
64 bytes from 10.8.0.1: icmp_req=2 ttl=64 time=158 ms<br />
64 bytes from 10.8.0.1: icmp_req=3 ttl=64 time=157 ms<br />
^C<br />
--- 10.8.0.1 ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2001ms<br />
rtt min/avg/max/mdev = 157.426/158.278/158.940/0.711 ms<br />
</nowiki>}}<br />
<br />
You now have a working OpenVPN installation, and your client (bugs) will be able to use services on the server (elmer), and vice versa.<br />
<br />
==Starting OpenVPN==<br />
<br />
To start OpenVPN manually run:<br />
<br />
{{bc|# rc.d start openvpn}}<br />
<br />
To have your system run OpenVPN automatically at system start, add openvpn to the daemon array in /etc/rc.conf.<br />
<br />
==Advanced OpenVPN configuration==<br />
<br />
===Routing the LAN of the server to a client===<br />
<br />
Prerequisites:<br />
<br />
* The server (elmer) is on a LAN using the [[Wikipedia:Private_network#Private_IPv4_address_spaces|private class C network range]] 10.66.0.0/24.<br />
* The server's LAN network interface is called eth0.<br />
* The client (bugs) is assigned an ip address out of the address pool 10.8.0.0/24, as specified by the server directive in the server's configuration file (/etc/openvpn/server.conf):<br />
{{hc|/etc/openvpn/server.conf|server 10.8.0.0 255.255.255.0}}<br />
<br />
As OpenVPN will need to forward packets between the tun/tap device and the LAN device, edit /etc/sysctl.conf to permanently enable ipv4 packet forwarding. Takes effect at the next boot.<br />
{{hc|/etc/sysctl.conf|<nowiki><br />
# Enable packet forwarding<br />
net.ipv4.ip_forward=1<br />
</nowiki>}}<br />
<br />
To temporarily enable without rebooting do: {{bc|# echo 1 > /proc/sys/net/ipv4/ip_forward}}<br />
<br />
<!--'Investigate if scripts hooked into openvpn can do this, http://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html#lbAR'--><br />
As the server will have to accept traffic destined to a different IP than it's LAN interface (eth0) is configured for, it needs to be set to [[Wikipedia:Promiscuous_mode|promiscious mode]]. Add the following to /etc/rc.local: {{hc|/etc/rc.local|ip link set dev eth0 promisc on}} Takes effect at the next boot, to enable it without rebooting do: {{ic|# ip link set dev eth0 promisc on}}.<br />
<br />
To inform the client about the available subnet, add a push directive to the server configuration file:<br />
<br />
{{hc|/etc/openvpn/server.conf|push "route 10.66.0.0 255.255.255.0"}}<br />
<br />
{{Note|If the server (elmer) is not the default LAN gateway on the server side, you will have to do one of the following:<br />
* Add a static route to the LAN's default gateway (most likely the LAN's router), routing the client IP range 10.8.0.0/24 back to the server's eth0 IP address.<br />
* Add a static route to each host on the server side LAN that you want to be able to communicate with the client (bugs).<br />
* Use the iptables NAT feature to masquerade the IP packets.<br />
}}<br />
<br />
<!--'Add information on how to route several lans to the client'--><br />
<br />
===Routing the LAN of a client to the server===<br />
<br />
Prerequisites:<br />
<br />
* You must make sure that any subnets used on the client side (bugs), are unique and not in use on the server side or by any other client. In this example we will use 192.168.4.0/24 for the clients LAN.<br />
* The client's LAN network interface is called eth0.<br />
* Each client's certificate has a unique Common Name, in this case bugs.<br />
* The server may not use the duplicate-cn directive in it's config file.<br />
<br />
As OpenVPN will need to forward packets between the tun/tap device and the LAN device, edit /etc/sysctl.conf to permanently enable ipv4 packet forwarding. Takes effect at the next boot.<br />
{{hc|/etc/sysctl.conf|<nowiki><br />
# Enable packet forwarding<br />
net.ipv4.ip_forward=1<br />
</nowiki>}}<br />
<br />
To temporarily enable without rebooting do: {{bc|# echo 1 > /proc/sys/net/ipv4/ip_forward}}<br />
<br />
As the client will have to accept traffic destined to a different IP than the LAN interface is configured for, you will need to set it to [[Wikipedia:Promiscuous_mode|promiscious mode]]. Add the following to /etc/rc.local: {{hc|/etc/rc.local|ip link set dev eth0 promisc on}} Takes effect at the next boot, to enable it without rebooting do: {{ic|# ip link set dev eth0 promisc on}}.<br />
<br />
You must now create a client configuration directory on the server (elmer). When a client connects, the server process will check this directory for a file named the same as the client certificate's common name, and apply the directives to the client.<br />
<br />
{{bc|# mkdir -p /etc/openvpn/ccd}}<br />
<br />
Create a file in the client configuration directory called bugs, containing the directive iroute 192.168.4.0 255.255.255.0. This will tell the server that the 192.168.4.0/24 subnet should be routed to the client (bugs):<br />
<br />
{{hc|/etc/openvpn/ccd/bugs|iroute 192.168.4.0 255.255.255.0}}<br />
<br />
Then add the directive route 192.168.4.0 255.255.255.0 to the server's configuration file /etc/openvpn/server.conf. This will tell the server that the 192.168.4.0/24 subnet should be routed from the tun device to the server process. Both are needed:<br />
<br />
{{hc|/etc/openvpn/server.conf|route 192.168.4.0 255.255.255.0}}<br />
<br />
{{Note|If the client (bugs) is not the default LAN gateway on the client side, you will need to do one of the following:<br />
* Add a static route to the client LAN's default gateway (most likely the client LAN router), routing the server's IP range 10.66.0.0/24 back to the client's eth0 IP address.<br />
* Add a static route to each host on the client side LAN that you want to be able to respond to the server.<br />
* Use the iptables NAT feature to masquerade the IP packets.<br />
}}<br />
<br />
<!--'Add information on how to route several LANs to the server side'--><br />
<!--'<br />
===Pushing DHCP options to clients===<br />
<br />
===Configuring client-specific rules and access policies===<br />
<br />
===Routing all client traffic through the server===<br />
<br />
===Running an OpenVPN server on a dynamic IP address===<br />
<br />
===Implementing a load-balancing/failover configuration===<br />
<br />
===Locking down security===<br />
<br />
====Security through obfuscation====<br />
<br />
====Port knocking====<br />
<br />
====Running in unprivileged mode====<br />
<br />
====Running in a chroot jail====<br />
<br />
====Larger RSA keys====<br />
probably better to use blowfish...<br />
<br />
Enable the 256 bit [[Wikipedia:Advanced_Encryption_Standard|AES (Advanced Encryption Standard)]] instead of the default 128 bit blowfish cryptographic cipher:<br />
{{hc|/etc/openvpn/server.conf|<br />
;cipher BF-CBC # Blowfish (default)<br />
;cipher AES-128-CBC # AES<br />
;cipher DES-EDE3-CBC # Triple-DES<br />
cipher AES-256-CBC<br />
}}<br />
<br />
Enable the 256 bit [[Wikipedia:Advanced_Encryption_Standard|AES (Advanced Encryption Standard)]] instead of the default 128 bit blowfish cryptographic cipher:<br />
{{hc|/etc/openvpn/client.conf|<br />
;cipher x<br />
cipher AES-256-CBC<br />
}}<br />
<br />
===Revoking certificates===<br />
<br />
==Configuring iptables for use with OpenVPN==<br />
<br />
Add a rule for the tun devices on both the server and the client.<br />
{{Note|That the order of the rules is important. See [[iptables]] for more information}}<br />
<br />
{{hc|/etc/iptables/iptables.rules|-A INPUT -i tun+ -j ACCEPT}}<br />
<br />
Add a rule to accept connections on the OpenVPN UDP port (1194) on the server.<br />
{{hc|/etc/iptables/iptables.rules|-A INPUT -p udp --dport 1194 -j ACCEPT}}<br />
<br />
If you use the iptables firewall on the server (elmer) add the following rules to /etc/iptables/iptables.rules, then restart iptables:<br />
<br />
{{hc|/etc/iptables/iptables.rules|<br />
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
-A FORWARD -s 10.8.0.0/24 -j ACCEPT<br />
-A FORWARD -j REJECT<br />
}}<br />
<br />
If you use the iptables firewall on the client (bugs) add the following rules to /etc/iptables/iptables.rules, then restart iptables:<br />
<br />
{{hc|/etc/iptables/iptables.rules|<br />
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
-A FORWARD -s 10.8.0.0/24 -j ACCEPT<br />
-A FORWARD -j REJECT<br />
}}<br />
<br />
'--><br />
<br />
<br />
==Deprecated older wiki content==<br />
<br />
{{Accuracy}}<br />
<br />
===Using PAM and passwords to authenticate===<br />
{{bc|<br />
port 1194<br />
proto udp<br />
dev tap<br />
ca /etc/openvpn/easy-rsa/keys/ca.crt<br />
cert /etc/openvpn/easy-rsa/keys/<MYSERVER>.crt<br />
key /etc/openvpn/easy-rsa/keys/<MYSERVER>.key<br />
dh /etc/openvpn/easy-rsa/keys/dh2048.pem<br />
server 192.168.56.0 255.255.255.0<br />
ifconfig-pool-persist ipp.txt<br />
;learn-address ./script<br />
client-to-client<br />
;duplicate-cn<br />
keepalive 10 120<br />
;tls-auth ta.key 0<br />
comp-lzo<br />
;max-clients 100<br />
;user nobody<br />
;group nobody<br />
persist-key<br />
persist-tun<br />
status /var/log/openvpn-status.log<br />
verb 3<br />
client-cert-not-required<br />
username-as-common-name<br />
plugin /usr/lib/openvpn/openvpn-auth-pam.so login<br />
}}<br />
<br />
===Using certs to authenticate===<br />
{{bc|<br />
port 1194<br />
proto tcp<br />
dev tun0<br />
<br />
ca /etc/openvpn/easy-rsa/keys/ca.crt<br />
cert /etc/openvpn/easy-rsa/keys/<MYSERVER>.crt<br />
key /etc/openvpn/easy-rsa/keys/<MYSERVER>.key<br />
dh /etc/openvpn/easy-rsa/keys/dh2048.pem<br />
<br />
server 10.8.0.0 255.255.255.0<br />
ifconfig-pool-persist ipp.txt<br />
keepalive 10 120<br />
comp-lzo<br />
user nobody<br />
group nobody<br />
persist-key<br />
persist-tun<br />
status /var/log/openvpn-status.log<br />
verb 3<br />
<br />
log-append /var/log/openvpn<br />
status /tmp/vpn.status 10<br />
}}<br />
<br />
===Routing traffic through the server===<br />
<br />
Append the following to your server's openvpn.conf configuration file:<br />
{{bc|<br />
push "dhcp-option DNS 192.168.1.1"<br />
push "redirect-gateway def1"<br />
}}<br />
Change "192.168.1.1" to your external DNS IP address.<br />
<br />
Use an iptable for NAT forwarding:<br />
{{bc|<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE<br />
}}<br />
<br />
If running ArchLinux in a OpenVZ VPS environment [http://thecodeninja.net/linux/openvpn-archlinux-openvz-vps/]:<br />
{{bc|<br />
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to (venet0 ip)<br />
}}<br />
<br />
If all is well, make the changes permanent:<br />
<br />
Edit /etc/conf.d/iptables and change IPTABLES_FORWARD=1<br />
<br />
{{bc|<br />
/etc/rc.d/iptables save<br />
}}<br />
<br />
===Setting up the Client===<br />
The clientside .conf file<br />
====With password authentication====<br />
{{bc|<br />
client<br />
dev tap<br />
proto udp<br />
remote <address> 1194<br />
resolv-retry infinite<br />
nobind<br />
persist-tun<br />
comp-lzo<br />
verb 3<br />
auth-user-pass passwd<br />
ca ca.crt<br />
}}<br />
<br />
passwd file (referenced by auth-user-pass) must contain two lines:<br />
* first line - username<br />
* second - password<br />
<br />
====Certs authentication====<br />
{{bc|<br />
client<br />
remote <MYSERVER> 1194<br />
dev tun0<br />
proto tcp<br />
resolv-retry infinite<br />
nobind<br />
persist-key<br />
persist-tun<br />
verb 2<br />
ca ca.crt<br />
cert client1.crt<br />
key client1.key<br />
comp-lzo<br />
}}<br />
Copy three files from server to remote computer.<br />
ca.crt<br />
client1.crt<br />
client1.key<br />
<br />
Install the tunnel/tap module:<br />
{{bc|<br />
# sudo modprobe tun<br />
}}<br />
<br />
To have the '''tun''' module loaded automatically at boot time add it to the Modules line in /etc/rc.conf<br />
<br />
====DNS====<br />
The DNS servers used by the system are defined in '''/etc/resolv.conf'''. Traditionally, this file is the responsibility of whichever program deals with connecting the system to the network (e.g. Wicd, NetworkManager, etc...) However, OpenVPN will need to modify this file if you want to be able to resolve names on the remote side. To achieve this in a sensible way, install '''openresolv''', which makes it possible for more than one program to modify resolv.conf without stepping on each-other's toes. Before continuing, test openresolv by restarting your network connection and ensuring that resolv.conf states that it was generated by "resolvconf", and that your DNS resolution still works as before. You shouldn't need to configure openresolv; it should be automatically detected and used by your network system.<br />
<br />
Next, save the following script at '''/usr/share/openvpn/update-resolv-conf''':<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
#<br />
# Parses DHCP options from openvpn to update resolv.conf<br />
# To use set as 'up' and 'down' script in your openvpn *.conf:<br />
# up /etc/openvpn/update-resolv-conf<br />
# down /etc/openvpn/update-resolv-conf<br />
#<br />
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk><br />
# and Chris Hanson<br />
# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.<br />
#<br />
# 05/2006 chlauber@bnc.ch<br />
#<br />
# Example envs set from openvpn:<br />
# foreign_option_1='dhcp-option DNS 193.43.27.132'<br />
# foreign_option_2='dhcp-option DNS 193.43.27.133'<br />
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'<br />
<br />
[ -x /usr/sbin/resolvconf ] || exit 0<br />
<br />
case $script_type in<br />
<br />
up)<br />
for optionname in ${!foreign_option_*} ; do<br />
option="${!optionname}"<br />
echo $option<br />
part1=$(echo "$option" | cut -d " " -f 1)<br />
if [ "$part1" == "dhcp-option" ] ; then<br />
part2=$(echo "$option" | cut -d " " -f 2)<br />
part3=$(echo "$option" | cut -d " " -f 3)<br />
if [ "$part2" == "DNS" ] ; then<br />
IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"<br />
fi<br />
if [ "$part2" == "DOMAIN" ] ; then<br />
IF_DNS_SEARCH="$part3"<br />
fi<br />
fi<br />
done<br />
R=""<br />
if [ "$IF_DNS_SEARCH" ] ; then<br />
R="${R}search $IF_DNS_SEARCH<br />
"<br />
fi<br />
for NS in $IF_DNS_NAMESERVERS ; do<br />
R="${R}nameserver $NS<br />
"<br />
done<br />
echo -n "$R" | /usr/sbin/resolvconf -a "${dev}.inet"<br />
;;<br />
down)<br />
/usr/sbin/resolvconf -d "${dev}.inet"<br />
;;<br />
esac<br />
</nowiki>}}<br />
<br />
Remember to make the file executable with:<br />
$ chmod +x /usr/share/openvpn/update-resolv-conf<br />
Next, add the following lines to your OpenVPN client configuration file:<br />
{{bc|<br />
script-security 2<br />
up /usr/share/openvpn/update-resolv-conf<br />
down /usr/share/openvpn/update-resolv-conf<br />
}}<br />
<br />
Now, when your launch your OpenVPN connection, you should find that your resolv.conf file is updated accordingly, and also returns to normal when your close the connection.<br />
<br />
===Connecting to the Server===<br />
You need to start the service on the server<br />
{{bc|<br />
/etc/rc.d/openvpn start<br />
}}<br />
You can add it to rc.conf to make it permanet.<br />
<br />
On the client, in the home directory create a folder that will hold your OpenVPN client config files along with the '''.crt'''/'''.key''' files. Assuming your OpenVPN config folder is called '''.openvpn''' and your client config file is '''vpn1.conf''', to connect to the server issue the following command:<br />
{{bc|<br />
cd ~/.openvpn && sudo openvpn vpn1.conf<br />
}}</div>
Xiol
https://wiki.archlinux.org/index.php?title=Browser_plugins&diff=128215
Browser plugins
2011-01-15T23:39:28Z
<p>Xiol: /* Adobe Flash Player */ Added a troubleshooting section. Lots of people on the forums seem to be having permission errors</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Browser Plugins}}<br />
<br />
These plugins work in [[Firefox]], [[Opera]] and WebKit derivatives. <!-- Chrome? --><br />
<br />
== Flash Player ==<br />
<br />
=== Adobe Flash Player ===<br />
<br />
==== 32-bit ====<br />
Flash Player is in [extra]:<br />
<br />
# pacman -S flashplugin<br />
<br />
==== 64-bit ====<br />
Adobe dropped x86_64 support for Flash for version 10.1. You can either install the new 64-bit {{package AUR|flashplugin-prerelease}} or get the stable 32-bit plugin (with nspluginwrapper) from the '''[multilib]''' repository ([[Install 32bit Flash on a 64bit System]]).<br />
<br />
==== Misc ====<br />
In addition, it may be needed to install {{package AUR|ttf-ms-fonts}} from the [[AUR]] in order to properly render text.<br />
<br />
If you are using a flashplugin from multilib and still having problems, e.g., fullscreen doesn't work, try to install lib32-'''your-driver'''-utils. Here's an example for nvidia card users:<br />
<br />
# pacman -S lib32-nvidia-utils<br />
<br />
This will replace your driver-utils with the lib32-driver-utils.<br />
<br />
==== Configuration ====<br />
<!-- Change this heading to Flash configuration once more than one plugin needs a similar section --><br />
To change general plug-in preferences (privacy settings, resource usage, etc.), right click on embedded Flash content and choose preferences from the menu, or go to the [http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html Macromedia website]. There, a Flash animation will give access to local settings.<br />
<br />
==== Troubleshooting ====<br />
If about:plugins is not showing the Flash plugin, you should check the permissions on the /usr/lib/mozilla, /usr/lib/mozilla/plugins directories, and on the Flash plugin file itself.<br />
<br />
Check the permissions with:<br />
<br />
$ ls -la /usr/lib/mozilla<br />
<br />
If you get an error about permissions at this point, or if your directory permissions are not 'drwxr-xr-x', run the following as root:<br />
<br />
# chmod -R 755 /usr/lib/mozilla<br />
<br />
=== Gnash ===<br />
<br />
x<br />
<br />
=== Lightspark ===<br />
<br />
x<br />
<br />
== PDF viewer ==<br />
<br />
=== Evince ===<br />
<br />
if you want to see a pdf in firefox without open a new window follow this guide: https://wiki.archlinux.org/index.php/Firefox_Tips_and_Tweaks#Viewing_PDF.2FPS_inside_Firefox<br />
<br />
=== Adobe Reader ===<br />
<br />
Due to licensing restrictions, Adobe Reader cannot be distributed from any of the official Arch repositories. There are versions available in the [[AUR]]. Please note that no matter how many votes it receives, this package will never be included in the [community] repository. See this [http://aur.archlinux.org/packages.php?ID=16980 comment] for an explanation.<br />
<br />
Also, there are [http://aur.archlinux.org/packages.php?O=0&K=acroread-&do_Search=Go localizations] available in many languages.<br />
<br />
====32-bit====<br />
32-bit AUR package: {{Package AUR|acroread}}<br />
<br />
It installs the Acrobat Reader application as well as the Firefox plugin. Note that hardware-assisted rendering is unavailable under Linux (at least using a Geforce 8600GTS with driver version 185.18.14).<br />
<br />
====64-bit====<br />
Adobe Reader is a closed-source application, meaning that users desiring a 64-bit binary have no other choice other than to wait for official support. Workarounds to be considered:<br />
<br />
* Follow [[Install bundled 32-bit system in Arch64|this guide]] originally posted in the forums. It involves creating a chrooted environment that could be reused for other 32-bit only applications.<br />
<br />
* Or, simply get the 32-bit binary along with the 32-bit dependencies. Install {{Package AUR|bin32-acroread}}. Also, consider installing the extra font packages suggested by the package. Be advised that the Firefox plugin cannot be used ''directly'' with this binary -- it will not load in the 64-bit browser. {{Package AUR|nspluginwrapper-flash}} is required to load the plugin. Finally, be sure to run:<br />
$ nspluginwrapper -v -a -i<br />
as a '''normal user'''. This checks the plugin directory and links the plugins as needed. Everything should work as expected now.<br />
<br />
==Citrix==<br />
See: [[Citrix]]<br />
<br />
==Java==<br />
Either [[Java]] package contains the Java runtime as well as the fitting browser-plugin.<br />
# pacman -S openjdk6<br />
<br />
Or install the proprietary version of Java:<br />
# pacman -S jre<br />
<br />
Keep in mind that the open-source and closed-source versions cannot be installed in parallel. The open-source version is nearly perfect at the time of writing and there is mostly no need anymore to install the proprietary version of Java. But if you want to, since firefox v.3.6 does not seem to look in /usr/lib/mozilla/plugins, which is the default location where jre v.1.6.0_22 place the java plugin, just<br />
# cd to ~/mozilla/plugins<br />
# ln -s /opt/java/jre/lib/i386/libnpjp2.so<br />
and it is safe to<br />
# rm -R /usr/lib/mozilla<br />
unless you use it for something else! Be careful here.<br />
<br />
==Video Plugins==<br />
<br />
===Gecko Media Player===<br />
A good replacement of the now obsolete mplayer-plugin is [http://code.google.com/p/gecko-mediaplayer/ Gecko Media Player]. More stable combined with MPlayer 1.0RC2. (No more crashes with Apple Trailers.)<br />
# pacman -S gecko-mediaplayer<br />
<br />
===Totem Plugin===<br />
The {{package Official|totem-plugin}} might be the choice for those seeking a gstreamer-based plugin:<br />
# pacman -S totem-plugin<br />
<br />
== Other ==<br />
<br />
=== Mozplugger ===<br />
<br />
install it through AUR<br />
<br />
==Troubleshooting==<br />
<br />
===Adobe Reader fails to run===<br />
{{note|This problem may not exist anymore.}}<br />
Due to a missing path one may have to run:<br />
# ln -s /usr/share/Adobe/Reader8/bin/acroread /usr/bin/<br />
<br />
===Flash blocks sound and/or delayed playback===<br />
If sound is delayed within flash video and/or if Flash stops sound from any other application, then:<br />
# vim /etc/rc.conf<br />
<br />
Locate the {{codeline|MODULES}} array and add {{codeline|snd-pcm-oss}} to banned modules, which should look like:<br />
MODULES=( !snd-pcm-oss )<br />
<br />
===No sound in Flash with OSSv4===<br />
If you use OSSv4 on '''x86_64''' with the '''multilib''' {{codeline|flashplugin}} you should install the {{codeline|lib32-libflashsupport}} library: <br />
# pacman -S lib32-libflashsupport<br />
<br />
===No sound in Flash with jack/x86_64/multilib===<br />
If you use jack-audio-connection-kit on '''x86_64''' with the '''multilib''' {{codeline|flashplugin}} you should install the {{codeline|lib32-libflashsupport-jack}} from AUR. To make this work you will also need lib32-alsa-plugins, which is not listed as a lib32-libflashsupport-jack dependancy.<br />
# pacman -S lib32-alsa-plugins<br />
<br />
===Flash performance===<br />
Adobe's Flash plugin has some serious performance issues, especially when CPU frequency scaling is used. There seems to be a policy not to use the whole CPU workload, so the frequency scaling governor does not clock the CPU any higher. To work around this issue, see: [[cpufrequtils#Changing the ondemand governor's threshold]]<br />
<br />
===Plugins are installed but not working===<br />
A common problem is that the plugin path is unset. This typically occurs on a new install, when the user has not re-logged in before running Firefox after the installation. Test if the path is unset:<br />
echo $MOZ_PLUGIN_PATH<br />
If unset, then either re-login, or source {{Filename|/etc/profile.d/mozilla-common.sh}} and start Firefox from the same shell:<br />
. /etc/profile.d/mozilla-common.sh && firefox<br />
<br />
===Gecko Media Player Won't Play Apple Trailers===<br />
<br />
If Apple Trailers appear to start to play and then fail, try setting the user agent for your browser to:<br />
QuickTime/7.6.2 (qtver=7.6.2;os=Windows NT 5.1Service Pack 3)<br />
<br />
=== Plugins don't show up at all ===<br />
<br />
If they don't show up at all in about:plugins, and pacman -S nspluginwrapper says:<br />
<br />
# warning: directory permissions differ on usr/lib/mozilla/<br />
# filesystem: 700 package: 755<br />
<br />
Just as superuser 'chmod 755 /usr/bin/mozilla/' so users can read/execute from it.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Beginners%27_guide_old&diff=93264
Beginners' guide old
2010-01-22T23:10:34Z
<p>Xiol: /* Useful DAEMONS */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]][[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]][[Category:Accessibility (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|Provides a highly detailed, explanatory guide to installing, configuring and using a full-featured Arch Linux system.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|简体中文|Arch 新手安装指南 (简体中文)}}<br />
{{i18n_entry|正體中文|Beginner's Guide 新手指南}}<br />
{{i18n_entry|Dansk|Dansk_Begynderguide}}<br />
{{i18n_entry|Deutsch|Beginners Guide (Deutsch)}}<br />
{{i18n_entry|English|Beginners' Guide}}<br />
{{i18n_entry|Español|Beginners' Guide (Español)}}<br />
{{i18n_entry|Français|Manuel_du_Débutant_(Français)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Indonesia|Beginners_Guide_(Indonesia)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_entry|Magyar|Beginners Guide (Magyar)}}<br />
{{i18n_entry|Nederlands|Beginners_Guide_(Nederlands)}}<br />
{{i18n_entry|Português Brasil|Guia do Iniciante(Português do Brasil)}}<br />
{{i18n_entry|Português|Guia para Principiantes(Português)}}<br />
{{i18n_entry|Русский|Руководство_для_новичков}}<br />
{{i18n_entry|Türkçe|Başlangıç Rehberi (Türkçe)}}<br />
{{i18n_entry|हिन्दी|नौसिखिया गाइड(हिन्दी)}}<br />
{{i18n_entry|한국어|Beginners' Guide (한국어)}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|:Category:Accessibility (English)}} (Accessibility Resources)<br />
{{Article summary wiki|Official Arch Linux Install Guide}}<br />
{{Article summary wiki|Beginners' Guide Appendix}}<br />
{{Article summary wiki|Post Installation Tips}}<br />
{{Article summary end}}<br />
==Preface==<br />
=====Introduction=====<br />
Welcome. This document will guide you through the process of installing and configuring [[Arch Linux]]; a simple, agile and lightweight GNU/Linux distribution, and <tt>UNIX</tt>-like operating system targeted at competent users. <br />
* Arch Linux requires a certain level of intimate knowledge of its configuration process and of <tt>UNIX</tt>-like system methodology, and for this reason, extra explanatory information is included. <br />
* This guide is aimed at new Arch users, but strives to serve as a strong reference and informative base for all.<br />
<br />
'''Arch Linux Distribution Highlights:'''<br />
* [[The Arch Way|Simple]] <tt>UNIX</tt>-like design and philosophy<br />
* All packages compiled for i686 and x86_64 architectures<br />
* [[Arch Boot Process|BSD style]] init scripts, featuring one centralized configuration file<br />
* mkinitcpio: A simple and dynamic initramfs creator<br />
* [[Pacman]] package manager is lightweight and agile, with a very modest memory footprint<br />
* The [[Arch Build System]]: A ports like package building system, providing a simple framework to create installable Arch packages from source<br />
* The [[Arch User Repository]]: offering many thousands of user contributed build scripts<br />
<br />
=====License=====<br />
<br />
Arch Linux, pacman, documentation, and scripts are copyright<br />
©2002-2007 by Judd Vinet, ©2007-2009 by Aaron Griffin and are licensed under the GNU General Public License Version 2.<br />
<br />
=====DON'T PANIC!=====<br />
The Arch Linux system is assembled by the ''user'', from the shell, using basic command line tools. Unlike the more rigid structures of other distributions and installers, there are no default environments nor configurations chosen for you. From the command line, ''you'' will add packages from the Arch repositories using the pacman tool via your internet connection and manually configure your installation by editing text files until your system is customized to your requirements. You will also manually add non-root user(s) and manage groups and permissions. This method allows for maximum flexibility, choice, and system resource control ''from the base up''.<br />
<br />
Arch Linux is a distribution aimed at competent GNU/Linux users who desire a 'do-it-yourself' approach.<br />
<br />
=====The Arch Way=====<br />
<br />
'''''The design principles behind Arch are aimed at keeping it simple.'' '''<br />
<br />
'Simple', in this context, shall mean 'without unnecessary additions, modifications, or complications'. In short; an elegant, minimalist approach.<br />
<br />
'''Some thoughts to keep in mind as you consider simplicity:'''<br />
<br />
*''&quot; 'Simple' is defined from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use and technically [inferior].&quot; -Aaron Griffin''<br />
*''Entia non sunt multiplicanda praeter necessitatem'' or &quot;Entities should not be multiplied unnecessarily.&quot; -Occam's razor. The term ''razor'' refers to the act of shaving away unnecessary complications to arrive at the simplest explanation, method or theory.<br />
*''&quot;The extraordinary part of [my method] lies in its simplicity..The height of cultivation always runs to simplicity.&quot;'' - Bruce Lee<br />
<br />
=====About This Guide=====<br />
<br />
The Arch wiki is an excellent resource and should be consulted for issues [[Main Page|first]]. The IRC room (at freenode #archlinux), and the [http://bbs.archlinux.org/ forums] are also available if the answer cannot be found elsewhere.<br />
<br />
{{Note|Following this guide closely is essential in order to successfully install a properly configured Arch Linux system, so ''please'' read it thoroughly. It is strongly recommended you read each section completely <u>before</u> carrying out the tasks contained.}}<br />
<br />
Since GNU/Linux Distributions are fundamentally 'modular' by design, the guide is logically divided into 4 main components of a desktop <tt>UNIX</tt>-like operating system: <br />
<br />
'''[[#Part I: Install the Base System|Part I: Installing the Base system]]'''<br />
<br />
'''[[#Part II: Configure & Update the New Arch Linux base system|Part II: Configure & Update the New Arch Linux base system]]'''<br />
<br />
'''[[#Part III: Install X and configure ALSA|Part III: Installing X and configuring ALSA]]'''<br />
<br />
'''[[#Part IV: Installing and configuring a Desktop Environment|Part IV: Installing a Desktop Environment]]'''<br />
<br />
==Part I: Install the Base System==<br />
<br />
===Step 1: Obtain the latest Installation media ===<br />
<br />
You can obtain Arch's official installation media from [http://archlinux.org/download/ here]. The latest version is 2009.08 <br />
<br />
* Both the Core and the Netinstall images provide only the necessary packages to create an '''Arch Linux base system'''. ''Note that the Base System does not include a GUI. It is mainly comprised of the GNU toolchain (compiler, assembler, linker, libraries, shell, and utilities), the Linux kernel, and a few extra libraries and modules.''<br />
* Core images facilitate both installing from CD and Net. <br />
* Netinstall images are smaller and provide no packages themselves; the entire system is retrieved via internet.<br />
* The isolinux images are provided as an alternative for those who experience trouble using the grub version. There are no other differences.<br />
* [[Arch64_FAQ|The Arch64 FAQ]] can help you choose between the 32- and 64-bit versions.<br />
<br />
====CD installer====<br />
Burn the .iso image file to a CD with your preferred CD burner drive and software, and continue with [[#Step 2: Boot Arch Linux Installer | Step 2: Boot Arch Linux Installer]]<br />
{{Note| The quality of optical drives, as well as the CD media itself, vary greatly. Generally, using a slow burn speed is recommended for reliable burns; Some users recommend speeds '''''as low as 4x or 2x.''''' If you are experiencing unexpected behavior from the CD, try burning at the minimum speed supported by your system. }}<br />
<br />
====USB stick====<br />
{{Warning|This will irrevocably destroy all data on your USB stick!}}<br />
<br />
'''<tt>UNIX</tt> Method:'''<br />
<br />
Insert an empty or expendable USB stick, determine its path, and write the .img to the USB stick with the <code>/bin/dd</code> program:<br />
dd if=archlinux-2009.08-''{core|netinstall}''-''{i686|x86_64}''.img of=/dev/sd''x''<br />
where <code>if=</code> is the path to the img file and <code>of=</code> is your USB device. Make sure to use {{Filename|/dev/sd'''x'''}} and not {{Filename|/dev/sd'''x1'''}}.<br />
<br />
'''Check md5sum (optional):'''<br />
<br />
Make a note of the number of records (blocks) read in and written out, then perform the following check:<br />
dd if=/dev/sd''x'' count=''number_of_records'' status=noxfer | md5sum<br />
The md5sum returned should match the md5sum of the downloaded archlinux image file; they both should match the md5sum of the image as listed in the md5sums file in the mirror distribution site.<br />
<br />
'''Windows Method:'''<br />
<br />
Download Disk Imager from https://launchpad.net/win32-image-writer/+download. Insert flash media. Start the Disk Imager and select the image file. Select the Drive letter associated with the flash drive. Click "write".<br />
<br />
Continue with [[#Step 2: Boot Arch Linux Installer | Step 2: Boot Arch Linux Installer]]<br />
<br />
===Step 2: Boot Arch Linux Installer===<br />
Insert the CD or USB stick and boot from it. You may have to<br />
change the boot order in your computer BIOS or press a key (usually DEL, F1, F2, F11 or F12) during the BIOS POST (Power On Self-Test) phase.<br />
<br />
{{Tip|The memory requirements for a basic install are:<br />
* Core : 128 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
* Netinstall : 128 MB RAM x86_64/i686 (all packages selected, with swap partition)}}<br />
<br />
The main menu should be displayed at this point. Select the preferred choice by using the arrow keys to highlight your choice, and then by pressing Enter.<br />
<br />
Usually, the first item, Boot Archlive, is the preferred selection. However, choose Boot Archlive [legacy IDE] if you have trouble with libata/PATA, or have no SATA (Serial ATA) drives.<br />
<br />
To change GRUB boot options, press '''e'''. Many users may wish to change the resolution of the framebuffer, for more readable console output. Append:<br />
vga=773<br />
to the kernel line, followed by <ENTER>, for a 1024x768 framebuffer. When done, press '''b''' to boot into that selection.<br />
<br />
The system will now boot and present a login prompt. Login as 'root', without the quotes.<br />
<br />
If your system has errors trying to boot from the live CD or there are other '''hardware''' errors, refer to the [[Installation Troubleshooting]] wiki page.<br />
<br />
====Changing the keymap====<br />
If you have a non-US keyboard layout you can interactively choose your keymap/console font with the command:<br />
# km<br />
or use the loadkeys command:<br />
# loadkeys ''layout''<br />
(replace ''layout'' with your keyboard layout such as &quot;<code>fr</code>&quot; or &quot;<code>be-latin1</code>&quot;)<br />
<br />
====Documentation====<br />
The official install guide is conveniently available right on the live system! To access it, change to vc/2 (virtual console #2) with <ALT>+F2, and then invoke <code>/usr/bin/less</code> by typing in the following at the # prompt:<br />
# less /arch/docs/official_installation_guide_en<br />
<code>less</code> will allow you to page through the document. Change back to vc/1 with <ALT>+F1 to follow the rest of the install process.<br />
<br />
Change back to vc/2 at any time if you need to reference the Official Guide as you progress through the installation process.<br />
<br />
{{tip|Please note that the official guide only covers installation and configuration of the base system. Once that is installed, it is strongly recommended that you come back here to the wiki to find out more about post-installation considerations and other related issues.}}<br />
<br />
===Step 3: Start the Installation===<br />
As root, run the installer script from vc/1:<br />
# /arch/setup<br />
<br />
===A: Select an installation source===<br />
After a welcome screen, you will be prompted for an installation source. Choose the appropriate source for the installer you are using.<br />
* If you chose the CORE installer, continue below with [[#B: Set Clock|B: Set Clock]].<br />
* Netinstall only: You shall be prompted to load ethernet drivers manually, if desired. Udev is quite effective at loading the required modules, so you may assume it has already done so. You may verify this by invoking ifconfig -a from vc/3. (Select OK to continue.)<br />
<br />
====Configure Network (Netinstall)====<br />
Available Interfaces will be presented. If an interface and HWaddr ('''H'''ard'''W'''are '''addr'''ess) is listed, then your module has already been loaded. If your interface is not listed, you may probe it from the installer, or manually do so from another virtual console.<br />
<br />
The following screen will prompt you to ''Select the interface, Probe,'' or ''Cancel''. Choose the appropriate interface and continue.<br />
<br />
The installer will then ask if you wish to use DHCP. Choosing Yes will run '''dhcpcd''' to discover an available gateway and request an IP address; Choosing No will prompt you for your static IP, netmask, broadcast, gateway DNS IP, HTTP proxy, and FTP proxy. Lastly, you will be presented with an overview to ensure your entries are correct.<br />
<br />
=====(A)DSL Quickstart for the Live Environment (If you have a pure modem (or router in bridge mode) to connect to your ISP) =====<br />
<br />
Switch to another virtual console (<Alt> + F2), login as root and invoke <br />
# pppoe-setup<br />
If everything is well configured in the end you can connect to your ISP with <br />
# pppoe-start<br />
<br />
Return to first virtual console with <ALT>+F1. Continue with [[#B: Set Clock|B: Set Clock]]<br />
<br />
=====Wireless Quickstart For the Live Environment (If you need wireless connectivity during the installation process)=====<br />
<br />
The wireless drivers and utilities are now available to you in the live environment of the installation media. A good knowledge of your wireless hardware will be of key importance to successful configuration. Note that the following quickstart procedure ''executed at this point in the installation'' will initialize your wireless hardware for use ''in the live environment''. These steps (or some other form of wireless management) must be repeated from the actual installed system after booting into it. <br />
<br />
Also note that these steps are optional if wireless connectivity is unnecessary at this point in the installation; wireless functionality may always be established later.<br />
<br />
The basic procedure will be:<br />
* Switch to a free virtual console, e.g.: <ALT>+F3<br />
* (Optional) Identify the wireless interface and driver module:<br />
# lsmod | grep -i net<br />
* Ensure udev has loaded the driver, and that the driver has created a usable wireless kernel interface with <code>/usr/sbin/iwconfig</code>:<br />
# iwconfig<br />
Example output:<br />
lo no wireless extensions.<br />
eth0 no wireless extensions.<br />
wlan0 unassociated ESSID:""<br />
Mode:Managed Channel=0 Access Point: Not-Associated <br />
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0 <br />
Retry limit:7 RTS thr:off Fragment thr:off<br />
Power Management:off<br />
Link Quality:0 Signal level:0 Noise level:0<br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:0 Missed beacon:0<br />
<code>wlan0</code> is the available wireless interface in the example.<br />
* Bring the interface up with <code>/sbin/ifconfig <interface> up</code>.<br />
An example using the wlan0 interface:<br />
# ifconfig wlan0 up<br />
(Remember, your interface may be named something else, depending on your module (driver) and chipset: wlan0, eth1, etc.)<br />
* If the essid has been forgotten or is unknown, use <code>/sbin/iwlist <interface> scan</code> to scan for nearby networks.<br />
# iwlist wlan0 scan<br />
* Specify the id of the chosen wireless network with iwconfig <interface> essid &quot;<youressid>&quot; key <your_wep_key> (give the essid (the 'network name') of the network in quotes). <br />
* An example using WEP and a hexadecimal key:<br />
# iwconfig wlan0 essid &quot;linksys&quot; key 0241baf34c<br />
* An example using WEP and an ASCII passphrase:<br />
# iwconfig wlan0 essid "linksys" key s:pass1<br />
* An example using an unsecured network:<br />
# iwconfig wlan0 essid "linksys"<br />
* Request an IP address with <code>/sbin/dhcpcd <interface> </code>. e.g.:<br />
# dhcpcd wlan0<br />
* Ensure you can route using <code>/bin/ping</code>:<br />
# ping -c 3 www.google.com<br />
Done.<br />
* For connecting to a network using WPA, consult the [[WPA Supplicant]] article, and continue below.<br />
<br />
======Does the Wireless Chipset require Firmware?======<br />
A small percentage of wireless chipsets also require firmware, in addition to a corresponding driver. If unsure, invoke <code>/usr/bin/dmesg</code> to query the kernel log for a firmware request from the wireless chipset:<br />
# dmesg | grep firmware<br />
Example output from an Intel chipset which requires and has requested firmware from the kernel at boot:<br />
firmware: requesting iwlwifi-5000-1.ucode<br />
If there is no output, it may be concluded that the system's wireless chipset does not require firmware.<br />
<br />
{{Note | '''Wireless chipset firmware packages (for cards which require them) are pre-installed under /lib/firmware in the live environment, (on CD/USB stick) ''but must be explicitly installed to your actual system to provide wireless functionality after you reboot into it!'' Package selection and installation is covered below. Ensure installation of both your wireless module and firmware during the package selection step! See [[Wireless Setup]] if you are unsure about the requirement of corresponding firmware installation for your particular chipset. This is a very common error.'''}}<br />
<br />
After the initial Arch installation is complete, you may wish to refer to [[Wireless Setup]] to ensure a permanent configuration solution for your installed system.<br />
<br />
Return to vc/1 with <ALT>+F1. Continue with [[#B: Set Clock|B: Set Clock]]<br />
<br />
===B: Set Clock===<br />
* UTC - Choose UTC if running only <tt>UNIX</tt>-like operating system(s).<br />
<br />
* localtime - Choose local if multi-booting with a Microsoft Windows OS.<br />
<br />
===C: Prepare Hard Drive===<br />
<br />
{{Warning|Partitioning hard drives can destroy data. You are strongly cautioned and advised to backup your critical data if applicable.}}<br />
<br />
{{Note|Partitioning may be performed before initiating the Arch installation if desired, by utilizing [http://gparted.sourceforge.net/download.php GParted] or other available tools. If the installation drive has already been partitioned to the required specifications, continue with [[#Set Filesystem Mountpoints| Set Filesystem Mountpoints]]}}<br />
<br />
Verify current disk identities and layout by invoking <code>/sbin/fdisk</code> with the <code>-l</code> (lower-case L) switch.<br />
<br />
Open another virtual console (<ALT>+F3) and enter:<br />
# fdisk -l<br />
Take note of the disk(s)/partition(s) to utilize for the Arch installation.<br />
<br />
Switch back to the installation script with <ALT>+F1<br />
<br />
Select the first menu entry &quot;Prepare Hard Drive&quot;.<br />
* Option 1: Auto Prepare<br />
Auto-Prepare divides the disk into the following configuration:<br />
<br />
* ext2 /boot partition, default size 32MB. ''You will be prompted to modify the size to your requirement.''<br />
* swap partition, default size 256MB. ''You will be prompted to modify the size to your requirement.''<br />
* A Separate / and /home partition, (sizes can also be specified). Available filesystems include ext2, ext3, ext4, reiserfs, xfs and jfs, but note that ''both / and /home shall share the same fs type'' if choosing the Auto Prepare option.<br />
<br />
Be warned that Auto-prepare will completely erase the chosen hard drive. Read the <font color=&quot;red&quot;>warning</font> presented by the installer very carefully, and make sure the correct device is about to be partitioned.<br />
<br />
* Option 2: '''(Recommended)''' Partition Hard Drives (with cfdisk)<br />
<br />
This option will allow for the most robust and customized partitioning solution for your personal needs.<br />
<br />
''At this point, more advanced GNU/Linux users who are familiar and comfortable with manually partitioning may wish to skip down to '''[[#D: Select Packages|D: Select Packages]]''' below.''<br />
<br />
{{Note|If you are installing to a USB flash key, see "[[Installing Arch Linux on a USB key]]".}}<br />
<br />
====Partition Hard Drives====<br />
<br />
=====Partition Info=====<br />
<br />
Partitioning a hard disk drive defines specific areas (the partitions) within the disk, that will each appear and behave as a separate disk and upon which a filesystem may be created (formatted).<br />
*There are 3 types of disk partitions:<br />
#Primary<br />
#Extended<br />
#Logical<br />
'''Primary''' partitions can be bootable, and are limited to 4 partitions per disk or raid volume. If a partitioning scheme requires more than 4 partitions, an '''extended''' partition which will contain '''logical''' partitions will be required.<br />
<br />
Extended partitions are not usable by themselves; they are merely a &quot;container&quot; for logical partitions. If required, a hard disk shall contain only one extended partition; which shall then be sub-divided into logical partitions.<br />
<br />
When partitioning a disk, one can observe this numbering scheme by creating primary partitions sda1 through sda3 followed by creating an extended partition, sda4, and subsequently creating logical partition(s) within the extended partition; sda5, sda6, and so on.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on the drive where virtual ram resides, allowing the kernel to easily use disk storage for data that does not fit into physical RAM.<br />
<br />
Historically, the general rule for swap partition size was 2x the amount of physical RAM. Over time, as computers have gained ever larger memory capacities, this rule has become increasingly deprecated. Generally, on machines with up to 512MB RAM, the 2x rule is usually quite sufficient. If the installation machine provides gratuitous amounts of RAM (more than 1024 MB) it may be possible to completely forget a swap partition altogether, since the option to create a swap '''file''' is always available later. A 1 GB swap partition will be used in this example.<br />
{{Note|If using suspend-to-disk, (hibernate) a swap partition at least '''equal''' in size to the amount of physical RAM is required. Some Arch users even recommend oversizing it beyond the amount of physical RAM by 10-15%, to allow for possible bad sectors.}}<br />
<br />
=====Partition Scheme=====<br />
A disk partitioning scheme is a very personalized preference. Each user's choices will be unique to their own computing habits and requirements. If you would like to dual boot Arch Linux and a Windows operating systems please see [[Windows and Arch Dual Boot]].<br />
<br />
Filesystem candidates for separate partitions include:<br />
<br />
'''/''' (root) ''The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory &quot;/&quot;, even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system. Therefore, certain directories under / are not themselves candidates for separate partitions. (See warning below).''<br />
<br />
'''/boot''' ''This directory contains the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files. /boot is essential for booting, but is unique in that it may still be kept on its own separate partition (if required).''<br />
<br />
'''/home''' ''User data and user specific configuration files for applications are stored in each user's home directory in a file that starts with the '.' character (a &quot;dot file&quot;).''<br />
<br />
'''/usr''' ''While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system update/upgrade. Any information that is host-specific or varies with time is stored elsewhere.''<br />
<br />
'''/tmp''' ''directory for programs that require temporary files''<br />
<br />
'''/var''' ''contains variable data; spool directories and files, administrative and logging data, pacman's cache, the ABS tree, etc.''<br />
{{Warning | Besides /boot, directories essential for booting are: ''''''/bin', '/dev', '/etc', '/lib', '/proc' and '/sbin'. Therefore, they must not reside on a separate partition from /.'''''}}<br />
'''''There are several advantages for using discrete filesystems, rather than combining all into one partition''''':<br />
<br />
* Security: Each filesystem may be configured in /etc/fstab as 'nosuid', 'nodev', 'noexec', 'readonly', etc.<br />
* Stability: A user, or malfunctioning program can completely fill a filesystem with garbage if they have write permissions for it. Critical programs, which reside on a different filesystem remain unaffected.<br />
* Speed: A filesystem which gets written to frequently may become somewhat fragmented. (An effective method of avoiding fragmentation is to ensure that each filesystem is never in danger of filling up completely.) Separate filesystems remain unaffected, and each can be defragmented separately as well.<br />
* Integrity: If one filesystem becomes corrupted, separate filesystems remain unaffected.<br />
* Versatility: Sharing data across several systems becomes more expedient when independent filesystems are used. Separate filesystem types may also be chosen based upon the nature of data and usage.<br />
In this example, we shall use separate partitions for /, /var, /home, and a swap partition.<br />
<br />
{{Note | /var contains many small files. This should be taken into consideration when choosing a filesystem type for it, (if creating its own separate partition).}}<br />
<br />
=====How big should my partitions be?=====<br />
This question is best answered based upon individual needs.<br />
You may wish to simply create '''one partition for root and one partition for swap or only one root partition without swap''' or refer to the following examples and consider these guidelines to provide a frame of reference:<br />
* The root filesystem (/) in the example will contain the /usr directory, which can become moderately large, depending upon how much software is installed. 15-20 GB should be sufficient for most users.<br />
<br />
* The /var filesystem will contain, among other data, the [[ABS]] tree and the pacman cache. Keeping cached packages is useful and versatile; it provides the ability to downgrade packages if needed. /var tends to grow in size; the pacman cache can grow large over long periods of time, but can be safely cleared if needed. If you are using an SSD, you may wish to locate your /var on an HDD and keep the / and /home partitions on your SSD to avoid needless read/writes to the SSD. 6-8 Gigs on a desktop system should be sufficient for /var. Servers tend to have extremely large /var filesystems.<br />
<br />
* The /home filesystem is typically where user data, downloads, and multimedia reside. On a desktop system, /home is typically the largest filesystem on the drive by a large margin. Remember that if you chose to reinstall Arch, all the data on your /home partition will be untouched (so long as you have a separate /home partition). <br />
<br />
* An extra 25% of space added to each filesystem will provide a cushion for unforeseen occurrence, expansion, and serve as a preventive against fragmentation.<br />
'''''From the guidelines above, the example system shall contain a ~15GB root (/) partition, ~7GB /var, 1GB swap, and a /home containing the remaining disk space.'''''<br />
<br />
=====Create Partition:cfdisk=====<br />
Start by creating the primary partition that will contain the '''root''', (/) filesystem.<br />
<br />
Choose '''N'''ew -> Primary and enter the desired size for root (/). Put the partition at the beginning of the disk.<br />
<br />
Also choose the '''T'''ype by designating it as '83 Linux'. The created / partition shall appear as sda1 in our example.<br />
<br />
Now create a primary partition for /var, designating it as '''T'''ype 83 Linux. The created /var partition shall appear as sda2<br />
<br />
Next, create a partition for swap. Select an appropriate size and specify the '''T'''ype as 82 (Linux swap / Solaris). The created swap partition shall appear as sda3.<br />
<br />
Lastly, create a partition for your /home directory. Choose another primary partition and set the desired size.<br />
<br />
Likewise, select the '''T'''ype as 83 Linux. The created /home partition shall appear as sda4.<br />
<br />
Example:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Primary Linux 15440 #root<br />
sda2 Primary Linux 6256 #/var<br />
sda3 Primary Linux swap / Solaris 1024 #swap<br />
sda4 Primary Linux 140480 #/home<br />
<br />
Choose '''W'''rite and type ''''yes''''. Beware that this operation may destroy data on your disk. Choose '''Q'''uit to leave the partitioner.<br />
Choose Done to leave this menu and continue with &quot;Set Filesystem Mountpoints&quot;.<br />
<br />
{{Note | Since the latest developments of the Linux kernel which include the libata and PATA modules, all IDE, SATA and SCSI drives have adopted the sd''x'' naming scheme. This is perfectly normal and should not be a concern.}}<br />
<br />
====Set Filesystem Mountpoints====<br />
First you will be asked for your swap partition. Choose the appropriate partition (sda3 in this example). You will be asked if you want to create a swap filesystem; select yes. Next, choose where to mount the / (root) directory (sda1 in the example). At this time, you will be asked to specify the filesystem type.<br />
<br />
=====Filesystem Types=====<br />
Again, a filesystem type is a very subjective matter which comes down to personal preference. Each has its own advantages, disadvantages, and unique idiosyncrasies. Here is a very brief overview of supported filesystems:<br />
<br />
1. '''ext2''' ''Second Extended Filesystem''- Old, reliable GNU/Linux filesystem. Very stable, but ''without journaling support''. May be inconvenient for root (/) and /home, due to very long fsck's. ''An ext2 filesystem can easily be converted to ext3.'' Generally regarded as a good choice for /boot/.<br />
<br />
2. '''ext3''' ''Third Extended Filesystem''- Essentially the ext2 system, but with journaling support. ext3 is completely compatible with ext2. ''Extremely'' stable, mature, and by far the most widely used, supported and developed GNU/Linux FS.<br />
<br />
'''High Performance Filesystems:'''<br />
<br />
3. '''ext4''' ''Fourth Extended Filesystem''- Backward compatible with ext2 and ext3, Introduces support for volumes with sizes up to 1 exabyte and files with sizes up to 16 terabyte. Increases the 32,000 subdirectory limit in ext3 to 64,000. Offers online defragmentation ability. <br />
{{Note | ext4 is a new filesystem and may have some bugs.}}<br />
<br />
4. '''ReiserFS''' (V3)- Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput based on an unconventional and creative algorithm. ReiserFS is touted as very fast, especially when dealing with many small files. ReiserFS is fast at formatting, yet comparatively slow at mounting. Quite mature and stable. ReiserFS is not actively developed at this time (Reiser4 is the new Reiser filesystem). Generally regarded as a good choice for /var/.<br />
<br />
5. '''JFS''' - IBM's '''J'''ournaled '''F'''ile'''S'''ystem- The first filesystem to offer journaling. JFS had many years of use in the IBM AIX® OS before being ported to Linux. JFS currently uses the least CPU resources of any GNU/Linux filesystem. Very fast at formatting, mounting and fsck's, and very good all-around performance, especially in conjunction with the deadline I/O scheduler. (See [[JFS]].) Not as widely supported as ext or ReiserFS, but very mature and stable.<br />
<br />
6. '''XFS''' - Another early journaling filesystem originally developed by Silicon Graphics for the IRIX OS and ported to Linux. XFS offers very fast throughput on large files and large filesystems. Very fast at formatting and mounting. Generally benchmarked as slower with many small files, in comparison to other filesystems. XFS is very mature and offers online defragmentation ability.<br />
* JFS and XFS filesystems cannot be ''shrunk'' by disk utilities (such as gparted or parted magic)<br />
<br />
===== A note on Journaling=====<br />
All above filesystems, except ext2, utilize [http://en.wikipedia.org/wiki/Journaling_file_system journaling]. Journaling file systems are fault-resilient file systems that use a journal to log changes before they are committed to the file system to avoid metadata corruption in the event of a crash. Note that not all journaling techniques are alike; specifically, only ext3 and ext4 offer ''data-mode journaling'', (though, not by default), which journals ''both'' data ''and'' meta-data (but with a significant speed penalty). The others only offer ''ordered-mode journaling'', which journals meta-data only. While all will return your filesystem to a valid state after recovering from a crash, ''data-mode journaling'' offers the greatest protection against file system corruption and data loss but can suffer from performance degradation, as all data is written twice (first to the journal, then to the disk). Depending upon how important your data is, this may be a consideration in choosing your filesystem type.<br />
<br />
'''''Moving on...'''''<br />
<br />
Choose and create the filesystem (format the partition) for / by selecting '''yes'''. You will now be prompted to add any additional partitions. In our example, sda2 and sda4 remain. For sda2, choose a filesystem type and mount it as /var. Finally, choose the filesystem type for sda4, and mount it as /home. <br />
{{Box Note |If you have not created and do not need a separate /boot partition, you may safely ignore the warning that it does not exist.}} Return to the main menu.<br />
<br />
===D: Select Packages===<br />
<br />
*Core ISO: Choose CD as source and select the appropriate CD drive if more than one exist on the installation machine.<br />
*Netinstall: Select an FTP/HTTP mirror. ''Note that archlinux.org is throttled to 50KB/s''.<br />
<br />
Package selection is split into two stages. First, select the package category:<br />
{{Note | For expedience, all packages in '''base''' are selected by default. Use the space-bar to select and de-select packages.}}<br />
* '''Base''': The minimal base environment. ''Always select it and only remove packages that will not be used.''<br />
* '''Base-devel''': Extra tools such as '''make''', '''automake''' and '''wireless-tools''' as well as wireless firmwares. ''Most beginners should choose to install it, and will probably need it later.<br />
''<br />
After category selection, you will be presented with the full lists of packages, allowing you to fine-tune your selections. Use the space bar to select and unselect.<br />
<br />
{{Note | If you are going to require connection to a wireless network with WPA encryption, consider installing netcfg2 (as well as wireless_tools), which will enable you to do so.}}<br />
<br />
After selecting the needed packages, leave the selection<br />
screen and continue to the next step, Install Packages.<br />
<br />
===E: Install Packages===<br />
Next, choose 'Install Packages'. You will be asked if you wish to keep the packages in the pacman cache. If you choose 'yes', you will have the flexibility to [[Downgrade packages|downgrade]] to previous package versions in the future, so this is recommended (you can always clear the cache in the future). The installer script will now install the selected packages, as well as the default Arch 2.6 kernel, to your system.<br />
*Netinstall: The [[Pacman]] package manager will now download and install your selected packages. (See vc/5 for output, vc/1 to return to the installer)<br />
*Core image: The packages will be installed from the CD/USB stick.<br />
<br />
===F: Configure the System===<br />
''Closely following and understanding these steps is of key importance to ensure a properly configured system.''<br />
<br />
*At this stage of the installation, you will configure the primary configuration files of your Arch Linux base system.<br />
<br />
*Previous versions of the installer included [[Hwdetect|hwdetect]] to gather information for your configuration. This has been deprecated, and '''[[Udev|udev]]''' should handle most module loading automatically at boot.<br />
<br />
Now you will be asked which text editor you want to use; choose [[Nano|nano]], [http://joe-editor.sourceforge.net/ joe] or [[Vim|vi]], ('''nano''' is generally considered easiest of the 3). You will be presented with a menu including the main configuration files for your system. <br />
<br />
{{Note | ''It is very important at this point to edit, or at least verify by opening, every configuration file.'' The installer script relies on your input to create these files on your installation. A common error is to skip over these critical steps of configuration.}}<br />
<br />
=====Can the installer handle this more automatically?=====<br />
Hiding the process of system configuration is in direct opposition to '''''[[The Arch Way]]'''''. While it is true that recent versions of the kernel and hardware probing tools offer excellent hardware support and auto-configuration, Arch presents the user all pertinent configuration files during installation for the purposes of ''transparency and system resource control''. By the time you have finished modifying these files to your specifications, you will have learned the simple method of manual Arch Linux system configuration and become more familiar with the base structure, leaving you better prepared to use and maintain your new installation productively.<br />
<br />
'''''Moving on...'''''<br />
<br />
====/etc/rc.conf====<br />
Arch Linux uses the file {{Filename|/etc/rc.conf}} as the principal location for system configuration. This one file contains a wide range of configuration information, principally used at system startup. As its name directly implies, it also contains settings for and invokes the /etc/rc* files, and is, of course, sourced ''by'' these files.<br />
<br />
=====LOCALIZATION section=====<br />
* '''LOCALE'''=: This sets your system locale, which will be used by all i18n-aware applications and utilities. You can get a list of the available locales by running {{Codeline|locale -a}} from the command line. This setting's default is fine for US English users.<br />
* '''HARDWARECLOCK'''=: Specifies whether the hardware clock, which is synchronized on boot and on shutdown, stores '''UTC''' time, or '''localtime'''. UTC makes sense because it greatly simplifies changing timezones and daylight savings time. localtime is necessary if you dual boot with an operating system such as Windows, that only stores localtime to the hardware clock.<br />
* '''USEDIRECTISA'''=: Use direct I/O request instead of {{Filename|/dev/rtc}} for hwclock<br />
* '''TIMEZONE'''=: Specify your TIMEZONE. (All available zones are under {{Filename|/usr/share/zoneinfo/}}).<br />
* '''KEYMAP'''=: The available keymaps are in {{Filename|/usr/share/kbd/keymaps}}. Please note that this setting is only valid for your TTYs, not any graphical window managers or '''X'''.<br />
* '''CONSOLEFONT'''=: Available console fonts reside under {{Filename|/usr/share/kbd/consolefonts/}} if you must change. The default (blank) is safe.<br />
* '''CONSOLEMAP'''=: Defines the console map to load with the setfont program at boot. Possible maps are found in {{Filename|/usr/share/kbd/consoletrans}}, if needed. The default (blank) is safe.<br />
* '''USECOLOR'''=: Select &quot;yes&quot; if you have a color monitor and wish to have colors in your consoles.<br />
LOCALE=&quot;en_US.utf8&quot;<br />
HARDWARECLOCK=&quot;localtime&quot;<br />
USEDIRECTISA=&quot;no&quot;<br />
TIMEZONE=&quot;US/Eastern&quot;<br />
KEYMAP=&quot;us&quot;<br />
CONSOLEFONT=<br />
CONSOLEMAP=<br />
USECOLOR=&quot;yes&quot;<br />
<br />
=====HARDWARE Section=====<br />
* '''MOD_AUTOLOAD'''=: Setting this to &quot;yes&quot; will use '''udev''' to automatically probe hardware and load the appropriate modules during boot, (convenient with the default modular kernel). Setting this to &quot;no&quot; will rely on the user's ability to specify this information manually, or compile their own custom kernel and modules, etc.<br />
* '''MOD_BLACKLIST'''=: This has become deprecated in favor of adding blacklisted modules directly to the '''MODULES=''' line below.<br />
* '''MODULES'''=: Specify additional MODULES if you know that an important module is missing. If your system has any floppy drives, add "floppy". If you will be using loopback filesystems, add "loop". Also specify any blacklisted modules by prefixing them with a bang (!). Udev will be forced NOT to load blacklisted modules. In the example, the IPv6 module as well as the annoying pcspeaker are blacklisted.<br />
# Scan hardware and load required modules at boot<br />
MOD_AUTOLOAD=&quot;yes&quot;<br />
# Module Blacklist - Deprecated<br />
MOD_BLACKLIST=()<br />
#<br />
MODULES=(!net-pf-10 !snd_pcsp !pcspkr loop)<br />
<br />
=====NETWORKING Section=====<br />
* '''HOSTNAME'''=:Set your HOSTNAME to your liking.<br />
* '''eth0'''=: 'Ethernet, card 0'. Adjust the interface IP address, netmask and broadcast address ''if'' you are using '''static IP'''. Set eth0=&quot;dhcp&quot; if you want to use '''DHCP'''<br />
* '''INTERFACES'''=: Specify all interfaces here. Multiple interfaces should be separated with a space as in: (eth0 wlan0)<br />
* '''gateway'''=: If you are using '''static IP''', set the gateway address. If using '''DHCP''', you can usually ignore this variable, though some users have reported the need to define it.<br />
* '''ROUTES'''=: If you are using static '''IP''', remove the '''!''' in front of 'gateway'. If using '''DHCP''', you can usually leave this variable commented out with the bang (!), but again, some users require the gateway and ROUTES defined. If you experience networking issues with pacman, for instance, you may want to return to these variables.<br />
<br />
====== Example, using a dynamically assigned IP address ('''DHCP''') ======<br />
<br />
HOSTNAME=&quot;arch&quot;<br />
#eth0=&quot;eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255&quot;<br />
eth0=&quot;dhcp&quot;<br />
INTERFACES=(eth0)<br />
gateway=&quot;default gw 192.168.0.1&quot;<br />
ROUTES=(!gateway)<br />
<br />
======Example, using a '''static''' IP address======<br />
<br />
HOSTNAME=&quot;arch&quot;<br />
eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"<br />
INTERFACES=(eth0)<br />
gateway="default gw 192.168.0.1"<br />
ROUTES=(gateway)<br />
<br />
Modify {{Filename|/etc/resolv.conf}} to contain the DNS servers of choice. Example:<br />
<br />
search my.isp.net.<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.2<br />
nameserver 4.2.2.3<br />
<br />
Various processes can overwrite the contents of {{filename|/etc/resolv.conf}}. For example, by default Arch Linux uses the '''dhcpcd''' DHCP client, which will overwrite the file when it starts. [[Resolv.conf|Various methods]] may be used to preserve the nameserver settings in {{filename|/etc/resolv.conf}}. For example, dhcpcd's configurations file may be edited to prevent the dhcpcd daemon from overwriting the file. To do this, you will need to modify the {{Filename|/etc/conf.d/dhcpcd}} configuration:<br />
<br />
# Arguments to be passed to the DHCP client daemon<br />
# DHCPCD_ARGS="-q"<br />
DHCPCD_ARGS="-C resolv.conf -q"<br />
<br />
{{tip|If using a non-standard MTU size (a.k.a. jumbo frames) is desired AND the installation machine hardware supports them, see the [[Jumbo Frames]] wiki article for further configuration.}}<br />
<br />
=====DAEMONS Section=====<br />
This array simply lists the names of those scripts contained in /etc/rc.d/ which are to be started during the boot process, and the order in which they start. Asynchronous initialization by backgrounding is also supported and useful for speeding up boot. <br />
DAEMONS=(network @syslog-ng netfs @crond)<br />
*If a script name is prefixed with a bang (!), it is not executed.<br />
*If a script is prefixed with an &quot;at&quot; symbol (@), it shall be executed in the background; the startup sequence will not wait for successful completion of each daemon before continuing to the next. (Useful for speeding up system boot). Do not background daemons that are needed by other daemons. For example "mpd" depends on "network", therefore backgrounding network may cause mpd to break.<br />
*Edit this array whenever new system services are installed, if starting them automatically during boot is desired.<br />
<br />
{{Note | This 'BSD-style' init, is the Arch way of handling what other distributions handle with various symlinks to an /etc/init.d directory.}}<br />
<br />
======About DAEMONS======<br />
The [[daemons]] line need not be changed at this time, but it is useful to explain what daemons are, as they will be addressed later in this guide.<br />
A ''daemon'' is a program that runs in the background, waiting for events to occur and offering services. A good example is a webserver that waits for a request to deliver a page (e.g.:httpd) or an SSH server waiting for a user login (e.g.:sshd). While these are full-featured applications, there are also daemons whose work is not that visible. Examples are a daemon which writes messages into a log file (e.g. syslog, metalog), a daemon which lowers the CPU frequency if the system has nothing to do (e.g.:cpufreq), and a daemon which provides a graphical login (e.g.: gdm, kdm). All these programs can be added to the daemons line and will be started when the system boots. Useful daemons will be presented during this guide.<br />
<br />
Historically, the term ''daemon'' was coined by the programmers of MIT's Project MAC. They took the name from ''Maxwell's demon'', an imaginary being from a famous thought experiment that constantly works in the background, sorting molecules. <tt>UNIX</tt> systems inherited this terminology and created the backronym '''d'''isk '''a'''nd '''e'''xecution '''mon'''itor.<br />
<br />
{{Tip|All Arch daemons reside under /etc/rc.d/}}<br />
<br />
====/etc/fstab====<br />
The '''fstab''' (for '''f'''ile '''s'''ystems '''tab'''le) is part of the system configuration listing all available disks and disk partitions, and indicating how they are to be initialized or otherwise integrated into the overall system's filesystem. The '''/etc/fstab''' file is most commonly used by the '''mount''' command. The mount command takes a filesystem on a device, and adds it to the main system hierarchy that you see when you use your system. '''mount -a''' is called from /etc/rc.sysinit, about 3/4 of the way through the boot process, and reads /etc/fstab to determine which options should be used when mounting the specified devices therein. If '''noauto''' is appended to a filesystem in /etc/fstab, '''mount -a''' will not mount it at boot.<br />
<br />
=====An example /etc/fstab=====<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
#/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0<br />
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0<br />
#/dev/fd0 /media/fl auto user,noauto 0 0<br />
/dev/sda1 / jfs defaults,noatime 0 1<br />
/dev/sda2 /var reiserfs defaults,noatime,notail 0 2<br />
/dev/sda3 swap swap defaults 0 0<br />
/dev/sda4 /home jfs defaults,noatime 0 2<br />
{{Note | The 'noatime' option disables writing read access times to the metadata of files and may safely be appended to / and /home regardless of your specified filesystem type for increased speed, performance, and power efficiency (see [http://kerneltrap.org/node/14148 here] for more). 'notail' disables the ReiserFS tailpacking feature, for added performance at the cost of slightly less efficient disk usage.}}<br />
<br />
* '''<file system>''': describes the block device or remote filesystem to be mounted. For regular mounts, this field will contain a link to a block device node (as created by mknod which is called by udev at boot) for the device to be mounted; for instance, '/dev/cdrom' or '/dev/sda1'. <br />
{{Note | Rather than the sd''x'' naming scheme, you may choose to use UUID, or other persistent block device naming schemes for consistent device mapping. Due to active developments in the kernel and also udev, the ordering in which drivers for storage controllers are loaded may change randomly, yielding an unbootable system/kernel panic. Nearly every motherboard has several controllers (onboard SATA, onboard IDE), and due to the aforementioned development updates, /dev/sda may become /dev/sdb on the next reboot. (See [[Persistent block device naming| this wiki article]] for more information on persistent block device naming. )}}<br />
<br />
* '''<dir>''': describes the mount point for the filesystem. For swap partitions, this field should be specified as 'swap'; (Swap partitions are not actually mounted.)<br />
<br />
* '''<type>''': describes the type of the filesystem. The Linux kernel supports many filesystem types. (For the filesystems currently supported by the running kernel, see /proc/filesystems). An entry 'swap' denotes a file or partition to be used for swapping. An entry 'ignore' causes the line to be ignored. This is useful to show disk partitions which are currently unused.<br />
<br />
* '''<options>''': describes the mount options associated with the filesystem. It is formatted as a comma separated list of options with no intervening spaces. It contains at least the type of mount plus any additional options appropriate to the filesystem type. For documentation on the available options for non-nfs file systems, see mount(8).<br />
<br />
* '''<dump>''': used by the dump(8) command to determine which filesystems are to be dumped. dump is a backup utility. If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be backed up. ''Note that dump is not installed by default.''<br />
<br />
* '''<pass>''': used by the fsck(8) program to determine the order in which filesystem checks are done at boot time. The root filesystem should be specified with a <pass> of 1, and other filesystems should have a <pass> of 2 or 0. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.<br />
<br />
*If you plan on using '''hal''' to automount media such as DVDs, you may wish to comment out the cdrom and dvd entries in preparation for '''hal''', which will be installed later in this guide.<br />
<br />
Expanded information available in the [[Fstab]] wiki entry.<br />
<br />
===='''[[Configuring mkinitcpio | /etc/mkinitcpio]].conf'''====<br />
''Most users will not need to modify this file at this time, but please read the following explanatory information.''<br />
<br />
This file allows further fine-tuning of the initial ram filesystem, or initramfs, (also historically referred to as the initial ramdisk or &quot;initrd&quot;) for your system. The initramfs is a gzipped image that is read by the kernel during boot. The purpose of the initramfs is to bootstrap the system to the point where it can access the root filesystem. This means it has to load any modules that are required for devices like IDE, SCSI, or SATA drives (or USB/FW, if you are booting from a USB/FW drive). Once the initrramfs loads the proper modules, either manually or through udev, it passes control to the kernel and your boot continues. For this reason, the initramfs only needs to contain the modules necessary to access the root filesystem. It does not need to contain every module you would ever want to use. The majority of common kernel modules will be loaded later on by udev, during the init process.<br />
<br />
'''mkinitcpio''' is the next generation of '''initramfs creation'''. It has many advantages over the old '''mkinitrd''' and '''mkinitramfs''' scripts.<br />
<br />
* It uses '''klibc''' and '''kinit''' which are developed by Linux kernel devs to provide a small and lightweight base for early userspace.<br />
* It can use '''udev''' for hardware autodetection at runtime, thus prevents you from having tons of unnecessary modules loaded.<br />
* Its hook-based init script is easily extendable with custom hooks, which can easily be included in pacman packages without having to modifiy mkinitcpio itself.<br />
* It already supports '''lvm2''', '''dm-crypt''' for both legacy and luks volumes, '''raid''', '''swsusp''' and '''suspend2''' resuming and booting from '''usb mass storage''' devices.<br />
* Many features can be configured from the kernel command line without having to rebuild the image.<br />
* The '''mkinitcpio''' script makes it possible to include the image in a kernel, thus making a self-contained kernel image is possible.<br />
* Its flexibility makes recompiling a kernel unnecessary in many cases.<br />
<br />
If using RAID or LVM on the root filesystem, the appropriate HOOKS must be configured. See the wiki pages for [[Installing with Software RAID or LVM| RAID]] and [[Configuring mkinitcpio | /etc/mkinitcpio]] for more info. If using a non-US keyboard. add the "<code>keymap</code>" hook to load your local keymap during boot. Add the "<code>usbinput</code>" hook if using a USB keyboard, e.g.:<br />
HOOKS="base udev autodetect pata scsi sata filesystems keymap usbinput"<br />
(Otherwise, if boot fails for some reason you will be asked to enter root's password for system maintenance but will be unable to do so.)<br />
<br />
If you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, encrypted volumes, or DSDT support, configure your HOOKS accordingly. <br />
<br />
If doing a CF or SD card install, you may need to add the <code>usbinput</code> HOOK for your system to boot properly. <br />
<br />
''If you are using a US keyboard, and have no need for any of the above HOOKS, editing this configuration should be unnecessary at this point.''<br />
<br />
'''mkinitcpio''' is an Arch innovation developed by Aaron Griffin and Tobias Powalowski with some help from the community.<br />
<br />
==== /etc/modprobe.d/modprobe.conf====<br />
<br />
This file can be used to set special configuration options for the kernel modules. It is unnecessary to configure this file at this time.<br />
<br />
====/etc/resolv.conf (for Static IP)====<br />
The ''resolver'' is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). One of the main functions of DNS is to translate domain names into IP addresses, to make the Web a friendlier place. The resolver configuration file, or /etc/resolv.conf, contains information that is read by the resolver routines the first time they are invoked by a process.<br />
<br />
*''If you are using DHCP, you may safely ignore this file, as by default, it will be dynamically created and destroyed by the dhcpcd daemon. You may change this default behavior if you wish. (See [http://wiki.archlinux.org/index.php/Network#For_DHCP_IP Network]]).''<br />
<br />
If you use a static IP, set your DNS servers in /etc/resolv.conf (nameserver <ip-address>). You may have as many as you wish.<br />
An example, using OpenDNS:<br />
nameserver 208.67.222.222<br />
nameserver 208.67.220.220<br />
<br />
If you are using a router, you will probably want to specify your DNS servers in the router itself, and merely point to it from your '''/etc/resolv.conf''', using your router's IP (which is also your gateway from '''/etc/rc.conf'''), e.g.:<br />
nameserver 192.168.1.1<br />
<br />
If using '''DHCP''', you may also specify your DNS servers in the router, or allow automatic assignment from your ISP, if your ISP is so equipped.<br />
<br />
====/etc/hosts====<br />
This file associates IP addresses with hostnames and aliases, one line per IP address. For each host a single line should be present with the following information:<br />
<IP-address> <hostname> [aliases...]<br />
Add your ''hostname'', coinciding with the one specified in /etc/rc.conf, as an alias, so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost '''''yourhostname'''''<br />
{{Note |''This format, '''including the 'localhost' and your actual host name''', is required for program compatibility! So, if you have named your computer Archhost, then that line above should look like this:<br />
127.0.0.1 localhost.localdomain localhost Archhost<br />
Errors in this entry may cause poor network performance and/or certain programs to open very slowly, or not work at all. This is a very common error for beginners.''}}<br />
<br />
If you use a static IP, add another line using the syntax: <static-IP> <hostname.domainname.org> <hostname> e.g.:<br />
192.168.1.100 '''''yourhostname'''''.domain.org '''''yourhostname'''''<br />
<br />
{{Tip|For convenience, you may also use /etc/hosts aliases for hosts on your network, and/or on the Web, e.g.:<br />
64.233.169.103 www.google.com g<br />
192.168.1.90 media<br />
192.168.1.88 data<br />
The above example would allow you to access google simply by typing 'g' into your browser, and access to a media and data server on your network by name and without the need for typing out their respective IP addresses.}}<br />
<br />
====/etc/hosts.deny and /etc/hosts.allow====<br />
Modify these configurations according to your needs if you plan on using the [[SSH|ssh]] daemon. The default configuration will reject all incoming connections, not only ssh connections. Edit your '''/etc/hosts.allow '''file and add the appropriate parameters: <br />
<br />
* let everyone connect to you<br />
sshd: ALL<br />
<br />
* restrict it to a certain ip<br />
sshd: 192.168.0.1<br />
<br />
* restrict it to your local LAN network (range 192.168.0.0 to 192.168.0.255)<br />
sshd: 192.168.0.<br />
<br />
* OR restrict for an IP range<br />
sshd: 10.0.0.0/255.255.255.0<br />
<br />
If you do not plan on using the [[SSH|ssh]] daemon, leave this file at the default, (empty), for added security.<br />
<br />
====/etc/locale.gen====<br />
The '''/usr/sbin/locale-gen''' command reads from '''/etc/locale.gen''' to generate specific locales. They can then be used by '''glibc''' and any other locale-aware program or library for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards. The ability to setup a default locale is a great built-in privilege of using a <tt>UNIX</tt>-like operating system.<br />
<br />
By default /etc/locale.gen is an empty file with commented documentation. Once edited, the file remains untouched. '''locale-gen''' runs on every '''glibc''' upgrade, generating all the locales specified in /etc/locale.gen.<br />
<br />
Choose the locale(s) you need (remove the # in front of the lines you want), e.g.:<br />
en_US ISO-8859-1<br />
en_US.UTF-8 <br />
<br />
The installer will now run the locale-gen script, which will generate the locales you specified. You may change your locale in the future by editing /etc/locale.gen and subsequently running 'locale-gen' as root.<br />
<br />
{{Note |'''''If you fail to choose your locale, this will lead to a &quot;The current locale is invalid...&quot; error. This is perhaps the most common mistake by new Arch users, and also leads to the most commonly asked questions on the forum.'''''}}<br />
<br />
====Pacman-Mirror====<br />
Choose a mirror repository for '''pacman'''. <br />
*''archlinux.org is throttled, limiting downloads to 50KB/s''<br />
<br />
====Root password====<br />
Finally, set a root password and make sure that you remember it later. Return to the main menu and continue with installing bootloader.<br />
<br />
===G: Install Bootloader===<br />
Because we have no secondary operating system in our example, we will need a bootloader. [http://www.gnu.org/software/grub/ GNU GRUB] is the recommended bootloader. Alternatively, you may choose [http://lilo.go.dyndns.org/ LILO].<br />
<br />
====GRUB====<br />
The provided '''GRUB''' configuration ('''/boot/grub/menu.lst''') should be sufficient, but verify its contents to ensure accuracy (specifically, ensure that the root (/) partition is specified by UUID on line 3). You may want to alter the resolution of the console by adding a vga=<number> kernel argument corresponding to your desired virtual console resolution. (A table of resolutions and the corresponding numbers is printed in the menu.lst.)<br />
<br />
Example: <br />
title Arch Linux (Main)<br />
root (hd0,0) <br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro vga=773<br />
initrd /boot/kernel26.img<br />
{{Note | ''The linux kernel, 'vmlinuz', is so named because it incorporated '''v'''irtual '''m'''emory capability early in its development. The '''z''' denotes a zipped (compressed) image.''}}<br />
<br />
Explanation:<br />
<br />
Line 1: '''title''': A printed menu selection. &quot;Arch Linux (Main)&quot; will be printed on the screen as a menu selection.<br />
<br />
Line 2: '''root''': '''GRUB''''s root; the drive and partition where the kernel (/boot) resides, according to system BIOS. (More accurately, where GRUB's stage2 file resides). '''NOT necessarily the root''' (/) file system, as they can reside on separate partitions. GRUB's numbering scheme starts at 0, and uses an hd''x,x'' format regardless of IDE or SATA, and enclosed within parentheses. <br />
<br />
The example indicates that /boot is on the first partition of the first drive, according to BIOS, or, (hd0,0).<br />
<br />
Line 3: '''kernel''': This line specifies:<br />
<br />
* The path and filename of the kernel '''''relative to GRUB's root'''''.<br />
In the example, /boot is merely a directory residing on the same partition as / and '''vmlinuz26''' is the kernel filename; '''/boot/vmlinuz26'''. ''If /boot were on a separate partition, the path and filename would be simply '''/vmlinuz26''', being relative to '''GRUB''''s root.'' <br />
<br />
* The root= argument to the kernel statement specifies the partition containing the root (/) directory in the booted system, (more accurately, the partition containing '''/sbin/init'''). <br />
<br />
*An easy way to distinguish the 2 appearances of 'root' in /boot/grub/menu.lst is to remember that the first root statement ''informs GRUB where the kernel resides'', whereas the second root= kernel argument ''tells the kernel where the root filesystem (/) resides''.<br />
<br />
* Kernel options. <br />
<br />
In our example, '''ro''' mounts the filesystem as read only during startup, (usually a safe default; you may wish to change this in case it causes problems booting) and the '''&quot;vga=773&quot;''' argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Line 4: '''initrd''': (For Initial RAM disk) The path and filename of the initial RAM filesystem '''relative to GRUB''''s root. Again, in the example, /boot is merely a directory residing on the same partition as / and '''kernel26.img''' is the initrd filename; '''/boot/kernel26.img'''. ''If /boot were on a separate partition, the path and filename would be simply '''/kernel26.img''', being relative to '''GRUB''''s root.'' <br />
<br />
Install the '''GRUB''' bootloader (to the master boot record, sda in our example).<br />
{{tip|For more details, see the [[GRUB]] wiki page.}}<br />
<br />
===H: Reboot===<br />
That's it; You have configured and installed your Arch Linux base system. Exit the install, and reboot:<br />
# reboot<br />
(Be sure to remove the installer CD)<br />
<br />
==Part II: Configure & Update the New Arch Linux base system==<br />
Your new Arch Linux system will boot up and finish with a login prompt (you may want to change the boot order in your '''BIOS''' back to booting from hard disk).<br />
<br />
'''Congratulations, and welcome to your new Arch Linux base system!'''<br />
<br />
Your new Arch Linux base system is now a functional GNU/Linux environment ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes. <br />
<br />
Login with the root account. We will configure pacman and update the system as root, then add a normal user. <br />
{{Note |Virtual consoles 1-6 are available. You may switch between them with ALT+F1...F6}}<br />
<br />
===Step 1: Configuring the network (if necessary)===<br />
*''This section will assist you in configuring most types of networks, if your network configuration is not working for you.''<br />
<br />
If you properly configured your system, you should have a working network. Try to ping www.google.com to verify this.<br />
# ping -c 3 www.google.com<br />
<br />
''If you have successfully established a network connection, continue with '''[[#Step 2: Update, Sync, and Upgrade the system with pacman|Update, Sync, and Upgrade the system with pacman]]'''.''<br />
<br />
If, after trying to ping www.google.com, an &quot;unknown host&quot; error is received, you may conclude that your network is not properly configured. You may choose to double-check the following files for integrity and proper settings:<br />
<br />
'''/etc/rc.conf''' # Specifically, check your HOSTNAME= and NETWORKING section for typos and errors.<br />
<br />
'''/etc/hosts''' # Double-check your format. (See above.)<br />
<br />
'''/etc/resolv.conf''' # If you are using a static IP. If you are using DHCP, this file will be dynamically created and destroyed by default, but can be changed to your preference. (See [[Network]].)<br />
<br />
{{Tip|Advanced instructions for configuring the network can be found in the [[Network]] article.}}<br />
<br />
====Wired LAN====<br />
<br />
Check your Ethernet with<br />
# ifconfig -a<br />
All interfaces will be listed. You should see an entry for eth0, or perhaps eth1. <br />
*'''Static IP'''<br />
<br />
If required, you can set a new static IP with:<br />
# ifconfig eth0 <ip address> netmask <netmask> up <br />
and the default gateway with<br />
# route add default gw <ip address of the gateway><br />
Verify that /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.com. If everything is working now, adjust /etc/rc.conf as described above for static IP. <br />
*'''DHCP'''<br />
If you have a DHCP server/router in your network try:<br />
# dhcpcd eth0<br />
If this is working, adjust /etc/rc.conf as described above, for dynamic IP.<br />
<br />
====Wireless LAN====<br />
* Ensure the driver has created a usable interface:<br />
# iwconfig<br />
* Bring the interface up with <code>ifconfig <interface> up</code>. e.g.:<br />
# ifconfig wlan0 up<br />
* (Optional) Scan for available access points:<br />
# iwlist wlan0 scan | less<br />
* Specify the id of the wireless network with <code>iwconfig <interface> essid <youressid></code>. Or, if using WEP; <code>iwconfig <interface> essid <youressid> key <yourwepkey></code>, e.g.:<br />
# iwconfig wlan0 essid "linksys" key ABCDEF01234<br />
* Request an IP address with <code>dhcpcd <interface></code>. e.g.:<br />
# dhcpcd wlan0<br />
* Ensure you can route:<br />
$ ping -c 3 www.google.com<br />
Done.<br />
<br />
Detailed setup guide: [[Wireless Setup]]<br />
<br />
====Analog Modem====<br />
To be able to use a Hayes-compatible, external, analog modem, you need to at least have the ppp package installed. Modify the file /etc/ppp/options to suit your needs and according to man pppd. You will need to define a chat script to supply your username and password to the ISP after the initial connection has been established. The manpages for pppd and chat have examples in them that should suffice to get a connection up and running if you're either experienced or stubborn enough. With udev, your serial ports usually are /dev/tts/0 and /dev/tts/1.<br />
Tip: Read [[Dialup without a dialer HOWTO]].<br />
<br />
Instead of fighting a glorious battle with the plain pppd, you may opt to install wvdial or a similar tool to ease the setup process considerably. In case you're using a so-called WinModem, which is basically a PCI plugin card working as an internal analog modem, you should indulge in the vast information found on the [http://www.linmodems.org/ LinModem] homepage.<br />
<br />
====ISDN====<br />
<br />
Setting up ISDN is done in three steps:<br />
# Install and configure hardware<br />
# Install and configure the ISDN utilities<br />
# Add settings for your ISP <br />
<br />
The current Arch stock kernels include the necessary ISDN modules, meaning that you will not need to recompile your kernel unless you're about to use rather odd ISDN hardware. After physically installing your ISDN card in your machine or plugging in your USB ISDN-Box, you can try loading the modules with modprobe. Nearly all passive ISDN PCI cards are handled by the hisax module, which needs two parameters: type and protocol. You must set protocol to '1' if your country uses the 1TR6 standard, '2' if it uses EuroISDN (EDSS1), '3' if you're hooked to a so-called leased-line without D-channel, and '4' for US NI1.<br />
<br />
Details on all those settings and how to set them is included in the kernel documentation, more specifically in the isdn subdirectory, and available online. The type parameter depends on your card; a list of all possible types can be found in the README.HiSax kernel documentation. Choose your card and load the module with the appropriate options like this:<br />
<br />
# modprobe hisax type=18 protocol=2<br />
<br />
This will load the hisax module for my ELSA Quickstep 1000PCI, being used in Germany with the EDSS1 protocol. You should find helpful debugging output in your /var/log/everything.log file, in which you should see your card being prepared for action. Please note that you will probably need to load some USB modules before you can work with an external USB ISDN Adapter.<br />
<br />
Once you have confirmed that your card works with certain settings, you can add the module options to your /etc/modprobe.conf:<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Alternatively, you can add only the options line here, and add hisax to your MODULES array in the rc.conf. It's your choice, really, but this example has the advantage that the module will not be loaded until it's really needed.<br />
<br />
That being done, you should have working, supported hardware. Now you need the basic utilities to actually use it!<br />
<br />
Install the isdn4k-utils package, and read the manpage to isdnctrl; it'll get you started. Further down in the manpage you will find explanations on how to create a configuration file that can be parsed by isdnctrl, as well as some helpful setup examples. Please note that you have to add your SPID to your MSN setting separated by a colon if you use US NI1.<br />
<br />
After you have configured your ISDN card with the isdnctrl utility, you should be able to dial into the machine you specified with the PHONE_OUT parameter, but fail the username and password authentication. To make this work add your username and password to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets as if you were configuring a normal analogous PPP link, depending on which protocol your ISP uses for authentication. If in doubt, put your data into both files.<br />
<br />
If you set up everything correctly, you should now be able to establish a dial-up connection with<br />
# isdnctrl dial ippp0<br />
as root. If you have any problems, remember to check the logfiles!<br />
<br />
====DSL (PPPoE)====<br />
<br />
These instructions are relevant to you only if your PC itself is supposed to manage the connection to your ISP. You do not need to do anything but define a correct default gateway if you are using a separate router of some sort to do the grunt work.<br />
<br />
Before you can use your DSL online connection, you will have to physically install the network card that is supposed to be connected to the DSL-Modem into your computer. After adding your newly installed network card to the modules.conf/modprobe.conf or the MODULES array, you should install the rp-pppoe package and run the pppoe-setup script to configure your connection. After you have entered all the data, you can connect and disconnect your line with<br />
<br />
# /etc/rc.d/adsl start<br />
<br />
and<br />
<br />
# /etc/rc.d/adsl stop<br />
<br />
respectively. The setup usually is rather easy and straightforward, but feel free to read the manpages for hints. If you want to automatically 'dial in' at boot, add adsl to your DAEMONS array, and put a ! before the network entry, since the network is handled by adsl now.<br />
<br />
===Step 2: Update, Sync, and Upgrade the system with [[pacman]]===<br />
Now we will update the system using [[pacman]]. <br />
<br />
====What is pacman ?====<br />
[[Pacman]] is the '''pac'''kage '''man'''ager of Arch Linux. Pacman is written in ''C'' and is designed from the ground up to be lightweight with a very modest memory footprint, fast, simple, and versatile. It manages your entire package system and handles installation, removal, package downgrade (through cache), custom compiled package handling, automatic dependency resolution, remote and local searches and much more. Pacman's output is streamlined, very readable and provides ETA for each package download. Arch uses the .tar.gz package format, which further enhances pacman's speed; Gzipped tarballs, though slightly larger, are decompressed many times faster than their Bzipped counterparts, and are therefore installed much more expediently. <br />
<br />
We will use pacman to download software packages from remote repositories and install them onto your system.<br />
<br />
Pacman is the most important tool in your Arch Linux toolbox for building the base system into whatsoever you please.<br />
<br />
====Package Repositories and /etc/pacman.conf====<br />
Arch currently offers the following 4 repositories readily accessible through pacman:<br />
<br />
'''[core]'''<br />
<br />
The simple principle behind [core] is to provide only one of each necessary tool for a base Arch Linux system; The GNU toolchain, the Linux kernel, one editor, one command line browser, etc. (There are a few exceptions to this. For instance, both vi and nano are provided, allowing the user to choose one or both.) It contains all the packages that MUST be in perfect working order to ensure the system remains in a usable state. These are the absolute system-critical packages. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible <br />
*''The Core installation media simply contains an installer script, and a snapshot of the core repository at the time of release.''<br />
<br />
'''[extra]'''<br />
<br />
The [extra] repository contains all Arch packages that are not themselves necessary for a base Arch system, but contribute to a more full-featured environment. '''X''', KDE, and Apache, for instance, can be found here. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible<br />
'''[testing]'''<br />
<br />
The [testing] repository contains packages that are candidates for the [core] or [extra] repositories. New packages go into [testing] if:<br />
<br />
<nowiki>*</nowiki> they are expected to break something on update and need to be tested first.<br />
<br />
<nowiki>*</nowiki> they require other packages to be rebuilt. In this case, all packages that need to be rebuilt are put into [testing] first and when all rebuilds are done, they are moved back to the other repositories. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible<br />
{{Note|[testing] is the only repository that can have name collisions with any of the other official repositories. Therefore, if enabled, [testing] must be the first repo listed in <code>pacman.conf</code>.}}<br />
<br />
{{Warning|Only experienced users should use [testing].}}<br />
<br />
'''[community]'''<br />
<br />
The [community] repository is maintained by the ''Trusted Users (TUs)'' and is simply the binary branch of the ''Arch User Repository ([[AUR]])''. It contains binary packages which originated as PKGBUILDs from ''AUR'' [unsupported] that have acquired enough votes and were adopted by a ''TU''. Like all repos listed above, [community] may be readily accessed by pacman.<br />
* TU maintained<br />
* All binary packages<br />
* pacman accessible<br />
<br />
'''AUR (unsupported)'''<br />
<br />
The '''[[AUR]]''' also contains the '''unsupported''' branch, which cannot be accessed directly by pacman*. '''AUR''' [unsupported] does not contain binary packages. Rather, it provides more than sixteen thousand PKGBUILD scripts for building packages from source, that may be unavailable through the other repos. When an AUR unsupported package acquires enough popular votes, it may be moved to the AUR [community] binary repo, if a TU is willing to adopt and maintain it there.<br />
* TU maintained<br />
* All PKGBUILD bash build scripts<br />
* '''''Not''''' pacman accessible by default<br />
<br />
<nowiki>*</nowiki> pacman wrappers ('''''[[AUR Helpers]]''''') can help you seamlessly access AUR.<br />
<br />
'''/etc/pacman.conf'''<br />
<br />
pacman will attempt to read /etc/pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package [[Official Repositories|repository]] that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
<br />
Note that the defaults should work, so modifying at this point may be unnecessary, but verification is always recommended. Further info available in the [[Mirrors]] article.<br />
# nano /etc/pacman.conf<br />
Example:<br />
#<br />
# /etc/pacman.conf<br />
#<br />
# See the pacman.conf(5) manpage for option and repository directives<br />
<br />
#<br />
# GENERAL OPTIONS<br />
#<br />
[options]<br />
# The following paths are commented out with their default values listed.<br />
# If you wish to use different paths, uncomment and update the paths.<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
HoldPkg = pacman glibc<br />
# If upgrades are available for these packages they will be asked for first<br />
SyncFirst = pacman<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#XferCommand = /usr/bin/curl %u > %o<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
<br />
# Misc options (all disabled by default)<br />
#NoPassiveFtp<br />
#UseSyslog<br />
#ShowSize<br />
#UseDelta<br />
#TotalDownload<br />
#<br />
# REPOSITORIES<br />
# - can be defined here or included from another file<br />
# - pacman will search repositories in the order defined here<br />
# - local/custom mirrors can be added here or in separate files<br />
# - repositories listed first will take precedence when packages<br />
# have identical names, regardless of version number<br />
# - URLs will have $repo replaced by the name of the current repo<br />
#<br />
# Repository entries are of the format:<br />
# [repo-name]<br />
# Server = ServerName<br />
# Include = IncludePath<br />
#<br />
# The header [repo-name] is crucial - it must be present and<br />
# uncommented to enable the repo.<br />
# <br />
<br />
# Testing is disabled by default. To enable, uncomment the following<br />
# two lines. You can add preferred servers immediately after the header,<br />
# and they will be used before the default mirrors.<br />
#[testing]<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist <br />
<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#Server = file:///home/custompkgs<br />
<br />
Enable all desired repositories (remove the # in front of the 'Include =' and '[repository]' lines).<br />
<br />
<br />
*'''''When choosing repos, be sure to uncomment both the repository header lines in [brackets] as well as the 'Include =' lines. Failure to do so will result in the selected repository being omitted! This is a very common error.'' '''<br />
<br />
====/etc/pacman.d/mirrorlist ====<br />
Defines pacman repo mirrors and priorities.<br />
<br />
'''Build a mirrorlist using the rankmirrors script'''<br />
<br />
<code>/usr/bin/rankmirrors</code> is a python script which will attempt to detect the mirrors which are closest to the installation machine based on the mirrors specified in /etc/pacman.d/mirrorlist. Faster mirrors will dramatically improve pacman performance, and the overall Arch Linux experience. This script may be run periodically, especially if the chosen mirrors provide inconsistent throughput and/or updates.<br />
<br />
First, use pacman to install python:<br />
# pacman -S python <br />
<br />
*'''''If you get an error at this step, use the command "nano /etc/pacman.d/mirrorlist" and uncomment a server that suits you.'' ''<br />
<br />
'''cd''' to the /etc/pacman.d/ directory:<br />
# cd /etc/pacman.d<br />
Backup the existing /etc/pacman.d/mirrorlist:<br />
# cp mirrorlist mirrorlist.backup<br />
Edit mirrorlist.backup and uncomment all mirrors on the same continent or within geographical proximity to test with rankmirrors.<br />
# nano mirrorlist.backup<br />
Run the script against the mirrorlist.backup with the -n switch and redirect output to a new /etc/pacman.d/mirrorlist file:<br />
# rankmirrors -n 6 mirrorlist.backup > mirrorlist<br />
'''-n 6''': rank the 6 fastest mirrors<br />
<br />
'''Force pacman to refresh the package lists'''<br />
<br />
After creating/editing /etc/pacman.d/mirrorlist, (manually or by <code>/usr/bin/rankmirrors</code>) issue the following command:<br />
# pacman -Syy<br />
Passing two --refresh or -y flags forces pacman to refresh all package lists even if they are considered to be up to date. Issuing pacman -Syy ''whenever a mirror is changed'', is good practice and will avoid possible headaches.<br />
<br />
====Mirrorcheck for up-to-date packages====<br />
Some of the official mirrors may contain packages that are out-of-date. [http://users.archlinux.de/~gerbra/mirrorcheck.html ArchLinux Mirrorcheck] reports various aspects about the mirrors such as, those experiencing network problems, data collection problems, reports the last time they have been synced, etc.<br />
<br />
One may wish to manually inspect the mirrors in the /etc/pacman.d/mirrorlist insuring that it only contains up-to-date mirrors if having the latest package versions is a priority.<br />
<br />
====Ignoring packages====<br />
After executing the command &quot;pacman -Syu&quot;, the entire system will be updated. It is possible to prevent a package from being upgraded. A typical scenario would be a package for which an upgrade may prove problematic for the system. In this case, there are two options; indicate the package(s) to skip in the pacman command line using the --ignore switch (do pacman -S --help for details) or permanently indicate the package(s) to skip in the /etc/pacman.conf file in the IgnorePkg array. List each package, with one intervening space :<br />
IgnorePkg = wine <br />
The typical way to use Arch is to use pacman to install all packages unless there is no package available, in which case [[ABS]] may be used. Many user-contributed package build scripts are also available in the [[AUR]]. <br />
<br />
The power user is expected to keep the system up to date with pacman -Syu, rather than selectively upgrading packages. You may diverge from this typical usage as you wish; just be warned that there is a greater chance that things will not work as intended and that it could break your system. The majority of complaints happen when selective upgrading, unusual compilation or improper software installation is performed. Use of '''IgnorePkg''' in /etc/pacman.conf is therefore discouraged, and should only be used sparingly, if you know what you are doing.<br />
<br />
====Ignoring Configuration Files====<br />
In the same vein, you can also &quot;protect&quot; your configuration/system files from being overwritten during &quot;pacman -Su&quot; using the following option in your /etc/pacman.conf<br />
<br />
NoUpgrade = etc/lilo.conf boot/grub/menu.lst<br />
<br />
====Get familiar with pacman====<br />
pacman is the Arch user's best friend. It is highly recommended to study and learn how to use the pacman(8) tool. Try:<br />
$ man pacman<br />
<br />
For more information,please look up the [[pacman]] wiki entries at your leisure.<br />
<br />
====Powerpill, a pacman wrapper script====<br />
Before you continue, consider installing Xyne's powerpill (now in [community]) which is a pacman wrapper script that speeds up package retrieval by using aria2c (an external download helper) for concurrent/segmented downloads. In other words, powerpill pulls packages in parallel effectively speeding up your downloads. This is particularly advantageous on new installs when pulling down hundreds of megs of packages.<br />
<br />
# pacman -S powerpill<br />
<br />
Treat powerpill as pacman as you consider installations, for example, the following will update your system:<br />
<br />
# powerpill -Syu<br />
<br />
See the [[Powerpill]] wiki article for more.<br />
<br />
===Step 3: Update System===<br />
You are now ready to upgrade your entire system. Before you do, read through the [http://www.archlinux.org/news/ news] (and optionally the [http://archlinux.org/pipermail/arch-announce/ announce mailing list]). Often the developers will provide important information about required configurations and modifications for known issues. Consulting these pages before any upgrade is good practice. <br />
<br />
Sync, refresh, and upgrade your entire new system with:<br />
# pacman -Syu<br />
or:<br />
# pacman --sync --refresh --sysupgrade<br />
<br />
pacman will now download a fresh copy of the master package list from the server(s) defined in pacman.conf(5) and perform all available upgrades. (You may be prompted to upgrade pacman itself at this point. If so, say yes, and then reissue the pacman -Syu command when finished.) <br />
<br />
Reboot if a kernel upgrade has occurred. <br />
<br />
{{Note|Occasionally, configuration changes may take place requiring user action during an update; read pacman's output for any pertinent information.}}<br />
<br />
Pacman output is saved in /var/log/pacman.log.<br />
<br />
See [[Package_Management_FAQs|Package Management FAQs]] for answers to frequently asked questions regarding updating and managing your packages.<br />
<br />
=====The Arch rolling release model=====<br />
Keep in mind that Arch is a '''rolling release''' distribution. This means there is never a reason to reinstall or perform elaborate system rebuilds to upgrade to the newest version. Simply issuing '''pacman -Syu''' periodically keeps your entire system up-to-date and on the bleeding edge. At the end of this upgrade, your system is completely current. '''Reboot''' if a kernel upgrade has occurred.<br />
=====Network Time Protocol=====<br />
You may wish to set the system time now using OpenNTPD to sync the local clock to remote NTP servers. OpenNTPD may also be added to the DAEMONS= array in /etc/rc.conf to provide this service at each boot. (See the [[Network Time Protocol]] article.)<br />
<br />
===Step 4: Add a user and setup groups===<br />
<tt>UNIX</tt> is a multi-user environment. You should not do your everyday work using the root account. It is more than poor practice; it is dangerous. Root is for administrative tasks. Instead, add a normal, non-root user account using the <code>/usr/sbin/useradd</code> program:<br />
# useradd -m -G [groups] -s [login_shell] [username] <br />
* '''-m''' Creates user home directory as /home/'''username'''. Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories shall contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. (To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch.) If there is a conflict between ''user'' (under /home/username) and ''global'' configuration files, (usually under /etc/) the settings in the ''user'' file will prevail. Dotfiles likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside.<br />
* '''-G''' A list of supplementary groups which the user is also a member of. ''Each group is separated from the next by a comma, with no intervening spaces''. The default is for the user to belong only to the initial group (users). <br />
* '''-s''' The path and filename of the user´s default login shell.<br />
Useful groups for your non-root user include:<br />
*'''audio''' - for tasks involving sound card and related software<br />
*'''floppy''' - for access to a floppy if applicable<br />
*'''lp''' - for managing printing tasks<br />
*'''optical''' - for managing tasks pertaining to the optical drive(s)<br />
*'''storage''' - for managing storage devices<br />
*'''video''' - for video tasks and hardware acceleration<br />
*'''wheel''' - for using sudo<br />
*'''power''' - used w/ power options (e.g.: shutdown with power button) <br />
A typical desktop system example, adding a user named &quot;archie&quot; specifying bash as the login shell:<br />
# useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash archie<br />
Next, add a password for your new user using <code>/usr/bin/passwd</code>.<br />
<br />
An example for our user, 'archie':<br />
# passwd archie<br />
(You will be prompted to provide the new <tt>UNIX</tt> password.)<br />
<br />
Your new non-root user has now been created, complete with a home directory and a login password.<br />
<br />
'''Alternative method, using <code>/usr/sbin/adduser</code>:'''<br />
<br />
Alternatively, you may use <code>adduser</code>, an interactive user adding program which will prompt you for the above data ''(recommended for beginners)'':<br />
# adduser<br />
'''Deleting the user account:'''<br />
<br />
In the event of error, or if you wish to delete this user account in favor of a different name or for any other reason, use <code>/usr/sbin/userdel</code>:<br />
# userdel -r [username]<br />
* '''-r ''' Files in the user´s home directory will be removed along with the home directory itself and the user´s mail spool.<br />
<br />
If you want to change the name of your user or any existing user, see the [[Change username]] page of the Arch wiki and/or the [[Groups]] and [[User Management]] articles for further information. You may also check the man pages for <code>usermod(8)</code> and <code>gpasswd(8)</code>.<br />
<br />
===Step 5: Install and setup Sudo (Optional)===<br />
There has been a recent update to the vi packages since the latest installation media (2009.08) was created. Therefore, before installing sudo, use the following command to remove the incompatible files:<br />
# rm /usr/bin/{view,rview}<br />
Install Sudo and vim:<br />
# pacman -S sudo vim<br />
To add a user as a sudo user (a &quot;sudoer&quot;), the visudo command must be run as root. If you do not know how to use vi, you may set the EDITOR environment variable to the editor of your choice before running visudo. e.g.:<br />
# EDITOR=nano visudo<br />
If you are comfortable using vi, issue the visudo command without the EDITOR=nano variable:<br />
# visudo<br />
This will open the file /etc/sudoers in a special session of vi. visudo copies the file to be edited to a temporary file, edits it with an editor, (vi by default), and subsequently runs a sanity check. If it passes, the temporary file overwrites the original with the correct permissions. <br />
<br />
{{Warning|Do not edit /etc/sudoers directly with an editor; Errors in syntax can cause annoyances (like rendering the root account unusable). You must use the ''visudo'' command to edit /etc/sudoers.}}<br />
<br />
To give the user full root privileges when he/she precedes a command with &quot;sudo&quot;, add the following line:<br />
USER_NAME ALL=(ALL) ALL<br />
where USER_NAME is the username of the individual.<br />
<br />
For more information, such as sudoer <TAB> completion, see [[Sudo]]<br />
<br />
==Part III: Install X and configure ALSA==<br />
<br />
<br />
===Step 1: Configure sound with alsamixer===<br />
The Advanced Linux Sound Architecture (known by the acronym '''ALSA''') is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing device drivers for sound cards. Besides the sound device drivers, '''ALSA''' also bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers.<br />
{{Note| Alsa is included in the Arch mainline kernel and udev will automatically probe your hardware at boot, loading the corresponding kernel module for your audio card. Therefore, your sound should already be working, but upstream sources mute all channels by default.}}<br />
{{Note| OSS4.1 has been released under a free license and is generally considered a significant improvement over older OSS versions. If you have issues with ALSA, or simply wish to explore another option, you may choose OSS4.1 instead. Instructions can be found in [[OSS]]}} <br />
<br />
The alsa-utils package contains the alsamixer userspace tool, which allows configuration of the sound device from the console or terminal.<br />
<br />
By default the upstream kernel sources ship with snd_pcsp, the alsa pc speaker module. snd_pcsp is usually loaded before your &quot;actual&quot; sound card module. In most cases, it will be more convenient if this module is loaded last, as it will allow alsamixer to correctly control the desired sound card.<br />
<br />
To have snd_pcsp load last, add the following to /etc/modprobe.d/modprobe.conf:<br />
options snd-pcsp index=2<br />
<br />
Alternatively, if you do not want snd_pcsp to load at all, blacklist it by adding the following to /etc/rc.conf:<br />
MODULES=(... !snd_pcsp)<br />
<br />
{{Note | You will need to unload all your sound modules and reload them for the changes to take effect. It might be easier to reboot. Your choice. }}<br />
<br />
Install the alsa-utils package:<br />
# pacman -S alsa-utils<br />
Also, you may want to install the alsa-oss package, which wraps applications written for [[OSS]] in a compatibility library, allowing them to work with [[ALSA]]. To install the alsa-oss package:<br />
# pacman -S alsa-oss <br />
Did you add your normal user to the audio group? If not, use <code>/usr/bin/gpasswd</code>. As root do:<br />
# gpasswd -a ''yourusername'' audio<br />
As '''''normal, non-root''''' user, invoke <code>/usr/bin/alsamixer</code>:<br />
# su - ''yourusername'' <br />
'''$''' alsamixer<br />
Unmute the Master and PCM channels by scrolling to them with cursor left/right and pressing '''M'''. Increase the volume levels with the cursor-up key. (70-90 Should be a safe range.) Some machines, (like the Thinkpad T61), have a '''Speaker''' channel which must be unmuted and adjusted as well. Leave alsamixer by pressing ESC. <br />
==== Sound test ====<br />
Ensure your speakers are properly connected, and test your sound configuration as normal user using <code>/usr/bin/aplay</code>:<br />
$ aplay /usr/share/sounds/alsa/Front_Center.wav<br />
You should hear a very eloquent woman say, &quot;Front, center.&quot;<br />
==== Saving the Sound Settings ====<br />
Exit your normal user shell and run <code>/usr/sbin/alsactl</code> as root:<br />
$ exit<br />
# alsactl store<br />
This will create the file '/etc/asound.state', saving the alsamixer settings. <br />
<br />
Also, add the alsa ''daemon'' to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings at boot.<br />
# nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond '''alsa''')<br />
''Note that the alsa daemon merely restores your volume mixer levels on boot up by reading /etc/asound.state. It is separate from the alsa audio library (and kernel level API).''<br />
<br />
Expanded information available in the [[ALSA]] wiki entry.<br />
<br />
===Step 2: Install X===<br />
The '''X''' Window System version 11 (commonly '''X11''', or just simply '''X''') is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on <tt>UNIX</tt>-like operating systems.<br />
<br />
'''X''' provides the basic framework, or primitives, for building GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard. '''X''' does not mandate the user interface — individual client programs handle this. <br />
<br />
'''X''' is so named because it was preceded by the '''W''' Window System, originally developed at Stanford University. <br />
<br />
====A: The <code>X-Files</code>====<br />
Now we will install the base '''[[Xorg]]''' packages using pacman. This is the first step in building a GUI.<br />
If you plan on using an '''open-source''' video driver, and need 3d acceleration, install the libgl library before installing Xorg:<br />
# pacman -S libgl<br />
''(Proprietary video drivers provide their own gl library implementations.)''<br />
<br />
Install the base packages:<br />
# pacman -S xorg<br />
The 3d utilities glxgears and glxinfo are included in the '''mesa''' package:<br />
# pacman -S mesa<br />
<br />
====B: Install Video Driver Package====<br />
Now we have the base packages we need for running the '''X''' Server. You should add the driver for your graphics card now (e.g. xf86-video-<name>). The easiest way to configure X.org is by installing the correct driver packages first, and then generating /etc/X11/xorg.conf using an autoconfiguration script, like Xorg -configure.<br />
<br />
You will need knowledge of which video chipset your machine has. If you do not know, use the <code>/usr/sbin/lspci</code> program:<br />
# lspci | grep VGA<br />
<br />
If you need a list of all '''open-source''' video drivers, do: <br />
# pacman -Ss xf86-video | less<br />
Here is a list of '''open source''' drivers, and the corresponding video chipsets.<br />
*'''xf86-video-apm''' &mdash; Alliance ProMotion video driver<br />
*'''xf86-video-ark''' &mdash; ark video driver<br />
*'''xf86-video-ati''' &mdash; ATI(AMD) radeon video driver<br />
**'''xf86-video-r128''' &mdash; ATI(AMD) video driver for X.org ati Rage128 video<br />
**'''xf86-video-mach64''' &mdash; ATI(AMD) video driver for X.org mach64 video<br />
**'''xf86-video-radeonhd''' &mdash; ATI(AMD) radeonhd video driver<br />
*'''xf86-video-chips''' &mdash; Chips and Technologies video driver<br />
*'''xf86-video-cirrus''' &mdash; Cirrus Logic video driver<br />
*'''xf86-video-dummy''' &mdash; dummy video driver<br />
*'''xf86-video-fbdev''' &mdash; framebuffer video driver<br />
*'''xf86-video-glint''' &mdash; GLINT/Permedia video driver<br />
*'''xf86-video-i128''' &mdash; Number 0 i128 video driver<br />
*'''xf86-video-i740''' &mdash; Intel i740 video driver<br />
*'''xf86-video-i810''' &mdash; Intel i810/i830/i9xx video drivers (deprecated - use -intel)<br />
*'''xf86-video-intel''' &mdash; Newer Version of Intel i810/i830/i9xx video drivers<br />
*'''xf86-video-intel-legacy''' &mdash; Legacy-driver for older intel cards as 82865G (xf86-video-intel currently crashes with older cards)<br />
*'''xf86-video-imstt''' &mdash; Integrated Micro Solutions Twin Turbo video driver<br />
*'''xf86-video-mga''' &mdash; mga video driver (Matrox Graphics Adapter)<br />
*'''xf86-video-neomagic''' &mdash; neomagic video driver<br />
*'''xf86-video-nv''' &mdash; Nvidia nv video driver<br />
*'''xf86-video-nouveau''' &mdash; Open Source 3D acceleration driver for nVidia cards (experimental), check: [http://nouveau.freedesktop.org/wiki/] for Current Status<br />
*'''xf86-video-openchrome''' &mdash; VIA/S3G UniChrome, UniChrome Pro and Chrome9 video driver<br />
*'''xf86-video-rendition''' &mdash; Rendition video driver<br />
*'''xf86-video-s3''' &mdash; S3 video driver<br />
*'''xf86-video-s3virge''' &mdash; S3 Virge video driver<br />
*'''xf86-video-savage''' &mdash; savage video driver<br />
*'''xf86-video-siliconmotion''' &mdash; siliconmotion video driver<br />
*'''xf86-video-sis''' &mdash; SiS video driver<br />
*'''xf86-video-sisusb''' &mdash; SiS USB video driver<br />
*'''xf86-video-tdfx''' &mdash; tdfx video driver<br />
*'''xf86-video-trident''' &mdash; Trident video driver<br />
*'''xf86-video-tseng''' &mdash; tseng video driver<br />
*'''xf86-video-unichrome''' &mdash; VIA S3 Unichrome video drivers<br />
*'''xf86-video-v4l''' &mdash; v4l video driver<br />
*'''xf86-video-vesa''' &mdash; vesa video driver<br />
*'''xf86-video-vga''' &mdash; VGA 16 color video driver<br />
*'''xf86-video-vmware''' &mdash; vmware video driver<br />
*'''xf86-video-voodoo''' &mdash; voodoo video driver<br />
<br />
'''''Note''''': The '''vesa''' driver is the most generic, and should work with almost any modern video chipset. If you cannot find a suitable driver for your video chipset, vesa ''should'' work.<br />
<br />
Use pacman to install the appropriate video driver for your video card/onboard video. e.g.:<br />
# pacman -S xf86-video-savage<br />
(for the Savage driver.)<br />
<br />
*If you have an NVIDIA or ATI graphics card you may wish to install the proprietary NVIDIA or ATI drivers. '''Installing proprietary video drivers is covered below.'''.<br />
*If you do not want to install the proprietary drivers or do not have an NVIDIA or ATI graphics card, you should skip down to '''[[#Step 3: Configure X|Step 3: Configure X]]'''.<br />
<br />
-----<br />
<br />
<br />
=====NVIDIA Graphics Cards=====<br />
The NVIDIA proprietary drivers are generally considered to be of good quality, and offer 3D performance, whereas the open source '''nv''' driver offers only 2d support at this time. <br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has several different driver packages that each match a certain subset of Cards: <br />
<br />
'''1. nvidia-96xx''' ''slightly newer cards up to the GF 4.''<br />
<br />
'''2. nvidia-173xx''' ''Geforce FX series cards''<br />
<br />
'''3. nvidia''' ''newest GPUs after the GF FX''<br />
<br />
{{Note| Nvidia-71xx series proprietary drivers, which are required by extremely old cards like TNT and TNT2, have been removed because they do not work with the new Xorg that Arch makes use of and nvidia has discontinued support for such. You should use the xf86-video-nv or xf86-video-vesa drivers instead.}}<br />
<br />
Consult the NVIDIA website to see which one is for you. The difference is only for the installation; Configuration works the same with every driver.<br />
<br />
Select and install the appropriate NVIDIA driver ''for your card'', e.g.: <br />
# pacman -S nvidia-96xx<br />
<br />
The NVIDIA package has a utility for updating your existing /etc/X11/xorg.conf for use with the NVIDIA driver:<br />
# nvidia-xconfig<br />
<br />
It also has several options which will further specify the contents and options of the xorg.conf file.<br />
For example,<br />
# nvidia-xconfig --composite --add-argb-glx-visuals<br />
<br />
For more detailed information, see nvidia-xconfig(1).<br />
<br />
Some useful tweaking options in the device section are (beware that these may not work on your system):<br />
Option &quot;RenderAccel&quot; &quot;true&quot;<br />
Option &quot;NoLogo&quot; &quot;true&quot;<br />
Option &quot;AGPFastWrite&quot; &quot;true&quot;<br />
Option &quot;EnablePageFlip&quot; &quot;true&quot;<br />
Make sure all instances of DRI are commented out:<br />
# Load &quot;dri&quot;<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal sync, vertical refresh, and resolutions are acceptable.<br />
<br />
Update kernel module dependencies using <code>/sbin/depmod</code>:<br />
# depmod -a<br />
(A reboot may be necessary.)<br />
{{Tip|Advanced instructions for NVIDIA configuration can be found in the [[NVIDIA]] article.}}<br />
<br />
You may now continue with '''[[#Step 3: Configure X|Step 3: Configure X]]''' to familiarize yourself further, or continue the installation process with '''[[#C: Test X|Test X]]'''.<br />
<br />
=====ATI Graphics Cards=====<br />
ATI owners have multiple options for drivers. <br />
* The open source '''''radeon''''' driver provided by the '''xf86-video-ati''' package. <br />
** This is the original, reverse-engineered open source driver which fully supports Radeon chipsets up to X1950 (latest R500 chipsets). Cards up to the 9200 series are fully supported, stable, and provide full 2D and 3D acceleration. Cards from 9500 to X1950 feature full 2D acceleration, and stable 3D acceleration, but lack certain features provided by the proprietary driver, (for example, powersaving is still in a testing phase). Cards from HD2xxx (R6xx) to the newest are supported by xf86-video-ati, but only offer 2d support at this time.<br />
* The open source '''''radeonhd''''' driver provided by the '''xf86-video-radeonhd''' package.<br />
** This driver supports ATI R500 chipsets (Radeon X1000 series) and newer. It is written by Novell with specifications provided to the public by AMD. It supports RandR 1.2 and development is currently very active. Therefore, functionality may be inconsistent across the spectrum of cards supported. (Some users report excellent performance and reliability while others experience trouble.) It also supports HDMI, with sound.<br />
* The proprietary '''''fglrx''''' driver provided by the Catalyst package located in the AUR. The proprietary driver is covered below.<br />
The open-source drivers will usually suit most needs and are generally less problematic.<br />
<br />
Install the '''''radeon''''' ATI Driver with<br />
# pacman -S xf86-video-ati libgl ati-dri<br />
Install the '''''radeonhd''''' ATi Driver with<br />
# pacman -S xf86-video-radeonhd libgl ati-dri<br />
<br />
The proprietary ATI driver '''Catalyst''' was once a precompiled package offered by Arch in the <code>extra</code> repository, but as of March 2009, official support has been dropped because of dissatisfaction with the quality and speed of development of the proprietary driver.The catalyst driver is now available in [http://aur.archlinux.org/packages.php?ID=22899 AUR]. Installation information for Catalyst driver is available [[ATI#Proprietary_ATI_Catalyst_driver | here]]<br />
<br />
{{Warning| The proprietary ATI driver supports only R600 and newer devices (that means, HD2xxx and newer). Older series cards (X1xxx and older) are not supported.}}<br />
<br />
{{Tip|Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki article]].}}<br />
<br />
====C: Install Input Driver Packages====<br />
The latest X requires you to install drivers for your input devices, keyboard and mouse included. For a complete list of available input drivers, invoke a pacman search:<br />
# pacman -Ss xf86-input | less<br />
<br />
For most users, xf86-input-keyboard and xf86-input-mouse should be sufficient for a basic setup. Use pacman to install your desired drivers for your input devices. e.g.:<br />
# pacman -S xf86-input-keyboard xf86-input-mouse<br />
<br />
===Step 3: Configure X===<br />
<br />
====A: The xorg.conf file====<br />
<br />
/etc/X11/xorg.conf is the main configuration file for your '''X''' Window System, the foundation of your '''G'''raphical '''U'''ser '''I'''nterface. It is a plain text file ordered into sections and subsections. Important sections are ''Files, InputDevice, Module, Monitor, Modes, Screen, Device, and ServerLayout''. Sections can appear in any order and there may be more than one section of each kind, for example, if you have more than one monitor, or if your laptop has a trackpoint as well as a mouse. <br />
<br />
Since X11R7.2 the X.Org X Server features autoconfiguration. Therefore, it can function without an xorg.conf file in many cases. ''If'' the autoconfiguration ''works satisfactorily'' and you do not need to specify special features such as aiglx, compositing and so forth, you may forgo creating an xorg.conf file and continue below with [[#B: Input hotplugging| Input hotplugging]].<br />
<br />
=====Standard xorg.conf generation=====<br />
<br />
Advanced users may wish to manually create their own xorg.conf file. You may also use the <code>/usr/bin/Xorg</code> program with the -configure option to generate a basic config file; As root, do:<br />
# Xorg -configure<br />
This will create a config file at /root/xorg.conf.new <br />
<br />
Copy the file to <code>/etc/X11/</code>:<br />
# cp /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
=====Alternative xorg.conf generation=====<br />
<br />
Newer versions of the Xorg Server(>1.6) do not include the /usr/bin/xorgconfig or /usr/bin/xorgcfg scripts. If you run into problems generating/using an xorg.conf file, you might want to consider using this guide.<br />
<br />
See the [[Xorg#Without_xorg.conf|article on X.Org, section "Without xorg.conf"]].<br />
<br />
* Note that if you are in possession of a properly configured xorg.conf under another distribution and with the same Xorg version, you may easily copy it over to your current Arch system's <code>/etc/X11/</code> directory.<br />
<br />
<br />
{{Tip | For Intel graphics card, specific configuration may be necessary to get proper 2D or 3D performance, as stated in the [[Intel]] wiki article.}}<br />
<br />
====B: Input hotplugging====<br />
<br />
[[Xorg input hotplugging|Input hotplugging]] is supported since the 1.4 version of the X.Org X Server and enabled by default. When enabled, X will utilize hal to allow for the hotplugging and removal of human interface devices without having to restart X. <br />
<br />
{{Warning | Starting the '''X''' server using input hotplugging without the '''HAL''' daemon installed and running may result in the inability to use the mouse and/or keyboard, and the '''X''' server appearing to freeze as a result .}}<br />
<br />
You must decide whether you will use input hotplugging (enabled by default), or disable it. Input hotplugging is convenient for many users, especially those with mobile machines like laptops and netbooks. Other users may wish to disable it in favor of manual or more static device configuration within /etc/xorg.conf.<br />
<br />
{{Tip | See the article on [[Xorg input hotplugging]] for full details.}}<br />
<br />
=====Using input hotplugging=====<br />
<br />
Install HAL, dbus and the evdev input driver:<br />
# pacman -S hal dbus xf86-input-evdev<br />
<br />
Set the keyboard layout (if you do not use a standard US keyboard)<br />
# cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/<br />
# nano /etc/hal/fdi/policy/10-keymap.fdi<br />
Edit the &quot;input.xkb.layout&quot; key and possibly the &quot;input.xkb.variant&quot; key in this file.<br />
<br />
Laptop users will also need the synaptics package to allow X to configure the touchpad:<br />
# pacman -S xf86-input-synaptics<br />
<br />
{{Tip|For instructions on fine tuning or troubleshooting touchpad settings, see the [[Touchpad Synaptics]] article.}}<br />
<br />
<br />
'''The HAL daemon'''<br />
<br />
The hal daemon '''must''' be started '''before''' the '''X''' server:<br />
# /etc/rc.d/hal start<br />
Add the hal daemon to the DAEMONS array in /etc/rc.conf to start it at every boot.<br />
<br />
=====Disable input hotplugging=====<br />
Disabling input hotplugging will skip devices detected by hal and will use the keyboard/mouse configuration from xorg.conf:<br />
# nano /etc/X11/xorg.conf<br />
add the following:<br />
Section &quot;ServerFlags&quot;<br />
Option &quot;AutoAddDevices&quot; &quot;False&quot;<br />
EndSection<br />
<br />
======Set the keyboard layout if not using a standard US keyboard======<br />
Add option lines in the &quot;InputDevice&quot; section of the /etc/X11/xorg.conf file specifying the keyboard layout and variant:<br />
Option &quot;XkbLayout&quot; &quot;be&quot;<br />
Option &quot;XkbVariant&quot; &quot;&quot;<br />
<br />
Alternative method using the setxkbmap command:<br />
# setxkbmap pl <br />
(with the proper keyboard layout instead of <code>pl</code> of course) should switch your keyboard layout in x.<br />
To make this permanent, add this command to <code>/home/<youruser>/.xinitrc</code> before starting the window manager (before command like <code>exec startxfce4</code>).<br />
<br />
==== C: Test X ====<br />
<br />
First, read the warning about input hotplugging in the previous section. At this point, you should have xorg installed, with a suitable video driver and an /etc/X11/xorg.conf configuration file. If you want to test your configuration quickly, to ensure your ability to successfully start '''X''' from the command line before installing a complete desktop environment, you can do so by configuring ~/.xinitrc to invoke '''Xterm'''. Xterm is a very simple terminal emulator which runs in the '''X '''Server environment; it is installed as part of the base xorg packages.<br />
<br />
===== Prepare for the test by configuring ~/.xinitrc=====<br />
<br />
One of the main functions of this file is to dictate what '''X''' Window client is invoked with the '''/usr/bin/startx''' and/or '''/usr/bin/xinit''' program ''on a per-user basis''. (The '''startx''' script is merely a front end to the more versatile '''xinit''' command.) There are vast amounts of additional configurable specifications and commands that may also be added to ~/[[.xinitrc]] as you further customize your system. <br />
{{Note | '''[[.xinitrc]]''' is a so-called 'dot' (.) file. Files in a UNIX filesystem which are preceded with a dot (.) are 'hidden', and will not show up with a regular 'ls' command, usually for the sake of keeping directories tidy. Dot files may be seen by issuing '''ls -a'''. The 'rc' denotes ''Run Commands'' and simply indicates that it is a configuration file. Since it controls how a program runs, it is (although historically incorrect) also said to stand for &quot;Run Control&quot;.}}<br />
<br />
'''startx/xinit''' will start the '''X''' server and clients. To determine the client to run, '''startx/xinit''' will first look to parse a [[.xinitrc]] file in the user's home directory. In the absence of file ~/[[.xinitrc]], it defaults to the global xinitrc in the xinit library directory; /etc/X11/xinit/xinitrc, which defaults to using the TWM window manager. (Hence, if you invoke startx without a ~/[[.xinitrc]] file, a TWM session will start.) Further details in the [[.xinitrc]] wiki entry.<br />
<br />
Switch to your '''''normal, non-root''''' user:<br />
<br />
# su - ''yourusername''<br />
<br />
* /etc/skel/ contains files and directories to provide sane defaults for newly created user accounts. The name '''skel''' is derived from the word '''skeleton''', because the files it contains form the basic structure for users' home directories.<br />
<br />
* Sample .xinitrc provided [[Xinitrc#A_standard_.xinitrc | here]] <br />
Copy the sample xinitrc file from /etc/skel/ to your home directory: <br />
<br />
$ cp /etc/skel/[[.xinitrc]] ~/<br />
Edit the file: <br />
$ nano ~/.xinitrc<br />
and add &quot;<code>exec xterm</code>&quot; so that it looks like this:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
#<br />
exec xterm<br />
<br />
{{Note | ''Be sure to have only '''one''' uncommented '''exec''' line in ~/.xinitrc'' for now.}}<br />
<br />
Below, we shall edit this file again to specify the appropriate desktop environment/window manager of your choice.<br />
<br />
===== Perform the test =====<br />
<br />
Test your configurations by starting '''X''' as '''normal, non-root''' user, with:<br />
<br />
$ startx<br />
or<br />
$ xinit<br />
<br />
You should have an '''xterm''' session open up. You can test your keyboard and its layout in it. You may have to move your mouse around until it enters the xterm area before you see the mouse cursor or xterm responds to your keyboard.<br />
<br />
If you prove a properly configured /etc/X11/xorg.conf by successfully running the test, you can be assured that your DE/WM of choice will work smoothly.<br />
<br />
Exit Xterm with:<br />
$ exit<br />
{{Tip|Advanced instructions for Xorg configuration can be found in the [[Xorg]] article.}}<br />
<br />
<br />
{{Note| With Xorg 1.6 CTRL-Alt-Backspace has been deprecated and will not work to exit out of this test. A possible workaround is to switch to a different virtual console (CTRL-Alt-F2, for example) and then switch back to the console the test is running in (probably CTRL-Alt-F1). You will then be able to use CTRL-C to kill the X test. You can enable CTRL-Alt-Backspace by editing xorg.conf, as described [http://wiki.archlinux.org/index.php/Xorg#Ctrl-Alt-Backspace_doesn.27t_exit_X here].}}<br />
If the screen goes black, you may still attempt to switch to a different virtual console (CTRL-Alt-F2, for example), and login blindly as root, followed by <Enter>, followed by root's password followed by <Enter>. Finally, reboot blindly with:<br />
# reboot<br />
or <br />
# init 6<br />
<br />
=====In case of errors=====<br />
If you have problems starting '''X''', you can look for errors in the /var/log/Xorg.0.log file, as well as in the console output of the virtual console from which '''X''' was started. <br />
<br />
Also, if using /etc/X11/xorg.conf, inspect the config file:<br />
<br />
# nano /etc/X11/xorg.conf<br />
<br />
for the following issues:<br />
<br />
*The video driver may need to be specified. e.g.:<br />
Section &quot;Device&quot;<br />
<br />
...<br />
Driver &quot;savage&quot;<br />
...<br />
<br />
EndSection<br />
<br />
*Horizontal sync and vertical refresh specs under section &quot;Monitor&quot; may need to be added:<br />
Section &quot;Monitor&quot;<br />
Identifier &quot;Monitor0&quot;<br />
VendorName &quot;Monitor Vendor&quot;<br />
ModelName &quot;Monitor Model&quot;<br />
HorizSync 30.0 - 130.0 # Safe for LCD's<br />
VertRefresh 50.0 - 100.0 # Safe for LCD's and most CRT's.<br />
EndSection<br />
(If these specs are unknown, consult the documentation of the computer monitor.)<br />
<br />
*Color depth can be specified under section &quot;Screen&quot;:<br />
Section &quot;Screen&quot;<br />
Identifier &quot;Screen0&quot;<br />
Device &quot;Card0&quot;<br />
Monitor &quot;Monitor0&quot;<br />
DefaultDepth 24<br />
(Typically, this will be set to 24 for true color.)<br />
<br />
*Also add desired Modes to the &quot;Display&quot; subsection, at least under the Depth 24 header, e.g.:<br />
SubSection &quot;Display&quot;<br />
Viewport 0 0<br />
Depth 24<br />
Modes &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot;<br />
<br />
*Add the following section, if eye candy which requires the composite extension is desired: <br />
Section &quot;Extensions&quot;<br />
Option &quot;Composite&quot; &quot;Enable&quot;<br />
EndSection<br />
<br />
Try the config again, after modifying, by running:<br />
# startx<br />
or<br />
# xinit<br />
'''''Still having trouble? Detailed instructions are in the [[Xorg]] article.'''''<br />
<br />
=====Need Help?=====<br />
<br />
If you are still having trouble after consulting the [[Xorg]] article and need assistance via the Arch forums, be sure to install and use wgetpaste:<br />
<br />
# pacman -S wgetpaste<br />
Use wgetpaste and provide links for the following files when asking for help in your forum post:<br />
* ~/.xinitrc<br />
* /etc/X11/xorg.conf<br />
* /var/log/Xorg.0.log.old<br />
Use wgetpaste like so:<br />
$ wgetpaste </path/to/file><br />
Post the corresponding links given within your forum post. Be sure to provide appropriate hardware and driver information as well.<br />
{{Warning| '''''It is very important to provide detail when troubleshooting X. Please provide all pertinent information as detailed above when asking for assistance on the Arch forums. '''''}}<br />
<br />
==Part IV: Installing and configuring a Desktop Environment ==<br />
While The '''X''' Window System provides the basic framework for building a ''graphical user interface'' (GUI), a '''Desktop Environment''' (DE), works atop and in conjunction with '''X''', to provide a completely functional and dynamic GUI. A DE typically provides a window manager, icons, applets, windows, toolbars, folders, wallpapers, a suite of applications and abilities like drag and drop. The particular functionalities and designs of each DE will uniquely affect your overall environment and experience. Therefore, choosing a DE is a very subjective and personal decision. Choose the best environment for ''your'' needs.<br />
<br />
If you desire a lighter, less demanding GUI to configure manually, you may choose to simply install a '''Window Manager''', or WM. A WM controls the placement and appearance of application windows in conjunction with the X Window System but does NOT include such features as panels, applets, icons, applications, etc., by default.<br />
* Lightweight floating WM's include: [[#Openbox|'''Openbox''']], [[#Fluxbox|'''Fluxbox''']], [[#fvwm2|'''fvwm2''']], [[PekWM|'''pekwm''']], [[Evilwm|'''evilwm''']], '''Windowmaker, and TWM'''.<br />
* If you need something completely different, try a tiling WM like [[Awesome|'''awesome''']], [[Ion3|'''ion3''']], [[Wmii|'''wmii''']], [[Dwm|'''dwm''']], [[Xmonad|'''xmonad''']], or [[Ratpoison|'''ratpoison''']].<br />
<br />
===Step 1: Install Fonts===<br />
At this point, you may wish to save time by installing visually pleasing, true type fonts, before installing a desktop environment/window manager. Dejavu and bitstream-vera are good, general-purpose font sets. You may also want to install the Microsoft font sets, which are especially popular on websites, and may be required for the proper function of Flash animations which feature text.<br />
<br />
Install with:<br />
# pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<br />
<br />
Refer to [[Xorg Font Configuration]] for how to configure fonts.<br />
<br />
===Step 2: ~/.xinitrc (again)===<br />
<br />
As '''non-root user''', edit your /home/username/.xinitrc to specify the DE you wish to use. This will allow you to use '''startx/xinit''' from the shell, in the future, to open your DE/WM of choice:<br />
<br />
$ nano ~/.xinitrc<br />
<br />
Uncomment or add the ''''exec''' ..' line of the appropriate desktop environment/window manager. Some examples are below:<br />
<br />
For the Xfce4 desktop environment:<br />
exec startxfce4 <br />
<br />
For the KDE desktop environment:<br />
exec startkde<br />
A '''startkde''' or '''startxfce4''' command starts the KDE or Xfce4 desktop environment. This is exactly the same as entering: <br />
$ xinit /usr/bin/startxfce4<br />
or<br />
$ xinit /usr/bin/startkde<br />
from the shell prompt. Note that such a command does not finish until you logout of the DE. Normally the shell would wait for KDE to finish, then run the next command. The &quot;exec&quot; prefix to this command within the ~/.xinitrc file tells the shell that this is the last command, so the shell does not need to wait to run a subsequent command.<br />
<br />
In the future, after the DE of choice is installed and if trouble with automounting is experienced, try using the following command in ~/.xinitrc instead. (Replace "startxfce4" with the command that is appropriate for your window manager/DE.)<br />
exec ck-launch-session startxfce4<br />
This will ensure the various environment variables are set correctly by starting a clean consolekit session. ConsoleKit is a framework for keeping track of the various users, sessions, and seats present on a system. It provides a mechanism for software to react to changes of any of these items or of any of the metadata associated with them. It works in conjunction with dbus, and other tools.<br />
<br />
Remember to have only one uncommented '''exec''' line in your ~/.xinitrc for now.<br />
<br />
===Step 3: Install a Desktop Environment===<br />
<br />
Continue below, installing the DE/WM of your choice.<br />
<br />
* [[#GNOME|'''GNOME''']]<br />
* [[#KDE|'''KDE''']]<br />
* [[#Xfce|'''Xfce''']]<br />
* [[#LXDE|'''LXDE''']]<br />
* [[#Openbox|'''Openbox''']]<br />
* [[#Fluxbox|'''Fluxbox''']]<br />
* [[#fvwm2|'''fvwm2''']]<br />
<br />
====GNOME====<br />
=====About GNOME=====<br />
The '''G'''NU '''N'''etwork '''O'''bject '''M'''odel '''E'''nvironment. The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for end-users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop.<br />
<br />
=====Installation=====<br />
Install the base GNOME environment with:<br />
# pacman -S gnome<br />
<br />
Additionally, you can install the extras:<br />
# pacman -S gnome-extra<br />
<br />
It's safe to choose all packages shown in the extra package.<br />
<br />
=====Useful DAEMONS for GNOME=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. <br />
<br />
Some users prefer to use the '''hal''' daemon. The '''hal''' daemon, among other things, will assist in automating the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The hal package is installed as a dependency along with GNOME, but must be invoked to become useful.<br />
<br />
{{Warning|The FAM (File Alteration Monitor) daemon is obsolete; use [[Gamin]] instead, if possible. Gamin is a re-implementation of the FAM specification. It is newer and more actively maintained, and also simpler to configure:<br />
<br />
# pacman -S gamin<br />
}}<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. <br />
<br />
As root:<br />
# pacman -S gdm<br />
<br />
Start hal:<br />
# /etc/rc.d/hal start<br />
Add the desired daemons to your /etc/rc.conf DAEMONS section, so they will be invoked at boot (Note that gamin is ''not'' to be added to the DAEMONS array):<br />
# nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond alsa '''hal gdm''')<br />
(If you prefer to log into the console and manually start X, exclude the gdm daemon.)<br />
<br />
Then edit your /etc/gdm/custom.conf and in the '''[servers]''' section add:<br />
0=Standard vt7<br />
<br />
As normal user, start X:<br />
$ startx<br />
or<br />
$ xinit<br />
If ~/.xinitrc is not configured for GNOME, you may always start it with '''xinit''', followed by the path to GNOME:<br />
$ xinit /usr/bin/gnome-session<br />
<br />
{{Tip|Advanced instructions for installing and configuring GNOME can be found in the [[Gnome]] article.}}<br />
<br />
Congratulations! Welcome to your GNOME desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[Beginners Guide Appendix#Tweaks.2FFinishing_touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
=====Eye Candy=====<br />
By default, GNOME does not come with many themes and icons. You may wish to install some more attractive artwork for GNOME:<br />
<br />
A nice gtk (gui widget) theme engine (includes themes) is the murrine engine. Install with:<br />
# pacman -S gtk-engine-murrine<br />
<br />
Optional for more themes:<br />
# pacman -S murrine-themes-collection <br />
<br />
Once it has been installed, select it with System -> Preferences -> Appearance -> Theme tab.<br />
<br />
The Arch Linux repositories also have a few more nice themes and engines. Install the following to see for yourself:<br />
<br />
# pacman -S gtk-engines gtk-aurora-engine gtk-candido-engine gtk-rezlooks-engine<br />
<br />
You can find many more themes, icons, and wallpapers at [http://www.gnome-look.org GNOME-Look].<br />
<br />
====KDE====<br />
=====About KDE=====<br />
The '''K''' '''D'''esktop '''E'''nvironment. KDE is a powerful Free Software graphical desktop environment for GNU/Linux and <tt>UNIX</tt> workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of <tt>UNIX</tt>-like operating systems.<br />
<br />
=====Installation=====<br />
Choose one of the following, then continue below with '''[[#Useful KDE DAEMONS|Useful KDE DAEMONS]]''': <br />
<br />
1. The package '''kde''' is the official and complete vanilla KDE 4.x residing under the Arch [extra] repo.<br />
<br />
Install base kde:<br />
# pacman -S kdebase-workspace<br />
Install the whole Desktop Environment: <br />
# pacman -S kde<br />
''or'' <br />
# pacman -S kde-meta<br />
<br />
2. Alternatively, another KDE project exists called '''KDEmod''', part of the Chakra distribution. It is an Arch Linux (and spinoff) exclusive, community-driven package set designed for modularity and offers a choice between KDE 3.5.10 or 4.x.x. KDEmod can be installed with pacman, after adding the proper repositories to /etc/pacman.conf. The project website, including complete installation instructions, can be found at [http://www.chakra-project.org/ http://www.chakra-project.org/].<br />
<br />
=====Useful KDE DAEMONS=====<br />
<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services.<br />
<br />
KDE will require the '''hal''' ('''H'''ardware '''A'''bstraction '''L'''ayer) daemon for optimal functionality. The hal daemon, among other things, will facilitate the automatic mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The hal package is installed when you install xorg-server, but must be invoked to become useful.<br />
<br />
The '''kdm''' daemon is the '''K''' '''D'''isplay '''M'''anager, which provides a '''graphical login''', if desired.<br />
<br />
-----<br />
<br />
Start hal:<br />
# /etc/rc.d/hal start<br />
<br />
{{Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS array in /etc/rc.conf:<br />
# nano /etc/rc.conf<br />
Add '''hal''' to your DAEMONS array, to invoke it on boot. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng '''hal''' network crond alsa '''kdm''')<br />
{{Note|If you installed KDEmod3 instead of normal KDE, use kdm3 instead of kdm.}}<br />
<br />
*This method will start the system at runlevel 3, (/etc/inittab default, multiuser mode), and then start KDM as a daemon. <br />
<br />
*Some users prefer an alternative method of starting a display manager like KDM on boot by utilizing the /etc/inittab method and starting the system at runlevel 5. See [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]] for more.<br />
<br />
*If you prefer to log into the '''console''' at runlevel 3, and manually start X, leave out kdm, or comment it out with a bang, ( ! ).<br />
<br />
Now try starting your X Server as normal user:<br />
$ startx<br />
or<br />
$ xinit<br />
{{Tip|Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.}}<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[Beginners Guide Appendix|The Beginners Guide Appendix]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====Xfce====<br />
=====About Xfce=====<br />
Xfce is another free software desktop environment for Linux. It aims to be fast and lightweight, while still being visually appealing and easy to use. Xfce is modular and reusable. It consists of separately packaged components that together provide the full functionality of the desktop environment, but which can be selected in subsets to create the user's preferred personal working environment. Xfce is mainly used for its ability to run a modern desktop environment on relatively modest hardware. It is based on the GTK+ 2 toolkit (the same as GNOME). It uses the Xfwm window manager, described below. Its configuration is entirely mouse-driven, and the configuration files are hidden from the casual user.<br />
<br />
=====Installation=====<br />
Install Xfce: <br />
# pacman -S xfce4 <br />
You may also wish to install themes and extras:<br />
# pacman -S xfce4-goodies gtk2-themes-collection<br />
Note: '''xfce4-xfapplet-plugin''' (a plugin that allows the use of GNOME applets in the Xfce4 panel) is part of the '''xfce4-goodies''' group and depends on '''gnome-panel''', which in turn depends on '''gnome-desktop'''. You may wish to take this into consideration before installing, since it represents a significant number of extra dependencies.<br />
<br />
If you get errors about dbus-launch then you need to install dbus aswell:<br />
# pacman -S dbus<br />
<br />
If you wish to admire 'Tips and Tricks' on login, install the '''fortune-mod''' package:<br />
# pacman -S fortune-mod<br />
<br />
=====Useful DAEMONS=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. Some Xfce users prefer to use the '''hal''' daemon. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. The hal and fam packages are installed when you install Xfce, but must be invoked to become useful.<br />
<br />
{{Note|[[fam]] is now obsolete. Install the [[gamin]] package and do not add fam to rc.conf.}}<br />
<br />
Start hal and fam:<br />
<br />
# /etc/rc.d/hal start<br />
<br />
# /etc/rc.d/fam start<br />
{{Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS array in /etc/rc.conf:<br />
# nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS array, to invoke them at boot.<br />
<br />
{{Tip|Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] article.}}<br />
<br />
If you wish to install one, see [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]]. Otherwise you can login in via the console and run:<br />
<br />
$ startxfce4<br />
<br />
Congratulations! Welcome to your Xfce desktop environment on your new Arch Linux system! You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====LXDE====<br />
=====About LXDE=====<br />
LXDE, (for ''L''ightweight ''X''11 ''D''esktop ''E''nvironment), is a new project focused on providing a modern desktop environment which aims to be lightweight, fast, intuitive and functional while keeping system resource usage low. LXDE is quite different from other desktop environments, since each component of LXDE is a discrete and independent application, and each can be easily substituted by other programs. This modular design eliminates all unnecessary dependencies and provides more flexibility. Details and screenshots available at: http://lxde.org/ <br />
<br />
LXDE provides:<br />
# The OpenBox windowmanager<br />
# PCManFM File manager<br />
# LXpanel system panel<br />
# LXSession session manager<br />
# LXAppearance GTK+ theme switcher<br />
# GPicView image viewer<br />
# Leafpad simple text editor<br />
# XArchiver: Lightweight, fast, and desktop-independent gtk+-based file archiver<br />
# LXNM (still under development): Lightweight network manager for LXDE supporting wireless connections<br />
These lightweight and versatile tools combine for quick setup, modularity and simplicity.<br />
<br />
Install LXDE with: <br />
# pacman -S lxde gamin openbox<br />
<br />
Add:<br />
exec startlxde<br />
*If you experience problems with Policykit or plan on running '''nm-applet''', the following command should be used instead<br />
exec ck-launch-session startlxde<br />
to your ~/.xinitrc and start with ''startx'' or ''xinit''<br />
<br />
{{Tip | Further information available at the [[LXDE]] wiki article.}}<br />
<br />
====*box====<br />
=====Fluxbox=====<br />
Fluxbox is yet another windowmanager for X.<br />
It's based on the Blackbox 0.61.1 code. Fluxbox looks like blackbox and handles styles, colors, window placement and similar things exactly like blackbox (100% theme/style compability).<br />
<br />
Install Fluxbox using <br />
# pacman -S fluxbox fluxconf<br />
<br />
If you use gdm/kdm a new fluxbox session will be automatically added. Otherwise, you should modify your user's .xinitrc and add this to it:<br />
exec startfluxbox <br />
<br />
More information is available in the [[Fluxbox]] article.<br />
<br />
=====Openbox=====<br />
Openbox is a standards compliant, fast, light-weight, extensible window manager.<br />
<br />
Openbox works with your applications, and makes your desktop easier to manage. This is because the approach to its development was the opposite of what seems to be the general case for window managers. Openbox was written first to comply with standards and to work properly. Only when that was in place did the team turn to the visual interface.<br />
<br />
Openbox is fully functional as a stand-alone working environment, or can be used as a drop-in replacement for the default window manager in the GNOME or KDE desktop environments. <br />
<br />
Install openbox using<br />
# pacman -S openbox<br />
Additional configuration tools are also available, if desired:<br />
# pacman -S obconf obmenu<br />
<br />
Once openbox is installed you will get a message to move menu.xml & rc.xml to ~/.config/openbox/ in your home directory:<br />
# su - ''yourusername''<br />
$ mkdir -p ~/.config/openbox/<br />
$ cp /etc/xdg/openbox/rc.xml ~/.config/openbox/<br />
$ cp /etc/xdg/openbox/menu.xml ~/.config/openbox/<br />
<br />
'''rc.xml''' is the main configuration file for OpenBox. It may be manually edited, (or you can use OBconf). '''menu.xml''' configures the right-click menu.<br />
<br />
You may log into OpenBox via graphical login using KDM/GDM, or from the shell using '''startx''', in which case you will need to edit your ~/.xinitrc (as non-root user) and add the following:<br />
<br />
exec openbox-session<br />
<br />
NOTE: If you plan on running dbus (which is required by hal) then make sure your ~/.xinitrc reads:<br />
<br />
exec dbus-launch --exit-with-session openbox-session<br />
<br />
You may also start OpenBox from the shell using '''xinit''':<br />
$ xinit /usr/bin/openbox-session<br />
* Openbox may also be used as the window manager for GNOME, KDE, and Xfce.<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Some useful, lightweight programs for OpenBox are:<br />
* PyPanel, Tint2, or LXpanel if you want a panel<br />
* feh if you want to set the background<br />
* ROX if you want a simple file manager (also provides simple icons)<br />
* PcmanFM a lightweight but versatile file manager (also provides desktop icon functionality)<br />
* iDesk (available in [[AUR]]) for providing desktop icons<br />
* Graveman for burning CD's or DVD's<br />
<br />
{{Tip | More information is available in the [[Openbox]] article.}}<br />
<br />
====FVWM2====<br />
FVWM (F Virtual Window Manager) is an extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent. <br />
<br />
Install fvwm2 with<br />
# pacman -S fvwm <br />
<br />
It will install the official version of the WM. However, if you want/need to use some more features than it provides, you can install the patched version from archlinuxfr (see [[Unofficial user repositories]]) or [[AUR]]. To install it from AUR or archlinuxfr repesctively, execute:<br />
$ yaourt -S fvwm-patched<br />
or<br />
# pacman -S fvwm-patched<br />
<br />
fvwm will automatically be listed in kdm/gdm in the sessions menu. Otherwise, add <br />
exec fvwm 2 <br />
<br />
to your user's .xinitrc.<br />
<br />
When you start [[FVWM2]], you will get into the blank configuration. However, when you left-click on the desktop, you will be able to select to configure FVWM. chose wanted modules and you are ready to go. Check out the configs in the http://www.box-look.org. One should also consider checking FVWM forums at http://fvwm.lair.be<br />
<br />
[[SLiM]] is a very good login manager, that does not have many dependencies and acts well with FVWM. Common Applications are similar to those suggested for [[Openbox]] or [[Fluxbox]].<br />
<br />
==Common and Lightweight Applications==<br />
For a list of [[Common Applications]] and [[Lightweight Applications]], visit their respective articles.<br />
<br />
=Appendix=<br />
See the [[Beginners' Guide Appendix]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Beginners%27_guide_old&diff=93243
Beginners' guide old
2010-01-22T22:09:27Z
<p>Xiol: /* Useful DAEMONS */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]][[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]][[Category:Accessibility (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|Provides a highly detailed, explanatory guide to installing, configuring and using a full-featured Arch Linux system.}}<br />
{{Article summary heading|Languages}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|简体中文|Arch 新手安装指南 (简体中文)}}<br />
{{i18n_entry|正體中文|Beginner's Guide 新手指南}}<br />
{{i18n_entry|Dansk|Dansk_Begynderguide}}<br />
{{i18n_entry|Deutsch|Beginners Guide (Deutsch)}}<br />
{{i18n_entry|English|Beginners' Guide}}<br />
{{i18n_entry|Español|Beginners' Guide (Español)}}<br />
{{i18n_entry|Français|Manuel_du_Débutant_(Français)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Indonesia|Beginners_Guide_(Indonesia)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_entry|Magyar|Beginners Guide (Magyar)}}<br />
{{i18n_entry|Nederlands|Beginners_Guide_(Nederlands)}}<br />
{{i18n_entry|Português Brasil|Guia do Iniciante(Português do Brasil)}}<br />
{{i18n_entry|Português|Guia para Principiantes(Português)}}<br />
{{i18n_entry|Русский|Руководство_для_новичков}}<br />
{{i18n_entry|Türkçe|Başlangıç Rehberi (Türkçe)}}<br />
{{i18n_entry|हिन्दी|नौसिखिया गाइड(हिन्दी)}}<br />
{{i18n_entry|한국어|Beginners' Guide (한국어)}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|:Category:Accessibility (English)}} (Accessibility Resources)<br />
{{Article summary wiki|Official Arch Linux Install Guide}}<br />
{{Article summary wiki|Beginners' Guide Appendix}}<br />
{{Article summary wiki|Post Installation Tips}}<br />
{{Article summary end}}<br />
==Preface==<br />
=====Introduction=====<br />
Welcome. This document will guide you through the process of installing and configuring [[Arch Linux]]; a simple, agile and lightweight GNU/Linux distribution, and <tt>UNIX</tt>-like operating system targeted at competent users. <br />
* Arch Linux requires a certain level of intimate knowledge of its configuration process and of <tt>UNIX</tt>-like system methodology, and for this reason, extra explanatory information is included. <br />
* This guide is aimed at new Arch users, but strives to serve as a strong reference and informative base for all.<br />
<br />
'''Arch Linux Distribution Highlights:'''<br />
* [[The Arch Way|Simple]] <tt>UNIX</tt>-like design and philosophy<br />
* All packages compiled for i686 and x86_64 architectures<br />
* [[Arch Boot Process|BSD style]] init scripts, featuring one centralized configuration file<br />
* mkinitcpio: A simple and dynamic initramfs creator<br />
* [[Pacman]] package manager is lightweight and agile, with a very modest memory footprint<br />
* The [[Arch Build System]]: A ports like package building system, providing a simple framework to create installable Arch packages from source<br />
* The [[Arch User Repository]]: offering many thousands of user contributed build scripts<br />
<br />
=====License=====<br />
<br />
Arch Linux, pacman, documentation, and scripts are copyright<br />
©2002-2007 by Judd Vinet, ©2007-2009 by Aaron Griffin and are licensed under the GNU General Public License Version 2.<br />
<br />
=====DON'T PANIC!=====<br />
The Arch Linux system is assembled by the ''user'', from the shell, using basic command line tools. Unlike the more rigid structures of other distributions and installers, there are no default environments nor configurations chosen for you. From the command line, ''you'' will add packages from the Arch repositories using the pacman tool via your internet connection and manually configure your installation by editing text files until your system is customized to your requirements. You will also manually add non-root user(s) and manage groups and permissions. This method allows for maximum flexibility, choice, and system resource control ''from the base up''.<br />
<br />
Arch Linux is a distribution aimed at competent GNU/Linux users who desire a 'do-it-yourself' approach.<br />
<br />
=====The Arch Way=====<br />
<br />
'''''The design principles behind Arch are aimed at keeping it simple.'' '''<br />
<br />
'Simple', in this context, shall mean 'without unnecessary additions, modifications, or complications'. In short; an elegant, minimalist approach.<br />
<br />
'''Some thoughts to keep in mind as you consider simplicity:'''<br />
<br />
*''&quot; 'Simple' is defined from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use and technically [inferior].&quot; -Aaron Griffin''<br />
*''Entia non sunt multiplicanda praeter necessitatem'' or &quot;Entities should not be multiplied unnecessarily.&quot; -Occam's razor. The term ''razor'' refers to the act of shaving away unnecessary complications to arrive at the simplest explanation, method or theory.<br />
*''&quot;The extraordinary part of [my method] lies in its simplicity..The height of cultivation always runs to simplicity.&quot;'' - Bruce Lee<br />
<br />
=====About This Guide=====<br />
<br />
The Arch wiki is an excellent resource and should be consulted for issues [[Main Page|first]]. The IRC room (at freenode #archlinux), and the [http://bbs.archlinux.org/ forums] are also available if the answer cannot be found elsewhere.<br />
<br />
{{Note|Following this guide closely is essential in order to successfully install a properly configured Arch Linux system, so ''please'' read it thoroughly. It is strongly recommended you read each section completely <u>before</u> carrying out the tasks contained.}}<br />
<br />
Since GNU/Linux Distributions are fundamentally 'modular' by design, the guide is logically divided into 4 main components of a desktop <tt>UNIX</tt>-like operating system: <br />
<br />
'''[[#Part I: Install the Base System|Part I: Installing the Base system]]'''<br />
<br />
'''[[#Part II: Configure & Update the New Arch Linux base system|Part II: Configure & Update the New Arch Linux base system]]'''<br />
<br />
'''[[#Part III: Install X and configure ALSA|Part III: Installing X and configuring ALSA]]'''<br />
<br />
'''[[#Part IV: Installing and configuring a Desktop Environment|Part IV: Installing a Desktop Environment]]'''<br />
<br />
==Part I: Install the Base System==<br />
<br />
===Step 1: Obtain the latest Installation media ===<br />
<br />
You can obtain Arch's official installation media from [http://archlinux.org/download/ here]. The latest version is 2009.08 <br />
<br />
* Both the Core and the Netinstall images provide only the necessary packages to create an '''Arch Linux base system'''. ''Note that the Base System does not include a GUI. It is mainly comprised of the GNU toolchain (compiler, assembler, linker, libraries, shell, and utilities), the Linux kernel, and a few extra libraries and modules.''<br />
* Core images facilitate both installing from CD and Net. <br />
* Netinstall images are smaller and provide no packages themselves; the entire system is retrieved via internet.<br />
* The isolinux images are provided as an alternative for those who experience trouble using the grub version. There are no other differences.<br />
* [[Arch64_FAQ|The Arch64 FAQ]] can help you choose between the 32- and 64-bit versions.<br />
<br />
====CD installer====<br />
Burn the .iso image file to a CD with your preferred CD burner drive and software, and continue with [[#Step 2: Boot Arch Linux Installer | Step 2: Boot Arch Linux Installer]]<br />
{{Note| The quality of optical drives, as well as the CD media itself, vary greatly. Generally, using a slow burn speed is recommended for reliable burns; Some users recommend speeds '''''as low as 4x or 2x.''''' If you are experiencing unexpected behavior from the CD, try burning at the minimum speed supported by your system. }}<br />
<br />
====USB stick====<br />
{{Warning|This will irrevocably destroy all data on your USB stick!}}<br />
<br />
'''<tt>UNIX</tt> Method:'''<br />
<br />
Insert an empty or expendable USB stick, determine its path, and write the .img to the USB stick with the <code>/bin/dd</code> program:<br />
dd if=archlinux-2009.08-''{core|netinstall}''-''{i686|x86_64}''.img of=/dev/sd''x''<br />
where <code>if=</code> is the path to the img file and <code>of=</code> is your USB device. Make sure to use {{Filename|/dev/sd'''x'''}} and not {{Filename|/dev/sd'''x1'''}}.<br />
<br />
'''Check md5sum (optional):'''<br />
<br />
Make a note of the number of records (blocks) read in and written out, then perform the following check:<br />
dd if=/dev/sd''x'' count=''number_of_records'' status=noxfer | md5sum<br />
The md5sum returned should match the md5sum of the downloaded archlinux image file; they both should match the md5sum of the image as listed in the md5sums file in the mirror distribution site.<br />
<br />
'''Windows Method:'''<br />
<br />
Download Disk Imager from https://launchpad.net/win32-image-writer/+download. Insert flash media. Start the Disk Imager and select the image file. Select the Drive letter associated with the flash drive. Click "write".<br />
<br />
Continue with [[#Step 2: Boot Arch Linux Installer | Step 2: Boot Arch Linux Installer]]<br />
<br />
===Step 2: Boot Arch Linux Installer===<br />
Insert the CD or USB stick and boot from it. You may have to<br />
change the boot order in your computer BIOS or press a key (usually DEL, F1, F2, F11 or F12) during the BIOS POST (Power On Self-Test) phase.<br />
<br />
{{Tip|The memory requirements for a basic install are:<br />
* Core : 128 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
* Netinstall : 128 MB RAM x86_64/i686 (all packages selected, with swap partition)}}<br />
<br />
The main menu should be displayed at this point. Select the preferred choice by using the arrow keys to highlight your choice, and then by pressing Enter.<br />
<br />
Usually, the first item, Boot Archlive, is the preferred selection. However, choose Boot Archlive [legacy IDE] if you have trouble with libata/PATA, or have no SATA (Serial ATA) drives.<br />
<br />
To change GRUB boot options, press '''e'''. Many users may wish to change the resolution of the framebuffer, for more readable console output. Append:<br />
vga=773<br />
to the kernel line, followed by <ENTER>, for a 1024x768 framebuffer. When done, press '''b''' to boot into that selection.<br />
<br />
The system will now boot and present a login prompt. Login as 'root', without the quotes.<br />
<br />
If your system has errors trying to boot from the live CD or there are other '''hardware''' errors, refer to the [[Installation Troubleshooting]] wiki page.<br />
<br />
====Changing the keymap====<br />
If you have a non-US keyboard layout you can interactively choose your keymap/console font with the command:<br />
# km<br />
or use the loadkeys command:<br />
# loadkeys ''layout''<br />
(replace ''layout'' with your keyboard layout such as &quot;<code>fr</code>&quot; or &quot;<code>be-latin1</code>&quot;)<br />
<br />
====Documentation====<br />
The official install guide is conveniently available right on the live system! To access it, change to vc/2 (virtual console #2) with <ALT>+F2, and then invoke <code>/usr/bin/less</code> by typing in the following at the # prompt:<br />
# less /arch/docs/official_installation_guide_en<br />
<code>less</code> will allow you to page through the document. Change back to vc/1 with <ALT>+F1 to follow the rest of the install process.<br />
<br />
Change back to vc/2 at any time if you need to reference the Official Guide as you progress through the installation process.<br />
<br />
{{tip|Please note that the official guide only covers installation and configuration of the base system. Once that is installed, it is strongly recommended that you come back here to the wiki to find out more about post-installation considerations and other related issues.}}<br />
<br />
===Step 3: Start the Installation===<br />
As root, run the installer script from vc/1:<br />
# /arch/setup<br />
<br />
===A: Select an installation source===<br />
After a welcome screen, you will be prompted for an installation source. Choose the appropriate source for the installer you are using.<br />
* If you chose the CORE installer, continue below with [[#B: Set Clock|B: Set Clock]].<br />
* Netinstall only: You shall be prompted to load ethernet drivers manually, if desired. Udev is quite effective at loading the required modules, so you may assume it has already done so. You may verify this by invoking ifconfig -a from vc/3. (Select OK to continue.)<br />
<br />
====Configure Network (Netinstall)====<br />
Available Interfaces will be presented. If an interface and HWaddr ('''H'''ard'''W'''are '''addr'''ess) is listed, then your module has already been loaded. If your interface is not listed, you may probe it from the installer, or manually do so from another virtual console.<br />
<br />
The following screen will prompt you to ''Select the interface, Probe,'' or ''Cancel''. Choose the appropriate interface and continue.<br />
<br />
The installer will then ask if you wish to use DHCP. Choosing Yes will run '''dhcpcd''' to discover an available gateway and request an IP address; Choosing No will prompt you for your static IP, netmask, broadcast, gateway DNS IP, HTTP proxy, and FTP proxy. Lastly, you will be presented with an overview to ensure your entries are correct.<br />
<br />
=====(A)DSL Quickstart for the Live Environment (If you have a pure modem (or router in bridge mode) to connect to your ISP) =====<br />
<br />
Switch to another virtual console (<Alt> + F2), login as root and invoke <br />
# pppoe-setup<br />
If everything is well configured in the end you can connect to your ISP with <br />
# pppoe-start<br />
<br />
Return to first virtual console with <ALT>+F1. Continue with [[#B: Set Clock|B: Set Clock]]<br />
<br />
=====Wireless Quickstart For the Live Environment (If you need wireless connectivity during the installation process)=====<br />
<br />
The wireless drivers and utilities are now available to you in the live environment of the installation media. A good knowledge of your wireless hardware will be of key importance to successful configuration. Note that the following quickstart procedure ''executed at this point in the installation'' will initialize your wireless hardware for use ''in the live environment''. These steps (or some other form of wireless management) must be repeated from the actual installed system after booting into it. <br />
<br />
Also note that these steps are optional if wireless connectivity is unnecessary at this point in the installation; wireless functionality may always be established later.<br />
<br />
The basic procedure will be:<br />
* Switch to a free virtual console, e.g.: <ALT>+F3<br />
* (Optional) Identify the wireless interface and driver module:<br />
# lsmod | grep -i net<br />
* Ensure udev has loaded the driver, and that the driver has created a usable wireless kernel interface with <code>/usr/sbin/iwconfig</code>:<br />
# iwconfig<br />
Example output:<br />
lo no wireless extensions.<br />
eth0 no wireless extensions.<br />
wlan0 unassociated ESSID:""<br />
Mode:Managed Channel=0 Access Point: Not-Associated <br />
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0 <br />
Retry limit:7 RTS thr:off Fragment thr:off<br />
Power Management:off<br />
Link Quality:0 Signal level:0 Noise level:0<br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:0 Missed beacon:0<br />
<code>wlan0</code> is the available wireless interface in the example.<br />
* Bring the interface up with <code>/sbin/ifconfig <interface> up</code>.<br />
An example using the wlan0 interface:<br />
# ifconfig wlan0 up<br />
(Remember, your interface may be named something else, depending on your module (driver) and chipset: wlan0, eth1, etc.)<br />
* If the essid has been forgotten or is unknown, use <code>/sbin/iwlist <interface> scan</code> to scan for nearby networks.<br />
# iwlist wlan0 scan<br />
* Specify the id of the chosen wireless network with iwconfig <interface> essid &quot;<youressid>&quot; key <your_wep_key> (give the essid (the 'network name') of the network in quotes). <br />
* An example using WEP and a hexadecimal key:<br />
# iwconfig wlan0 essid &quot;linksys&quot; key 0241baf34c<br />
* An example using WEP and an ASCII passphrase:<br />
# iwconfig wlan0 essid "linksys" key s:pass1<br />
* An example using an unsecured network:<br />
# iwconfig wlan0 essid "linksys"<br />
* Request an IP address with <code>/sbin/dhcpcd <interface> </code>. e.g.:<br />
# dhcpcd wlan0<br />
* Ensure you can route using <code>/bin/ping</code>:<br />
# ping -c 3 www.google.com<br />
Done.<br />
* For connecting to a network using WPA, consult the [[WPA Supplicant]] article, and continue below.<br />
<br />
======Does the Wireless Chipset require Firmware?======<br />
A small percentage of wireless chipsets also require firmware, in addition to a corresponding driver. If unsure, invoke <code>/usr/bin/dmesg</code> to query the kernel log for a firmware request from the wireless chipset:<br />
# dmesg | grep firmware<br />
Example output from an Intel chipset which requires and has requested firmware from the kernel at boot:<br />
firmware: requesting iwlwifi-5000-1.ucode<br />
If there is no output, it may be concluded that the system's wireless chipset does not require firmware.<br />
<br />
{{Note | '''Wireless chipset firmware packages (for cards which require them) are pre-installed under /lib/firmware in the live environment, (on CD/USB stick) ''but must be explicitly installed to your actual system to provide wireless functionality after you reboot into it!'' Package selection and installation is covered below. Ensure installation of both your wireless module and firmware during the package selection step! See [[Wireless Setup]] if you are unsure about the requirement of corresponding firmware installation for your particular chipset. This is a very common error.'''}}<br />
<br />
After the initial Arch installation is complete, you may wish to refer to [[Wireless Setup]] to ensure a permanent configuration solution for your installed system.<br />
<br />
Return to vc/1 with <ALT>+F1. Continue with [[#B: Set Clock|B: Set Clock]]<br />
<br />
===B: Set Clock===<br />
* UTC - Choose UTC if running only <tt>UNIX</tt>-like operating system(s).<br />
<br />
* localtime - Choose local if multi-booting with a Microsoft Windows OS.<br />
<br />
===C: Prepare Hard Drive===<br />
<br />
{{Warning|Partitioning hard drives can destroy data. You are strongly cautioned and advised to backup your critical data if applicable.}}<br />
<br />
{{Note|Partitioning may be performed before initiating the Arch installation if desired, by utilizing [http://gparted.sourceforge.net/download.php GParted] or other available tools. If the installation drive has already been partitioned to the required specifications, continue with [[#Set Filesystem Mountpoints| Set Filesystem Mountpoints]]}}<br />
<br />
Verify current disk identities and layout by invoking <code>/sbin/fdisk</code> with the <code>-l</code> (lower-case L) switch.<br />
<br />
Open another virtual console (<ALT>+F3) and enter:<br />
# fdisk -l<br />
Take note of the disk(s)/partition(s) to utilize for the Arch installation.<br />
<br />
Switch back to the installation script with <ALT>+F1<br />
<br />
Select the first menu entry &quot;Prepare Hard Drive&quot;.<br />
* Option 1: Auto Prepare<br />
Auto-Prepare divides the disk into the following configuration:<br />
<br />
* ext2 /boot partition, default size 32MB. ''You will be prompted to modify the size to your requirement.''<br />
* swap partition, default size 256MB. ''You will be prompted to modify the size to your requirement.''<br />
* A Separate / and /home partition, (sizes can also be specified). Available filesystems include ext2, ext3, ext4, reiserfs, xfs and jfs, but note that ''both / and /home shall share the same fs type'' if choosing the Auto Prepare option.<br />
<br />
Be warned that Auto-prepare will completely erase the chosen hard drive. Read the <font color=&quot;red&quot;>warning</font> presented by the installer very carefully, and make sure the correct device is about to be partitioned.<br />
<br />
* Option 2: '''(Recommended)''' Partition Hard Drives (with cfdisk)<br />
<br />
This option will allow for the most robust and customized partitioning solution for your personal needs.<br />
<br />
''At this point, more advanced GNU/Linux users who are familiar and comfortable with manually partitioning may wish to skip down to '''[[#D: Select Packages|D: Select Packages]]''' below.''<br />
<br />
{{Note|If you are installing to a USB flash key, see "[[Installing Arch Linux on a USB key]]".}}<br />
<br />
====Partition Hard Drives====<br />
<br />
=====Partition Info=====<br />
<br />
Partitioning a hard disk drive defines specific areas (the partitions) within the disk, that will each appear and behave as a separate disk and upon which a filesystem may be created (formatted).<br />
*There are 3 types of disk partitions:<br />
#Primary<br />
#Extended<br />
#Logical<br />
'''Primary''' partitions can be bootable, and are limited to 4 partitions per disk or raid volume. If a partitioning scheme requires more than 4 partitions, an '''extended''' partition which will contain '''logical''' partitions will be required.<br />
<br />
Extended partitions are not usable by themselves; they are merely a &quot;container&quot; for logical partitions. If required, a hard disk shall contain only one extended partition; which shall then be sub-divided into logical partitions.<br />
<br />
When partitioning a disk, one can observe this numbering scheme by creating primary partitions sda1 through sda3 followed by creating an extended partition, sda4, and subsequently creating logical partition(s) within the extended partition; sda5, sda6, and so on.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on the drive where virtual ram resides, allowing the kernel to easily use disk storage for data that does not fit into physical RAM.<br />
<br />
Historically, the general rule for swap partition size was 2x the amount of physical RAM. Over time, as computers have gained ever larger memory capacities, this rule has become increasingly deprecated. Generally, on machines with up to 512MB RAM, the 2x rule is usually quite sufficient. If the installation machine provides gratuitous amounts of RAM (more than 1024 MB) it may be possible to completely forget a swap partition altogether, since the option to create a swap '''file''' is always available later. A 1 GB swap partition will be used in this example.<br />
{{Note|If using suspend-to-disk, (hibernate) a swap partition at least '''equal''' in size to the amount of physical RAM is required. Some Arch users even recommend oversizing it beyond the amount of physical RAM by 10-15%, to allow for possible bad sectors.}}<br />
<br />
=====Partition Scheme=====<br />
A disk partitioning scheme is a very personalized preference. Each user's choices will be unique to their own computing habits and requirements. If you would like to dual boot Arch Linux and a Windows operating systems please see [[Windows and Arch Dual Boot]].<br />
<br />
Filesystem candidates for separate partitions include:<br />
<br />
'''/''' (root) ''The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory &quot;/&quot;, even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system. Therefore, certain directories under / are not themselves candidates for separate partitions. (See warning below).''<br />
<br />
'''/boot''' ''This directory contains the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files. /boot is essential for booting, but is unique in that it may still be kept on its own separate partition (if required).''<br />
<br />
'''/home''' ''User data and user specific configuration files for applications are stored in each user's home directory in a file that starts with the '.' character (a &quot;dot file&quot;).''<br />
<br />
'''/usr''' ''While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system update/upgrade. Any information that is host-specific or varies with time is stored elsewhere.''<br />
<br />
'''/tmp''' ''directory for programs that require temporary files''<br />
<br />
'''/var''' ''contains variable data; spool directories and files, administrative and logging data, pacman's cache, the ABS tree, etc.''<br />
{{Warning | Besides /boot, directories essential for booting are: ''''''/bin', '/dev', '/etc', '/lib', '/proc' and '/sbin'. Therefore, they must not reside on a separate partition from /.'''''}}<br />
'''''There are several advantages for using discrete filesystems, rather than combining all into one partition''''':<br />
<br />
* Security: Each filesystem may be configured in /etc/fstab as 'nosuid', 'nodev', 'noexec', 'readonly', etc.<br />
* Stability: A user, or malfunctioning program can completely fill a filesystem with garbage if they have write permissions for it. Critical programs, which reside on a different filesystem remain unaffected.<br />
* Speed: A filesystem which gets written to frequently may become somewhat fragmented. (An effective method of avoiding fragmentation is to ensure that each filesystem is never in danger of filling up completely.) Separate filesystems remain unaffected, and each can be defragmented separately as well.<br />
* Integrity: If one filesystem becomes corrupted, separate filesystems remain unaffected.<br />
* Versatility: Sharing data across several systems becomes more expedient when independent filesystems are used. Separate filesystem types may also be chosen based upon the nature of data and usage.<br />
In this example, we shall use separate partitions for /, /var, /home, and a swap partition.<br />
<br />
{{Note | /var contains many small files. This should be taken into consideration when choosing a filesystem type for it, (if creating its own separate partition).}}<br />
<br />
=====How big should my partitions be?=====<br />
This question is best answered based upon individual needs.<br />
You may wish to simply create '''one partition for root and one partition for swap or only one root partition without swap''' or refer to the following examples and consider these guidelines to provide a frame of reference:<br />
* The root filesystem (/) in the example will contain the /usr directory, which can become moderately large, depending upon how much software is installed. 15-20 GB should be sufficient for most users.<br />
<br />
* The /var filesystem will contain, among other data, the [[ABS]] tree and the pacman cache. Keeping cached packages is useful and versatile; it provides the ability to downgrade packages if needed. /var tends to grow in size; the pacman cache can grow large over long periods of time, but can be safely cleared if needed. If you are using an SSD, you may wish to locate your /var on an HDD and keep the / and /home partitions on your SSD to avoid needless read/writes to the SSD. 6-8 Gigs on a desktop system should be sufficient for /var. Servers tend to have extremely large /var filesystems.<br />
<br />
* The /home filesystem is typically where user data, downloads, and multimedia reside. On a desktop system, /home is typically the largest filesystem on the drive by a large margin. Remember that if you chose to reinstall Arch, all the data on your /home partition will be untouched (so long as you have a separate /home partition). <br />
<br />
* An extra 25% of space added to each filesystem will provide a cushion for unforeseen occurrence, expansion, and serve as a preventive against fragmentation.<br />
'''''From the guidelines above, the example system shall contain a ~15GB root (/) partition, ~7GB /var, 1GB swap, and a /home containing the remaining disk space.'''''<br />
<br />
=====Create Partition:cfdisk=====<br />
Start by creating the primary partition that will contain the '''root''', (/) filesystem.<br />
<br />
Choose '''N'''ew -> Primary and enter the desired size for root (/). Put the partition at the beginning of the disk.<br />
<br />
Also choose the '''T'''ype by designating it as '83 Linux'. The created / partition shall appear as sda1 in our example.<br />
<br />
Now create a primary partition for /var, designating it as '''T'''ype 83 Linux. The created /var partition shall appear as sda2<br />
<br />
Next, create a partition for swap. Select an appropriate size and specify the '''T'''ype as 82 (Linux swap / Solaris). The created swap partition shall appear as sda3.<br />
<br />
Lastly, create a partition for your /home directory. Choose another primary partition and set the desired size.<br />
<br />
Likewise, select the '''T'''ype as 83 Linux. The created /home partition shall appear as sda4.<br />
<br />
Example:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Primary Linux 15440 #root<br />
sda2 Primary Linux 6256 #/var<br />
sda3 Primary Linux swap / Solaris 1024 #swap<br />
sda4 Primary Linux 140480 #/home<br />
<br />
Choose '''W'''rite and type ''''yes''''. Beware that this operation may destroy data on your disk. Choose '''Q'''uit to leave the partitioner.<br />
Choose Done to leave this menu and continue with &quot;Set Filesystem Mountpoints&quot;.<br />
<br />
{{Note | Since the latest developments of the Linux kernel which include the libata and PATA modules, all IDE, SATA and SCSI drives have adopted the sd''x'' naming scheme. This is perfectly normal and should not be a concern.}}<br />
<br />
====Set Filesystem Mountpoints====<br />
First you will be asked for your swap partition. Choose the appropriate partition (sda3 in this example). You will be asked if you want to create a swap filesystem; select yes. Next, choose where to mount the / (root) directory (sda1 in the example). At this time, you will be asked to specify the filesystem type.<br />
<br />
=====Filesystem Types=====<br />
Again, a filesystem type is a very subjective matter which comes down to personal preference. Each has its own advantages, disadvantages, and unique idiosyncrasies. Here is a very brief overview of supported filesystems:<br />
<br />
1. '''ext2''' ''Second Extended Filesystem''- Old, reliable GNU/Linux filesystem. Very stable, but ''without journaling support''. May be inconvenient for root (/) and /home, due to very long fsck's. ''An ext2 filesystem can easily be converted to ext3.'' Generally regarded as a good choice for /boot/.<br />
<br />
2. '''ext3''' ''Third Extended Filesystem''- Essentially the ext2 system, but with journaling support. ext3 is completely compatible with ext2. ''Extremely'' stable, mature, and by far the most widely used, supported and developed GNU/Linux FS.<br />
<br />
'''High Performance Filesystems:'''<br />
<br />
3. '''ext4''' ''Fourth Extended Filesystem''- Backward compatible with ext2 and ext3, Introduces support for volumes with sizes up to 1 exabyte and files with sizes up to 16 terabyte. Increases the 32,000 subdirectory limit in ext3 to 64,000. Offers online defragmentation ability. <br />
{{Note | ext4 is a new filesystem and may have some bugs.}}<br />
<br />
4. '''ReiserFS''' (V3)- Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput based on an unconventional and creative algorithm. ReiserFS is touted as very fast, especially when dealing with many small files. ReiserFS is fast at formatting, yet comparatively slow at mounting. Quite mature and stable. ReiserFS is not actively developed at this time (Reiser4 is the new Reiser filesystem). Generally regarded as a good choice for /var/.<br />
<br />
5. '''JFS''' - IBM's '''J'''ournaled '''F'''ile'''S'''ystem- The first filesystem to offer journaling. JFS had many years of use in the IBM AIX® OS before being ported to Linux. JFS currently uses the least CPU resources of any GNU/Linux filesystem. Very fast at formatting, mounting and fsck's, and very good all-around performance, especially in conjunction with the deadline I/O scheduler. (See [[JFS]].) Not as widely supported as ext or ReiserFS, but very mature and stable.<br />
<br />
6. '''XFS''' - Another early journaling filesystem originally developed by Silicon Graphics for the IRIX OS and ported to Linux. XFS offers very fast throughput on large files and large filesystems. Very fast at formatting and mounting. Generally benchmarked as slower with many small files, in comparison to other filesystems. XFS is very mature and offers online defragmentation ability.<br />
* JFS and XFS filesystems cannot be ''shrunk'' by disk utilities (such as gparted or parted magic)<br />
<br />
===== A note on Journaling=====<br />
All above filesystems, except ext2, utilize [http://en.wikipedia.org/wiki/Journaling_file_system journaling]. Journaling file systems are fault-resilient file systems that use a journal to log changes before they are committed to the file system to avoid metadata corruption in the event of a crash. Note that not all journaling techniques are alike; specifically, only ext3 and ext4 offer ''data-mode journaling'', (though, not by default), which journals ''both'' data ''and'' meta-data (but with a significant speed penalty). The others only offer ''ordered-mode journaling'', which journals meta-data only. While all will return your filesystem to a valid state after recovering from a crash, ''data-mode journaling'' offers the greatest protection against file system corruption and data loss but can suffer from performance degradation, as all data is written twice (first to the journal, then to the disk). Depending upon how important your data is, this may be a consideration in choosing your filesystem type.<br />
<br />
'''''Moving on...'''''<br />
<br />
Choose and create the filesystem (format the partition) for / by selecting '''yes'''. You will now be prompted to add any additional partitions. In our example, sda2 and sda4 remain. For sda2, choose a filesystem type and mount it as /var. Finally, choose the filesystem type for sda4, and mount it as /home. <br />
{{Box Note |If you have not created and do not need a separate /boot partition, you may safely ignore the warning that it does not exist.}} Return to the main menu.<br />
<br />
===D: Select Packages===<br />
<br />
*Core ISO: Choose CD as source and select the appropriate CD drive if more than one exist on the installation machine.<br />
*Netinstall: Select an FTP/HTTP mirror. ''Note that archlinux.org is throttled to 50KB/s''.<br />
<br />
Package selection is split into two stages. First, select the package category:<br />
{{Note | For expedience, all packages in '''base''' are selected by default. Use the space-bar to select and de-select packages.}}<br />
* '''Base''': The minimal base environment. ''Always select it and only remove packages that will not be used.''<br />
* '''Base-devel''': Extra tools such as '''make''', '''automake''' and '''wireless-tools''' as well as wireless firmwares. ''Most beginners should choose to install it, and will probably need it later.<br />
''<br />
After category selection, you will be presented with the full lists of packages, allowing you to fine-tune your selections. Use the space bar to select and unselect.<br />
<br />
{{Note | If you are going to require connection to a wireless network with WPA encryption, consider installing netcfg2 (as well as wireless_tools), which will enable you to do so.}}<br />
<br />
After selecting the needed packages, leave the selection<br />
screen and continue to the next step, Install Packages.<br />
<br />
===E: Install Packages===<br />
Next, choose 'Install Packages'. You will be asked if you wish to keep the packages in the pacman cache. If you choose 'yes', you will have the flexibility to [[Downgrade packages|downgrade]] to previous package versions in the future, so this is recommended (you can always clear the cache in the future). The installer script will now install the selected packages, as well as the default Arch 2.6 kernel, to your system.<br />
*Netinstall: The [[Pacman]] package manager will now download and install your selected packages. (See vc/5 for output, vc/1 to return to the installer)<br />
*Core image: The packages will be installed from the CD/USB stick.<br />
<br />
===F: Configure the System===<br />
''Closely following and understanding these steps is of key importance to ensure a properly configured system.''<br />
<br />
*At this stage of the installation, you will configure the primary configuration files of your Arch Linux base system.<br />
<br />
*Previous versions of the installer included [[Hwdetect|hwdetect]] to gather information for your configuration. This has been deprecated, and '''[[Udev|udev]]''' should handle most module loading automatically at boot.<br />
<br />
Now you will be asked which text editor you want to use; choose [[Nano|nano]], [http://joe-editor.sourceforge.net/ joe] or [[Vim|vi]], ('''nano''' is generally considered easiest of the 3). You will be presented with a menu including the main configuration files for your system. <br />
<br />
{{Note | ''It is very important at this point to edit, or at least verify by opening, every configuration file.'' The installer script relies on your input to create these files on your installation. A common error is to skip over these critical steps of configuration.}}<br />
<br />
=====Can the installer handle this more automatically?=====<br />
Hiding the process of system configuration is in direct opposition to '''''[[The Arch Way]]'''''. While it is true that recent versions of the kernel and hardware probing tools offer excellent hardware support and auto-configuration, Arch presents the user all pertinent configuration files during installation for the purposes of ''transparency and system resource control''. By the time you have finished modifying these files to your specifications, you will have learned the simple method of manual Arch Linux system configuration and become more familiar with the base structure, leaving you better prepared to use and maintain your new installation productively.<br />
<br />
'''''Moving on...'''''<br />
<br />
====/etc/rc.conf====<br />
Arch Linux uses the file {{Filename|/etc/rc.conf}} as the principal location for system configuration. This one file contains a wide range of configuration information, principally used at system startup. As its name directly implies, it also contains settings for and invokes the /etc/rc* files, and is, of course, sourced ''by'' these files.<br />
<br />
=====LOCALIZATION section=====<br />
* '''LOCALE'''=: This sets your system locale, which will be used by all i18n-aware applications and utilities. You can get a list of the available locales by running {{Codeline|locale -a}} from the command line. This setting's default is fine for US English users.<br />
* '''HARDWARECLOCK'''=: Specifies whether the hardware clock, which is synchronized on boot and on shutdown, stores '''UTC''' time, or '''localtime'''. UTC makes sense because it greatly simplifies changing timezones and daylight savings time. localtime is necessary if you dual boot with an operating system such as Windows, that only stores localtime to the hardware clock.<br />
* '''USEDIRECTISA'''=: Use direct I/O request instead of {{Filename|/dev/rtc}} for hwclock<br />
* '''TIMEZONE'''=: Specify your TIMEZONE. (All available zones are under {{Filename|/usr/share/zoneinfo/}}).<br />
* '''KEYMAP'''=: The available keymaps are in {{Filename|/usr/share/kbd/keymaps}}. Please note that this setting is only valid for your TTYs, not any graphical window managers or '''X'''.<br />
* '''CONSOLEFONT'''=: Available console fonts reside under {{Filename|/usr/share/kbd/consolefonts/}} if you must change. The default (blank) is safe.<br />
* '''CONSOLEMAP'''=: Defines the console map to load with the setfont program at boot. Possible maps are found in {{Filename|/usr/share/kbd/consoletrans}}, if needed. The default (blank) is safe.<br />
* '''USECOLOR'''=: Select &quot;yes&quot; if you have a color monitor and wish to have colors in your consoles.<br />
LOCALE=&quot;en_US.utf8&quot;<br />
HARDWARECLOCK=&quot;localtime&quot;<br />
USEDIRECTISA=&quot;no&quot;<br />
TIMEZONE=&quot;US/Eastern&quot;<br />
KEYMAP=&quot;us&quot;<br />
CONSOLEFONT=<br />
CONSOLEMAP=<br />
USECOLOR=&quot;yes&quot;<br />
<br />
=====HARDWARE Section=====<br />
* '''MOD_AUTOLOAD'''=: Setting this to &quot;yes&quot; will use '''udev''' to automatically probe hardware and load the appropriate modules during boot, (convenient with the default modular kernel). Setting this to &quot;no&quot; will rely on the user's ability to specify this information manually, or compile their own custom kernel and modules, etc.<br />
* '''MOD_BLACKLIST'''=: This has become deprecated in favor of adding blacklisted modules directly to the '''MODULES=''' line below.<br />
* '''MODULES'''=: Specify additional MODULES if you know that an important module is missing. If your system has any floppy drives, add "floppy". If you will be using loopback filesystems, add "loop". Also specify any blacklisted modules by prefixing them with a bang (!). Udev will be forced NOT to load blacklisted modules. In the example, the IPv6 module as well as the annoying pcspeaker are blacklisted.<br />
# Scan hardware and load required modules at boot<br />
MOD_AUTOLOAD=&quot;yes&quot;<br />
# Module Blacklist - Deprecated<br />
MOD_BLACKLIST=()<br />
#<br />
MODULES=(!net-pf-10 !snd_pcsp !pcspkr loop)<br />
<br />
=====NETWORKING Section=====<br />
* '''HOSTNAME'''=:Set your HOSTNAME to your liking.<br />
* '''eth0'''=: 'Ethernet, card 0'. Adjust the interface IP address, netmask and broadcast address ''if'' you are using '''static IP'''. Set eth0=&quot;dhcp&quot; if you want to use '''DHCP'''<br />
* '''INTERFACES'''=: Specify all interfaces here. Multiple interfaces should be separated with a space as in: (eth0 wlan0)<br />
* '''gateway'''=: If you are using '''static IP''', set the gateway address. If using '''DHCP''', you can usually ignore this variable, though some users have reported the need to define it.<br />
* '''ROUTES'''=: If you are using static '''IP''', remove the '''!''' in front of 'gateway'. If using '''DHCP''', you can usually leave this variable commented out with the bang (!), but again, some users require the gateway and ROUTES defined. If you experience networking issues with pacman, for instance, you may want to return to these variables.<br />
<br />
====== Example, using a dynamically assigned IP address ('''DHCP''') ======<br />
<br />
HOSTNAME=&quot;arch&quot;<br />
#eth0=&quot;eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255&quot;<br />
eth0=&quot;dhcp&quot;<br />
INTERFACES=(eth0)<br />
gateway=&quot;default gw 192.168.0.1&quot;<br />
ROUTES=(!gateway)<br />
<br />
======Example, using a '''static''' IP address======<br />
<br />
HOSTNAME=&quot;arch&quot;<br />
eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"<br />
INTERFACES=(eth0)<br />
gateway="default gw 192.168.0.1"<br />
ROUTES=(gateway)<br />
<br />
Modify {{Filename|/etc/resolv.conf}} to contain the DNS servers of choice. Example:<br />
<br />
search my.isp.net.<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.2<br />
nameserver 4.2.2.3<br />
<br />
Various processes can overwrite the contents of {{filename|/etc/resolv.conf}}. For example, by default Arch Linux uses the '''dhcpcd''' DHCP client, which will overwrite the file when it starts. [[Resolv.conf|Various methods]] may be used to preserve the nameserver settings in {{filename|/etc/resolv.conf}}. For example, dhcpcd's configurations file may be edited to prevent the dhcpcd daemon from overwriting the file. To do this, you will need to modify the {{Filename|/etc/conf.d/dhcpcd}} configuration:<br />
<br />
# Arguments to be passed to the DHCP client daemon<br />
# DHCPCD_ARGS="-q"<br />
DHCPCD_ARGS="-C resolv.conf -q"<br />
<br />
{{tip|If using a non-standard MTU size (a.k.a. jumbo frames) is desired AND the installation machine hardware supports them, see the [[Jumbo Frames]] wiki article for further configuration.}}<br />
<br />
=====DAEMONS Section=====<br />
This array simply lists the names of those scripts contained in /etc/rc.d/ which are to be started during the boot process, and the order in which they start. Asynchronous initialization by backgrounding is also supported and useful for speeding up boot. <br />
DAEMONS=(network @syslog-ng netfs @crond)<br />
*If a script name is prefixed with a bang (!), it is not executed.<br />
*If a script is prefixed with an &quot;at&quot; symbol (@), it shall be executed in the background; the startup sequence will not wait for successful completion of each daemon before continuing to the next. (Useful for speeding up system boot). Do not background daemons that are needed by other daemons. For example "mpd" depends on "network", therefore backgrounding network may cause mpd to break.<br />
*Edit this array whenever new system services are installed, if starting them automatically during boot is desired.<br />
<br />
{{Note | This 'BSD-style' init, is the Arch way of handling what other distributions handle with various symlinks to an /etc/init.d directory.}}<br />
<br />
======About DAEMONS======<br />
The [[daemons]] line need not be changed at this time, but it is useful to explain what daemons are, as they will be addressed later in this guide.<br />
A ''daemon'' is a program that runs in the background, waiting for events to occur and offering services. A good example is a webserver that waits for a request to deliver a page (e.g.:httpd) or an SSH server waiting for a user login (e.g.:sshd). While these are full-featured applications, there are also daemons whose work is not that visible. Examples are a daemon which writes messages into a log file (e.g. syslog, metalog), a daemon which lowers the CPU frequency if the system has nothing to do (e.g.:cpufreq), and a daemon which provides a graphical login (e.g.: gdm, kdm). All these programs can be added to the daemons line and will be started when the system boots. Useful daemons will be presented during this guide.<br />
<br />
Historically, the term ''daemon'' was coined by the programmers of MIT's Project MAC. They took the name from ''Maxwell's demon'', an imaginary being from a famous thought experiment that constantly works in the background, sorting molecules. <tt>UNIX</tt> systems inherited this terminology and created the backronym '''d'''isk '''a'''nd '''e'''xecution '''mon'''itor.<br />
<br />
{{Tip|All Arch daemons reside under /etc/rc.d/}}<br />
<br />
====/etc/fstab====<br />
The '''fstab''' (for '''f'''ile '''s'''ystems '''tab'''le) is part of the system configuration listing all available disks and disk partitions, and indicating how they are to be initialized or otherwise integrated into the overall system's filesystem. The '''/etc/fstab''' file is most commonly used by the '''mount''' command. The mount command takes a filesystem on a device, and adds it to the main system hierarchy that you see when you use your system. '''mount -a''' is called from /etc/rc.sysinit, about 3/4 of the way through the boot process, and reads /etc/fstab to determine which options should be used when mounting the specified devices therein. If '''noauto''' is appended to a filesystem in /etc/fstab, '''mount -a''' will not mount it at boot.<br />
<br />
=====An example /etc/fstab=====<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
#/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0<br />
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0<br />
#/dev/fd0 /media/fl auto user,noauto 0 0<br />
/dev/sda1 / jfs defaults,noatime 0 1<br />
/dev/sda2 /var reiserfs defaults,noatime,notail 0 2<br />
/dev/sda3 swap swap defaults 0 0<br />
/dev/sda4 /home jfs defaults,noatime 0 2<br />
{{Note | The 'noatime' option disables writing read access times to the metadata of files and may safely be appended to / and /home regardless of your specified filesystem type for increased speed, performance, and power efficiency (see [http://kerneltrap.org/node/14148 here] for more). 'notail' disables the ReiserFS tailpacking feature, for added performance at the cost of slightly less efficient disk usage.}}<br />
<br />
* '''<file system>''': describes the block device or remote filesystem to be mounted. For regular mounts, this field will contain a link to a block device node (as created by mknod which is called by udev at boot) for the device to be mounted; for instance, '/dev/cdrom' or '/dev/sda1'. <br />
{{Note | Rather than the sd''x'' naming scheme, you may choose to use UUID, or other persistent block device naming schemes for consistent device mapping. Due to active developments in the kernel and also udev, the ordering in which drivers for storage controllers are loaded may change randomly, yielding an unbootable system/kernel panic. Nearly every motherboard has several controllers (onboard SATA, onboard IDE), and due to the aforementioned development updates, /dev/sda may become /dev/sdb on the next reboot. (See [[Persistent block device naming| this wiki article]] for more information on persistent block device naming. )}}<br />
<br />
* '''<dir>''': describes the mount point for the filesystem. For swap partitions, this field should be specified as 'swap'; (Swap partitions are not actually mounted.)<br />
<br />
* '''<type>''': describes the type of the filesystem. The Linux kernel supports many filesystem types. (For the filesystems currently supported by the running kernel, see /proc/filesystems). An entry 'swap' denotes a file or partition to be used for swapping. An entry 'ignore' causes the line to be ignored. This is useful to show disk partitions which are currently unused.<br />
<br />
* '''<options>''': describes the mount options associated with the filesystem. It is formatted as a comma separated list of options with no intervening spaces. It contains at least the type of mount plus any additional options appropriate to the filesystem type. For documentation on the available options for non-nfs file systems, see mount(8).<br />
<br />
* '''<dump>''': used by the dump(8) command to determine which filesystems are to be dumped. dump is a backup utility. If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be backed up. ''Note that dump is not installed by default.''<br />
<br />
* '''<pass>''': used by the fsck(8) program to determine the order in which filesystem checks are done at boot time. The root filesystem should be specified with a <pass> of 1, and other filesystems should have a <pass> of 2 or 0. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.<br />
<br />
*If you plan on using '''hal''' to automount media such as DVDs, you may wish to comment out the cdrom and dvd entries in preparation for '''hal''', which will be installed later in this guide.<br />
<br />
Expanded information available in the [[Fstab]] wiki entry.<br />
<br />
===='''[[Configuring mkinitcpio | /etc/mkinitcpio]].conf'''====<br />
''Most users will not need to modify this file at this time, but please read the following explanatory information.''<br />
<br />
This file allows further fine-tuning of the initial ram filesystem, or initramfs, (also historically referred to as the initial ramdisk or &quot;initrd&quot;) for your system. The initramfs is a gzipped image that is read by the kernel during boot. The purpose of the initramfs is to bootstrap the system to the point where it can access the root filesystem. This means it has to load any modules that are required for devices like IDE, SCSI, or SATA drives (or USB/FW, if you are booting from a USB/FW drive). Once the initrramfs loads the proper modules, either manually or through udev, it passes control to the kernel and your boot continues. For this reason, the initramfs only needs to contain the modules necessary to access the root filesystem. It does not need to contain every module you would ever want to use. The majority of common kernel modules will be loaded later on by udev, during the init process.<br />
<br />
'''mkinitcpio''' is the next generation of '''initramfs creation'''. It has many advantages over the old '''mkinitrd''' and '''mkinitramfs''' scripts.<br />
<br />
* It uses '''klibc''' and '''kinit''' which are developed by Linux kernel devs to provide a small and lightweight base for early userspace.<br />
* It can use '''udev''' for hardware autodetection at runtime, thus prevents you from having tons of unnecessary modules loaded.<br />
* Its hook-based init script is easily extendable with custom hooks, which can easily be included in pacman packages without having to modifiy mkinitcpio itself.<br />
* It already supports '''lvm2''', '''dm-crypt''' for both legacy and luks volumes, '''raid''', '''swsusp''' and '''suspend2''' resuming and booting from '''usb mass storage''' devices.<br />
* Many features can be configured from the kernel command line without having to rebuild the image.<br />
* The '''mkinitcpio''' script makes it possible to include the image in a kernel, thus making a self-contained kernel image is possible.<br />
* Its flexibility makes recompiling a kernel unnecessary in many cases.<br />
<br />
If using RAID or LVM on the root filesystem, the appropriate HOOKS must be configured. See the wiki pages for [[Installing with Software RAID or LVM| RAID]] and [[Configuring mkinitcpio | /etc/mkinitcpio]] for more info. If using a non-US keyboard. add the "<code>keymap</code>" hook to load your local keymap during boot. Add the "<code>usbinput</code>" hook if using a USB keyboard, e.g.:<br />
HOOKS="base udev autodetect pata scsi sata filesystems keymap usbinput"<br />
(Otherwise, if boot fails for some reason you will be asked to enter root's password for system maintenance but will be unable to do so.)<br />
<br />
If you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, encrypted volumes, or DSDT support, configure your HOOKS accordingly. <br />
<br />
If doing a CF or SD card install, you may need to add the <code>usbinput</code> HOOK for your system to boot properly. <br />
<br />
''If you are using a US keyboard, and have no need for any of the above HOOKS, editing this configuration should be unnecessary at this point.''<br />
<br />
'''mkinitcpio''' is an Arch innovation developed by Aaron Griffin and Tobias Powalowski with some help from the community.<br />
<br />
==== /etc/modprobe.d/modprobe.conf====<br />
<br />
This file can be used to set special configuration options for the kernel modules. It is unnecessary to configure this file at this time.<br />
<br />
====/etc/resolv.conf (for Static IP)====<br />
The ''resolver'' is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). One of the main functions of DNS is to translate domain names into IP addresses, to make the Web a friendlier place. The resolver configuration file, or /etc/resolv.conf, contains information that is read by the resolver routines the first time they are invoked by a process.<br />
<br />
*''If you are using DHCP, you may safely ignore this file, as by default, it will be dynamically created and destroyed by the dhcpcd daemon. You may change this default behavior if you wish. (See [http://wiki.archlinux.org/index.php/Network#For_DHCP_IP Network]]).''<br />
<br />
If you use a static IP, set your DNS servers in /etc/resolv.conf (nameserver <ip-address>). You may have as many as you wish.<br />
An example, using OpenDNS:<br />
nameserver 208.67.222.222<br />
nameserver 208.67.220.220<br />
<br />
If you are using a router, you will probably want to specify your DNS servers in the router itself, and merely point to it from your '''/etc/resolv.conf''', using your router's IP (which is also your gateway from '''/etc/rc.conf'''), e.g.:<br />
nameserver 192.168.1.1<br />
<br />
If using '''DHCP''', you may also specify your DNS servers in the router, or allow automatic assignment from your ISP, if your ISP is so equipped.<br />
<br />
====/etc/hosts====<br />
This file associates IP addresses with hostnames and aliases, one line per IP address. For each host a single line should be present with the following information:<br />
<IP-address> <hostname> [aliases...]<br />
Add your ''hostname'', coinciding with the one specified in /etc/rc.conf, as an alias, so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost '''''yourhostname'''''<br />
{{Note |''This format, '''including the 'localhost' and your actual host name''', is required for program compatibility! So, if you have named your computer Archhost, then that line above should look like this:<br />
127.0.0.1 localhost.localdomain localhost Archhost<br />
Errors in this entry may cause poor network performance and/or certain programs to open very slowly, or not work at all. This is a very common error for beginners.''}}<br />
<br />
If you use a static IP, add another line using the syntax: <static-IP> <hostname.domainname.org> <hostname> e.g.:<br />
192.168.1.100 '''''yourhostname'''''.domain.org '''''yourhostname'''''<br />
<br />
{{Tip|For convenience, you may also use /etc/hosts aliases for hosts on your network, and/or on the Web, e.g.:<br />
64.233.169.103 www.google.com g<br />
192.168.1.90 media<br />
192.168.1.88 data<br />
The above example would allow you to access google simply by typing 'g' into your browser, and access to a media and data server on your network by name and without the need for typing out their respective IP addresses.}}<br />
<br />
====/etc/hosts.deny and /etc/hosts.allow====<br />
Modify these configurations according to your needs if you plan on using the [[SSH|ssh]] daemon. The default configuration will reject all incoming connections, not only ssh connections. Edit your '''/etc/hosts.allow '''file and add the appropriate parameters: <br />
<br />
* let everyone connect to you<br />
sshd: ALL<br />
<br />
* restrict it to a certain ip<br />
sshd: 192.168.0.1<br />
<br />
* restrict it to your local LAN network (range 192.168.0.0 to 192.168.0.255)<br />
sshd: 192.168.0.<br />
<br />
* OR restrict for an IP range<br />
sshd: 10.0.0.0/255.255.255.0<br />
<br />
If you do not plan on using the [[SSH|ssh]] daemon, leave this file at the default, (empty), for added security.<br />
<br />
====/etc/locale.gen====<br />
The '''/usr/sbin/locale-gen''' command reads from '''/etc/locale.gen''' to generate specific locales. They can then be used by '''glibc''' and any other locale-aware program or library for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards. The ability to setup a default locale is a great built-in privilege of using a <tt>UNIX</tt>-like operating system.<br />
<br />
By default /etc/locale.gen is an empty file with commented documentation. Once edited, the file remains untouched. '''locale-gen''' runs on every '''glibc''' upgrade, generating all the locales specified in /etc/locale.gen.<br />
<br />
Choose the locale(s) you need (remove the # in front of the lines you want), e.g.:<br />
en_US ISO-8859-1<br />
en_US.UTF-8 <br />
<br />
The installer will now run the locale-gen script, which will generate the locales you specified. You may change your locale in the future by editing /etc/locale.gen and subsequently running 'locale-gen' as root.<br />
<br />
{{Note |'''''If you fail to choose your locale, this will lead to a &quot;The current locale is invalid...&quot; error. This is perhaps the most common mistake by new Arch users, and also leads to the most commonly asked questions on the forum.'''''}}<br />
<br />
====Pacman-Mirror====<br />
Choose a mirror repository for '''pacman'''. <br />
*''archlinux.org is throttled, limiting downloads to 50KB/s''<br />
<br />
====Root password====<br />
Finally, set a root password and make sure that you remember it later. Return to the main menu and continue with installing bootloader.<br />
<br />
===G: Install Bootloader===<br />
Because we have no secondary operating system in our example, we will need a bootloader. [http://www.gnu.org/software/grub/ GNU GRUB] is the recommended bootloader. Alternatively, you may choose [http://lilo.go.dyndns.org/ LILO].<br />
<br />
====GRUB====<br />
The provided '''GRUB''' configuration ('''/boot/grub/menu.lst''') should be sufficient, but verify its contents to ensure accuracy (specifically, ensure that the root (/) partition is specified by UUID on line 3). You may want to alter the resolution of the console by adding a vga=<number> kernel argument corresponding to your desired virtual console resolution. (A table of resolutions and the corresponding numbers is printed in the menu.lst.)<br />
<br />
Example: <br />
title Arch Linux (Main)<br />
root (hd0,0) <br />
kernel /boot/vmlinuz26 root=/dev/sda1 ro vga=773<br />
initrd /boot/kernel26.img<br />
{{Note | ''The linux kernel, 'vmlinuz', is so named because it incorporated '''v'''irtual '''m'''emory capability early in its development. The '''z''' denotes a zipped (compressed) image.''}}<br />
<br />
Explanation:<br />
<br />
Line 1: '''title''': A printed menu selection. &quot;Arch Linux (Main)&quot; will be printed on the screen as a menu selection.<br />
<br />
Line 2: '''root''': '''GRUB''''s root; the drive and partition where the kernel (/boot) resides, according to system BIOS. (More accurately, where GRUB's stage2 file resides). '''NOT necessarily the root''' (/) file system, as they can reside on separate partitions. GRUB's numbering scheme starts at 0, and uses an hd''x,x'' format regardless of IDE or SATA, and enclosed within parentheses. <br />
<br />
The example indicates that /boot is on the first partition of the first drive, according to BIOS, or, (hd0,0).<br />
<br />
Line 3: '''kernel''': This line specifies:<br />
<br />
* The path and filename of the kernel '''''relative to GRUB's root'''''.<br />
In the example, /boot is merely a directory residing on the same partition as / and '''vmlinuz26''' is the kernel filename; '''/boot/vmlinuz26'''. ''If /boot were on a separate partition, the path and filename would be simply '''/vmlinuz26''', being relative to '''GRUB''''s root.'' <br />
<br />
* The root= argument to the kernel statement specifies the partition containing the root (/) directory in the booted system, (more accurately, the partition containing '''/sbin/init'''). <br />
<br />
*An easy way to distinguish the 2 appearances of 'root' in /boot/grub/menu.lst is to remember that the first root statement ''informs GRUB where the kernel resides'', whereas the second root= kernel argument ''tells the kernel where the root filesystem (/) resides''.<br />
<br />
* Kernel options. <br />
<br />
In our example, '''ro''' mounts the filesystem as read only during startup, (usually a safe default; you may wish to change this in case it causes problems booting) and the '''&quot;vga=773&quot;''' argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Line 4: '''initrd''': (For Initial RAM disk) The path and filename of the initial RAM filesystem '''relative to GRUB''''s root. Again, in the example, /boot is merely a directory residing on the same partition as / and '''kernel26.img''' is the initrd filename; '''/boot/kernel26.img'''. ''If /boot were on a separate partition, the path and filename would be simply '''/kernel26.img''', being relative to '''GRUB''''s root.'' <br />
<br />
Install the '''GRUB''' bootloader (to the master boot record, sda in our example).<br />
{{tip|For more details, see the [[GRUB]] wiki page.}}<br />
<br />
===H: Reboot===<br />
That's it; You have configured and installed your Arch Linux base system. Exit the install, and reboot:<br />
# reboot<br />
(Be sure to remove the installer CD)<br />
<br />
==Part II: Configure & Update the New Arch Linux base system==<br />
Your new Arch Linux system will boot up and finish with a login prompt (you may want to change the boot order in your '''BIOS''' back to booting from hard disk).<br />
<br />
'''Congratulations, and welcome to your new Arch Linux base system!'''<br />
<br />
Your new Arch Linux base system is now a functional GNU/Linux environment ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes. <br />
<br />
Login with the root account. We will configure pacman and update the system as root, then add a normal user. <br />
{{Note |Virtual consoles 1-6 are available. You may switch between them with ALT+F1...F6}}<br />
<br />
===Step 1: Configuring the network (if necessary)===<br />
*''This section will assist you in configuring most types of networks, if your network configuration is not working for you.''<br />
<br />
If you properly configured your system, you should have a working network. Try to ping www.google.com to verify this.<br />
# ping -c 3 www.google.com<br />
<br />
''If you have successfully established a network connection, continue with '''[[#Step 2: Update, Sync, and Upgrade the system with pacman|Update, Sync, and Upgrade the system with pacman]]'''.''<br />
<br />
If, after trying to ping www.google.com, an &quot;unknown host&quot; error is received, you may conclude that your network is not properly configured. You may choose to double-check the following files for integrity and proper settings:<br />
<br />
'''/etc/rc.conf''' # Specifically, check your HOSTNAME= and NETWORKING section for typos and errors.<br />
<br />
'''/etc/hosts''' # Double-check your format. (See above.)<br />
<br />
'''/etc/resolv.conf''' # If you are using a static IP. If you are using DHCP, this file will be dynamically created and destroyed by default, but can be changed to your preference. (See [[Network]].)<br />
<br />
{{Tip|Advanced instructions for configuring the network can be found in the [[Network]] article.}}<br />
<br />
====Wired LAN====<br />
<br />
Check your Ethernet with<br />
# ifconfig -a<br />
All interfaces will be listed. You should see an entry for eth0, or perhaps eth1. <br />
*'''Static IP'''<br />
<br />
If required, you can set a new static IP with:<br />
# ifconfig eth0 <ip address> netmask <netmask> up <br />
and the default gateway with<br />
# route add default gw <ip address of the gateway><br />
Verify that /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.com. If everything is working now, adjust /etc/rc.conf as described above for static IP. <br />
*'''DHCP'''<br />
If you have a DHCP server/router in your network try:<br />
# dhcpcd eth0<br />
If this is working, adjust /etc/rc.conf as described above, for dynamic IP.<br />
<br />
====Wireless LAN====<br />
* Ensure the driver has created a usable interface:<br />
# iwconfig<br />
* Bring the interface up with <code>ifconfig <interface> up</code>. e.g.:<br />
# ifconfig wlan0 up<br />
* (Optional) Scan for available access points:<br />
# iwlist wlan0 scan | less<br />
* Specify the id of the wireless network with <code>iwconfig <interface> essid <youressid></code>. Or, if using WEP; <code>iwconfig <interface> essid <youressid> key <yourwepkey></code>, e.g.:<br />
# iwconfig wlan0 essid "linksys" key ABCDEF01234<br />
* Request an IP address with <code>dhcpcd <interface></code>. e.g.:<br />
# dhcpcd wlan0<br />
* Ensure you can route:<br />
$ ping -c 3 www.google.com<br />
Done.<br />
<br />
Detailed setup guide: [[Wireless Setup]]<br />
<br />
====Analog Modem====<br />
To be able to use a Hayes-compatible, external, analog modem, you need to at least have the ppp package installed. Modify the file /etc/ppp/options to suit your needs and according to man pppd. You will need to define a chat script to supply your username and password to the ISP after the initial connection has been established. The manpages for pppd and chat have examples in them that should suffice to get a connection up and running if you're either experienced or stubborn enough. With udev, your serial ports usually are /dev/tts/0 and /dev/tts/1.<br />
Tip: Read [[Dialup without a dialer HOWTO]].<br />
<br />
Instead of fighting a glorious battle with the plain pppd, you may opt to install wvdial or a similar tool to ease the setup process considerably. In case you're using a so-called WinModem, which is basically a PCI plugin card working as an internal analog modem, you should indulge in the vast information found on the [http://www.linmodems.org/ LinModem] homepage.<br />
<br />
====ISDN====<br />
<br />
Setting up ISDN is done in three steps:<br />
# Install and configure hardware<br />
# Install and configure the ISDN utilities<br />
# Add settings for your ISP <br />
<br />
The current Arch stock kernels include the necessary ISDN modules, meaning that you will not need to recompile your kernel unless you're about to use rather odd ISDN hardware. After physically installing your ISDN card in your machine or plugging in your USB ISDN-Box, you can try loading the modules with modprobe. Nearly all passive ISDN PCI cards are handled by the hisax module, which needs two parameters: type and protocol. You must set protocol to '1' if your country uses the 1TR6 standard, '2' if it uses EuroISDN (EDSS1), '3' if you're hooked to a so-called leased-line without D-channel, and '4' for US NI1.<br />
<br />
Details on all those settings and how to set them is included in the kernel documentation, more specifically in the isdn subdirectory, and available online. The type parameter depends on your card; a list of all possible types can be found in the README.HiSax kernel documentation. Choose your card and load the module with the appropriate options like this:<br />
<br />
# modprobe hisax type=18 protocol=2<br />
<br />
This will load the hisax module for my ELSA Quickstep 1000PCI, being used in Germany with the EDSS1 protocol. You should find helpful debugging output in your /var/log/everything.log file, in which you should see your card being prepared for action. Please note that you will probably need to load some USB modules before you can work with an external USB ISDN Adapter.<br />
<br />
Once you have confirmed that your card works with certain settings, you can add the module options to your /etc/modprobe.conf:<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Alternatively, you can add only the options line here, and add hisax to your MODULES array in the rc.conf. It's your choice, really, but this example has the advantage that the module will not be loaded until it's really needed.<br />
<br />
That being done, you should have working, supported hardware. Now you need the basic utilities to actually use it!<br />
<br />
Install the isdn4k-utils package, and read the manpage to isdnctrl; it'll get you started. Further down in the manpage you will find explanations on how to create a configuration file that can be parsed by isdnctrl, as well as some helpful setup examples. Please note that you have to add your SPID to your MSN setting separated by a colon if you use US NI1.<br />
<br />
After you have configured your ISDN card with the isdnctrl utility, you should be able to dial into the machine you specified with the PHONE_OUT parameter, but fail the username and password authentication. To make this work add your username and password to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets as if you were configuring a normal analogous PPP link, depending on which protocol your ISP uses for authentication. If in doubt, put your data into both files.<br />
<br />
If you set up everything correctly, you should now be able to establish a dial-up connection with<br />
# isdnctrl dial ippp0<br />
as root. If you have any problems, remember to check the logfiles!<br />
<br />
====DSL (PPPoE)====<br />
<br />
These instructions are relevant to you only if your PC itself is supposed to manage the connection to your ISP. You do not need to do anything but define a correct default gateway if you are using a separate router of some sort to do the grunt work.<br />
<br />
Before you can use your DSL online connection, you will have to physically install the network card that is supposed to be connected to the DSL-Modem into your computer. After adding your newly installed network card to the modules.conf/modprobe.conf or the MODULES array, you should install the rp-pppoe package and run the pppoe-setup script to configure your connection. After you have entered all the data, you can connect and disconnect your line with<br />
<br />
# /etc/rc.d/adsl start<br />
<br />
and<br />
<br />
# /etc/rc.d/adsl stop<br />
<br />
respectively. The setup usually is rather easy and straightforward, but feel free to read the manpages for hints. If you want to automatically 'dial in' at boot, add adsl to your DAEMONS array, and put a ! before the network entry, since the network is handled by adsl now.<br />
<br />
===Step 2: Update, Sync, and Upgrade the system with [[pacman]]===<br />
Now we will update the system using [[pacman]]. <br />
<br />
====What is pacman ?====<br />
[[Pacman]] is the '''pac'''kage '''man'''ager of Arch Linux. Pacman is written in ''C'' and is designed from the ground up to be lightweight with a very modest memory footprint, fast, simple, and versatile. It manages your entire package system and handles installation, removal, package downgrade (through cache), custom compiled package handling, automatic dependency resolution, remote and local searches and much more. Pacman's output is streamlined, very readable and provides ETA for each package download. Arch uses the .tar.gz package format, which further enhances pacman's speed; Gzipped tarballs, though slightly larger, are decompressed many times faster than their Bzipped counterparts, and are therefore installed much more expediently. <br />
<br />
We will use pacman to download software packages from remote repositories and install them onto your system.<br />
<br />
Pacman is the most important tool in your Arch Linux toolbox for building the base system into whatsoever you please.<br />
<br />
====Package Repositories and /etc/pacman.conf====<br />
Arch currently offers the following 4 repositories readily accessible through pacman:<br />
<br />
'''[core]'''<br />
<br />
The simple principle behind [core] is to provide only one of each necessary tool for a base Arch Linux system; The GNU toolchain, the Linux kernel, one editor, one command line browser, etc. (There are a few exceptions to this. For instance, both vi and nano are provided, allowing the user to choose one or both.) It contains all the packages that MUST be in perfect working order to ensure the system remains in a usable state. These are the absolute system-critical packages. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible <br />
*''The Core installation media simply contains an installer script, and a snapshot of the core repository at the time of release.''<br />
<br />
'''[extra]'''<br />
<br />
The [extra] repository contains all Arch packages that are not themselves necessary for a base Arch system, but contribute to a more full-featured environment. '''X''', KDE, and Apache, for instance, can be found here. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible<br />
'''[testing]'''<br />
<br />
The [testing] repository contains packages that are candidates for the [core] or [extra] repositories. New packages go into [testing] if:<br />
<br />
<nowiki>*</nowiki> they are expected to break something on update and need to be tested first.<br />
<br />
<nowiki>*</nowiki> they require other packages to be rebuilt. In this case, all packages that need to be rebuilt are put into [testing] first and when all rebuilds are done, they are moved back to the other repositories. <br />
* Developer maintained<br />
* All binary packages<br />
* pacman accessible<br />
{{Note|[testing] is the only repository that can have name collisions with any of the other official repositories. Therefore, if enabled, [testing] must be the first repo listed in <code>pacman.conf</code>.}}<br />
<br />
{{Warning|Only experienced users should use [testing].}}<br />
<br />
'''[community]'''<br />
<br />
The [community] repository is maintained by the ''Trusted Users (TUs)'' and is simply the binary branch of the ''Arch User Repository ([[AUR]])''. It contains binary packages which originated as PKGBUILDs from ''AUR'' [unsupported] that have acquired enough votes and were adopted by a ''TU''. Like all repos listed above, [community] may be readily accessed by pacman.<br />
* TU maintained<br />
* All binary packages<br />
* pacman accessible<br />
<br />
'''AUR (unsupported)'''<br />
<br />
The '''[[AUR]]''' also contains the '''unsupported''' branch, which cannot be accessed directly by pacman*. '''AUR''' [unsupported] does not contain binary packages. Rather, it provides more than sixteen thousand PKGBUILD scripts for building packages from source, that may be unavailable through the other repos. When an AUR unsupported package acquires enough popular votes, it may be moved to the AUR [community] binary repo, if a TU is willing to adopt and maintain it there.<br />
* TU maintained<br />
* All PKGBUILD bash build scripts<br />
* '''''Not''''' pacman accessible by default<br />
<br />
<nowiki>*</nowiki> pacman wrappers ('''''[[AUR Helpers]]''''') can help you seamlessly access AUR.<br />
<br />
'''/etc/pacman.conf'''<br />
<br />
pacman will attempt to read /etc/pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package [[Official Repositories|repository]] that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
<br />
Note that the defaults should work, so modifying at this point may be unnecessary, but verification is always recommended. Further info available in the [[Mirrors]] article.<br />
# nano /etc/pacman.conf<br />
Example:<br />
#<br />
# /etc/pacman.conf<br />
#<br />
# See the pacman.conf(5) manpage for option and repository directives<br />
<br />
#<br />
# GENERAL OPTIONS<br />
#<br />
[options]<br />
# The following paths are commented out with their default values listed.<br />
# If you wish to use different paths, uncomment and update the paths.<br />
#RootDir = /<br />
#DBPath = /var/lib/pacman/<br />
#CacheDir = /var/cache/pacman/pkg/<br />
#LogFile = /var/log/pacman.log<br />
HoldPkg = pacman glibc<br />
# If upgrades are available for these packages they will be asked for first<br />
SyncFirst = pacman<br />
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
#XferCommand = /usr/bin/curl %u > %o<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
#IgnorePkg =<br />
#IgnoreGroup =<br />
<br />
#NoUpgrade =<br />
#NoExtract =<br />
<br />
# Misc options (all disabled by default)<br />
#NoPassiveFtp<br />
#UseSyslog<br />
#ShowSize<br />
#UseDelta<br />
#TotalDownload<br />
#<br />
# REPOSITORIES<br />
# - can be defined here or included from another file<br />
# - pacman will search repositories in the order defined here<br />
# - local/custom mirrors can be added here or in separate files<br />
# - repositories listed first will take precedence when packages<br />
# have identical names, regardless of version number<br />
# - URLs will have $repo replaced by the name of the current repo<br />
#<br />
# Repository entries are of the format:<br />
# [repo-name]<br />
# Server = ServerName<br />
# Include = IncludePath<br />
#<br />
# The header [repo-name] is crucial - it must be present and<br />
# uncommented to enable the repo.<br />
# <br />
<br />
# Testing is disabled by default. To enable, uncomment the following<br />
# two lines. You can add preferred servers immediately after the header,<br />
# and they will be used before the default mirrors.<br />
#[testing]<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist <br />
<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#Server = file:///home/custompkgs<br />
<br />
Enable all desired repositories (remove the # in front of the 'Include =' and '[repository]' lines).<br />
<br />
<br />
*'''''When choosing repos, be sure to uncomment both the repository header lines in [brackets] as well as the 'Include =' lines. Failure to do so will result in the selected repository being omitted! This is a very common error.'' '''<br />
<br />
====/etc/pacman.d/mirrorlist ====<br />
Defines pacman repo mirrors and priorities.<br />
<br />
'''Build a mirrorlist using the rankmirrors script'''<br />
<br />
<code>/usr/bin/rankmirrors</code> is a python script which will attempt to detect the mirrors which are closest to the installation machine based on the mirrors specified in /etc/pacman.d/mirrorlist. Faster mirrors will dramatically improve pacman performance, and the overall Arch Linux experience. This script may be run periodically, especially if the chosen mirrors provide inconsistent throughput and/or updates.<br />
<br />
First, use pacman to install python:<br />
# pacman -S python <br />
<br />
*'''''If you get an error at this step, use the command "nano /etc/pacman.d/mirrorlist" and uncomment a server that suits you.'' ''<br />
<br />
'''cd''' to the /etc/pacman.d/ directory:<br />
# cd /etc/pacman.d<br />
Backup the existing /etc/pacman.d/mirrorlist:<br />
# cp mirrorlist mirrorlist.backup<br />
Edit mirrorlist.backup and uncomment all mirrors on the same continent or within geographical proximity to test with rankmirrors.<br />
# nano mirrorlist.backup<br />
Run the script against the mirrorlist.backup with the -n switch and redirect output to a new /etc/pacman.d/mirrorlist file:<br />
# rankmirrors -n 6 mirrorlist.backup > mirrorlist<br />
'''-n 6''': rank the 6 fastest mirrors<br />
<br />
'''Force pacman to refresh the package lists'''<br />
<br />
After creating/editing /etc/pacman.d/mirrorlist, (manually or by <code>/usr/bin/rankmirrors</code>) issue the following command:<br />
# pacman -Syy<br />
Passing two --refresh or -y flags forces pacman to refresh all package lists even if they are considered to be up to date. Issuing pacman -Syy ''whenever a mirror is changed'', is good practice and will avoid possible headaches.<br />
<br />
====Mirrorcheck for up-to-date packages====<br />
Some of the official mirrors may contain packages that are out-of-date. [http://users.archlinux.de/~gerbra/mirrorcheck.html ArchLinux Mirrorcheck] reports various aspects about the mirrors such as, those experiencing network problems, data collection problems, reports the last time they have been synced, etc.<br />
<br />
One may wish to manually inspect the mirrors in the /etc/pacman.d/mirrorlist insuring that it only contains up-to-date mirrors if having the latest package versions is a priority.<br />
<br />
====Ignoring packages====<br />
After executing the command &quot;pacman -Syu&quot;, the entire system will be updated. It is possible to prevent a package from being upgraded. A typical scenario would be a package for which an upgrade may prove problematic for the system. In this case, there are two options; indicate the package(s) to skip in the pacman command line using the --ignore switch (do pacman -S --help for details) or permanently indicate the package(s) to skip in the /etc/pacman.conf file in the IgnorePkg array. List each package, with one intervening space :<br />
IgnorePkg = wine <br />
The typical way to use Arch is to use pacman to install all packages unless there is no package available, in which case [[ABS]] may be used. Many user-contributed package build scripts are also available in the [[AUR]]. <br />
<br />
The power user is expected to keep the system up to date with pacman -Syu, rather than selectively upgrading packages. You may diverge from this typical usage as you wish; just be warned that there is a greater chance that things will not work as intended and that it could break your system. The majority of complaints happen when selective upgrading, unusual compilation or improper software installation is performed. Use of '''IgnorePkg''' in /etc/pacman.conf is therefore discouraged, and should only be used sparingly, if you know what you are doing.<br />
<br />
====Ignoring Configuration Files====<br />
In the same vein, you can also &quot;protect&quot; your configuration/system files from being overwritten during &quot;pacman -Su&quot; using the following option in your /etc/pacman.conf<br />
<br />
NoUpgrade = etc/lilo.conf boot/grub/menu.lst<br />
<br />
====Get familiar with pacman====<br />
pacman is the Arch user's best friend. It is highly recommended to study and learn how to use the pacman(8) tool. Try:<br />
$ man pacman<br />
<br />
For more information,please look up the [[pacman]] wiki entries at your leisure.<br />
<br />
====Powerpill, a pacman wrapper script====<br />
Before you continue, consider installing Xyne's powerpill (now in [community]) which is a pacman wrapper script that speeds up package retrieval by using aria2c (an external download helper) for concurrent/segmented downloads. In other words, powerpill pulls packages in parallel effectively speeding up your downloads. This is particularly advantageous on new installs when pulling down hundreds of megs of packages.<br />
<br />
# pacman -S powerpill<br />
<br />
Treat powerpill as pacman as you consider installations, for example, the following will update your system:<br />
<br />
# powerpill -Syu<br />
<br />
See the [[Powerpill]] wiki article for more.<br />
<br />
===Step 3: Update System===<br />
You are now ready to upgrade your entire system. Before you do, read through the [http://www.archlinux.org/news/ news] (and optionally the [http://archlinux.org/pipermail/arch-announce/ announce mailing list]). Often the developers will provide important information about required configurations and modifications for known issues. Consulting these pages before any upgrade is good practice. <br />
<br />
Sync, refresh, and upgrade your entire new system with:<br />
# pacman -Syu<br />
or:<br />
# pacman --sync --refresh --sysupgrade<br />
<br />
pacman will now download a fresh copy of the master package list from the server(s) defined in pacman.conf(5) and perform all available upgrades. (You may be prompted to upgrade pacman itself at this point. If so, say yes, and then reissue the pacman -Syu command when finished.) <br />
<br />
Reboot if a kernel upgrade has occurred. <br />
<br />
{{Note|Occasionally, configuration changes may take place requiring user action during an update; read pacman's output for any pertinent information.}}<br />
<br />
Pacman output is saved in /var/log/pacman.log.<br />
<br />
See [[Package_Management_FAQs|Package Management FAQs]] for answers to frequently asked questions regarding updating and managing your packages.<br />
<br />
=====The Arch rolling release model=====<br />
Keep in mind that Arch is a '''rolling release''' distribution. This means there is never a reason to reinstall or perform elaborate system rebuilds to upgrade to the newest version. Simply issuing '''pacman -Syu''' periodically keeps your entire system up-to-date and on the bleeding edge. At the end of this upgrade, your system is completely current. '''Reboot''' if a kernel upgrade has occurred.<br />
=====Network Time Protocol=====<br />
You may wish to set the system time now using OpenNTPD to sync the local clock to remote NTP servers. OpenNTPD may also be added to the DAEMONS= array in /etc/rc.conf to provide this service at each boot. (See the [[Network Time Protocol]] article.)<br />
<br />
===Step 4: Add a user and setup groups===<br />
<tt>UNIX</tt> is a multi-user environment. You should not do your everyday work using the root account. It is more than poor practice; it is dangerous. Root is for administrative tasks. Instead, add a normal, non-root user account using the <code>/usr/sbin/useradd</code> program:<br />
# useradd -m -G [groups] -s [login_shell] [username] <br />
* '''-m''' Creates user home directory as /home/'''username'''. Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories shall contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. (To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch.) If there is a conflict between ''user'' (under /home/username) and ''global'' configuration files, (usually under /etc/) the settings in the ''user'' file will prevail. Dotfiles likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside.<br />
* '''-G''' A list of supplementary groups which the user is also a member of. ''Each group is separated from the next by a comma, with no intervening spaces''. The default is for the user to belong only to the initial group (users). <br />
* '''-s''' The path and filename of the user´s default login shell.<br />
Useful groups for your non-root user include:<br />
*'''audio''' - for tasks involving sound card and related software<br />
*'''floppy''' - for access to a floppy if applicable<br />
*'''lp''' - for managing printing tasks<br />
*'''optical''' - for managing tasks pertaining to the optical drive(s)<br />
*'''storage''' - for managing storage devices<br />
*'''video''' - for video tasks and hardware acceleration<br />
*'''wheel''' - for using sudo<br />
*'''power''' - used w/ power options (e.g.: shutdown with power button) <br />
A typical desktop system example, adding a user named &quot;archie&quot; specifying bash as the login shell:<br />
# useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash archie<br />
Next, add a password for your new user using <code>/usr/bin/passwd</code>.<br />
<br />
An example for our user, 'archie':<br />
# passwd archie<br />
(You will be prompted to provide the new <tt>UNIX</tt> password.)<br />
<br />
Your new non-root user has now been created, complete with a home directory and a login password.<br />
<br />
'''Alternative method, using <code>/usr/sbin/adduser</code>:'''<br />
<br />
Alternatively, you may use <code>adduser</code>, an interactive user adding program which will prompt you for the above data ''(recommended for beginners)'':<br />
# adduser<br />
'''Deleting the user account:'''<br />
<br />
In the event of error, or if you wish to delete this user account in favor of a different name or for any other reason, use <code>/usr/sbin/userdel</code>:<br />
# userdel -r [username]<br />
* '''-r ''' Files in the user´s home directory will be removed along with the home directory itself and the user´s mail spool.<br />
<br />
If you want to change the name of your user or any existing user, see the [[Change username]] page of the Arch wiki and/or the [[Groups]] and [[User Management]] articles for further information. You may also check the man pages for <code>usermod(8)</code> and <code>gpasswd(8)</code>.<br />
<br />
===Step 5: Install and setup Sudo (Optional)===<br />
There has been a recent update to the vi packages since the latest installation media (2009.08) was created. Therefore, before installing sudo, use the following command to remove the incompatible files:<br />
# rm /usr/bin/{view,rview}<br />
Install Sudo and vim:<br />
# pacman -S sudo vim<br />
To add a user as a sudo user (a &quot;sudoer&quot;), the visudo command must be run as root. If you do not know how to use vi, you may set the EDITOR environment variable to the editor of your choice before running visudo. e.g.:<br />
# EDITOR=nano visudo<br />
If you are comfortable using vi, issue the visudo command without the EDITOR=nano variable:<br />
# visudo<br />
This will open the file /etc/sudoers in a special session of vi. visudo copies the file to be edited to a temporary file, edits it with an editor, (vi by default), and subsequently runs a sanity check. If it passes, the temporary file overwrites the original with the correct permissions. <br />
<br />
{{Warning|Do not edit /etc/sudoers directly with an editor; Errors in syntax can cause annoyances (like rendering the root account unusable). You must use the ''visudo'' command to edit /etc/sudoers.}}<br />
<br />
To give the user full root privileges when he/she precedes a command with &quot;sudo&quot;, add the following line:<br />
USER_NAME ALL=(ALL) ALL<br />
where USER_NAME is the username of the individual.<br />
<br />
For more information, such as sudoer <TAB> completion, see [[Sudo]]<br />
<br />
==Part III: Install X and configure ALSA==<br />
<br />
<br />
===Step 1: Configure sound with alsamixer===<br />
The Advanced Linux Sound Architecture (known by the acronym '''ALSA''') is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing device drivers for sound cards. Besides the sound device drivers, '''ALSA''' also bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers.<br />
{{Note| Alsa is included in the Arch mainline kernel and udev will automatically probe your hardware at boot, loading the corresponding kernel module for your audio card. Therefore, your sound should already be working, but upstream sources mute all channels by default.}}<br />
{{Note| OSS4.1 has been released under a free license and is generally considered a significant improvement over older OSS versions. If you have issues with ALSA, or simply wish to explore another option, you may choose OSS4.1 instead. Instructions can be found in [[OSS]]}} <br />
<br />
The alsa-utils package contains the alsamixer userspace tool, which allows configuration of the sound device from the console or terminal.<br />
<br />
By default the upstream kernel sources ship with snd_pcsp, the alsa pc speaker module. snd_pcsp is usually loaded before your &quot;actual&quot; sound card module. In most cases, it will be more convenient if this module is loaded last, as it will allow alsamixer to correctly control the desired sound card.<br />
<br />
To have snd_pcsp load last, add the following to /etc/modprobe.d/modprobe.conf:<br />
options snd-pcsp index=2<br />
<br />
Alternatively, if you do not want snd_pcsp to load at all, blacklist it by adding the following to /etc/rc.conf:<br />
MODULES=(... !snd_pcsp)<br />
<br />
{{Note | You will need to unload all your sound modules and reload them for the changes to take effect. It might be easier to reboot. Your choice. }}<br />
<br />
Install the alsa-utils package:<br />
# pacman -S alsa-utils<br />
Also, you may want to install the alsa-oss package, which wraps applications written for [[OSS]] in a compatibility library, allowing them to work with [[ALSA]]. To install the alsa-oss package:<br />
# pacman -S alsa-oss <br />
Did you add your normal user to the audio group? If not, use <code>/usr/bin/gpasswd</code>. As root do:<br />
# gpasswd -a ''yourusername'' audio<br />
As '''''normal, non-root''''' user, invoke <code>/usr/bin/alsamixer</code>:<br />
# su - ''yourusername'' <br />
'''$''' alsamixer<br />
Unmute the Master and PCM channels by scrolling to them with cursor left/right and pressing '''M'''. Increase the volume levels with the cursor-up key. (70-90 Should be a safe range.) Some machines, (like the Thinkpad T61), have a '''Speaker''' channel which must be unmuted and adjusted as well. Leave alsamixer by pressing ESC. <br />
==== Sound test ====<br />
Ensure your speakers are properly connected, and test your sound configuration as normal user using <code>/usr/bin/aplay</code>:<br />
$ aplay /usr/share/sounds/alsa/Front_Center.wav<br />
You should hear a very eloquent woman say, &quot;Front, center.&quot;<br />
==== Saving the Sound Settings ====<br />
Exit your normal user shell and run <code>/usr/sbin/alsactl</code> as root:<br />
$ exit<br />
# alsactl store<br />
This will create the file '/etc/asound.state', saving the alsamixer settings. <br />
<br />
Also, add the alsa ''daemon'' to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings at boot.<br />
# nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond '''alsa''')<br />
''Note that the alsa daemon merely restores your volume mixer levels on boot up by reading /etc/asound.state. It is separate from the alsa audio library (and kernel level API).''<br />
<br />
Expanded information available in the [[ALSA]] wiki entry.<br />
<br />
===Step 2: Install X===<br />
The '''X''' Window System version 11 (commonly '''X11''', or just simply '''X''') is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on <tt>UNIX</tt>-like operating systems.<br />
<br />
'''X''' provides the basic framework, or primitives, for building GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard. '''X''' does not mandate the user interface — individual client programs handle this. <br />
<br />
'''X''' is so named because it was preceded by the '''W''' Window System, originally developed at Stanford University. <br />
<br />
====A: The <code>X-Files</code>====<br />
Now we will install the base '''[[Xorg]]''' packages using pacman. This is the first step in building a GUI.<br />
If you plan on using an '''open-source''' video driver, and need 3d acceleration, install the libgl library before installing Xorg:<br />
# pacman -S libgl<br />
''(Proprietary video drivers provide their own gl library implementations.)''<br />
<br />
Install the base packages:<br />
# pacman -S xorg<br />
The 3d utilities glxgears and glxinfo are included in the '''mesa''' package:<br />
# pacman -S mesa<br />
<br />
====B: Install Video Driver Package====<br />
Now we have the base packages we need for running the '''X''' Server. You should add the driver for your graphics card now (e.g. xf86-video-<name>). The easiest way to configure X.org is by installing the correct driver packages first, and then generating /etc/X11/xorg.conf using an autoconfiguration script, like Xorg -configure.<br />
<br />
You will need knowledge of which video chipset your machine has. If you do not know, use the <code>/usr/sbin/lspci</code> program:<br />
# lspci | grep VGA<br />
<br />
If you need a list of all '''open-source''' video drivers, do: <br />
# pacman -Ss xf86-video | less<br />
Here is a list of '''open source''' drivers, and the corresponding video chipsets.<br />
*'''xf86-video-apm''' &mdash; Alliance ProMotion video driver<br />
*'''xf86-video-ark''' &mdash; ark video driver<br />
*'''xf86-video-ati''' &mdash; ATI(AMD) radeon video driver<br />
**'''xf86-video-r128''' &mdash; ATI(AMD) video driver for X.org ati Rage128 video<br />
**'''xf86-video-mach64''' &mdash; ATI(AMD) video driver for X.org mach64 video<br />
**'''xf86-video-radeonhd''' &mdash; ATI(AMD) radeonhd video driver<br />
*'''xf86-video-chips''' &mdash; Chips and Technologies video driver<br />
*'''xf86-video-cirrus''' &mdash; Cirrus Logic video driver<br />
*'''xf86-video-dummy''' &mdash; dummy video driver<br />
*'''xf86-video-fbdev''' &mdash; framebuffer video driver<br />
*'''xf86-video-glint''' &mdash; GLINT/Permedia video driver<br />
*'''xf86-video-i128''' &mdash; Number 0 i128 video driver<br />
*'''xf86-video-i740''' &mdash; Intel i740 video driver<br />
*'''xf86-video-i810''' &mdash; Intel i810/i830/i9xx video drivers (deprecated - use -intel)<br />
*'''xf86-video-intel''' &mdash; Newer Version of Intel i810/i830/i9xx video drivers<br />
*'''xf86-video-intel-legacy''' &mdash; Legacy-driver for older intel cards as 82865G (xf86-video-intel currently crashes with older cards)<br />
*'''xf86-video-imstt''' &mdash; Integrated Micro Solutions Twin Turbo video driver<br />
*'''xf86-video-mga''' &mdash; mga video driver (Matrox Graphics Adapter)<br />
*'''xf86-video-neomagic''' &mdash; neomagic video driver<br />
*'''xf86-video-nv''' &mdash; Nvidia nv video driver<br />
*'''xf86-video-nouveau''' &mdash; Open Source 3D acceleration driver for nVidia cards (experimental), check: [http://nouveau.freedesktop.org/wiki/] for Current Status<br />
*'''xf86-video-openchrome''' &mdash; VIA/S3G UniChrome, UniChrome Pro and Chrome9 video driver<br />
*'''xf86-video-rendition''' &mdash; Rendition video driver<br />
*'''xf86-video-s3''' &mdash; S3 video driver<br />
*'''xf86-video-s3virge''' &mdash; S3 Virge video driver<br />
*'''xf86-video-savage''' &mdash; savage video driver<br />
*'''xf86-video-siliconmotion''' &mdash; siliconmotion video driver<br />
*'''xf86-video-sis''' &mdash; SiS video driver<br />
*'''xf86-video-sisusb''' &mdash; SiS USB video driver<br />
*'''xf86-video-tdfx''' &mdash; tdfx video driver<br />
*'''xf86-video-trident''' &mdash; Trident video driver<br />
*'''xf86-video-tseng''' &mdash; tseng video driver<br />
*'''xf86-video-unichrome''' &mdash; VIA S3 Unichrome video drivers<br />
*'''xf86-video-v4l''' &mdash; v4l video driver<br />
*'''xf86-video-vesa''' &mdash; vesa video driver<br />
*'''xf86-video-vga''' &mdash; VGA 16 color video driver<br />
*'''xf86-video-vmware''' &mdash; vmware video driver<br />
*'''xf86-video-voodoo''' &mdash; voodoo video driver<br />
<br />
'''''Note''''': The '''vesa''' driver is the most generic, and should work with almost any modern video chipset. If you cannot find a suitable driver for your video chipset, vesa ''should'' work.<br />
<br />
Use pacman to install the appropriate video driver for your video card/onboard video. e.g.:<br />
# pacman -S xf86-video-savage<br />
(for the Savage driver.)<br />
<br />
*If you have an NVIDIA or ATI graphics card you may wish to install the proprietary NVIDIA or ATI drivers. '''Installing proprietary video drivers is covered below.'''.<br />
*If you do not want to install the proprietary drivers or do not have an NVIDIA or ATI graphics card, you should skip down to '''[[#Step 3: Configure X|Step 3: Configure X]]'''.<br />
<br />
-----<br />
<br />
<br />
=====NVIDIA Graphics Cards=====<br />
The NVIDIA proprietary drivers are generally considered to be of good quality, and offer 3D performance, whereas the open source '''nv''' driver offers only 2d support at this time. <br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has several different driver packages that each match a certain subset of Cards: <br />
<br />
'''1. nvidia-96xx''' ''slightly newer cards up to the GF 4.''<br />
<br />
'''2. nvidia-173xx''' ''Geforce FX series cards''<br />
<br />
'''3. nvidia''' ''newest GPUs after the GF FX''<br />
<br />
{{Note| Nvidia-71xx series proprietary drivers, which are required by extremely old cards like TNT and TNT2, have been removed because they do not work with the new Xorg that Arch makes use of and nvidia has discontinued support for such. You should use the xf86-video-nv or xf86-video-vesa drivers instead.}}<br />
<br />
Consult the NVIDIA website to see which one is for you. The difference is only for the installation; Configuration works the same with every driver.<br />
<br />
Select and install the appropriate NVIDIA driver ''for your card'', e.g.: <br />
# pacman -S nvidia-96xx<br />
<br />
The NVIDIA package has a utility for updating your existing /etc/X11/xorg.conf for use with the NVIDIA driver:<br />
# nvidia-xconfig<br />
<br />
It also has several options which will further specify the contents and options of the xorg.conf file.<br />
For example,<br />
# nvidia-xconfig --composite --add-argb-glx-visuals<br />
<br />
For more detailed information, see nvidia-xconfig(1).<br />
<br />
Some useful tweaking options in the device section are (beware that these may not work on your system):<br />
Option &quot;RenderAccel&quot; &quot;true&quot;<br />
Option &quot;NoLogo&quot; &quot;true&quot;<br />
Option &quot;AGPFastWrite&quot; &quot;true&quot;<br />
Option &quot;EnablePageFlip&quot; &quot;true&quot;<br />
Make sure all instances of DRI are commented out:<br />
# Load &quot;dri&quot;<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal sync, vertical refresh, and resolutions are acceptable.<br />
<br />
Update kernel module dependencies using <code>/sbin/depmod</code>:<br />
# depmod -a<br />
(A reboot may be necessary.)<br />
{{Tip|Advanced instructions for NVIDIA configuration can be found in the [[NVIDIA]] article.}}<br />
<br />
You may now continue with '''[[#Step 3: Configure X|Step 3: Configure X]]''' to familiarize yourself further, or continue the installation process with '''[[#C: Test X|Test X]]'''.<br />
<br />
=====ATI Graphics Cards=====<br />
ATI owners have multiple options for drivers. <br />
* The open source '''''radeon''''' driver provided by the '''xf86-video-ati''' package. <br />
** This is the original, reverse-engineered open source driver which fully supports Radeon chipsets up to X1950 (latest R500 chipsets). Cards up to the 9200 series are fully supported, stable, and provide full 2D and 3D acceleration. Cards from 9500 to X1950 feature full 2D acceleration, and stable 3D acceleration, but lack certain features provided by the proprietary driver, (for example, powersaving is still in a testing phase). Cards from HD2xxx (R6xx) to the newest are supported by xf86-video-ati, but only offer 2d support at this time.<br />
* The open source '''''radeonhd''''' driver provided by the '''xf86-video-radeonhd''' package.<br />
** This driver supports ATI R500 chipsets (Radeon X1000 series) and newer. It is written by Novell with specifications provided to the public by AMD. It supports RandR 1.2 and development is currently very active. Therefore, functionality may be inconsistent across the spectrum of cards supported. (Some users report excellent performance and reliability while others experience trouble.) It also supports HDMI, with sound.<br />
* The proprietary '''''fglrx''''' driver provided by the Catalyst package located in the AUR. The proprietary driver is covered below.<br />
The open-source drivers will usually suit most needs and are generally less problematic.<br />
<br />
Install the '''''radeon''''' ATI Driver with<br />
# pacman -S xf86-video-ati libgl ati-dri<br />
Install the '''''radeonhd''''' ATi Driver with<br />
# pacman -S xf86-video-radeonhd libgl ati-dri<br />
<br />
The proprietary ATI driver '''Catalyst''' was once a precompiled package offered by Arch in the <code>extra</code> repository, but as of March 2009, official support has been dropped because of dissatisfaction with the quality and speed of development of the proprietary driver.The catalyst driver is now available in [http://aur.archlinux.org/packages.php?ID=22899 AUR]. Installation information for Catalyst driver is available [[ATI#Proprietary_ATI_Catalyst_driver | here]]<br />
<br />
{{Warning| The proprietary ATI driver supports only R600 and newer devices (that means, HD2xxx and newer). Older series cards (X1xxx and older) are not supported.}}<br />
<br />
{{Tip|Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki article]].}}<br />
<br />
====C: Install Input Driver Packages====<br />
The latest X requires you to install drivers for your input devices, keyboard and mouse included. For a complete list of available input drivers, invoke a pacman search:<br />
# pacman -Ss xf86-input | less<br />
<br />
For most users, xf86-input-keyboard and xf86-input-mouse should be sufficient for a basic setup. Use pacman to install your desired drivers for your input devices. e.g.:<br />
# pacman -S xf86-input-keyboard xf86-input-mouse<br />
<br />
===Step 3: Configure X===<br />
<br />
====A: The xorg.conf file====<br />
<br />
/etc/X11/xorg.conf is the main configuration file for your '''X''' Window System, the foundation of your '''G'''raphical '''U'''ser '''I'''nterface. It is a plain text file ordered into sections and subsections. Important sections are ''Files, InputDevice, Module, Monitor, Modes, Screen, Device, and ServerLayout''. Sections can appear in any order and there may be more than one section of each kind, for example, if you have more than one monitor, or if your laptop has a trackpoint as well as a mouse. <br />
<br />
Since X11R7.2 the X.Org X Server features autoconfiguration. Therefore, it can function without an xorg.conf file in many cases. ''If'' the autoconfiguration ''works satisfactorily'' and you do not need to specify special features such as aiglx, compositing and so forth, you may forgo creating an xorg.conf file and continue below with [[#B: Input hotplugging| Input hotplugging]].<br />
<br />
=====Standard xorg.conf generation=====<br />
<br />
Advanced users may wish to manually create their own xorg.conf file. You may also use the <code>/usr/bin/Xorg</code> program with the -configure option to generate a basic config file; As root, do:<br />
# Xorg -configure<br />
This will create a config file at /root/xorg.conf.new <br />
<br />
Copy the file to <code>/etc/X11/</code>:<br />
# cp /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
=====Alternative xorg.conf generation=====<br />
<br />
Newer versions of the Xorg Server(>1.6) do not include the /usr/bin/xorgconfig or /usr/bin/xorgcfg scripts. If you run into problems generating/using an xorg.conf file, you might want to consider using this guide.<br />
<br />
See the [[Xorg#Without_xorg.conf|article on X.Org, section "Without xorg.conf"]].<br />
<br />
* Note that if you are in possession of a properly configured xorg.conf under another distribution and with the same Xorg version, you may easily copy it over to your current Arch system's <code>/etc/X11/</code> directory.<br />
<br />
<br />
{{Tip | For Intel graphics card, specific configuration may be necessary to get proper 2D or 3D performance, as stated in the [[Intel]] wiki article.}}<br />
<br />
====B: Input hotplugging====<br />
<br />
[[Xorg input hotplugging|Input hotplugging]] is supported since the 1.4 version of the X.Org X Server and enabled by default. When enabled, X will utilize hal to allow for the hotplugging and removal of human interface devices without having to restart X. <br />
<br />
{{Warning | Starting the '''X''' server using input hotplugging without the '''HAL''' daemon installed and running may result in the inability to use the mouse and/or keyboard, and the '''X''' server appearing to freeze as a result .}}<br />
<br />
You must decide whether you will use input hotplugging (enabled by default), or disable it. Input hotplugging is convenient for many users, especially those with mobile machines like laptops and netbooks. Other users may wish to disable it in favor of manual or more static device configuration within /etc/xorg.conf.<br />
<br />
{{Tip | See the article on [[Xorg input hotplugging]] for full details.}}<br />
<br />
=====Using input hotplugging=====<br />
<br />
Install HAL, dbus and the evdev input driver:<br />
# pacman -S hal dbus xf86-input-evdev<br />
<br />
Set the keyboard layout (if you do not use a standard US keyboard)<br />
# cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/<br />
# nano /etc/hal/fdi/policy/10-keymap.fdi<br />
Edit the &quot;input.xkb.layout&quot; key and possibly the &quot;input.xkb.variant&quot; key in this file.<br />
<br />
Laptop users will also need the synaptics package to allow X to configure the touchpad:<br />
# pacman -S xf86-input-synaptics<br />
<br />
{{Tip|For instructions on fine tuning or troubleshooting touchpad settings, see the [[Touchpad Synaptics]] article.}}<br />
<br />
<br />
'''The HAL daemon'''<br />
<br />
The hal daemon '''must''' be started '''before''' the '''X''' server:<br />
# /etc/rc.d/hal start<br />
Add the hal daemon to the DAEMONS array in /etc/rc.conf to start it at every boot.<br />
<br />
=====Disable input hotplugging=====<br />
Disabling input hotplugging will skip devices detected by hal and will use the keyboard/mouse configuration from xorg.conf:<br />
# nano /etc/X11/xorg.conf<br />
add the following:<br />
Section &quot;ServerFlags&quot;<br />
Option &quot;AutoAddDevices&quot; &quot;False&quot;<br />
EndSection<br />
<br />
======Set the keyboard layout if not using a standard US keyboard======<br />
Add option lines in the &quot;InputDevice&quot; section of the /etc/X11/xorg.conf file specifying the keyboard layout and variant:<br />
Option &quot;XkbLayout&quot; &quot;be&quot;<br />
Option &quot;XkbVariant&quot; &quot;&quot;<br />
<br />
Alternative method using the setxkbmap command:<br />
# setxkbmap pl <br />
(with the proper keyboard layout instead of <code>pl</code> of course) should switch your keyboard layout in x.<br />
To make this permanent, add this command to <code>/home/<youruser>/.xinitrc</code> before starting the window manager (before command like <code>exec startxfce4</code>).<br />
<br />
==== C: Test X ====<br />
<br />
First, read the warning about input hotplugging in the previous section. At this point, you should have xorg installed, with a suitable video driver and an /etc/X11/xorg.conf configuration file. If you want to test your configuration quickly, to ensure your ability to successfully start '''X''' from the command line before installing a complete desktop environment, you can do so by configuring ~/.xinitrc to invoke '''Xterm'''. Xterm is a very simple terminal emulator which runs in the '''X '''Server environment; it is installed as part of the base xorg packages.<br />
<br />
===== Prepare for the test by configuring ~/.xinitrc=====<br />
<br />
One of the main functions of this file is to dictate what '''X''' Window client is invoked with the '''/usr/bin/startx''' and/or '''/usr/bin/xinit''' program ''on a per-user basis''. (The '''startx''' script is merely a front end to the more versatile '''xinit''' command.) There are vast amounts of additional configurable specifications and commands that may also be added to ~/[[.xinitrc]] as you further customize your system. <br />
{{Note | '''[[.xinitrc]]''' is a so-called 'dot' (.) file. Files in a UNIX filesystem which are preceded with a dot (.) are 'hidden', and will not show up with a regular 'ls' command, usually for the sake of keeping directories tidy. Dot files may be seen by issuing '''ls -a'''. The 'rc' denotes ''Run Commands'' and simply indicates that it is a configuration file. Since it controls how a program runs, it is (although historically incorrect) also said to stand for &quot;Run Control&quot;.}}<br />
<br />
'''startx/xinit''' will start the '''X''' server and clients. To determine the client to run, '''startx/xinit''' will first look to parse a [[.xinitrc]] file in the user's home directory. In the absence of file ~/[[.xinitrc]], it defaults to the global xinitrc in the xinit library directory; /etc/X11/xinit/xinitrc, which defaults to using the TWM window manager. (Hence, if you invoke startx without a ~/[[.xinitrc]] file, a TWM session will start.) Further details in the [[.xinitrc]] wiki entry.<br />
<br />
Switch to your '''''normal, non-root''''' user:<br />
<br />
# su - ''yourusername''<br />
<br />
* /etc/skel/ contains files and directories to provide sane defaults for newly created user accounts. The name '''skel''' is derived from the word '''skeleton''', because the files it contains form the basic structure for users' home directories.<br />
<br />
* Sample .xinitrc provided [[Xinitrc#A_standard_.xinitrc | here]] <br />
Copy the sample xinitrc file from /etc/skel/ to your home directory: <br />
<br />
$ cp /etc/skel/[[.xinitrc]] ~/<br />
Edit the file: <br />
$ nano ~/.xinitrc<br />
and add &quot;<code>exec xterm</code>&quot; so that it looks like this:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
#<br />
exec xterm<br />
<br />
{{Note | ''Be sure to have only '''one''' uncommented '''exec''' line in ~/.xinitrc'' for now.}}<br />
<br />
Below, we shall edit this file again to specify the appropriate desktop environment/window manager of your choice.<br />
<br />
===== Perform the test =====<br />
<br />
Test your configurations by starting '''X''' as '''normal, non-root''' user, with:<br />
<br />
$ startx<br />
or<br />
$ xinit<br />
<br />
You should have an '''xterm''' session open up. You can test your keyboard and its layout in it. You may have to move your mouse around until it enters the xterm area before you see the mouse cursor or xterm responds to your keyboard.<br />
<br />
If you prove a properly configured /etc/X11/xorg.conf by successfully running the test, you can be assured that your DE/WM of choice will work smoothly.<br />
<br />
Exit Xterm with:<br />
$ exit<br />
{{Tip|Advanced instructions for Xorg configuration can be found in the [[Xorg]] article.}}<br />
<br />
<br />
{{Note| With Xorg 1.6 CTRL-Alt-Backspace has been deprecated and will not work to exit out of this test. A possible workaround is to switch to a different virtual console (CTRL-Alt-F2, for example) and then switch back to the console the test is running in (probably CTRL-Alt-F1). You will then be able to use CTRL-C to kill the X test. You can enable CTRL-Alt-Backspace by editing xorg.conf, as described [http://wiki.archlinux.org/index.php/Xorg#Ctrl-Alt-Backspace_doesn.27t_exit_X here].}}<br />
If the screen goes black, you may still attempt to switch to a different virtual console (CTRL-Alt-F2, for example), and login blindly as root, followed by <Enter>, followed by root's password followed by <Enter>. Finally, reboot blindly with:<br />
# reboot<br />
or <br />
# init 6<br />
<br />
=====In case of errors=====<br />
If you have problems starting '''X''', you can look for errors in the /var/log/Xorg.0.log file, as well as in the console output of the virtual console from which '''X''' was started. <br />
<br />
Also, if using /etc/X11/xorg.conf, inspect the config file:<br />
<br />
# nano /etc/X11/xorg.conf<br />
<br />
for the following issues:<br />
<br />
*The video driver may need to be specified. e.g.:<br />
Section &quot;Device&quot;<br />
<br />
...<br />
Driver &quot;savage&quot;<br />
...<br />
<br />
EndSection<br />
<br />
*Horizontal sync and vertical refresh specs under section &quot;Monitor&quot; may need to be added:<br />
Section &quot;Monitor&quot;<br />
Identifier &quot;Monitor0&quot;<br />
VendorName &quot;Monitor Vendor&quot;<br />
ModelName &quot;Monitor Model&quot;<br />
HorizSync 30.0 - 130.0 # Safe for LCD's<br />
VertRefresh 50.0 - 100.0 # Safe for LCD's and most CRT's.<br />
EndSection<br />
(If these specs are unknown, consult the documentation of the computer monitor.)<br />
<br />
*Color depth can be specified under section &quot;Screen&quot;:<br />
Section &quot;Screen&quot;<br />
Identifier &quot;Screen0&quot;<br />
Device &quot;Card0&quot;<br />
Monitor &quot;Monitor0&quot;<br />
DefaultDepth 24<br />
(Typically, this will be set to 24 for true color.)<br />
<br />
*Also add desired Modes to the &quot;Display&quot; subsection, at least under the Depth 24 header, e.g.:<br />
SubSection &quot;Display&quot;<br />
Viewport 0 0<br />
Depth 24<br />
Modes &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot;<br />
<br />
*Add the following section, if eye candy which requires the composite extension is desired: <br />
Section &quot;Extensions&quot;<br />
Option &quot;Composite&quot; &quot;Enable&quot;<br />
EndSection<br />
<br />
Try the config again, after modifying, by running:<br />
# startx<br />
or<br />
# xinit<br />
'''''Still having trouble? Detailed instructions are in the [[Xorg]] article.'''''<br />
<br />
=====Need Help?=====<br />
<br />
If you are still having trouble after consulting the [[Xorg]] article and need assistance via the Arch forums, be sure to install and use wgetpaste:<br />
<br />
# pacman -S wgetpaste<br />
Use wgetpaste and provide links for the following files when asking for help in your forum post:<br />
* ~/.xinitrc<br />
* /etc/X11/xorg.conf<br />
* /var/log/Xorg.0.log.old<br />
Use wgetpaste like so:<br />
$ wgetpaste </path/to/file><br />
Post the corresponding links given within your forum post. Be sure to provide appropriate hardware and driver information as well.<br />
{{Warning| '''''It is very important to provide detail when troubleshooting X. Please provide all pertinent information as detailed above when asking for assistance on the Arch forums. '''''}}<br />
<br />
==Part IV: Installing and configuring a Desktop Environment ==<br />
While The '''X''' Window System provides the basic framework for building a ''graphical user interface'' (GUI), a '''Desktop Environment''' (DE), works atop and in conjunction with '''X''', to provide a completely functional and dynamic GUI. A DE typically provides a window manager, icons, applets, windows, toolbars, folders, wallpapers, a suite of applications and abilities like drag and drop. The particular functionalities and designs of each DE will uniquely affect your overall environment and experience. Therefore, choosing a DE is a very subjective and personal decision. Choose the best environment for ''your'' needs.<br />
<br />
If you desire a lighter, less demanding GUI to configure manually, you may choose to simply install a '''Window Manager''', or WM. A WM controls the placement and appearance of application windows in conjunction with the X Window System but does NOT include such features as panels, applets, icons, applications, etc., by default.<br />
* Lightweight floating WM's include: [[#Openbox|'''Openbox''']], [[#Fluxbox|'''Fluxbox''']], [[#fvwm2|'''fvwm2''']], [[PekWM|'''pekwm''']], [[Evilwm|'''evilwm''']], '''Windowmaker, and TWM'''.<br />
* If you need something completely different, try a tiling WM like [[Awesome|'''awesome''']], [[Ion3|'''ion3''']], [[Wmii|'''wmii''']], [[Dwm|'''dwm''']], [[Xmonad|'''xmonad''']], or [[Ratpoison|'''ratpoison''']].<br />
<br />
===Step 1: Install Fonts===<br />
At this point, you may wish to save time by installing visually pleasing, true type fonts, before installing a desktop environment/window manager. Dejavu and bitstream-vera are good, general-purpose font sets. You may also want to install the Microsoft font sets, which are especially popular on websites, and may be required for the proper function of Flash animations which feature text.<br />
<br />
Install with:<br />
# pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<br />
<br />
Refer to [[Xorg Font Configuration]] for how to configure fonts.<br />
<br />
===Step 2: ~/.xinitrc (again)===<br />
<br />
As '''non-root user''', edit your /home/username/.xinitrc to specify the DE you wish to use. This will allow you to use '''startx/xinit''' from the shell, in the future, to open your DE/WM of choice:<br />
<br />
$ nano ~/.xinitrc<br />
<br />
Uncomment or add the ''''exec''' ..' line of the appropriate desktop environment/window manager. Some examples are below:<br />
<br />
For the Xfce4 desktop environment:<br />
exec startxfce4 <br />
<br />
For the KDE desktop environment:<br />
exec startkde<br />
A '''startkde''' or '''startxfce4''' command starts the KDE or Xfce4 desktop environment. This is exactly the same as entering: <br />
$ xinit /usr/bin/startxfce4<br />
or<br />
$ xinit /usr/bin/startkde<br />
from the shell prompt. Note that such a command does not finish until you logout of the DE. Normally the shell would wait for KDE to finish, then run the next command. The &quot;exec&quot; prefix to this command within the ~/.xinitrc file tells the shell that this is the last command, so the shell does not need to wait to run a subsequent command.<br />
<br />
In the future, after the DE of choice is installed and if trouble with automounting is experienced, try using the following command in ~/.xinitrc instead. (Replace "startxfce4" with the command that is appropriate for your window manager/DE.)<br />
exec ck-launch-session startxfce4<br />
This will ensure the various environment variables are set correctly by starting a clean consolekit session. ConsoleKit is a framework for keeping track of the various users, sessions, and seats present on a system. It provides a mechanism for software to react to changes of any of these items or of any of the metadata associated with them. It works in conjunction with dbus, and other tools.<br />
<br />
Remember to have only one uncommented '''exec''' line in your ~/.xinitrc for now.<br />
<br />
===Step 3: Install a Desktop Environment===<br />
<br />
Continue below, installing the DE/WM of your choice.<br />
<br />
* [[#GNOME|'''GNOME''']]<br />
* [[#KDE|'''KDE''']]<br />
* [[#Xfce|'''Xfce''']]<br />
* [[#LXDE|'''LXDE''']]<br />
* [[#Openbox|'''Openbox''']]<br />
* [[#Fluxbox|'''Fluxbox''']]<br />
* [[#fvwm2|'''fvwm2''']]<br />
<br />
====GNOME====<br />
=====About GNOME=====<br />
The '''G'''NU '''N'''etwork '''O'''bject '''M'''odel '''E'''nvironment. The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for end-users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop.<br />
<br />
=====Installation=====<br />
Install the base GNOME environment with:<br />
# pacman -S gnome<br />
<br />
Additionally, you can install the extras:<br />
# pacman -S gnome-extra<br />
<br />
It's safe to choose all packages shown in the extra package.<br />
<br />
=====Useful DAEMONS for GNOME=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. <br />
<br />
Some users prefer to use the '''hal''' daemon. The '''hal''' daemon, among other things, will assist in automating the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The hal package is installed as a dependency along with GNOME, but must be invoked to become useful.<br />
<br />
{{Warning|The FAM (File Alteration Monitor) daemon is obsolete; use [[Gamin]] instead, if possible. Gamin is a re-implementation of the FAM specification. It is newer and more actively maintained, and also simpler to configure:<br />
<br />
# pacman -S gamin<br />
}}<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. <br />
<br />
As root:<br />
# pacman -S gdm<br />
<br />
Start hal:<br />
# /etc/rc.d/hal start<br />
Add the desired daemons to your /etc/rc.conf DAEMONS section, so they will be invoked at boot (Note that gamin is ''not'' to be added to the DAEMONS array):<br />
# nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond alsa '''hal gdm''')<br />
(If you prefer to log into the console and manually start X, exclude the gdm daemon.)<br />
<br />
Then edit your /etc/gdm/custom.conf and in the '''[servers]''' section add:<br />
0=Standard vt7<br />
<br />
As normal user, start X:<br />
$ startx<br />
or<br />
$ xinit<br />
If ~/.xinitrc is not configured for GNOME, you may always start it with '''xinit''', followed by the path to GNOME:<br />
$ xinit /usr/bin/gnome-session<br />
<br />
{{Tip|Advanced instructions for installing and configuring GNOME can be found in the [[Gnome]] article.}}<br />
<br />
Congratulations! Welcome to your GNOME desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[Beginners Guide Appendix#Tweaks.2FFinishing_touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
=====Eye Candy=====<br />
By default, GNOME does not come with many themes and icons. You may wish to install some more attractive artwork for GNOME:<br />
<br />
A nice gtk (gui widget) theme engine (includes themes) is the murrine engine. Install with:<br />
# pacman -S gtk-engine-murrine<br />
<br />
Optional for more themes:<br />
# pacman -S murrine-themes-collection <br />
<br />
Once it has been installed, select it with System -> Preferences -> Appearance -> Theme tab.<br />
<br />
The Arch Linux repositories also have a few more nice themes and engines. Install the following to see for yourself:<br />
<br />
# pacman -S gtk-engines gtk-aurora-engine gtk-candido-engine gtk-rezlooks-engine<br />
<br />
You can find many more themes, icons, and wallpapers at [http://www.gnome-look.org GNOME-Look].<br />
<br />
====KDE====<br />
=====About KDE=====<br />
The '''K''' '''D'''esktop '''E'''nvironment. KDE is a powerful Free Software graphical desktop environment for GNU/Linux and <tt>UNIX</tt> workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of <tt>UNIX</tt>-like operating systems.<br />
<br />
=====Installation=====<br />
Choose one of the following, then continue below with '''[[#Useful KDE DAEMONS|Useful KDE DAEMONS]]''': <br />
<br />
1. The package '''kde''' is the official and complete vanilla KDE 4.x residing under the Arch [extra] repo.<br />
<br />
Install base kde:<br />
# pacman -S kdebase-workspace<br />
Install the whole Desktop Environment: <br />
# pacman -S kde<br />
''or'' <br />
# pacman -S kde-meta<br />
<br />
2. Alternatively, another KDE project exists called '''KDEmod''', part of the Chakra distribution. It is an Arch Linux (and spinoff) exclusive, community-driven package set designed for modularity and offers a choice between KDE 3.5.10 or 4.x.x. KDEmod can be installed with pacman, after adding the proper repositories to /etc/pacman.conf. The project website, including complete installation instructions, can be found at [http://www.chakra-project.org/ http://www.chakra-project.org/].<br />
<br />
=====Useful KDE DAEMONS=====<br />
<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services.<br />
<br />
KDE will require the '''hal''' ('''H'''ardware '''A'''bstraction '''L'''ayer) daemon for optimal functionality. The hal daemon, among other things, will facilitate the automatic mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The hal package is installed when you install xorg-server, but must be invoked to become useful.<br />
<br />
The '''kdm''' daemon is the '''K''' '''D'''isplay '''M'''anager, which provides a '''graphical login''', if desired.<br />
<br />
-----<br />
<br />
Start hal:<br />
# /etc/rc.d/hal start<br />
<br />
{{Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS array in /etc/rc.conf:<br />
# nano /etc/rc.conf<br />
Add '''hal''' to your DAEMONS array, to invoke it on boot. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng '''hal''' network crond alsa '''kdm''')<br />
{{Note|If you installed KDEmod3 instead of normal KDE, use kdm3 instead of kdm.}}<br />
<br />
*This method will start the system at runlevel 3, (/etc/inittab default, multiuser mode), and then start KDM as a daemon. <br />
<br />
*Some users prefer an alternative method of starting a display manager like KDM on boot by utilizing the /etc/inittab method and starting the system at runlevel 5. See [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]] for more.<br />
<br />
*If you prefer to log into the '''console''' at runlevel 3, and manually start X, leave out kdm, or comment it out with a bang, ( ! ).<br />
<br />
Now try starting your X Server as normal user:<br />
$ startx<br />
or<br />
$ xinit<br />
{{Tip|Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.}}<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[Beginners Guide Appendix|The Beginners Guide Appendix]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====Xfce====<br />
=====About Xfce=====<br />
Xfce is another free software desktop environment for Linux. It aims to be fast and lightweight, while still being visually appealing and easy to use. Xfce is modular and reusable. It consists of separately packaged components that together provide the full functionality of the desktop environment, but which can be selected in subsets to create the user's preferred personal working environment. Xfce is mainly used for its ability to run a modern desktop environment on relatively modest hardware. It is based on the GTK+ 2 toolkit (the same as GNOME). It uses the Xfwm window manager, described below. Its configuration is entirely mouse-driven, and the configuration files are hidden from the casual user.<br />
<br />
=====Installation=====<br />
Install Xfce: <br />
# pacman -S xfce4 <br />
You may also wish to install themes and extras:<br />
# pacman -S xfce4-goodies gtk2-themes-collection<br />
Note: '''xfce4-xfapplet-plugin''' (a plugin that allows the use of GNOME applets in the Xfce4 panel) is part of the '''xfce4-goodies''' group and depends on '''gnome-panel''', which in turn depends on '''gnome-desktop'''. You may wish to take this into consideration before installing, since it represents a significant number of extra dependencies.<br />
<br />
If you get errors about dbus-launch then you need to install dbus aswell:<br />
# pacman -S dbus<br />
<br />
If you wish to admire 'Tips and Tricks' on login, install the '''fortune-mod''' package:<br />
# pacman -S fortune-mod<br />
<br />
=====Useful DAEMONS=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. Some Xfce users prefer to use the '''hal''' daemon. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. The hal and fam packages are installed when you install Xfce, but must be invoked to become useful.<br />
<br />
{{Tip|[[fam]] is now obsolete. Install the [[gamin]] package and do not add fam to rc.conf.}}<br />
<br />
Start hal and fam:<br />
<br />
# /etc/rc.d/hal start<br />
<br />
# /etc/rc.d/fam start<br />
{{Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS array in /etc/rc.conf:<br />
# nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS array, to invoke them at boot.<br />
<br />
{{Tip|Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] article.}}<br />
<br />
If you wish to install one, see [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]]. Otherwise you can login in via the console and run:<br />
<br />
$ startxfce4<br />
<br />
Congratulations! Welcome to your Xfce desktop environment on your new Arch Linux system! You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====LXDE====<br />
=====About LXDE=====<br />
LXDE, (for ''L''ightweight ''X''11 ''D''esktop ''E''nvironment), is a new project focused on providing a modern desktop environment which aims to be lightweight, fast, intuitive and functional while keeping system resource usage low. LXDE is quite different from other desktop environments, since each component of LXDE is a discrete and independent application, and each can be easily substituted by other programs. This modular design eliminates all unnecessary dependencies and provides more flexibility. Details and screenshots available at: http://lxde.org/ <br />
<br />
LXDE provides:<br />
# The OpenBox windowmanager<br />
# PCManFM File manager<br />
# LXpanel system panel<br />
# LXSession session manager<br />
# LXAppearance GTK+ theme switcher<br />
# GPicView image viewer<br />
# Leafpad simple text editor<br />
# XArchiver: Lightweight, fast, and desktop-independent gtk+-based file archiver<br />
# LXNM (still under development): Lightweight network manager for LXDE supporting wireless connections<br />
These lightweight and versatile tools combine for quick setup, modularity and simplicity.<br />
<br />
Install LXDE with: <br />
# pacman -S lxde gamin openbox<br />
<br />
Add:<br />
exec startlxde<br />
*If you experience problems with Policykit or plan on running '''nm-applet''', the following command should be used instead<br />
exec ck-launch-session startlxde<br />
to your ~/.xinitrc and start with ''startx'' or ''xinit''<br />
<br />
{{Tip | Further information available at the [[LXDE]] wiki article.}}<br />
<br />
====*box====<br />
=====Fluxbox=====<br />
Fluxbox is yet another windowmanager for X.<br />
It's based on the Blackbox 0.61.1 code. Fluxbox looks like blackbox and handles styles, colors, window placement and similar things exactly like blackbox (100% theme/style compability).<br />
<br />
Install Fluxbox using <br />
# pacman -S fluxbox fluxconf<br />
<br />
If you use gdm/kdm a new fluxbox session will be automatically added. Otherwise, you should modify your user's .xinitrc and add this to it:<br />
exec startfluxbox <br />
<br />
More information is available in the [[Fluxbox]] article.<br />
<br />
=====Openbox=====<br />
Openbox is a standards compliant, fast, light-weight, extensible window manager.<br />
<br />
Openbox works with your applications, and makes your desktop easier to manage. This is because the approach to its development was the opposite of what seems to be the general case for window managers. Openbox was written first to comply with standards and to work properly. Only when that was in place did the team turn to the visual interface.<br />
<br />
Openbox is fully functional as a stand-alone working environment, or can be used as a drop-in replacement for the default window manager in the GNOME or KDE desktop environments. <br />
<br />
Install openbox using<br />
# pacman -S openbox<br />
Additional configuration tools are also available, if desired:<br />
# pacman -S obconf obmenu<br />
<br />
Once openbox is installed you will get a message to move menu.xml & rc.xml to ~/.config/openbox/ in your home directory:<br />
# su - ''yourusername''<br />
$ mkdir -p ~/.config/openbox/<br />
$ cp /etc/xdg/openbox/rc.xml ~/.config/openbox/<br />
$ cp /etc/xdg/openbox/menu.xml ~/.config/openbox/<br />
<br />
'''rc.xml''' is the main configuration file for OpenBox. It may be manually edited, (or you can use OBconf). '''menu.xml''' configures the right-click menu.<br />
<br />
You may log into OpenBox via graphical login using KDM/GDM, or from the shell using '''startx''', in which case you will need to edit your ~/.xinitrc (as non-root user) and add the following:<br />
<br />
exec openbox-session<br />
<br />
NOTE: If you plan on running dbus (which is required by hal) then make sure your ~/.xinitrc reads:<br />
<br />
exec dbus-launch --exit-with-session openbox-session<br />
<br />
You may also start OpenBox from the shell using '''xinit''':<br />
$ xinit /usr/bin/openbox-session<br />
* Openbox may also be used as the window manager for GNOME, KDE, and Xfce.<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Some useful, lightweight programs for OpenBox are:<br />
* PyPanel, Tint2, or LXpanel if you want a panel<br />
* feh if you want to set the background<br />
* ROX if you want a simple file manager (also provides simple icons)<br />
* PcmanFM a lightweight but versatile file manager (also provides desktop icon functionality)<br />
* iDesk (available in [[AUR]]) for providing desktop icons<br />
* Graveman for burning CD's or DVD's<br />
<br />
{{Tip | More information is available in the [[Openbox]] article.}}<br />
<br />
====FVWM2====<br />
FVWM (F Virtual Window Manager) is an extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent. <br />
<br />
Install fvwm2 with<br />
# pacman -S fvwm <br />
<br />
It will install the official version of the WM. However, if you want/need to use some more features than it provides, you can install the patched version from archlinuxfr (see [[Unofficial user repositories]]) or [[AUR]]. To install it from AUR or archlinuxfr repesctively, execute:<br />
$ yaourt -S fvwm-patched<br />
or<br />
# pacman -S fvwm-patched<br />
<br />
fvwm will automatically be listed in kdm/gdm in the sessions menu. Otherwise, add <br />
exec fvwm 2 <br />
<br />
to your user's .xinitrc.<br />
<br />
When you start [[FVWM2]], you will get into the blank configuration. However, when you left-click on the desktop, you will be able to select to configure FVWM. chose wanted modules and you are ready to go. Check out the configs in the http://www.box-look.org. One should also consider checking FVWM forums at http://fvwm.lair.be<br />
<br />
[[SLiM]] is a very good login manager, that does not have many dependencies and acts well with FVWM. Common Applications are similar to those suggested for [[Openbox]] or [[Fluxbox]].<br />
<br />
==Common and Lightweight Applications==<br />
For a list of [[Common Applications]] and [[Lightweight Applications]], visit their respective articles.<br />
<br />
=Appendix=<br />
See the [[Beginners' Guide Appendix]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Newcomers_Guide&diff=48443
Newcomers Guide
2008-08-31T19:01:37Z
<p>Xiol: /* '''/etc/rc.conf''' */ Note about adding floppy module.</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Provides a highly detailed, explanatory guide to installing and configuring a full-featured Arch Linux system.}}<br />
{{Article summary heading|Available Languages}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|Dansk|Dansk_Begynderguide}}<br />
{{i18n_entry|简体中文|Beginners Guide 新手指南}}<br />
{{i18n_entry|正體中文|Beginner's Guide 新手指南}}<br />
{{i18n_entry|Deutsch|Beginners Guide (Deutsch)}}<br />
{{i18n_entry|English|Beginners Guide}}<br />
{{i18n_entry|Español|Guía para Principiantes (Español)}}<br />
{{i18n_entry|Français|Manuel_du_Débutant_(Français)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_entry|Português Brasil|Guia do Iniciante(Português do Brasil)}}<br />
{{i18n_entry|Türkçe|Başlangıç Rehberi (Türkçe)}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Official Arch Linux Install Guide}} (provides a more general approach)<br />
{{Article summary end}}<br />
==Preface==<br />
<br />
=====Everything you ever wanted to know about Arch, but were afraid to ask=====<br />
Welcome. This document will guide you through the process of installing, configuring and using [[ArchLinux|Arch Linux]]; a simple, agile and lightweight GNU/Linux distribution, <code>UNIX</code>-like operating system. Arch Linux requires a certain level of intimate knowledge of its configuration and of <code>UNIX</code>-like system methodology and for this reason, extra explanatory information is included. This guide is aimed at new Arch users, but strives to serve as a strong reference and informative base for all. <br />
<br />
Since GNU/Linux Distributions are fundamentally 'modular' by design, the guide is logically divided into 3 main components of a desktop <code>UNIX</code>-like operating system:<br />
<br />
'''[[#Part I: Install the Base System|Part I: Installing the Base system]]'''<br />
<br />
'''[[#Part II: Install X and configure ALSA|Part II: Installing X and configuring ALSA]]'''<br />
<br />
'''[[#Part III: Installing and configuring a Desktop Environment|Part III: Installing a Desktop Environment]]'''<br />
<br />
=====DON'T PANIC!=====<br />
The Arch Linux system is assembled by the ''user'', from the shell, using basic command line tools. This is '''[[The Arch Way]].''' Unlike the more rigid structures of other distributions and installers, there are no default environments nor configurations chosen for you. From the command line, ''you'' will add packages from the Arch repositories using the [[pacman]] tool via your internet connection and manually configure your installation until your system is customized to your requirements. This method allows for maximum flexibility, choice, and system resource control ''from the base up''.<br />
<br />
Arch Linux is aimed at GNU/Linux users who desire minimal 'code separation' from their machine.<br />
<br />
=====[[The Arch Way]]=====<br />
<br />
'''''The design principles behind Arch are aimed at keeping it [[The Arch Way|simple]].'' '''<br />
<br />
'Simple', in this context, shall mean 'without unnecessary additions, modifications, or complications'. In short; an elegant, minimalist approach.<br />
<br />
'''Some thoughts to keep in mind:'''<br />
<br />
*''" 'Simple' is defined from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use and technically [inferior]." -Aaron Griffin''<br />
<br />
*''Entia non sunt multiplicanda praeter necessitatem'' or "Entities should not be multiplied unnecessarily." -Occam's razor. The term ''razor'' refers to the act of shaving away unnecessary complications to arrive at the simplest explanation, method or theory.<br />
<br />
*''"The extraordinary part of [my method] lies in its simplicity..I always believe that the simple way is the right way."'' - Bruce Lee<br />
<br />
{{Box Note |'''Following this guide closely is essential in order to successfully install a properly configured Arch Linux system, so ''please'' read it thoroughly. It is strongly recommended you read each section completely before carrying out the tasks contained.'''}}<br />
* You may wish to make a print out of this guide which will serve as a useful Arch Linux user reference. Simply click on the 'Printable Version' tab in the toolbox on the top-left.<br />
*''If you would like to add to this wiki, please include the "Why" as well as the "How", where appropriate. The best documentation teaches us how, as well as why!''<br />
* The Arch wiki is an excellent resource and should be consulted for issues [http://wiki.archlinux.org/index.php/Main_Page first]; IRC (freenode #archlinux), and the [http://bbs.archlinux.org/ forums] are also available if the answer cannot be found.<br />
----<br />
Welcome to Arch! Now, let's get started.<br />
<br />
==Part I: Install the Base System==<br />
<br />
===Obtain the latest Installation media ===<br />
<br />
You can obtain Arch's latest installation media from [http://archlinux.org/download/ here].<br />
<br />
*Both the Core installer and the FTP/HTTP-downloads provide only the necessary packages to create an '''Arch Linux base system'''. ''Note that the Base System does not include a GUI. It is mainly comprised of the GNU toolchain, (compiler, assembler, linker, libraries, shell, and a few useful utilities) the Linux kernel, and a few extra libraries and modules.'' <br />
*Expanding your Arch Linux system beyond the base system, to include extra software, a Graphical User Interface, etc., is achieved from the command line, ''by the user'', via the pacman package manager to grab i686/x86-64 binary packages. The process is covered in detail below.<br />
====CD installer====<br />
Burn the .iso to a CD with your favorite burner, and continue with [[#Boot Arch Linux Installer | Boot Arch Linux Installer]]<br />
{{Box Note| CD media quality varies greatly, but generally, using a slow burn speed is recommended for reliable burns; Some users recommend speeds '''''as low as 4x or 2x!''''' If you are experiencing unexpected behavior from the CD, try burning at the minimum speed supported by your system. }}<br />
<br />
====USB stick====<br />
<font color="red">'''WARNING''': This will destroy all data on your USB stick.</font><br />
<br />
Insert an empty or expendable USB stick, determine its path, and dd the .img to the USB stick with the <code>/bin/dd</code> program:<br />
dd if=archlinux-2008.06-[core_or_ftp]-i686.img of=/dev/sd''x''<br />
where ''if='' is the path to the img file and ''of='' is your USB device. Make sure to use /dev/sd''x'' and not /dev/sd''x1''.<br />
<br />
'''Check md5sum (optional):'''<br />
<br />
Make a note of the number of records (blocks) read in and written out, then perform the following check:<br />
dd if=/dev/sd''x'' count=''number_of_records'' status=noxfer | md5sum<br />
The md5sum returned should match the md5sum of the downloaded archlinux image file; they both should match the md5sum of the image as listed in the md5sums file in the mirror distribution site.<br />
<br />
Continue with [[#Boot Arch Linux Installer | Boot Arch Linux Installer]]<br />
<br />
===Boot Arch Linux Installer===<br />
As you follow these directions, you may find the [[Official Arch Linux Install Guide]] helpful as well. <br />
<br />
Insert the CD or USB stick and boot from it. You may have to <br />
change the boot order in your computer BIOS or press a key (usually DEL, F1, F2, F11 or F12) during the BIOS POST phase.<br />
<br />
Memory requirements:<br />
<br />
* CORE : 160 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
* FTP : 160 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
<br />
Choose Boot Archlive or Boot Archlive [legacy IDE] if you have trouble with libata/PATA. <br />
<br />
To change boot options press '''e''' for editing the boot lines. Many users may wish to change the resolution of the framebuffer, for more readable console output. Append:<br />
vga=773<br />
to the kernel line, followed by <ENTER>, for a 1024x768 framebuffer. Hit '''b''' to boot.<br />
<br />
The system will now boot and present a login prompt.<br />
<br />
===Login and Changing the keymap===<br />
Login as 'root'.<br />
<br />
If you have a non-US keyboard layout do:<br />
km<br />
at the prompt, and choose your keymap/console font.<br />
<br />
That's right, the ever-popular '''km''' program is back as of 2008-06!<br />
<br />
===Documentation===<br />
The guide you are now reading is available on the live system. Change to vc/2 with <ALT>+F2 and do:<br />
less /arch/beginnersguide.txt<br />
'''Less''' will allow you to page through the document. Change back to vc/1 with <ALT>+F1. <br />
<br />
Change back to vc/2 if you need to reference the Beginners' Guide at any time.<br />
<br />
===Start the Installation===<br />
As root, run the installer script from vc/1:<br />
/arch/setup <br />
<br />
====Select an installation source====<br />
After a welcome screen, you will be prompted for an installation source. Choose the appropriate source for the installer you are using. <br />
* If you chose the CORE installer, continue below with [[#Prepare Hard Drive|Prepare Hard Drive]].<br />
* FTP/HTTP only: You shall be prompted to load ethernet drivers manually, if desired. Udev is quite effective at loading the required modules, so you may assume it has already done so. You may verify this by invoking ifconfig -a from vc/3. (Select OK to continue.)<br />
<br />
===Configure Network (FTP/HTTP)===<br />
Available Interfaces will be presented. If an interface and HWaddr is listed, then your module has already been loaded. If your interface is not listed, you may probe it from the installer, or manually do so from another virtual console.<br />
<br />
The following screen will prompt you to ''Select the interface, Probe,'' or ''Cancel''. Choose the appropriate interface and continue.<br />
<br />
The installer will then ask if you wish to use DHCP. Choosing Yes will run '''dhcpcd''' to discover an available gateway and request an IP address; Choosing No will prompt you for your static IP, netmask, broadcast, gateway DNS IP, HTTP proxy, and FTP proxy. Lastly, you will be presented with an overview to ensure your entries are correct.<br />
<br />
====Wireless Quickstart (If you need wireless connectivity during the installation process)====<br />
<br />
The wireless drivers and utilities are now available to you in the live environment of the installation media. <br />
<br />
If you need wireless functionality from the initial installation (live installer environment) onwards, the basic procedure will be:<br />
* Switch to a free virtual console, e.g.: <ALT>+F3<br />
* Identify your wireless card and appropriate module with <code>/sbin/hwdetect</code>:<br />
hwdetect --show-net<br />
* Ensure udev has loaded the module with <code>/bin/lsmod</code>:<br />
lsmod | grep <name_of_module><br />
* If not, probe it using <code>/sbin/modprobe</code>:<br />
modprobe <name_of_module><br />
* Ensure the driver has created a usable wireless kernel interface with <code>/usr/sbin/iwconfig</code>:<br />
iwconfig<br />
(Output should show an available wireless interface)<br />
* Bring the interface up with <code>/sbin/ifconfig <interface> up</code>. <br />
<br />
An example, using an atheros card and madwifi driver:<br />
ifconfig ath0 up<br />
(Remember, your interface may be named something else, depending on your module (driver) and chipset: wlan0, eth1, etc.)<br />
* Specify the id of the wireless network with iwconfig <interface> essid <youressid> key <yourwepkey>, e.g.:<br />
iwconfig ath0 essid linksys key 0241baf34c<br />
* Acquire an IP address with <code>/sbin/dhcpcd <interface> </code>. e.g.:<br />
dhcpcd ath0<br />
* Ensure you can route using <code>/bin/ping</code>:<br />
ping -c 3 www.google.com<br />
Done.<br />
<br />
After the initial Arch installation is complete, you may wish to refer to [[Wireless Setup]] to ensure a permanent configuration solution for your system.<br />
<br />
<br />
Return to vc/1 with <ALT>+F1. Continue with [[#Prepare Hard Drive|Prepare Hard Drive]]<br />
<br />
===Prepare Hard Drive===<br />
<font color="red"> '''WARNING:''' '''''Partitioning hard drives can destroy data. You are strongly cautioned and advised to backup your critical data if applicable.'''''</font><br />
<br />
Select the first menu entry "Prepare Hard Drive". <br />
* Option 1: Auto Prepare<br />
Auto-Prepare divides your disk into the following configuration:<br />
<br />
* ext2 /boot partition, default size 32MB. ''You will be prompted to modify the size to you requirement.''<br />
* swap partition, default size 256MB. ''You will be prompted to modify the size to you requirement.'' <br />
* A Separate / and /home partition, (sizes can also be specified). You may choose from ext2, ext3, reiserfs, xfs and jfs, but note that ''both / and /home must share the same fs type'' if choosing the Auto Prepare option.<br />
<br />
Be warned that Auto-prepare will completely erase the chosen hard drive. Read the <font color="red">warning</font> presented by the installer very carefully, and make sure the correct device is about to be partitioned.<br />
<br />
* Option 2: '''(Recommended)''' Partition Hard Drives (with cfdisk)<br />
<br />
This option will allow for the most robust and customized partitioning solution for your personal needs. <br />
<br />
''At this point, more advanced GNU/Linux users who are familiar and comfortable with manually partitioning may wish to skip down to '''[[#Select Packages|Select Packages]]''' below.''<br />
<br />
====Partition Hard Drives====<br />
<br />
=====Partition Info=====<br />
<br />
Partitioning a hard disk drive defines specific areas (the partitions) within the disk, that will each appear and behave as a separate disk and upon which a filesystem may be created (formatted). There exist 3 types of disk partitions: '''Primary, Extended, and Logical.''' <br />
<br />
'''Primary''' partitions can be bootable, and are limited to 4. If a partitioning scheme requires more than 4 partitions, we are forced to use an '''extended''' partition which will contain '''logical''' partitions.<br />
<br />
Extended partitions are not usable by themselves; they are merely a "container" for logical partitions. If required, a hard disk shall contain only one extended partition; which shall then be sub-divided into logical partitions. <br />
<br />
When partitioning a disk, one can observe this numbering scheme by creating primary partitions sda1-3 followed by creating an extended partition, sda4, and subsequently creating logical partition(s) within the extended partition; sda5, sda6, and so on.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on your hard drive where virtual ram resides, allowing the kernel to easily use disk storage for data that does not fit into physical RAM. <br />
<br />
Historically, the general rule for swap partition size was 2x the amount of physical RAM. Over time, as computers have gained ever larger memory capacities, this rule has become increasingly deprecated. Generally, on machines with up to 512MB RAM, the 2x rule is usually quite sufficient. On machines with 1GB RAM, generally a 1x rule is adequate. If you have gratuitous amounts of RAM (more than 1024 MB) it may be possible to completely forgo a swap partition altogether, though this is not recommended. We will create a 1 GB swap partition in this example.<br />
{{Box Note|If you plan on using suspend-to-disk, (hibernate) you must have a swap partition at least '''equal''' in size to the amount of physical RAM, and some Arch users even recommend oversizing it beyond the amount of physical RAM by 10-15%, to allow for possible bad sectors.}}<br />
<br />
=====Partition Scheme=====<br />
A disk partitioning scheme is a very personalized preference. Each user's choices will be unique to their own computing habits and requirements. Filesystem candidates for separate partitions include:<br />
<br />
'''/''' (root) ''The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory "/", even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system.'' <br />
<br />
'''/boot''' ''This directory contains the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files.''<br />
<br />
'''/home''' ''User data and user specific configuration files for applications are stored in each user's home directory in a file that starts with the '.' character (a "dot file").''<br />
<br />
'''/usr''' ''While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system update/upgrade. Any information that is host-specific or varies with time is stored elsewhere.''<br />
<br />
'''/tmp''' ''directory for programs that require temporary files''<br />
<br />
'''/var''' ''contains variable data; spool directories and files, administrative and logging data, pacman's cache, the ABS tree, etc.''<br />
<br />
There are several advantages for using discrete filesystems, rather than combining all into one partition:<br />
<br />
* Security: Each filesystem may be configured as 'nosuid', 'nodev', 'noexec', 'readonly', etc. (This is specified in /etc/fstab).<br />
* Stability: A user, or malfunctioning program can completely fill a filesystem with garbage if they have write permissions for it. Critical programs, which reside on a different filesystem remain unaffected.<br />
* Speed: A filesystem which gets written to frequently may become somewhat fragmented. (An effective method of avoiding fragmentation is to ensure that each filesystem is never in danger of filling up completely.) Separate filesystems remain unaffected, and each can be defragmented separately as well.<br />
* Integrity: If one filesystem becomes corrupted, separate filesystems remain unaffected.<br />
* Versatility: Sharing data across several systems becomes more expedient when independent filesystems are used. Separate filesystem types may also be chosen based upon the nature of data and usage. <br />
In this example, we shall use separate partitions for /, /var, /home, and a swap partition. <br />
<br />
{{Box Note | /var contains many small files. You may wish to take this into consideration when choosing a filesystem type for it.}}<br />
<br />
=====How big should my partitions be?=====<br />
This question is best answered based upon individual needs. If you have little or no experience with partitioning, you may wish to simply create one partition for root, and one partition for swap. Or, follow the example closely, and consider these guidelines to provide a frame of reference:<br />
* The root filesystem (/) in the example will contain the /usr directory, which can become moderately large, depending upon how much software is installed.<br />
<br />
* The /var filesystem will contain, among other data, the pacman cache. Keeping cached packages is useful and versatile; it provides the ability to downgrade packages if needed. The cache can grow large over long periods of time, but can be safely cleared if needed.<br />
* The /home filesystem is typically where user data, downloads, and multimedia reside, typically resulting in the largest filesystem on the drive by a large margin. <br />
* An extra 25% of space added to each filesystem will provide a cushion for unforeseen occurrence, expansion, and serve as a preventive against fragmentation.<br />
From the guidelines above, the example system shall contain a ~12GB root (/) partition, ~6GB /var, 1GB swap, and a /home containing the remaining disk space.<br />
<br />
=====cfdisk=====<br />
Start by creating the primary partition that will contain the '''root''', (/) filesystem. <br />
<br />
Choose '''N'''ew -> Primary and enter the desired size for root (/). Put the partition at the beginning of the disk. <br />
<br />
Also choose the '''T'''ype by designating it as '83 Linux'. The created / partition shall appear as sda1 in our example.<br />
<br />
Now create a primary partition for /var, designating it as '''T'''ype 83 Linux. The created /var partition shall appear as sda2 <br />
<br />
Next, create a partition for swap. Select an appropriate size and specify the '''T'''ype as 82 (Linux swap / Solaris). The created swap partition shall appear as sda3.<br />
<br />
Lastly, create a partition for your /home directory. Choose another primary partition and set the desired size.<br />
<br />
Likewise, select the '''T'''ype as 83 Linux. The created /home partition shall appear as sda4.<br />
<br />
Example:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Primary Linux 12440 #root<br />
sda2 Primary Linux 6256 #/var<br />
sda3 Primary Linux swap / Solaris 1024 #swap<br />
sda4 Primary Linux 140480 #/home<br />
<br />
Choose '''W'''rite and type ''''yes''''. Beware that this operation may destroy data on your disk. Choose '''Q'''uit to leave the partitioner. <br />
Choose Done to leave this menu and continue with "Set Filesystem Mountpoints".<br />
<br />
{{Box Note | Since the latest developments of the Linux kernel which include the libata and PATA modules, all IDE, SATA and SCSI drives have adopted the sd''x'' naming scheme. This is perfectly normal and should not be a concern.}}<br />
<br />
====Set Filesystem Mountpoints====<br />
First you will be asked for your swap partition. Choose the appropriate partition (sda3 in this example). You will be asked if you want to create a swap filesystem; select yes. Next, choose where to mount the / (root) directory (sda1 in the example). At this time, you will be asked to specify the filesystem type.<br />
<br />
=====Filesystem Types=====<br />
<br />
Again, a filesystem type is a very subjective matter which comes down to personal preference. Each has its own advantages, disadvantages, and unique idiosyncrasies. Here is a very brief overview of supported filesystems:<br />
<br />
1. '''ext2''' ''Second Extended Filesystem''- Old, reliable GNU/Linux filesystem. Very stable, but ''without journaling support''. May be inconvenient for root (/) and /home, due to very long fsck's. ''An ext2 filesystem can easily be converted to ext3.'' Generally regarded as a good choice for /boot/.<br />
<br />
2. '''ext3''' ''Third Extended Filesystem''- Essentially the ext2 system, but with journaling support. ext3 is completely compatible with ext2. ''Extremely'' stable, mature, and by far the most widely used, supported and developed GNU/Linux FS.<br />
<br />
'''High Performance Filesystems:'''<br />
<br />
3. '''ReiserFS''' - Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput based on an unconventional and creative algorithm. ReiserFS is touted as very fast, especially when dealing with many small files. ReiserFS is fast at formatting, yet comparatively slow at mounting. Quite mature and stable. ReiserFS is not actively developed at this time (Reiser4 is the new Reiser filesystem). Generally regarded as a good choice for /var/.<br />
<br />
4. '''JFS''' - IBM's '''J'''ournaled '''F'''ile'''S'''ystem- The first filesystem to offer journaling. JFS had many years of use in the IBM AIX® OS before being ported to Linux. JFS currently uses the least CPU resources of any GNU/Linux filesystem. Very fast at formatting, mounting and fsck's, and very good all-around performance, especially in conjunction with the deadline I/O scheduler. (See [[JFS]].) Not as widely supported as ext or ReiserFS, but very mature and stable.<br />
<br />
5. '''XFS''' - Another early journaling filesystem originally developed by Silicon Graphics for the IRIX OS and ported to Linux. XFS offers very fast throughput on large files and large filesystems. Very fast at formatting and mounting. Generally benchmarked as slower with many small files, in comparison to other filesystems. XFS is very mature and is currently the only available stable Linux FS with online defragmentation ability.<br />
<br />
===== A note on Journaling=====<br />
All above filesystems, except ext2, utilize [http://en.wikipedia.org/wiki/Journaling_file_system journaling]. Journaling file systems are fault-resilient file systems that use a journal to log changes before they're committed to the file system to avoid metadata corruption in the event of a crash. Note that not all journaling techniques are alike; specifically, only ext3 offers ''data-mode journaling'', (though, not by default), which journals ''both'' data ''and'' meta-data (but with significant speed penalty). The others only offer ''ordered-mode journaling'', which journals meta-data only. While all will return your filesystem to a valid state after recovering from a crash, ''data-mode journaling'' offers the greatest protection against file system corruption and data loss but can suffer from performance degradation, as all data is written twice (first to the journal, then to the disk). Depending on how important your data is, this may be a consideration in choosing your filesystem type.<br />
<br />
Choose and create the filesystem (format the partition) for / by selecting '''yes'''. You will now be prompted to add any additional partitions. In our example, sda2 and sda4 remain. For sda2, choose a filesystem type and mount it as /var. Finally, choose the filesystem type for sda4, and mount it as /home. Return to main menu.<br />
<br />
===Select Packages===<br />
<br />
*Core ISO: Choose CD as source and select the appropriate CD drive if you have more than one.<br />
*FTP ISO: Select an FTP/HTTP mirror. ''Note that archlinux.org is throttled to 50KB/s''.<br />
<br />
Package selection is split into two stages. First, you will select package categories, then you will be presented will the full lists of packages in the selected categories, allowing you to fine-tune your selections. The space bar selects and unselects the categories.<br />
<br />
*'''BASE:''' Contains the minimal GNU/Linux package set; just enough for a barebones environment; The linux kernel, GNU, fsprogs, bootloader, editor, bash, etc.<br />
*'''SUPPORT:''' Additional convenience packages for networking and filesystems, etc; gpm, fuse, dnsutils, wireless drivers, ndiswrapper, ntfs-3g, and so forth.<br />
*'''DEVEL:''' Critical software compiling tools such as GCC, autoconf, automake and make.<br />
*'''LIB:''' A thimbleful of various extra libraries such as gmp, lebelf, libevent, etc. <br />
<br />
Choose OK to continue and then choose 'yes' for 'Select all packages by default', for now.<br />
<br />
The next screen will present you with the selected packages within your selected categories. Leaving all selected is a safe choice for beginners, while more experienced users will wish to trim a few unnecessary packages. (For instance, an unneeded filesystem type utility, unneeded drivers, etc.)<br />
<br />
===Install Packages===<br />
Next, choose 'Install Packages'. You will be asked if you wish to keep the packages in the pacman cache. If you choose 'yes', you will have the flexibility to [[Downgrade packages|downgrade]] to previous package versions in the future, so this is recommended (you can always clear the cache in the future). The installer script will now install the selected packages, as well as the default Arch 2.6 kernel, to your system. <br />
*FTP ISO: The [[Pacman]] package manager will now download and install your selected packages. (See vc/5 for output, vc/1 to return to the installer)<br />
*CORE ISO: The packages will be installed from the CD.<br />
<br />
Note: For Arch 2007.08 FTP installation: after 'Install Packages' you have to upgrade pacman (<ALT>+F3, pacman -Sy pacman) and again 'Install Packages'.<br />
<br />
===Configure the System===<br />
''Closely following and understanding these steps is of key importance to ensure a properly configured system.'' <br />
<br />
The installer will ask if you want to choose [[Hwdetect|hwdetect]] to gather information for your configuration. Beginners should choose 'yes'. <br />
<br />
Advanced users who are thoroughly familiar with their hardware, required modules, and who are able to manually configure /etc/rc.conf, /etc/mkinitcpio and /etc/fstab, etc. from scratch may wish to choose 'no'. (Needless to say, this option is very involved, beyond the scope of this guide, and therefore is not covered.)<br />
<br />
Next, you will be asked if you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, encrypted volumes, and DSDT support. Choose yes if you need it; in our example nothing is needed. <br />
<br />
Now you will be asked which text editor you want to use; choose [http://en.wikipedia.org/wiki/Nano_%28text_editor%29 nano] or [http://en.wikipedia.org/wiki/Vim_%28text_editor%29 vim] (recommended). You will be presented with a menu including the main configuration files for your system. <br />
<br />
{{Box Note | ''It is very important at this point to edit, or at the very least, to verify by opening, every configuration file.'' The installer script relies on your input to create these files on your installation. A common error is to skip over these critical steps of configuration.}}<br />
<br />
=====Can the installer handle this more automatically?=====<br />
Hiding the process of system configuration is in direct opposition to [[The Arch Way]]. While it is true that recent versions of the kernel and hardware probing tools offer excellent hardware support and auto-configuration, Arch presents the user all pertinent configuration files during installation for the purposes of ''transparency and system resource control''. By the time you have finished modifying these files to your specifications, you will have learned the simple method of manual Arch Linux system configuration and become more familiar with the base structure, leaving you better prepared to use and maintain your new installation productively.<br />
<br />
====='''/etc/rc.conf'''=====<br />
Arch Linux follows in the '''*BSD''' tradition of utilizing '''/etc/rc.conf''' as the principal location for system configuration. This one file contains a wide range of configuration information, principally used at system startup. As its name directly implies, it also contains settings for and invokes the /etc/rc* files, and is, of course, sourced ''by'' these files. /etc/rc.conf offers a simple, elegant method of streamlining system resource configuration by encompassing a wide range of control, readily accessible for the Arch user. <br />
* '''LOCALIZATION''' section<br />
** '''LOCALE'''=: This sets your system locale, which will be used by all i18n-aware applications and utilities. You can get a list of the available locales by running 'locale -a' from the command line. This setting's default is fine for US English users. <br />
** '''HARDWARECLOCK'''=: Specifies whether the hardware clock, which is synchronized on bootup and on shutdown, stores '''UTC''' time, or the '''localtime'''. UTC makes sense because it greatly simplifies changing timezones and daylight savings time. localtime is necessary if you dual boot with an operating system such as Windows, that only stores localtime to the hardware clock.<br />
** '''TIMEZONE'''=: Specify your TIMEZONE. (All available zones are under /usr/share/zoneinfo/).<br />
** '''KEYMAP'''=: The available keymaps are in /usr/share/kbd/keymaps. Please note that this setting is only valid for your TTYs, not any graphical window managers or X!<br />
** '''CONSOLEFONT'''=: Available console fonts reside under /usr/share/kbd/consolefonts/ if you must change. The default (blank) is safe.<br />
** '''CONSOLEMAP'''=: Defines the console map to load with the setfont program on bootup. Possible maps are found in /usr/share/kbd/consoletrans, if needed. The default (blank) is safe. <br />
** '''USECOLOR'''=: Select "yes" if you have a color monitor and wish to have colors in your consoles.<br />
<br />
LOCALE="en_US.utf8"<br />
HARDWARECLOCK="localtime"<br />
TIMEZONE="US/Eastern"<br />
KEYMAP="us"<br />
CONSOLEFONT=<br />
CONSOLEMAP=<br />
USECOLOR="yes"<br />
* '''HARDWARE''' section<br />
** '''MOD_AUTOLOAD'''=: Setting this to "yes" will utilize '''udev''' to automatically probe hardware and load the appropriate modules during boot-up, (convenient with the default modular kernel). Setting this to "no" will rely on the user's ability to specify this information manually, or compile their own custom kernel and modules, etc. <br />
** '''MOD_BLACKLIST'''=: This has become deprecated in favor of adding blacklisted modules directly to the '''MODULES=''' line below. <br />
** '''MODULES'''=: Specify additional MODULES if you know that an important module is missing, ('''hwdetect''' should have filled in the most important modules). Also specify any blacklisted modules by prefixing them with a bang (!). Udev will be forced NOT to load blacklisted modules. In the example, the IPv6 module as well as the annoying pcspeaker are blacklisted. If you have a floppy drive, you may want to load the module <tt>floppy</tt>, else your drive light may be on all the time.<br />
# Scan hardware and load required modules at bootup<br />
MOD_AUTOLOAD="yes"<br />
# Module Blacklist - Deprecated<br />
MOD_BLACKLIST=()<br />
#<br />
MODULES=(e100 eepro100 mii slhc snd-ac97-codec snd-intel8x0 soundcore !net-pf-10 !pcspkr)<br />
* '''NETWORKING''' section<br />
** '''HOSTNAME'''=:Set your HOSTNAME to your liking.<br />
** '''eth0'''=: 'Ethernet, card 0'. Adjust the interface IP address, netmask and broadcast address ''if'' you are using '''static IP'''. Set eth0="dhcp" if you want to use '''DHCP'''<br />
** '''INTERFACES'''=: Specify any/all interfaces here. If you do not use DHCP to configure a device, just keep in mind that the value of the variable (whose name must be equal to the name of the device which is supposed to be configured) equals the line which would be appended to the ifconfig command if you were to configure the device manually in the shell.<br />
** '''gateway'''=: If you are using '''static IP''', set the gateway address. If using '''DHCP''', you can usually ignore this variable, though some users have reported the need to define it.<br />
** '''ROUTES'''=: If you are using static '''IP''', remove the '''!''' in front of 'gateway'. If using '''DHCP''', you can usually leave this variable commented out with the bang (!), but again, some users require the gateway and ROUTES defined. If you experience networking issues with pacman, for instance, you may want to return to these variables. <br />
<br />
Example, using '''DHCP''':<br />
HOSTNAME="arch"<br />
#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" <br />
eth0="dhcp"<br />
INTERFACES=(eth0)<br />
gateway="default gw 192.168.0.1"<br />
ROUTES=(!gateway)<br />
{{Box Note | Arch uses the '''dhcpcd''' DHCP client. Alternatively, '''dhclient''' is available from the [extra] repository via pacman.}}<br />
* '''DAEMONS''' section<br />
This array simply lists the names of those scripts contained in /etc/rc.d/ which are to be started during the boot process, and the order in which they start. <br />
DAEMONS=(@network syslog-ng netfs crond)<br />
*If a script name is prefixed with a bang (!), it is not executed. <br />
*If a script is prefixed with an "at" symbol (@), then it will be executed in the background; the startup sequence will not wait for successful completion of each daemon before continuing to the next. (Useful for speeding up system boot).<br />
*Edit this array whenever new system services are installed, if starting them automatically during bootup is desired. <br />
<br />
This 'BSD-style' init, is the Arch way of handling what others handle with various symlinks to an /etc/init.d directory.<br />
<br />
======About DAEMONS======<br />
You do not have to change the [[daemons]] line at this time, but it is useful to explain what daemons are, because we need them later in this guide. <br />
<br />
Analogous to a Windows service, a ''daemon'' is a program that runs in the background, waiting for events to occur and offering services. A good example is a webserver that waits for a request to deliver a page or an SSH server waiting for someone trying to log in. While these are full-featured applications, there are daemons whose work is not that visible. Examples are a daemon which writes messages into a log file (e.g. syslog, metalog), a daemon which lowers your CPU's frequency if your system has nothing to do (e.g.:cpufreq), and a daemon which offers you a graphical login (e.g.: gdm, kdm). All these programs can be added to the daemons line and will be started when the system boots. Useful daemons will be presented during this guide.<br />
<br />
Historically, the term ''daemon'' was coined by the programmers of MIT's Project MAC. They took the name from ''Maxwell's demon'', an imaginary being from a famous thought experiment that constantly works in the background, sorting molecules. <code>UNIX</code> systems inherited this terminology and created the backronym '''d'''isk '''a'''nd '''e'''xecution '''mon'''itor. <br />
<br />
*<font color="blue">'''Tip:</font> All Arch daemons reside under /etc/rc.d/'''<br />
<br />
=====/etc/fstab=====<br />
The '''fstab''' (for '''f'''ile '''s'''ystems '''tab'''le) is part of the system configuration listing all available disks and disk partitions, and indicating how they are to be initialized or otherwise integrated into the overall system's filesystem. The '''/etc/fstab''' file is most commonly used by the '''mount''' command. The mount command takes a filesystem on a device, and adds it to the main system heirarchy that you see when you use your system. '''mount -a''' is called from /etc/rc.sysinit, about 3/4 of the way through the boot process, and reads /etc/fstab to determine which options should be used when mounting the specified devices therein. If '''noauto''' is appended to a filesystem in /etc/fstab, '''mount -a''' will not mount it at boot.<br />
<br />
An example '''/etc/fstab''':<br />
<br />
#<br />
# /etc/fstab: static file system information<br />
#<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
#/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0<br />
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0<br />
#/dev/fd0 /media/fl auto user,noauto 0 0<br />
/dev/disk/by-uuid/0ec-933.. / jfs defaults,noatime,nodiratime 0 1<br />
/dev/disk/by-uuid/7ef-223.. /home jfs defaults,noatime,nodiratime 0 2<br />
/dev/disk/by-uuid/530-1e-.. swap swap defaults 0 0<br />
/dev/disk/by-uuid/4fe-110.. /var reiserfs defaults,noatime,notail 0 2 <br />
{{Box Note | '''''The 'noatime' and 'nodiratime' options may safely be appended to / and /home regardless of your specified filesystem type for increased speed, performance, and power efficiency, for laptops as well as desktops. 'notail' disables the ReiserFS tailpacking feature, for added performance at the cost of slightly less efficient disk usage.'''''}}<br />
Modify your '''fstab''' to your requirements.<br />
{{Box Note | As of 2008-04rc, Arch is now utilizing the UUID, or Universally Unique Identifier naming convention, for consistent device mapping. This is due to active developments in the kernel and also udev, which may randomly change the ordering in which drivers for storage controllers are loaded, yielding an unbootable system/kernel panic. Nearly every motherboard has several controllers (onboard SATA, onboard IDE), and due to the aforementioned development updates, /dev/sda may become /dev/sdb on the next reboot- hence the persistent device naming convention of UUID has been adopted for reliability. ''If you do not need nor wish to use UUID, simply change your fstab to use whatever naming convention desired.'' (See [[Persistent block device naming| this wiki article]] for more information on persistent block device naming. )}}<br />
ls -lF /dev/disk/by-uuid/<br />
Will list all partitions by uuid.<br />
<br />
*If you plan on using '''hal''' to automount media such as DVDs, you may wish to comment out the cdrom and dvd entries in preparation for '''hal''', which will be installed later in this guide.<br />
<br />
<br />
<br />
Expanded information available in the [[Fstab]] wiki entry.<br />
<br />
====='''/etc/mkinitcpio.conf and /etc/modprobe.conf'''=====<br />
Editing these configurations is unnecessary at this point. <br />
<br />
* '''mkinitcpio.conf''' This file allows you to fine-tune the initial ram filesystem (also commonly referred to as the initial ramdisk or "initrd") for your system. The initrd is a gzipped image that is read by the kernel during bootup. The purpose of the initrd is to bootstrap the system to the point where it can access the root filesystem. This means it has to load any modules that are required for devices like IDE, SCSI, or SATA drives (or USB/FW, if you are booting off a USB/FW drive). Once the initrd loads the proper modules, either manually or through udev, it passes control to the Arch system and your bootup continues. For this reason, the initrd only needs to contain the modules necessary to access the root filesystem. It does not need to contain every module you would ever want to use. The majority of your everyday modules will be loaded later on by udev, during the init process.<br />
<br />
* '''modprobe.conf''' can be used to set special configuration options for the kernel modules<br />
<br />
=====/etc/resolv.conf (for Static IP)=====<br />
The ''resolver'' is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). One of the main functions of DNS is to translate domain names into IP addresses, to make the Web a friendlier place. The resolver configuration file, or /etc/resolv.conf, contains information that is read by the resolver routines the first time they are invoked by a process.<br />
<br />
*''If you are using DHCP, you may safely ignore this file, as by default, it will be dynamically created and destroyed by the dhcpcd daemon. You may change this default behavior if you wish. (See [http://wiki.archlinux.org/index.php/Network#For_DHCP_IP Network]]).''<br />
<br />
If you use a static IP, set your DNS servers in /etc/resolv.conf (nameserver <ip-address>). You may have as many as you wish, e.g.:<br />
nameserver 208.67.222.222<br />
nameserver 208.67.220.220<br />
<br />
If you are using a router, you will probably want to specify your DNS servers in the router itself, and merely point to it from your '''/etc/resolv.conf''', using your router's IP (which is also your gateway from '''/etc/rc.conf'''), e.g.:<br />
nameserver 192.168.1.1<br />
<br />
If using '''DHCP''', you may also specify your DNS servers in the router, or allow automatic assignment from your ISP, if your ISP is so equipped.<br />
<br />
=====/etc/hosts=====<br />
<br />
This file associates IP addresses with hostnames and aliases, one line per IP address. For each host a single line should be present with the following information:<br />
<IP-address> <hostname> [aliases...]<br />
Add your ''hostname'', coinciding with the one specified in /etc/rc.conf, as an alias, so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost '''''yourhostname'''''<br />
{{Box Note |''This format, '''including the 'localhost' and your actual host name''', is required for program compatibility! Errors in this entry may cause poor network performance and/or certain programs to open very slowly, or not work at all. This is a very common error for beginners.''}}<br />
<br />
If you use a static IP, add another line using the syntax: <static-IP> <hostname.domainname.org> <hostname> e.g.:<br />
192.168.1.100 '''''yourhostname'''''.domain.org '''''yourhostname'''''<br />
<br />
*<font color="blue">'''TIP''':</font> For convenience, you may also use /etc/hosts aliases for hosts on your network, and/or on the Web, e.g.:<br />
64.233.169.103 www.google.com g<br />
192.168.1.90 media<br />
192.168.1.88 data<br />
The above example would allow you to access google simply by typing 'g' into your browser, and access to a media and data server on your network by name and without the need for typing out their respective IP addresses.<br />
<br />
=====/etc/hosts.deny and /etc/hosts.allow=====<br />
Modify these configurations according to your needs if you plan on using the [[SSH|ssh]] daemon. The default configuration will reject all incoming connections, not only ssh connections. Edit your '''/etc/hosts.allow '''file and add the appropriate parameters: <br />
<br />
* let everyone connect to you<br />
sshd: ALL<br />
<br />
* restrict it to a certain ip<br />
sshd: 192.168.0.1<br />
<br />
* OR restrict for an IP range<br />
sshd: 10.0.0.0/255.255.255.0<br />
<br />
If you do not plan on using the [[SSH|ssh]] daemon, leave this file at the default, (empty), for added security.<br />
<br />
=====/etc/locale.gen=====<br />
<br />
The '''locale-gen''' command reads from '''/etc/locale.gen''' to generate specific locales. They can then be used by '''glibc''' and any other locale-aware program or library for rendering "peculiar" text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards. The ability to setup a default locale is a great built-in privilege of using a <code>UNIX</code>-like operating system.<br />
<br />
By default /etc/locale.gen is an empty file with commented documentation. Once edited, the file remains untouched. '''locale-gen''' runs on every '''glibc''' upgrade, generating all the locales specified in /etc/locale.gen.<br />
<br />
Choose the locale(s) you need (remove the # in front of the lines you want), e.g.:<br />
en_US ISO-8859-1<br />
en_US.UTF-8 <br />
<br />
The installer will now run the locale-gen script, which will generate the locales you specified. You may change your locale in the future by editing /etc/locale.gen and subsequently running 'locale-gen' as root.<br />
<br />
{{Box Note |'''''If you fail to choose your locale, this will lead to a "The current locale is invalid..." error. This is perhaps the most common mistake by new Arch users, and also leads to the most commonly asked questions on the forum.'''''}}<br />
<br />
=====Root password=====<br />
Finally, set a root password and make sure that you remember it later. Return to the main menu and continue with installing bootloader.<br />
<br />
=====Pacman-Mirror=====<br />
Choose a mirror repository for '''pacman'''. <br />
*''archlinux.org is throttled, limiting downloads to 50KB/s'' <br />
<br />
Return to the main menu.<br />
<br />
===Install Bootloader===<br />
Because we have no secondary operating system in our example, we will need a bootloader. [http://www.gnu.org/software/grub/ GNU GRUB] is the recommended bootloader. Alternatively, you may choose [http://lilo.go.dyndns.org/ LILO]. <br />
====GRUB====<br />
The provided '''GRUB''' configuration ('''/boot/grub/menu.lst''') should be sufficient, but verify its contents to ensure accuracy. You may want to alter the resolution of the console by adding a vga=<number> kernel argument corresponding to your desired virtual console resolution. (A table of resolutions and the corresponding numbers is printed in the menu.lst.)<br />
<br />
Example: <br />
title Arch Linux (Main)<br />
root (hd0,0) <br />
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/0ec1-9339.. ro vga=773<br />
initrd /boot/kernel26.img<br />
{{Box Note | '''''The linux kernel, 'vmlinuz', is so named because it incorporated '''v'''irtual '''m'''emory capability early in its development. The '''z''' denotes a zipped (compressed) image.'''''}}<br />
<br />
Explanation:<br />
<br />
Line 1: '''title''': A printed menu selection. "Arch Linux (Main)" will be printed on the screen as a menu selection.<br />
<br />
Line 2: '''root''': '''GRUB''''s root; the drive and partition where the kernel (/boot) resides, according to system BIOS. (More accurately, where GRUB's stage2 file resides). '''NOT necessarily the root''' (/) file system, as they can reside on separate partitions. GRUB's numbering scheme starts at 0, and uses an hd''x,x'' format regardless of IDE or SATA, and enclosed within parentheses. <br />
<br />
The example indicates that /boot is on the first partition of the first drive, according to BIOS, or, (hd0,0).<br />
<br />
Line 3: '''kernel''': This line specifies:<br />
<br />
* The path and filename of the kernel '''''relative to GRUB's root'''''.<br />
In the example, /boot is merely a directory residing on the same partition as / and '''vmlinuz26''' is the kernel filename; '''/boot/vmlinuz26'''. ''If /boot were on a separate partition, the path and filename would be simply '''/vmlinuz26''', being relative to '''GRUB''''s root.'' <br />
<br />
* The root= argument to the kernel statement specifies the partition containing the root (/) directory in the booted system, (more accurately, the partition containing '''/sbin/init'''), ''according to the UUID numbering scheme'' as of 2008-04rc, which uses the /dev/disk/by-uuid/xxxx-xxxx-xxxx format. <br />
<br />
*An easy way to distinguish the 2 appearances of 'root' in /boot/grub/menu.lst is to remember that the first root statement ''informs GRUB where the kernel resides'', whereas the second root= kernel argument ''tells the kernel where the root filesystem (/) resides''.<br />
<br />
* Kernel options. <br />
<br />
In our example, '''ro''' mounts the filesystem as read only during startup, and the '''"vga=773"''' argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Line 4: '''initrd''': (For Initial RAM disk) The path and filename of the initial RAM filesystem '''relative to GRUB''''s root. Again, in the example, /boot is merely a directory residing on the same partition as / and '''kernel26.img''' is the initrd filename; '''/boot/kernel26.img'''. ''If /boot were on a separate partition, the path and filename would be simply '''/kernel26.img''', being relative to '''GRUB''''s root.'' <br />
<br />
Install the '''GRUB''' bootloader to the master boot record, (sda in our example).<br />
<br />
===Reboot===<br />
<br />
That's it; You have configured and installed your Arch Linux base system. Exit the install, and reboot:<br />
<br />
reboot<br />
(Be sure to remove the installer CD)<br />
<br />
Your new Arch Linux system will boot up and finish with a login prompt (you may want to change the boot order in your '''BIOS''' back to booting from hard disk).<br />
<br />
'''Congratulations, and welcome to your shiny, new Arch Linux base system!'''<br />
<br />
Your new Arch Linux base system is now a functional GNU/Linux environment ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes. <br />
<br />
Login with the root account. We will configure pacman and update the system as root, then add a normal user. <br />
{{Box Note |Virtual consoles 1-6 are available.}}<br />
<br />
===Configuring the network (if necessary)===<br />
*''This section will assist you in configuring most types of networks, if your network configuration is not working for you.''<br />
<br />
If you properly configured your system, you should have a working network. Try to ping www.google.com to verify this.<br />
ping -c 3 www.google.com<br />
<br />
''If you have successfully established a network connection, continue with '''[[#Update, Sync and Upgrade the system with pacman|Update, Sync and Upgrade the system with pacman]]'''.''<br />
<br />
If, after trying to ping www.google.com, you get an "unknown host" error, you may conclude that your network is not properly configured. You may choose to double-check the following files for integrity and proper settings:<br />
<br />
'''/etc/rc.conf''' # Specifically, check your HOSTNAME= and NETWORKING section for typos and errors.<br />
<br />
'''/etc/hosts''' # Double-check your format. (See above.)<br />
<br />
'''/etc/resolv.conf''' # If you are using a static IP. If you are using DHCP, this file will be dynamically created and destroyed by default, but can be changed to your preference. (See [[Network]].)<br />
<br />
Advanced instructions for configuring the network can be found in the [[Network]] article.<br />
<br />
====Wired LAN====<br />
<br />
Check your Ethernet with<br />
ifconfig -a<br />
All interfaces will be listed. You should see an entry for eth0, or perhaps eth1. <br />
*'''Static IP'''<br />
<br />
If required, you can set a new static IP with:<br />
ifconfig eth0 <ip address> netmask <netmask> up <br />
and the default gateway with<br />
route add default gw <ip address of the gateway><br />
Verify that /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.com. If everything is working now, adjust /etc/rc.conf as described above for static IP. <br />
*'''DHCP'''<br />
If you have a DHCP server/router in your network try:<br />
dhcpcd eth0<br />
If this is working, adjust /etc/rc.conf as described above, for dynamic IP.<br />
<br />
====Wireless LAN====<br />
Detailed setup guide: [[Wireless Setup]]<br />
<br />
====Analog Modem====<br />
To be able to use a Hayes-compatible, external, analog modem, you need to at least have the ppp package installed. Modify the file /etc/ppp/options to suit your needs and according to man pppd. You will need to define a chat script to supply your username and password to the ISP after the initial connection has been established. The manpages for pppd and chat have examples in them that should suffice to get a connection up and running if you're either experienced or stubborn enough. With udev, your serial ports usually are /dev/tts/0 and /dev/tts/1.<br />
Tip: Read [[Dialup without a dialer HOWTO]].<br />
<br />
Instead of fighting a glorious battle with the plain pppd, you may opt to install wvdial or a similar tool to ease the setup process considerably. In case you're using a so-called WinModem, which is basically a PCI plugin card working as an internal analog modem, you should indulge in the vast information found on the [http://www.linmodems.org/ LinModem] homepage.<br />
<br />
====ISDN====<br />
<br />
Setting up ISDN is done in three steps:<br />
# Install and configure hardware<br />
# Install and configure the ISDN utilities<br />
# Add settings for your ISP <br />
<br />
The current Arch stock kernels include the necessary ISDN modules, meaning that you will not need to recompile your kernel unless you're about to use rather odd ISDN hardware. After physically installing your ISDN card in your machine or plugging in your USB ISDN-Box, you can try loading the modules with modprobe. Nearly all passive ISDN PCI cards are handled by the hisax module, which needs two parameters: type and protocol. You must set protocol to '1' if your country uses the 1TR6 standard, '2' if it uses EuroISDN (EDSS1), '3' if you're hooked to a so-called leased-line without D-channel, and '4' for US NI1.<br />
<br />
Details on all those settings and how to set them is included in the kernel documentation, more specifically in the isdn subdirectory, and available online. The type parameter depends on your card; a list of all possible types can be found in the README.HiSax kernel documentation. Choose your card and load the module with the appropriate options like this:<br />
<br />
modprobe hisax type=18 protocol=2<br />
<br />
This will load the hisax module for my ELSA Quickstep 1000PCI, being used in Germany with the EDSS1 protocol. You should find helpful debugging output in your /var/log/everything.log file, in which you should see your card being prepared for action. Please note that you will probably need to load some USB modules before you can work with an external USB ISDN Adapter.<br />
<br />
Once you have confirmed that your card works with certain settings, you can add the module options to your /etc/modprobe.conf:<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Alternatively, you can add only the options line here, and add hisax to your MODULES array in the rc.conf. It's your choice, really, but this example has the advantage that the module will not be loaded until it's really needed.<br />
<br />
That being done, you should have working, supported hardware. Now you need the basic utilities to actually use it!<br />
<br />
Install the isdn4k-utils package, and read the manpage to isdnctrl; it'll get you started. Further down in the manpage you will find explanations on how to create a configuration file that can be parsed by isdnctrl, as well as some helpful setup examples. Please note that you have to add your SPID to your MSN setting separated by a colon if you use US NI1.<br />
<br />
After you have configured your ISDN card with the isdnctrl utility, you should be able to dial into the machine you specified with the PHONE_OUT parameter, but fail the username and password authentication. To make this work add your username and password to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets as if you were configuring a normal analogous PPP link, depending on which protocol your ISP uses for authentication. If in doubt, put your data into both files.<br />
<br />
If you set up everything correctly, you should now be able to establish a dial-up connection with<br />
isdnctrl dial ippp0<br />
as root. If you have any problems, remember to check the logfiles!<br />
<br />
====DSL (PPPoE)====<br />
<br />
These instructions are relevant to you only if your PC itself is supposed to manage the connection to your ISP. You do not need to do anything but define a correct default gateway if you are using a separate router of some sort to do the grunt work.<br />
<br />
Before you can use your DSL online connection, you will have to physically install the network card that is supposed to be connected to the DSL-Modem into your computer. After adding your newly installed network card to the modules.conf/modprobe.conf or the MODULES array, you should install the rp-pppoe package and run the pppoe-setup script to configure your connection. After you have entered all the data, you can connect and disconnect your line with<br />
<br />
/etc/rc.d/adsl start<br />
<br />
and<br />
<br />
/etc/rc.d/adsl stop<br />
<br />
respectively. The setup usually is rather easy and straightforward, but feel free to read the manpages for hints. If you want to automatically 'dial in' on boot-up, add adsl to your DAEMONS array.<br />
<br />
===Update, Sync and Upgrade the system with [[pacman]]===<br />
Now we will update the system using [[pacman]]. <br />
<br />
====What is pacman ?====<br />
[[Pacman]] is the '''pac'''kage '''man'''ager of Arch Linux. Pacman is written in ''C'' and is designed from the ground up to be lightweight with a very modest memory footprint, fast, simple, and versatile. It manages your entire package system and handles installation, removal, package downgrade (through cache), custom compiled package handling, automatic dependency resolution, remote and local searches and much more. Arch uses the .tar.gz package format, which further enhances pacman's speed; Gzipped tarballs, though slightly larger, are decompressed many times faster than their Bzipped counterparts, and are therefore installed ''much'' more expediently. <br />
<br />
We will use pacman to download software packages from remote repositories and install them onto your system.<br />
<br />
Pacman is the most important tool in your Arch Linux toolbox for building the base system into whatsoever you please.<br />
<br />
====Configuring pacman====<br />
<br />
=====Package Repositories and /etc/pacman.conf=====<br />
Arch currently offers the following 4 repositories readily accessible through pacman:<br />
<br />
'''[core]'''<br />
<br />
The simple principle behind [core] is to provide only one of each necessary tool for a base Arch Linux system; The GNU toolchain, the Linux kernel, one editor, one command line browser, etc. (There are a few exceptions to this. For instance, both vi and nano are provided, allowing the user to choose one or both.) It contains all the packages that MUST be in perfect working order to make sure your system continues to run. These are the absolute system-critical packages. Developer maintained.<br />
<br />
*''The Core installation media simply contains an installer script, and a snapshot of the core repository at the time of release.''<br />
<br />
'''[extra]'''<br />
<br />
The [extra] repository contains all Arch packages that are not themselves necessary for a base Arch system, but contribute to a more full-featured environment. '''X''', KDE, and Apache, for instance, can be found here. Developer maintained.<br />
<br />
'''[testing]'''<br />
<br />
The [testing] repository contains packages that are candidates for the [core] or [extra] repositories. New packages go into [testing] if:<br />
* they are expected to break something on update and need to be tested first<br />
* they require other packages to be rebuilt. In this case, all packages that need to be rebuilt are put into [testing] first and when all rebuilds are done, they are moved back to the other repositories. Developer maintained.<br />
<br />
[testing] is the only repository that can have name collisions with any of the other official repositories. If enabled, it has to be the first repo listed in your ''pacman.conf'' file.<br />
<br />
<font color="red">'''WARNING''': '''''Be careful when enabling [testing]. Your system may break after you update with [testing] enabled. Only experienced users should use it.'''''</font><br />
<br />
'''[community]'''<br />
<br />
The [community] repository is maintained by the ''Trusted Users (TUs)'' and is part of the ''Arch User Repository ([[AUR]])''. It contains binary packages from the ''AUR'' that have enough votes and were adopted by a ''TU''. Like all repos listed above, [community] may be readily accessed by pacman.<br />
<br />
The '''[[AUR]]''' also contains the '''unsupported''' branch, which cannot be accessed directly by pacman*. [unsupported] contains more than eight thousand PKGBUILD scripts for building packages from source, that may be unavailable through the other repos. <br />
<br />
<nowiki>*</nowiki> '''''[[AUR Helpers]]''''' can help you seamlessly access AUR.<br />
<br />
'''/etc/pacman.conf'''<br />
<br />
pacman will attempt to read /etc/pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package [[Official Repositories|repository]] that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
nano /etc/pacman.conf<br />
Example:<br />
# GENERAL OPTIONS<br />
#<br />
[options]<br />
LogFile = /var/log/pacman.log<br />
NoUpgrade = etc/passwd etc/group etc/shadow etc/sudoers<br />
NoUpgrade = etc/fstab etc/raidtab etc/ld.so.conf<br />
NoUpgrade = etc/rc.conf etc/rc.local<br />
NoUpgrade = etc/modprobe.conf etc/modules.conf<br />
NoUpgrade = boot/grub/menu.lst<br />
#IgnorePkg = wine<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/wget --passive-ftp -nv -c -O %o %u<br />
#XferCommand = /usr/bin/aria2c -s 2 -m 2 -d / -o %o %u<br />
ILoveCandy<br />
#<br />
# REPOSITORIES<br />
# - can be defined here or included from another file<br />
# - pacman will search repositories in the order defined here.<br />
# - local/custom mirrors can be added here or in separate files<br />
# <br />
<br />
#[testing]<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#Server = file:///home/custompkgs<br />
<br />
Enable all desired repositories (remove the # in front of the 'Include =' and '[repository]' lines).<br />
<br />
<br />
*'''''When choosing repos, be sure to uncomment both the repository header lines in [brackets] as well as the 'Include =' lines. Failure to do so will result in the selected repository being omitted! This is a very common error.'' '''<br />
<br />
=====/etc/pacman.d/mirrorlist=====<br />
Faster mirrors will dramatically improve pacman performance, and your overall Arch Linux experience.<br />
<br />
Edit /etc/pacman.d/mirrorlist:<br />
nano /etc/pacman.d/mirrorlist<br />
Remove all mirrors which are not on your continent, or are extremely distant. (Using nano, you may use CTRL-K to cut each unneeded line.) <br />
<br />
Edit /etc/pacman.d/mirrorlist by placing the best mirror at the top of the list. (Recall that archlinux.org is throttled to 50KB/s). If using nano, you can cut a line with CTRL-K and paste with CTRL-U. <br />
<br />
After changing mirrors, issue the following command:<br />
pacman -Syy<br />
This will force pacman to resynchronize with the new repo. Issuing pacman -Syy ''whenever a mirror is changed'', is good practice and will avoid possible headaches.<br />
=====Ignoring packages=====<br />
When you execute the command "pacman -Syu", your entire system will be updated. It is possible that you want to prevent a package from being upgraded. An example could be the kernel (kernel26) or a package for which an upgrade may prove problematic for your system. In this case, you have two options; indicate the packages you want to skip in the pacman command line using the --ignore switch (do pacman -S --help for details) or permanently indicate the packages you want to skip in your /etc/pacman.conf file:<br />
<br />
IgnorePkg = kernel26<br />
The typical way to use Arch is to use pacman to install all packages unless there is no package available, in which case you can build your own package using [[ABS]]. Many user-contributed package build scripts are also available in the [[AUR]]. <br />
<br />
You are expected to keep your system up to date with pacman -Syu, rather than selectively upgrading packages. You may diverge from this typical usage as you wish; just be warned that there is a greater chance that things will not work as intended and that it could break your system. The majority of complaints happen when selective upgrading, unusual compilation or improper software installation is performed. Use of '''IgnorePkg''' in /etc/pacman.conf is therefore discouraged, and should only be used sparingly, if you know what you are doing.<br />
<br />
=====Ignoring Configuration Files=====<br />
In the same vein, you can also "protect" your configuration/system files from being overwritten during "pacman -Su" using the following option in your /etc/pacman.conf<br />
<br />
NoUpgrade = etc/lilo.conf boot/grub/menu.lst<br />
<br />
====Update System====<br />
Update, sync, and '''upgrade''' your entire new system with:<br />
pacman -Syu<br />
pacman will now fetch the latest information about available packages and perform all available upgrades. (You may be prompted to upgrade pacman itself at this point. If so, say yes, and then reissue the pacman -Syu command when finished.) <br />
Reboot if a kernel upgrade has occurred. <br />
{{Box Note|'''''Occasionally, configuration changes may take place requiring user action during an update; read pacman's output for any pertinent information.'''''}}<br />
If the messages go by too fast to read, you can look at them later at /var/log/pacman.log.<br />
<br />
=====The beauty of the Arch rolling release model=====<br />
Keep in mind that Arch is a '''rolling release''' distribution. This means there is never a reason to reinstall or perform elaborate system rebuilds to upgrade to the newest version. Simply issuing '''pacman -Syu''' periodically keeps your entire system up-to-date and on the bleeding edge. At the end of this upgrade, your system is completely current. <br />
Reboot if a kernel upgrade has occurred.<br />
<br />
====Get familiar with pacman====<br />
Pacman is the Arch user's best friend. It is highly recommended to study and learn how to use the pacman(8) tool. Try:<br />
man pacman<br />
Check out the bottom of this article, and look up the [[pacman]] wiki entries at your leisure.<br />
<br />
===Add a user and setup groups===<br />
<code>UNIX</code> is a multi-user environment. You should not do your everyday work using the root account. It is more than poor practice; it is dangerous. Root is for administrative tasks. Instead, add a normal, non-root user account using the <code>/usr/sbin/useradd</code> program:<br />
useradd -m -G [groups] -s [login_shell] [username] <br />
* '''-m''' Creates user home directory as /home/'''username''' Additionally, the files contained in /etc/skel will be conveniently copied to the home directory. Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories shall contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. (To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch.) If there is a conflict between ''user'' (under /home/username) and ''global'' configuration files, (usually under /etc/) the settings in the ''user'' file will prevail. Dotfiles likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside.<br />
* '''-G''' A list of supplementary groups which the user is also a member of. ''Each group is separated from the next by a comma, with no intervening spaces''. The default is for the user to belong only to the initial group (users). <br />
* '''-s''' The name of the user´s login shell. Leaving this field blank will cause the system to select the default login shell.<br />
Useful groups for your non-root user include:<br />
*'''audio''' - for tasks involving sound card and related software<br />
*'''floppy''' - for access to a floppy if applicable<br />
*'''lp''' - for managing printing tasks<br />
*'''optical''' - for managing tasks pertaining to the optical drive(s)<br />
*'''storage''' - for managing storage devices<br />
*'''video''' - for video tasks and 3d acceleration<br />
*'''wheel''' - for using sudo/su<br />
A typical example, adding a user named "archie" specifying bash as the login shell:<br />
useradd -m -G users,audio,lp,optical,storage,video,wheel -s /bin/bash archie<br />
Next, add a password for your new user using <code>/usr/bin/passwd</code>.<br />
<br />
An example for our user, 'archie':<br />
passwd archie<br />
(You will be prompted to provide the new <code>UNIX</code> password.)<br />
<br />
Your new non-root user has now been created, complete with a home directory and a login password.<br />
<br />
'''Alternative method, using <code>/usr/sbin/adduser</code>:'''<br />
<br />
Alternatively, you may use <code>adduser</code>, an interactive user adding program which will prompt you for the above data:<br />
adduser<br />
<br />
See the [[Groups]] article and check the man pages for <code>usermod(8)</code> and <code>gpasswd(8)</code> for further information.<br />
<br />
In the event of error, or if you wish to delete this user account in favor of a different name or for any other reason, use <code>/usr/sbin/userdel</code>:<br />
userdel -r [username]<br />
* '''-r ''' Files in the user´s home directory will be removed along with the home directory itself and the user´s mail spool.<br />
<br />
===Install and setup Sudo===<br />
<br />
See [[Sudo]]<br />
<br />
==Part II: Install X and configure ALSA==<br />
<br />
<br />
===Configure the audio card with alsamixer===<br />
The Advanced Linux Sound Architecture (known by the acronym '''ALSA''') is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing device drivers for sound cards. Besides the sound device drivers, '''ALSA''' also bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers. <br />
-----<br />
{{Box Note|udev will automatically probe your hardware on boot-up, loading the corresponding module for your audio card. Your sound should already be working, but you cannot hear anything because it is muted by default.}} <br />
The alsa-utils package contains alsamixer, which will allow us to configure the sound device from the console. (You may also run alsamixer from an '''X''' environment later.)<br />
<br />
Install the alsa-utils package:<br />
# pacman -S alsa-utils<br />
Did you add your normal user to the audio group? If not, use <code>/usr/bin/gpasswd</code>. As root do:<br />
# gpasswd -a yourusername audio<br />
Log out the root user, and login as non-root user.<br />
<br />
As '''''normal, non-root''''' user, invoke <code>/usr/bin/alsamixer</code>: <br />
'''$''' alsamixer<br />
Unmute the Master and PCM channels by scrolling to them with cursor left/right and pressing '''M'''. Increase the volume levels with the cursor-up key. (70-90 Should be a safe range.) Some machines, (like the Thinkpad T61), have a '''Speaker''' channel which must be unmuted and adjusted as well. Leave alsamixer by pressing ESC. <br />
==== Sound Test ====<br />
Test your sound configuration as normal user using <code>/usr/bin/aplay</code>:<br />
$ aplay /usr/share/sounds/alsa/Front_Center.wav<br />
You should hear a very eloquent woman say, "Front, center."<br />
<br />
''Note: If you still cannot hear any sound, try checking (by running alsamixer) if Speaker is muted. If so, press '''M''' to unmute it and then try playing the test sound again.''<br />
<br />
Then run <code>/usr/bin/alsactl</code> as root:<br />
# alsactl store<br />
This will create '/etc/asound.state', saving the alsamixer settings. <br />
<br />
Also, add the alsa ''daemon'' to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings on boot-up.<br />
# nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond '''alsa''')<br />
''Note that the alsa daemon merely restores your volume mixer levels on boot up by reading /etc/asound.state. It is separate from the alsa audio library (and kernel level API).''<br />
<br />
Expanded information available in the [[ALSA]] wiki entry.<br />
<br />
===Installing and configuring X===<br />
The '''X''' Window System (commonly '''X11''', or just simply '''X''') is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on <code>UNIX</code>-like operating systems.<br />
<br />
'''X''' provides the basic framework, or primitives, for building GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard. '''X''' does not mandate the user interface — individual client programs handle this. <br />
<br />
'''X''' is so named because it was preceded by the '''W''' Window System, originally developed at Stanford University. <br />
-----<br />
<br />
{{Box Note| If you plan on using an '''open-source''' video driver, and need 3d acceleration, it is recommended to install the libgl library before installing Xorg:}}<br />
pacman -S libgl<br />
''(Proprietary video drivers provide their own gl library implementations.)''<br />
----- <br />
Now we will install the base Xorg packages using pacman. This is the first step in building a GUI.<br />
<br />
pacman -S xorg<br />
3d utilities such as glxgears are included in the '''mesa''' package:<br />
pacman -S mesa<br />
<br />
Now we have the base packages we need for running the '''X''' Server. You should add the driver for your graphics card now (e.g. xf86-video-<name>). The easiest way to configure X.org is by installing the correct driver packages first, and then generating /etc/X11/xorg.conf using an autoconfiguration script, like Xorg -configure.<br />
<br />
You will need knowledge of which video chipset your machine has. If you do not know, use the <code>/usr/sbin/lspci</code> program:<br />
lspci | grep VGA<br />
<br />
If you need a list of all '''open-source''' video drivers, do: <br />
pacman -Ss xf86-video | less<br />
Here is a list of '''open source''' drivers, and the corresponding video chipsets.<br />
*'''xf86-video-apm''' Alliance ProMotion video driver<br />
*'''xf86-video-ark''' ark video driver<br />
*'''xf86-video-ati''' ATI(AMD) video driver<br />
*'''xf86-video-chips''' Chips and Technologies video driver<br />
*'''xf86-video-cirrus''' Cirrus Logic video driver<br />
*'''xf86-video-dummy''' dummy video driver<br />
*'''xf86-video-fbdev''' framebuffer video driver<br />
*'''xf86-video-glint''' GLINT/Permedia video driver<br />
*'''xf86-video-i128''' Number 0 i128 video driver<br />
*'''xf86-video-i740''' Intel i740 video driver<br />
*'''xf86-video-i810''' Intel i810/i830/i9xx video drivers (deprecated - use -intel)<br />
*'''xf86-video-intel''' Newer Version of Intel i810/i830/i9xx video drivers<br />
*'''xf86-video-imstt''' Integrated Micro Solutions Twin Turbo vidoe driver<br />
*'''xf86-video-mga''' mga video driver (Matrox Graphics Adapter)<br />
*'''xf86-video-neomagic''' neomagic video driver<br />
*'''xf86-video-nv''' Nvidia nv video driver<br />
*'''xf86-video-rendition''' Rendition video driver<br />
*'''xf86-video-s3''' S3 video driver<br />
*'''xf86-video-s3virge''' S3 Virge video driver<br />
*'''xf86-video-savage''' savage video driver<br />
*'''xf86-video-siliconmotion''' siliconmotion video driver<br />
*'''xf86-video-sis''' SiS video driver<br />
*'''xf86-video-sisusb''' SiS USB video driver<br />
*'''xf86-video-tdfx''' tdfx video driver<br />
*'''xf86-video-trident''' Trident video driver<br />
*'''xf86-video-tseng''' tseng video driver<br />
*'''xf86-video-unichrome''' VIA S3 Unichrome video drivers<br />
*'''xf86-video-v4l''' v4l video driver<br />
*'''xf86-video-vesa''' vesa video driver<br />
*'''xf86-video-vga''' VGA 16 color video driver<br />
*'''xf86-video-via''' via video driver<br />
*'''xf86-video-vmware ''' vmware video driver<br />
*'''xf86-video-voodoo ''' voodoo video driver<br />
<br />
* Note that the '''vesa''' driver is the most generic, and should work with almost any modern video chipset. If you cannot find a suitable driver for your video chipset, vesa '''should''' work.<br />
<br />
*If you have an NVIDIA or ATI video adapter, you may wish to install the proprietary NVIDIA or ATI drivers. '''Installing proprietary video drivers is covered [[#Using proprietary Graphics Driver (NVIDIA, ATI)|below]].'''<br />
<br />
Use pacman to install the appropriate video driver for your video card/onboard video. e.g.:<br />
pacman -S xf86-video-savage<br />
(for the Savage driver.)<br />
<br />
===Create /etc/X11/xorg.conf===<br />
=====What is /etc/X11/xorg.conf?=====<br />
/etc/X11/xorg.conf is the main configuration file for your '''X''' Window System, the foundation of your '''G'''raphical '''U'''ser '''I'''nterface. It is a plain text file ordered into sections and subsections. Important sections are ''Files, InputDevice, Module, Monitor, Modes, Screen, Device, and ServerLayout''. Sections can appear in any order and there may be more than one section of each kind, for example, if you have more than one monitor, or if your laptop has a trackpoint as well as a mouse. <br />
------<br />
By default, you will not have an Xorg config file, as the newest versions of Xorg feature autodetection. ''If'' the autodetection ''works satisfactorily'' and you do not need to specify special features such as aiglx, compositing and so forth, you may forgo creating an xorg.conf file. <br />
<br />
''Most people will still find that they need to generate a config file, however.''<br />
<br />
Advanced users may wish to manually create their own xorg.conf file. You may also use the <code>/usr/bin/Xorg</code> program with the -configure option to generate a basic config file; As root, do:<br />
Xorg -configure<br />
This will create a config file at /root/xorg.conf.new <br />
<br />
To test the server, run:<br />
X -config /root/xorg.conf.new<br />
'''X''' should start with the white hollow vector '''X''' in the center of the screen, which should respond to mouse, trackpoint or touchpad movement. Use CTRL-Alt-Backspace to exit '''X'''.<br />
<br />
Inspect your config file in case of errors:<br />
<br />
nano /root/xorg.conf.new<br />
<br />
Ensure the Xorg -configure script has correctly specified your video driver. e.g.:<br />
Section "Device"<br />
<br />
...<br />
<br />
Driver "savage"<br />
<br />
...<br />
<br />
EndSection<br />
<br />
Ensure there are horizontal sync and vertical refresh specs under section "Monitor". If not, add them:<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
HorizSync 30.0 - 130.0 # Safe for LCD's<br />
VertRefresh 50.0 - 100.0 # Safe for LCD's and most CRT's.<br />
EndSection<br />
(If you do not know these specs, consult your monitor's documentation.)<br />
<br />
Specify your default color depth under section "Screen":<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
(Typically, this will be set to 24 for true color.)<br />
<br />
Also add your desired Modes to your "Display" subsection, at least under the Depth 24 header, e.g.:<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
Modes "1024x768" "800x600" "640x480"<br />
Add the following section, if you wish to enable eye candy which requires the composite extension: <br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
Try your config again, after modifying:<br />
X -config /root/xorg.conf.new<br />
Ensure an '''X''' session opens, without errors, and move the generated config file to /etc/X11/:<br />
mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
Detailed instructions in the [[Xorg]] article.<br />
<br />
====Alternative xorg.conf generation====<br />
* Note that if your machine has a successfully configured xorg.conf under another distribution, you may easily copy it over to your current Arch system.<br />
* If Xorg -configure is not generating a usable xorg.conf, you may alternatively use the <code>/usr/bin/hwd</code> tool. Install with:<br />
pacman -S hwd<br />
And run with<br />
hwd -xa<br />
* You may also try the <code>/usr/bin/xorgcfg</code> script:<br />
xorgcfg <br />
* Lastly, you may choose <code>/usr/bin/xorgconfig</code>, which will interactively prompt you for hardware information to create a basic xorg.conf:<br />
xorgconfig<br />
Continue with '''[[#Simple baseline X test|Simple baseline X test]]'''<br />
<br />
===Using proprietary Graphics Driver (NVIDIA, ATI)===<br />
You may choose to use the proprietary video drivers from NVIDIA or ATI. <br />
====NVIDIA Graphic Cards====<br />
The NVIDIA proprietary drivers are generally considered to be of good quality, and offer 3D performance, whereas the open source '''nv''' driver offers only 2d support at this time. <br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has 3 different driver packages that each match a certain subset of Cards: <br />
<br />
'''1. nvidia-71xx''' ''for very old Cards like TNT and TNT2''<br />
<br />
'''2. nvidia-96xx''' ''slightly newer cards up to the GF 4''<br />
<br />
'''3. nvidia''' ''newest GPUs after the GF 4''<br />
<br />
Consult the NVIDIA-Homepage to see which one is for you. The difference is only for the installation; Configuration works the same with every driver.<br />
<br />
Select and install the appropriate NVIDIA driver ''for your card'', e.g.: <br />
pacman -S nvidia-96xx<br />
<br />
The NVIDIA package has a utility for updating your existing /etc/X11/xorg.conf for use with the NVIDIA driver:<br />
nvidia-xconfig<br />
<br />
It also has several options which will further specify the contents and options of the xorg.conf file.<br />
For example,<br />
nvidia-xconfig --composite --add-argb-glx-visuals<br />
<br />
For more detailed information, see nvidia-xconfig(1).<br />
<br />
Some useful tweaking options in the device section are (beware that these may not work on your system):<br />
Option "RenderAccel" "true"<br />
Option "NoLogo" "true"<br />
Option "AGPFastWrite" "true"<br />
Option "EnablePageFlip" "true"<br />
Make sure all instances of DRI are commented out:<br />
# Load "dri"<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal sync, vertical refresh, and resolutions are acceptable.<br />
<br />
Update kernel module dependencies using <code>/sbin/depmod</code>:<br />
depmod -a<br />
<br />
Advanced instructions for nvidia configuration can be found in the [[NVIDIA]] article.<br />
<br />
Continue with '''[[#Simple baseline X test|Simple baseline X test]]'''<br />
<br />
====ATI Graphic Cards====<br />
ATI owners have two options for drivers. If you are unsure which driver to use, please try the open-source one first. The open-source driver will suit most needs along with being generally less problematic.<br />
<br />
Install the '''proprietary''' ATI Driver with<br />
pacman -S catalyst<br />
Use the aticonfig tool to modify the xorg.conf.<br />
<br />
Install the '''open-source''' ATI Driver with<br />
pacman -S xf86-video-ati<br />
Currently, the performance of the open-source driver is not on par with that of the proprietary one. It also lacks TV-out, dual-link DVI support, and possibly other features. On the other hand, it supports Aiglx and has better dual-head support.<br />
{{Box Note| The latest proprietary driver does support [[AIGLX]] now. To use [[Compiz]] or [[Beryl]] add Option "AIGLX" "True" to Section ServerFlags and Option "Composite" "True" to Section Extensions.}}<br />
Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki]].<br />
<br />
===Simple baseline X test===<br />
<br />
At this point, you should have xorg installed, with a suitable video driver and an /etc/X11/xorg.conf configuration file. If you want to test your configuration quickly, to ensure your ability to start '''X''' from the command line before installing a complete desktop environment, you can do so by invoking '''xterm'''. Xterm is a very simple terminal emulator which runs in the '''X '''Server environment; it is installed as part of the base xorg packages. More advanced users who are comfortable with '''X''' configuration may choose to skip this optional step.<br />
<br />
Prepare for the test by configuring a ~/.xinitrc:<br />
<br />
===== ~/.xinitrc =====<br />
One of the main functions of this file is to dictate what '''X''' Window client is invoked with the '''/usr/bin/startx''' and/or '''/usr/bin/xinit''' program ''on a per-user basis''. (The '''startx''' script is merely a front end to the more versatile '''xinit''' command.) There are ''vast'' amounts of additional configurable specifications that may also be added to ~/.xinitrc as you further customize your system.<br />
{{Box Note | '''.xinitrc''' is a so-called 'dot' (.) file. Files in a UNIX filesystem which are preceded with a dot (.) are 'hidden', and will not show up with a regular 'ls' command, usually for the sake of keeping directories tidy. Dot files may be seen by issuing '''ls -a'''. The 'rc' denotes ''Run Commands'' and simply indicates that it is a configuration file. Since it controls how a program runs, it is (although historically incorrect) also said to stand for "Run Control".}}<br />
<br />
'''startx/xinit''' will start the '''X''' server and clients. To determine the client to run, '''startx/xinit''' will first look for a .xinitrc file in the user's home directory. In the absence of file ~/.xinitrc, it defaults to the global xinitrc in the xinit library directory; /etc/X11/xinit/xinitrc, which defaults to using the TWM window manager. (Hence, if you invoke startx without a ~/.xinitrc file, a TWM session will start.)<br />
<br />
Switch to your '''''normal, non-root''''' user:<br />
su yourusername<br />
* /etc/skel/ contains files and directories to provide sane defaults for newly created user accounts. The name '''skel''' is derived from the word '''skeleton''', because the files it contains form the basic structure for users' home directories.<br />
Copy the sample xinitrc file from /etc/skel/ to your home directory: <br />
<br />
cp /etc/skel/.xinitrc ~/<br />
Edit the file: <br />
nano ~/.xinitrc<br />
and add:<br />
<br />
exec xterm<br />
<br />
So that it looks like this:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
exec xterm<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
''Be sure to have only one uncommented '''exec''' line in your ~/.xinitrc''. Below, we shall edit this file again to specify the appropriate desktop environment/window manager of your choice.<br />
<br />
Finally, test your configurations by starting '''X''' as '''normal, non-root''' user, with:<br />
<br />
startx<br />
or<br />
xinit<br />
You should have an '''xterm''' session open up. You can exit the '''X''' Server with Ctrl+Alt+Backspace, or by typing "exit". If you have problems starting '''X''', you can look for errors in the /var/log/Xorg.0.log file and on the console output of the console you started '''X''' from.<br />
<br />
If you prove a properly configured /etc/X11/xorg.conf by successfully running the test, you can be assured that your DE/WM of choice will work smoothly.<br />
<br />
Advanced instructions for Xorg configuration can be found in the [[Xorg]] article.<br />
<br />
==Part III: Installing and configuring a Desktop Environment ==<br />
While The '''X''' Window System provides the basic framework for building a ''graphical user interface'' (GUI), a '''Desktop Environment''' (DE), works atop and in conjunction with '''X''', to provide a completely functional and dynamic GUI. A DE typically provides icons, applets, windows, toolbars, folders, wallpapers, applications and abilities like drag and drop. The particular functionalities and designs of each DE will uniquely affect your overall environment and experience. Therefore, choosing a DE is a very subjective and personal decision. Choose the best environment for ''your'' needs.<br />
<br />
* If you want something full-featured and similar to Windows and Mac OSX, '''[[#KDE|KDE]]''' is a good choice<br />
* If you want something slightly more minimalist, which follows the K.I.S.S. principle more closely, '''[[#GNOME|GNOME]]''' is a good choice<br />
* '''[[#Xfce|Xfce]]''' is generally perceived as similar to GNOME, but lighter and less demanding on system resources, yet still visually pleasing and providing a very complete environment.<br />
* '''[[#LXDE|LXDE]]''' is an even lighter choice than Xfce. It provides most things you need for a modern desktop while keeping relatively low system resource usage.<br />
<br />
If you desire a lighter, less demanding GUI, you may choose to simply install a '''Window Manager''', or WM. A WM controls the placement and appearance of application windows in conjunction with the X Window System but does NOT provide such additions as panels, applets, icons, applications, etc.<br />
* Lightweight floating WM's include: [[#Openbox|'''Openbox''']], [[#Fluxbox|'''Fluxbox''']], [[#fvwm2|'''fvwm2''']], '''Windowmaker, Pekwm, and TWM'''.<br />
* If you need something completely different, try '''Awesome, ion, wmii, dwm, or xmonad'''.<br />
<br />
===Install Fonts===<br />
At this point, you may wish to install visually pleasing, true type fonts, before installing a desktop environment/window manager. Dejavu and bitstream-vera are good, general-purpose font sets. You may also want to have the Microsoft font sets, which are especially popular on websites. <br />
<br />
Install with:<br />
pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<br />
<br />
===~/.xinitrc (again)===<br />
<br />
As '''non-root user''', edit your /home/username/.xinitrc to utilize the DE you wish to use. This will allow you to use '''startx/xinit''' from the shell, in the future, to open your DE/WM of choice:<br />
<br />
nano ~/.xinitrc<br />
<br />
Uncomment or add the ''''exec''' ..' line of the appropriate desktop environment/window manager. Some examples are below:<br />
<br />
For the Xfce4 desktop environment:<br />
exec startxfce4 <br />
<br />
For the KDE desktop environment:<br />
exec startkde<br />
A '''startkde''' or '''startxfce4''' command starts the KDE or Xfce4 desktop environment. This command does not finish until you logout of the DE. Normally the shell would wait for KDE to finish, then run the next command. The "exec" prefix to this command tells the shell that this is the last command, so the shell does not need to wait to run a subsequent command.<br />
<br />
Remember to have only one uncommented '''exec''' line in your ~/.xinitrc for now. <br />
<br />
Continue below, installing the DE/WM of your choice.<br />
<br />
* [[#GNOME|'''GNOME''']]<br />
* [[#KDE|'''KDE''']]<br />
* [[#Xfce|'''Xfce''']]<br />
* [[#LXDE|'''LXDE''']]<br />
* [[#Openbox|'''Openbox''']]<br />
* [[#Fluxbox|'''Fluxbox''']]<br />
* [[#fvwm2|'''fvwm2''']]<br />
<br />
===GNOME===<br />
====About GNOME====<br />
The '''G'''NU '''N'''etwork '''O'''bject '''M'''odel '''E'''nvironment. The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for end-users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop.<br />
<br />
====Installation====<br />
Install the base GNOME environment with:<br />
pacman -S gnome<br />
<br />
Additionally, you can install the extras:<br />
pacman -S gnome-extra<br />
<br />
It's safe to choose all packages shown in the extra package. <br />
<br />
=====Useful DAEMONS for GNOME=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The '''hal''' daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The '''fam''' daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. Both '''hal''' and '''fam''' make life easier for the GNOME user. The hal and fam packages are installed when you install GNOME, but must be invoked to become useful.<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. <br />
<br />
As root:<br />
pacman -S gdm<br />
You will almost certainly want the '''hal''' and '''fam''' daemons.<br />
<br />
Start hal and fam:<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
<br />
Add them to your /etc/rc.conf DAEMONS section, so they will be invoked on bootup:<br />
nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond alsa '''hal fam gdm''')<br />
(If you prefer to log into the console and manually start X, leave out gdm.)<br />
<br />
<br />
As normal user, start X:<br />
startx<br />
If ~/.xinitrc is not configured for GNOME, you may always start it with '''xinit''':<br />
xinit /usr/bin/gnome-session<br />
You may want to install a terminal and an editor. I would recommend gnome-terminal (part of the group gnome-extra) and geany:<br />
pacman -S geany gnome-terminal<br />
<br />
Advanced instructions for installing and configuring GNOME can be found in the [[Gnome]] article.<br />
<br />
Congratulations! Welcome to your GNOME desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====Eye Candy====<br />
You may find the default GNOME theme and icons not very attractive. A nice gtk theme is murrine. Install it with<br />
pacman -S gtk-engine-murrine<br />
and select it with System->Preferences->Theme. You can find more themes, icons, and wallpaper at [http://www.gnome-look.org Gnome Look].<br />
<br />
===KDE===<br />
====About KDE====<br />
The '''K''' '''D'''esktop '''E'''nvironment. KDE is a powerful Free Software graphical desktop environment for GNU/Linux and <code>UNIX</code> workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of <code>UNIX</code>-like operating systems.<br />
<br />
====Installation====<br />
Arch offers several versions of kde: '''kde, kdebase, and KDEmod'''. Choose one of the following, and continue below with '''[[#Useful KDE DAEMONS|Useful KDE DAEMONS]]''': <br />
<br />
'''1.)''' Package '''kde''' is the complete, vanilla KDE, ~300MB.<br />
pacman -S kde<br />
'''2.)''' Package '''kdebase''' is a slimmed-down version with less applications, ~80MB.<br />
pacman -S kdebase<br />
'''3.)''' Lastly, '''KDEmod''' is an Arch Linux exclusive, community-driven system which is modified for extreme performance and modularity. The KDEmod project website can be found at [http://kdemod.ath.cx/ http://kdemod.ath.cx/]. KDEmod is extremely fast, lightweight and responsive, with a pleasing, customized theme.<br />
<br />
====Useful KDE DAEMONS====<br />
<br />
KDE will require the '''hal''' ('''H'''ardware '''A'''bstraction '''L'''ayer) and '''fam''' ('''F'''ile '''A'''lteration '''M'''onitor) daemons. The '''kdm''' daemon is the '''K''' '''D'''isplay '''M'''anager, which provides a '''graphical login''', if desired.<br />
<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system.. Both '''hal''' and '''fam''' make life easier for the KDE user. The hal, fam and kdm packages are installed when you install KDE, but must be invoked to become useful.<br />
-----<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
{{Box Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to invoke them on bootup. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng network crond alsa '''hal fam kdm''')<br />
*This method will start the system at runlevel 3, (/etc/inittab default, multiuser mode), and then start KDM as a daemon. <br />
<br />
*Some users prefer an alternative method of starting a display manager like KDM on bootup by utilizing the /etc/inittab method and starting the system at runlevel 5. See [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]] for more.<br />
<br />
*If you prefer to log into the '''console''' at runlevel 3, and manually start X, leave out kdm, or comment it out with an exclamation. ( ! )<br />
<br />
Now try starting your X Server as normal user:<br />
startx<br />
Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
===Xfce===<br />
====About Xfce====<br />
The cholesterol-free '''X''' environment. Xfce, like GNOME or KDE, is a desktop environment, but aims to be fast and lightweight while remaining visually appealing and easy to use. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit (like GNOME) and contains its own development environment (libraries, daemons, etc) similar to other big DEs. Unlike GNOME or KDE, Xfce is lightweight and designed more around CDE than Windows or Mac. It has a much slower development cycle, but is very stable and extremely fast. Xfce is great for older hardware, and will fly with especially great speed on newer machines as well.<br />
<br />
====Installation====<br />
Install Xfce: <br />
pacman -S xfce4 <br />
You may also wish to install themes and extras:<br />
pacman -S xfce4-goodies gtk2-themes-collection<br />
If you want to admire 'Tips and Tricks' on login, you must install the '''fortune-mod''' package:<br />
pacman -S fortune-mod <br />
====Useful DAEMONS====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. The hal and fam packages are installed when you install Xfce, but must be invoked to become useful.<br />
<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
{{Box Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to invoke them on bootup.<br />
<br />
Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] article.<br />
<br />
If you wish to install one, see [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]]. Otherwise you can login in via the console and run:<br />
<br />
startxfce4<br />
<br />
Congratulations! Welcome to your Xfce desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
===LXDE===<br />
====About LXDE====<br />
LXDE, (for ''L''ightweight ''X''11 ''D''esktop ''E''nvironment), is a new project aimed to provide a modern desktop environment which aims to be lightweight, fast, intuitive and functional while keeping system resource usage low. LXDE is quite different from other known desktop environments, since each component of LXDE is a discrete and independent application, and each can be easily substituted by other programs. This modular design eliminates all unnecessary dependencies and provides more flexibility. Details and screenshots available at: http://lxde.org/ <br />
<br />
LXDE provides:<br />
# The OpenBox windowmanager<br />
# PCManFM File manager<br />
# LXpanel system panel<br />
# LXSession session manager<br />
# LXAppearance GTK+ theme switcher<br />
# GPicView image viewer<br />
# Leafpad simple text editor<br />
# XArchiver: Lightweight, fast, and desktop-independent gtk+-based file archiver<br />
# LXNM (still under development): Lightweight network manager for LXDE supporting wireless connections<br />
These lightweight and versatile tools combine for quick setup, modularity and simplicity.<br />
<br />
Install LXDE with: <br />
pacman -S lxde<br />
Add:<br />
exec startlxde<br />
to your ~/.xinitrc and start with ''startx'' or ''xinit''<br />
<br />
Further information available at the [[LXDE]] wiki article.<br />
<br />
===*box===<br />
====Fluxbox====<br />
Fluxbox © is yet another windowmanager for X.<br />
It's based on the Blackbox 0.61.1 code. Fluxbox looks like blackbox and handles styles, colors, window placement and similar things exactly like blackbox (100% theme/style compability).<br />
<br />
Install Fluxbox using <br />
pacman -S fluxbox fluxconf<br />
<br />
If you use gdm/kdm a new fluxbox session will be automatically added. Otherwise, you should modify your user's .xinitrc and add this to it:<br />
exec startfluxbox <br />
<br />
More information is available in the [[Fluxbox]] article.<br />
<br />
====Openbox====<br />
Openbox is a standards compliant, fast, light-weight, extensible window manager.<br />
<br />
Openbox works with your applications, and makes your desktop easier to manage. This is because the approach to its development was the opposite of what seems to be the general case for window managers. Openbox was written first to comply with standards and to work properly. Only when that was in place did the team turn to the visual interface.<br />
<br />
Openbox is fully functional as a stand-alone working environment, or can be used as a drop-in replacement for the default window manager in the GNOME or KDE desktop environments. <br />
<br />
Install openbox using<br />
pacman -S openbox<br />
Additional configuration tools are also available, if desired:<br />
pacman -S obconf obmenu<br />
<br />
Once openbox is installed you will get a message to move menu.xml & rc.xml to ~/.config/openbox/ in your home directory:<br />
<br />
mkdir -p ~/.config/openbox/<br />
cp /etc/xdg/openbox/rc.xml ~/.config/openbox/<br />
cp /etc/xdg/openbox/menu.xml ~/.config/openbox/<br />
<br />
'''rc.xml''' is the main configuration file for OpenBox. It may be manually edited, (or you can use OBconf). '''menu.xml''' configures the right-click menu.<br />
<br />
You may log into OpenBox via graphical login using KDM/GDM, or from the shell using '''startx''', in which case you will need to edit your ~/.xinitrc (as non-root user) and add the following:<br />
<br />
exec openbox-session<br />
You may also start OpenBox from the shell using '''xinit''':<br />
xinit /usr/bin/openbox-session<br />
* Openbox may also be used as the window manager for GNOME, KDE, and Xfce.<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Some useful, lightweight programs for OpenBox are:<br />
* PyPanel or LXpanel if you want a panel<br />
* feh if you want to set the background<br />
* ROX if you want a simple file manager (also provides simple icons)<br />
* PcmanFM a lightweight but versatile file manager (also provides desktop icon functionality)<br />
* iDesk (available in [[AUR]]) for providing desktop icons<br />
<br />
More information is available in the [[Openbox]] article.<br />
<br />
===fvwm2===<br />
FVWM is an extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent. <br />
<br />
Install fvwm2 with<br />
pacman -S fvwm <br />
<br />
fvwm will automatically be listed in kdm/gdm in the sessions menu. Otherwise, add <br />
exec fvwm <br />
<br />
to your user's .xinitrc.<br />
<br />
=APPENDIX=<br />
<br />
==An Introduction to [[ABS]]==<br />
<br />
[[ABS]] is the Arch Linux Build System. It is a ports-like system for compiling sources into installable packages. <br />
<br />
'Ports' is a system used by *BSD, which utilizes simple build scripts residing in a directory tree on the local machine. Each port is simply a directory, named for the installable 3rd party software, and containing a build script. Typically, a *BSD user who wanted to build and install ''firefox'', would cd into the corresponding firefox port residing under /usr/ports and do <code>make install clean</code>. The ''firefox'' sourcecode would then be downloaded from a 3rd party source. According to the port build script, the sources would then be compiled, patched (if directed), and finally, installed to the system.<br />
<br />
[[ABS]] offers the same functionality by providing build scripts called [[#ABS PKGBUILD Explained | PKGBUILD]]s, which contain all information for a given piece of software; The md5sums, source URL, version, license and compilation instructions. In addition, [[ABS]] provides the advantage of compiling the sources ''into an installable package'' with the extension ''.pkg.tar.gz''. Obviously, it is a simple g-zipped tarball, but it is cleanly installable/removable/trackable via pacman.<br />
<br />
Install the abs package:<br />
pacman -Sy abs<br />
<br />
After installing the ''abs'' package with pacman, run the <code>/usr/bin/abs</code> script as root:<br />
# abs <br />
The ''ABS tree'' is then installed under /var/abs, organized according to the installable software. <br />
<br />
To build a package from source, create a build directory and copy the abs directory for a given application to the build directory:<br />
mkdir ~/abs<br />
cp -r /var/abs/extra/x11/slim ~/abs<br />
This will move the slim subdir and PKGBUILD script for slim to the build directory.<br />
{{Box Note | In addition to PKGBUILDs, some software requires an additional *.install file. See the '''[[ABS]]''' and '''[[makepkg]]''' wiki entries for more information}}<br />
navigate to the slim build directory and, after modifying the PKGBUILD if desired or necessary, invoke the abs <code>/usr/bin/makepkg</code> tool<br />
[[makepkg]] -cs<br />
* -c Cleans up any leftover files from the source compilation<br />
* -s Downloads and installs any missing dependencies by invoking pacman<br />
Install with pacman's -U (upgrade) switch:<br />
pacman -U slim<version>.pkg.tar.gz<br />
Done. Slim sources are downloaded, compiled, compressed into a package and finally, installed.<br />
{{Box Note | You may build, clean, install any needed dependencies and finally install the package with one command: '''makepkg -csi'''. The above example used pacman -U to install as a separate step for informational purposes. See the '''makepkg(8)''' man page.}} <br />
Q: Why would I need [[ABS]] to compile and create an installable package from source, when I have access to all of the same software via pacman and the binary repos?<br />
<br />
A: A few reasons:<br />
*For installing newer, unstable, custom, or development versions of an application.<br />
PKGBUILDs are transparent and simple. Edit the software version and the md5sums of the desired versions within the PKGBUILD, and build and install your custom packages.<br />
*For [[Patching in ABS | patching]].<br />
Copy the corresponding PKGBUILD to a build directory along with your patch, edit the PKGBUILD, and build/install with <code>/usr/bin/makepkg</code>.<br />
*For [[The Arch package making HOW-TO - with guidelines | creating your own packages]] for yourself, or to share with the community on the [[AUR]].<br />
You are not limited to the PKGBUILDs under /var/abs. Create your own to build from 3rd party sourcecode. They are simple, open and transparent. Explore the prototpe PKGBUILD provided at /usr/share/pacman/PKGBUILD.proto<br />
*ABS provides an expedient method for recompiling, if necessary. <br />
For example, to recompile your video or wireless drivers.<br />
* To build an installable package with custom configurations<br />
Enable or disable options in any package by modifying the PKGBUILD<br />
* To build an installable package, further optimized for your machine's architecture, <br />
Specify your [[#makepkg.conf | CFLAGS]] in /etc/[[makepkg]].conf.<br />
* To rebuild your entire system, BSD-style, further optimized for your machine's architecure.<br />
Use the makeworld script, or the community-contributed [http://bbs.archlinux.org/viewtopic.php?id=48957 pacbuilder]<br />
<br />
==An Introduction to The [[AUR]]==<br />
The '''A'''rch '''U'''ser '''R'''epository<br />
<br />
The [[ABS]] tree provides the ability to build all Arch software available in the [core], [extra], [community], and [testing] repositories by providing build scripts on the local machine. The [[AUR]] does not provide a tree on the local machine, but rather, an unsupported repository sporting a handsome web interface at http://aur.archlinux.org/index.php Also, there is an AUR link tab at the top right of every page on the Arch site.<br />
<br />
Once you have navigated to the AUR web page, click on the '''Packages''' button on the top right. You will be brought to the packages search page. <br />
<br />
The general procedure will be:<br />
# Enter the search criteria into the '''keywords''' field and click on '''go'''. The next screen will present all related results.<br />
# Take note of the '''Location''' on the package listing. If the package location is in '''community''', you have not done your homework, and should simply use pacman or ABS to install. If the location is '''unsupported''', continue. <br />
# Click on the name of the package on the package listing. You will be brought to the Package Details page.<br />
An example for the '''yaourt''' package:<br />
yaourt 0.9-2<br />
http://www.archlinux.fr/yaourt-en/<br />
A Pacman frontend with more features and AUR support<br />
unsupported :: system<br />
Maintainer: wain<br />
Votes: 943<br />
License: GPL<br />
Last Updated: Sat, 15 Mar 2008 17:15:20 +0000<br />
First Submitted: Tue, 04 Jul 2006 20:37:58 +0000<br />
Tarball :: Files :: PKGBUILD<br />
Click on the '''Tarball''' link in the last line of the details, and save to a build directory.<br />
<br />
Navigate to, and extract the tarball:<br />
tar -xvf yaourt.tar.gz<br />
Enter the build directory and invoke makepkg, which will download the sources, compile, and compress the installation into an installable .pkg.tar.gz package:<br />
makepkg -c<br />
Install with pacman's '''-U''' (upgrade) switch:<br />
pacman -U yaourt<version>.pkg.tar.gz<br />
Done.<br />
<br />
See the [[AUR]] wiki entry for more information.<br />
<br />
==Tweaks/Finishing touches==<br />
===Install an AUR Helper===<br />
[[AUR Helpers]] add seamless access to the [[AUR]]. They vary in their features, but can ease in searching, fetching, building, and installing from over 9000 PKGBUILDs found in AUR.<br />
<br />
===HAL===<br />
Since you have now installed a desktop environment/window manager, and if you did not do so earlier, now would be a good time to also install HAL. HAL allows plug-and-play for your mobile phone, your iPod, your external HD's, etc. It will mount the device and make a nice visual icon on your desktop and/or in 'My Computer', allowing you to access the device after you have plugged it in instead of having to manually configure the /etc/fstab file or udev rules for each and every new device.<br />
<br />
KDE, GNOME and XFCE all use HAL.<br />
<br />
The installation procedure is described in the [[HAL]] article. Some information can also be found at [http://en.wikipedia.org/wiki/HAL_(software) Wikipedia].<br />
<br />
===Backgrounding DAEMONS on startup===<br />
<br />
To speed up system start up procedure, background selected DAEMONS in /etc/rc.conf by prefixing them with a '@' e.g.:<br />
<br />
DAEMONS=(syslog-ng @network crond @alsa @hal @fam @kdm)<br />
This will enable daemons to load in the background, without waiting for the preceding daemon to load first.<br />
<br />
Prefix any daemons which you do not need with a bang (!) e.g.:<br />
<br />
DAEMONS=(syslog-ng @network !netfs !crond @alsa @hal @fam @kdm)<br />
<br />
Alternatively, you may also simply remove unneeded daemons.<br />
<br />
===Beautifying Fonts for LCD's===<br />
See [[Fonts]]<br />
<br />
===Adjusting Mouse for scroll wheel===<br />
While your mouse should be working out of the box, you may want to use your scroll wheel. Add this to your Input Section (mouse0):<br />
Option "ZAxisMapping" "4 5 6 7"<br />
<br />
===Get All Mouse Buttons Working===<br />
See [[Get All Mouse Buttons Working]]<br />
<br />
===Configuring Touchpad for Laptops===<br />
See [[Touchpad Synaptics]]<br />
<br />
===Adjusting Keyboard Layout===<br />
You may want to change your keyboard layout. To do this edit your /etc/X11/xorg.conf and add these lines in the InputDevice Section (Keyboard0) (the example shows a German keyboard layout with no dead keys; alter this to fit your needs).<br />
Option "XkbLayout" "de"<br />
Option "XkbVariant" "nodeadkeys"<br />
<br />
===Additional tweaks for laptops===<br />
ACPI support is needed if you want to use some special functions on your notebook (e.g. sleep, sleep when lid is closed, special keys...). Install <tt>acpid</tt> using<br />
pacman -S acpid<br />
and add it to the daemons in /etc/rc.conf. If you already have '''hal''' specified in your DAEMONS, there is no need to add '''acpid'''. HAL will automatically detect and load the acpid daemon. Manually, it can be started by<br />
/etc/rc.d/acpid start<br />
<br />
More-specific information about Arch Linux on various Laptops can be found at [[:Category:Laptops (English)]]<br />
<br />
===Configuring CPU frequency scaling===<br />
Modern processors can decrease their frequency and voltage to reduce heat and power consumption. Less heat leads to a quieter system; Laptop users will definitely want this, but even a desktop system will benefit from it. Install cpufrequtils with<br />
pacman -S cpufrequtils<br />
Edit the config file /etc/conf.d/cpufreq and change <br />
governor="ondemand"<br />
which dynamically increases the CPU frequency if needed (which is a safe choice on desktop systems too). Alter min_freq and max_freq to match your system's CPU spec. If you do not know the frequencies, run ''cpufreq-info'' after loading one of the frequency scaling modules. You can also comment out or delete the min_freq and max_freq lines: things will work automatically. Add the frequency scaling modules to your /etc/rc.conf modules line. Most modern notebooks and desktops can simply use the ''acpi-cpufreq'' driver, however other options include the ''p4-clockmod, powernow-k6, powernow-k7, powernow-k8, and speedstep-centrino'' drivers. Load the module with<br />
modprobe <modulname> <br />
and start cpufreq with<br />
/etc/rc.d/cpufreq start<br />
For more details, see [[Cpufrequtils]]<br />
<br />
===Pm-Utils===<br />
The pm-utils package will allow you to suspend-to-RAM and hibernate: <br />
pacman -S pm-utils<br />
[[Pm-utils]] wiki page.<br />
<br />
===Laptop-Mode===<br />
The laptop-mode-tools package is sort of a one-stop configuration for all laptop power management utilities. It works in conjunction with other installed tools to fully configure everything from hard disk spin-down to X display DPMS standby times, if desired.<br />
pacman -S laptop-mode-tools<br />
Add laptop-mode to your DAEMONS= line in /etc/rc.conf and configure /etc/laptop-mode/laptop-mode.conf.<br />
<br />
==File and directory explanation==<br />
<br />
"Shareable" files are defined as those that can be stored on one host and<br />
used on others. "Unshareable" files are those that are not shareable. For<br />
example, the files in user home directories are shareable whereas device<br />
lock files are not. "Static" files include binaries, libraries,<br />
documentation files and other files that do not change without system<br />
administrator intervention. "Variable" files are defined as files that<br />
are not static.<br />
<br />
'''/''' (root) The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory "/", even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system.<br />
<br />
'''/bin/''' Essential command binaries that must be available in single user mode; for all users (e.g., cat, ls, cp). /bin/ provides programs that must be available even if only the partition containing / is mounted. This situation may arise should one need to repair other partitions but have no access to shared directories (i.e. you are in single user mode and therefore have no network access). Unlike /sbin, the /bin directory contains several useful commands that are of use to both the root user as well as non-root users.<br />
<br />
'''/boot/''' Unshareable, static directory containing the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files.<br />
<br />
'''/dev/''' Essential device nodes created by udev during the boot process and as machine hardware is discovered by events. This directory highlights one important aspect of the <code>UNIX</code> filesystem - everything is a file or a directory. Exploring this directory will reveal many files, each representing a hardware component of the system. The majority of devices are either block or character devices; however other types of devices exist and can be created. In general, 'block devices' are devices that store or hold data, whereas 'character devices' can be thought of as devices that transmit or transfer data. For example, hard disk drives and optical drives are categorized as block devices while serial ports, mice and USB printer ports are all character devices.<br />
<br />
'''/etc/''' Host-specific, unshareable global configuration files shall be placed in the /etc directory. If more than one configuration file is required for an application, it is customary to utilize a subdirectory in order to keep the /etc/ area as clean as possible. It is considered good practice to make frequent backups of this directory as it contains all system related configuration files. <br />
:'''/etc/conf.d/''' Some daemon scripts will have a matching configuration file in this directory that contains some useful default values. When a daemon is started, it will first source the settings from its config file within this directory, and then source /etc/rc.conf. Arch's simple, transparent scripting approach means you can easily centralize all your daemon configuration options in your /etc/rc.conf simply by setting an appropriate variable value, or, split up your configuration over multiple files if you prefer a decentralized approach to this issue. <br />
:'''/etc/rc.d/''' All Arch daemons reside here. Custom scripts may also be placed here and invoked from the DAEMONS= array in /etc/rc.conf<br />
:'''/etc/X11/''' Configuration files for the X Window System<br />
:::'''/etc/X11/xinit/''' xinit configuration files. 'xinit' is a configuration method of starting up an X session that is designed to be used as part of a script. <br />
:::'''/etc/X11/xinit/xinitrc''' Global xinitrc file, used by all X sessions started by xinit (startx). Its usage is of course overridden by a .xinitrc file located in the home directory of a user.<br />
<br />
'''/home/''' <code>UNIX</code> is a multi-user environment. Therefore, each user is also assigned a specific directory that is accessible only to them and to the root user. These are the user home directories, which can be found under '/home/$USER' (~/). Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch. If there is a conflict between personal and system wide configuration files, the settings in the personal file will prevail. Dotfiles most likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside. <br />
'''/home''' can become quite large as it is typically used for storing downloads, compiling, installing and running programs, mail, collections of multimedia files etc.<br />
<br />
'''/lib/''' Contains kernel modules and essential shared library images (the C programming code library) needed to boot the system and run the commands under /bin/ and /sbin/. Libraries are collections of frequently used program routines and are readily identifiable through their filename extension of *.so. They are essential for basic system functionality. Kernel modules (drivers) are in the subdirectory /lib/modules/<kernel-version>.<br />
<br />
'''/lost+found''' <code>UNIX</code>-like operating systems must execute a proper shutdown sequence. At times, a system might crash or a power failure might take the machine down. Either way, at the next boot, a filesystem check using the ''fsck'' program shall be performed. ''Fsck'' will go through the system and try to recover any corrupt files that it finds. The result of this recovery operation will be placed in this directory. The files recovered are not likely to be complete or make much sense but there always is a chance that something worthwhile is recovered.<br />
<br />
'''/media/''' Mount points for removable media. CDROMs, DVD's, and USB sticks shall have an appropriate mount point under /media/. The motivation for the creation of this directory has been that historically there have been a number of other different places used to mount removeable media such as /cdrom, /mnt or /mnt/cdrom. Placing the mount points for all removeable media directly in the root directory would potentially result in a large number of extra directories in /. Although the use of subdirectories in /mnt as a mount point has recently been common, it conflicts with a much older tradition of using /mnt directly as a temporary mount point. Therefore, Arch allocates /media as the mountpoint for removable media. On systems where more than one device exists for mounting a certain type of media, mount directories shall be created by appending a digit to the name of those available above starting with '0', but the unqualified name must also exist.<br />
* hal mounts removable media to /media as /media/<name_of_removable_filesystem><br />
<br />
'''/mnt/''' This is a generic mount point for temporary filesystems or devices. Mounting is the process of making a filesystem available to the system. After mounting, files will be accessible under the mount-point. Additional mount-points (subdirectories) may be created under /mnt/. There is no limitation to creating a mount-point anywhere on the system, but by convention and for practicality, littering a file system with mount-points should be avoided.<br />
<br />
'''/proc/''' /proc is very special in that it is also a virtual filesystem. It is sometimes referred to as the ''process information pseudo-file system''. It doesn't contain 'real' files, but rather, runtime system information (e.g. system memory, devices mounted, hardware configuration, etc). For this reason it can be regarded as a control and information center for the kernel. In fact, quite a lot of system utilities are simply calls to files in this directory. For example, 'lsmod' is the same as 'cat /proc/modules' while 'lspci' is a synonym for 'cat /proc/pci'. By altering files located in this directory, kernel parameters may be read/changed (sysctl) while the system is running.<br />
<br />
The most distinctive facet about files in this directory is the fact that all of them have a file size of 0, with the exception of '''kcore, mounts''' and '''self'''. <br />
<br />
'''/root/''' Home directory of the System Administrator, 'root'. This may be somewhat confusing, ('/root under root') but historically, '/' was root's home directory (hence the name of the Administrator account). To keep things tidier, 'root' eventually got his own home directory. Why not in '/home'? Because '/home' is often located on a different partition or even on another system and would thus be inaccessible to 'root' when - for some reason - only '/' is mounted. <br />
<br />
'''/sbin/''' <code>UNIX</code> discriminates between 'normal' executables and those used for system maintenance and/or administrative tasks. The latter reside either here or - the less important ones - in /usr/sbin. Programs executed after /usr is known to be mounted (when there are no problems) are generally placed into /usr/sbin. This directory contains binaries that are essential to the working of the system. These include system administration as well as maintenance and hardware configuration programs. grub (the command), fdisk, init, route, ifconfig, etc., all reside here. Another directory that contains system binaries is /usr/sbin. <br />
<br />
'''/srv/''' Site-specific data which is served by the system. The main purpose of specifying this is so that users may find the location of the data files for a particular service, and so that services which require a single tree for readonly data, writable data and scripts (such as cgi scripts) can be reasonably placed. Data that is only of interest to a specific user shall be placed that user's home directory.<br />
<br />
<br />
'''/tmp''' This directory contains files that are required temporarily. Many programs use this to create lock files and for temporary storage of data. Do not remove files from this directory unless you know exactly what you are doing! Many of these files are important for currently running programs and deleting them may result in a system crash. On most systems, this directory is cleared out at boot or at shutdown by the local system. The basis for this was historical precedent and common practice<br />
<br />
'''/usr/''' While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system administrator intervention (installation, update, upgrade). Any information that is host-specific or varies with time is stored elsewhere. <br />
<br />
Aside from /home/, /usr/ usually contains by far the largest share of data on a system. Hence, this is one of the most important directories in the system as it contains all the user binaries, their documentation, libraries, header files, etc. X and its supporting libraries can be found here. User programs like telnet, ftp, etc., are also placed here. In the original <code>UNIX</code> implementations, /usr/ (for ''user''), was where the home directories of the system's users were placed (that is to say, /usr/''someone'' was then the directory now known as /home/''someone''). Over time, /usr/ has become where userspace programs and data (as opposed to 'kernelspace' programs and data) reside. The name has not changed, but its meaning has narrowed and lengthened from ''everything user related'' to ''user usable programs and data''. As such, the backronym ''''U'''ser '''S'''ystem '''R'''esources' was created. <br />
::'''/usr/bin/''' Non-essential command binaries (not needed in single user mode); for all users. This directory contains the vast majority of binaries (applications) on your system. Executables in this directory vary widely. For instance vi, gcc, and gnome-session reside here.<br />
::'''/usr/include/''' Header files needed for compiling userspace source code..<br />
::'''/usr/lib/''' Libraries for the binaries in /usr/bin/ and /usr/sbin/.<br />
::'''/usr/sbin/''' Non-essential system binaries of use to the system administrator. This is where the network daemons for the system reside, along with other binaries that (generally) only the system administrator has access to, but which are not required for system maintenance and repair. Normally, these directories are never part of normal user's $PATHs, only of root's (PATH is an environment variable that controls the sequence of locations that the system will attempt to look in for commands).<br />
::'''/usr/share/''' This directory contains 'shareable', architecture-independent files (docs, icons, fonts etc). Note, however, that '/usr/share' is generally not intended to be shared by different operating systems or by different releases of the same operating system. Any program or package which contains or requires data that doesn't need to be modified should store that data in '/usr/share/' (or '/usr/local/share/', if manually installed- see below). It is recommended that a subdirectory be used in /usr/share for this purpose.<br />
::'''/usr/src/''' The 'linux' sub-directory holds the Linux kernel sources, and header-files.<br />
::'''/usr/local/''' Optional tertiary hierarchy for local data. The original idea behind '/usr/local' was to have a separate ('local') '/usr/' directory on every machine besides '/usr/', which might be mounted read-only from somewhere else. It copies the structure of '/usr/'. These days, '/usr/local/' is widely regarded as a good place in which to keep self-compiled or third-party programs. This directory is empty by default in Arch Linux. It may be used for manually compiled software installations if desired. Pacman installs to /usr/, therefore, manually compiled/installed software installed to /usr/local/ may peacefully co-exist with pacman-tracked system software. <br />
<br />
'''/var/''' Variable files, such as logs, spool files, and temporary e-mail files. On Arch, the [[ABS]] tree and pacman cache also reside here. Why not put the variable and transient data into /usr/? Because there might be circumstances when /usr/ is mounted as read-only, e.g. if it is on a CD or on another computer. '/var/' contains variable data, i.e. files and directories the system must be able to write to during operation, whereas /usr/ shall only contain static data. Some directories can be put onto separate partitions or systems, e.g. for easier backups, due to network topology or security concerns. Other directories have to be on the root partition, because they are vital for the boot process. 'Mountable' directories are: '/home', '/mnt', '/tmp', '/usr' and '/var'. Essential for booting are: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc' and '/sbin'. <br />
::'''/var/abs/''' The [[ABS]] tree. A ports-like package build system hierarchy containing build scripts within subdirectories corresponding to all installable Arch software.<br />
::'''/var/cache/pacman/pkg/''' The pacman package cache. <br />
::'''/var/lib/''' State information. Persistent data modified by programs as they run (e.g. databases, packaging system metadata etc.).<br />
::'''/var/lock/''' Unsharable Lock files data. Files keeping track of resources currently in use.<br />
::'''/var/log/''' Log files. <br />
::'''/var/mail/''' Shareable directory for users' mailboxes.<br />
::'''/var/run/''' Unshareable data about the running system since last boot (e.g. currently logged-in users and running daemons).<br />
::'''/var/spool/''' Spool for tasks waiting to be processed (e.g. print queues and unread mail).<br />
::'''/var/spool/mail/''' Deprecated location for users' mailboxes.<br />
::'''/var/tmp/''' Temporary files to be preserved between reboots.<br />
'''/opt/''' Packages that do not fit cleanly into the above GNU filesystem layout can be placed here. If a package's files cannot be cleanly placed into the above directories, then /opt shall be used. /opt shall therefore contain shareable data.<br />
<br />
For example, the acrobat package has Browser, Reader, and Resource<br />
directories sitting at the same level as the bin directory. This<br />
doesn't fit into a normal GNU filesystem layout, so Arch places all the<br />
files in a subdirectory of /opt.<br />
<br />
==Boot Scripts==<br />
<br />
Arch Linux uses a fairly simple bootup sequence quite similar to *BSDs. The first boot script to run is /etc/rc.sysinit. When it's done, /etc/rc.multi will be called (in a normal bootup). The last script to run will be /etc/rc.local. When started in runlevel 1, the single user mode, the script /etc/rc.single is run instead of /etc/rc.multi. You will not find an endless symlink collection in the /etc/rc?.d/ directories to define the bootup sequence for all possible runlevels. In fact, due to this approach Arch only really has three runlevels, if you take starting up X in runlevel 5 into account. The boot scripts are using the variables and definitions found in the /etc/rc.conf file and also a set of general functions defined in the<br />
/etc/rc.d/functions script. If you plan to write your own daemon<br />
files, you should consider having a look at this file and existing<br />
daemon scripts.<br />
<br />
Boot Script Overview<br />
#/etc/inittab<br />
#/etc/rc.sysinit<br />
#/etc/rc.single<br />
#/etc/rc.multi<br />
#/etc/rc.local<br />
#/etc/profile<br />
#/etc/rc.shutdown<br />
#/etc/rc.local.shutdown<br />
#/etc/rc.d/*<br />
<br />
'''/etc/inittab'''<br />
<br />
After the kernel is loaded, it looks for the program <code>init</code> which resides at /sbin/init. <code>init</code> reads the file /etc/inittab, which tells it what to do. Looking over the inittab script, you will find that the first uncommented line defines the default system runlevel, or, 3. The next thing it is told to do is to run an initialization script. The program that executes (or interprets) this script is bash, the same program that gives you a command prompt. In Arch Linux, the main initialization script is /etc/rc.sysinit. /etc/inittab also defines your virtual consoles, which are 'respawned' by /sbin/init if terminated. Lastly, inittab defines a login manager, if starting the system at runlevel 5 is desired. The login manager is also respawned by /sbin/init if terminated.<br />
<br />
'''/etc/rc.sysinit'''<br />
<br />
The main system boot script, which mounts filesystems, runs udev, activates swap, loads modules, sets localization parameters, etc. <br />
<br />
'''/etc/rc.single'''<br />
<br />
Single-user startup. Not used in a normal boot-up. If the system is started in single-user mode, for example with the kernel parameter 1 before booting or during normal multi-user operation with the command init 1, this script makes sure no daemons are running except for the bare minimum; syslog-ng and udev. The single-user mode is useful if you need to make any changes to the system while making sure that no remote user can do anything that might cause data loss or damage. <br />
For desktop users, this mode is usually quite useless.<br />
<br />
'''/etc/rc.multi'''<br />
<br />
Multi-user startup script. It starts all daemons you configured in the DAEMONS array (set in /etc/rc.conf) after which it calls /etc/rc.local. <br />
<br />
'''/etc/rc.local'''<br />
<br />
Local multi-user startup script. It is a good place to put any last-minute commands you want the system to run at the very end of the bootup process. Most common system configuration tasks, like loading modules, changing<br />
the console font or setting up devices, usually have a dedicated place where they belong. To avoid confusion, you should make sure that whatever you intend to add to your rc.local is not already residing in /etc/profile.d/, or any other already existing config location instead.<br />
<br />
'''/etc/profile''' This script is run on each user login to initialize the system. It also globally defines PS1, $PATH, bash aliases, etc. It is kept quite simple under Arch Linux, as most things are. You may wish to edit or customize it to suit your needs.<br />
<br />
'''/etc/rc.shutdown''' <br />
<br />
System shutdown script. It stops daemons, unmounts filesystems, deactivates the swap, etc. <br />
<br />
'''/etc/rc.local.shutdown''' (Optional)<br />
<br />
Analogous to the /etc/rc.local file, this file may contain any commands you want to run right before the common rc.shutdown is executed. Please note that this file does not exist by default, and for it to work properly, it must be set as executable.<br />
<br />
<br />
'''/etc/rc.d/*'''<br />
<br />
This directory contains the daemon scripts referred to from the rc.conf's DAEMONS= array. In addition to being called on bootup, you can use these scripts when the system is running to manage the services of your system. For example the command<br />
/etc/rc.d/postfix stop<br />
<br />
will stop the postfix daemon. This directory is not in the $PATH by default, but may be added for convenience. Obviously a corresponding daemon script only exists when the appropriate package has been installed (in this case postfix). With a base system install, there are few scripts in here, but rest assured that all relevant daemon scripts end up here. If you wish, you can, of course, create your own scripts and place them here, to be called by the DAEMONS= array in /etc/rc.conf on system startup. <br />
<br />
This directory is pretty much the equivalent to the /etc/rc3.d/ or /etc/init.d/ directories of other distributions, but without all the symlink hassle. The lack of symlink requirement is a defining difference of a *BSD-style init framework, vs a sysvinit.<br />
<br />
==Useful Applications==<br />
This section will never be complete. It just shows some good applications for the everyday user. <br />
<br />
'''KDE users NOTE''': Since KDE resides in /opt, you will most likely have to log out and in after initial installation to update your PATH before these programs can be used.<br />
<br />
===Web browser===<br />
<br />
=====Firefox=====<br />
The ever-popular Firefox web browser is available through pacman, although it does not have its official branding. Therefore, the program appears as its development codename, ''Gran Paradiso'', when opened.<br />
<br />
Install with:<br />
<br />
pacman -S firefox<br />
Be sure and install 'flashplugin', 'mplayer', 'mplayer-plugin', and the 'codecs' packages for a complete web experience:<br />
pacman -S flashplugin mplayer mplayer-plugin codecs<br />
(The codecs package contains most codecs, including those for Win32, Quicktime and Realplayer9 content.)<br />
<br />
Thunderbird is useful for managing your emails. If you are using GNOME you may want to take a look at Epiphany and Evolution; if you are using KDE Konqueror and KMail could be your choice. If you want something completely different you can still use Opera. Finally, if you are working on the system console - or in a terminal session - you could use various text-based browsers like ELinks, Links and Lynx, and manage your emails with [[Mutt]]. Pidgin (previously known as Gaim) and Kopete are good instant messengers for GNOME and KDE, respectively. PSI and Gajim are perfect if you are using only Jabber or Google Talk.<br />
<br />
===Office===<br />
OpenOffice.org is a complete office suite (similar to Microsoft Office). Abiword is a good, small alternative word processor, and Gnumeric an Excel replacement for the GNOME desktop. KOffice is a complete office suite for the KDE Desktop. GIMP (or GIMPShop) is a pixel-based graphics program (similar to Adobe Photoshop), while Inkscape is a vector-based graphics program (like Adobe Illustrator). And, of course, Arch comes with a full set of LaTeX Programs: tetex has been popular for many years and still works, and its successor [[Texlive]] is available from the [[AUR]] repository.<br />
<br />
===Video Player===<br />
====VLC====<br />
VLC Player is a versatile multimedia player which can many different formats, from a disc or file. It also provides the ability to stream multimedia over a lan. To install it, simply type the code below.<br />
<br />
pacman -S vlc<br />
<br />
(TODO) Instructions for VLC mozilla plug-in<br />
<br />
====Mplayer====<br />
MPlayer is a multimedia player for Linux. To install it, simply type the code below.<br />
<br />
pacman -S mplayer<br />
<br />
It also has a Mozilla plug-in for videos and streams embedded in web pages. To install it, simply type the code below.<br />
<br />
pacman -S mplayer-plugin<br />
<br />
If you use KDE, KMplayer is a better choice. It comes with a plug-in for videos and streams embedded in web pages, which works with Konqueror. To install it, simply type the code below.<br />
<br />
pacman -S kmplayer<br />
<br />
(TODO) GMPlayer instructions<br />
<br />
====Xine====<br />
<br />
Xine is an excellent player, especially for DVDs.<br />
<br />
pacman -S xine-ui<br />
The libdvdcss library provides DVD decoding for encrypted DVDs. ''Ensure the legality of using libdvdcss in your country before installing!''<br />
pacman -S libdvdcss<br />
<br />
====GNOME====<br />
=====Totem=====<br />
[http://www.gnome.org/projects/totem/ Totem] is the official movie player of the GNOME desktop environment based on xine-lib or GStreamer (gstreamer is the default which installs with the arch totem package). It features a playlist, a full-screen mode, seek and volume controls, as well as keyboard navigation.<br />
It comes with added functionality such as:<br />
<br />
* Video thumbnailer for the file manager<br />
* Nautilus properties tab<br />
* Epiphany / Mozilla (Firefox) plugin to view movies inside your browser <br />
* Webcam utility (in development)<br />
<br />
Totem-xine is still the better choice if you want to watch DVDs.<br />
<br />
Totem is part of the gnome-extra group; the Totem webbrowser plugin is not.<br />
<br />
To install separately:<br />
pacman -S totem<br />
<br />
To install the Totem webbrowser plugin:<br />
pacman -S totem-plugin<br />
<br />
====KDE====<br />
=====Kaffeine=====<br />
Kaffeine is a good option for KDE users. To install it, simply type the code below.<br />
<br />
pacman -S kaffeine<br />
<br />
===Audio Player===<br />
====Gnome/Xfce====<br />
=====Exaile=====<br />
[[Exaile]] is a music player written in Python that makes use of the GTK+ toolkit. It tries to be close to the popular Amarok, but in GTK. It is in [community], so install with:<br />
pacman -S exaile<br />
<br />
=====Rhythmbox=====<br />
[http://www.gnome.org/projects/rhythmbox/ Rhythmbox] is an integrated music management application, originally inspired by Apple's iTunes. It is free software, designed to work well under the GNOME Desktop, and based on the powerful GStreamer media framework.<br />
<br />
Rhythmbox has a number of features, including:<br />
<br />
* Easy-to-use music browser<br />
* Searching and sorting<br />
* Comprehensive audio format support through GStreamer<br />
* Internet radio support<br />
* Playlists<br />
<br />
To install rhythmbox:<br />
pacman -S rhythmbox<br />
<br />
=====Quod Libet=====<br />
[http://www.sacredchao.net/quodlibet Quod Libet] is a music manager that uses the GStreamer media framework to play audio files. This allows it to play all the file-types that Rhythmbox (which uses GStreamer too) can play. Quod Libet is more suited to non-Gnome desktops since it has a smaller footprint and fewer dependencies than Rhythmbox (Rhythmbox depends on nautilus, which requires a lot of GNOME to be installed).<br />
<br />
In addition to the music player/manager, Quod Libet also includes Ex Falso, a tag editor.<br />
<br />
Quod Libet's features include:<br />
<br />
* Easy-to-use music browser<br />
* Searching<br />
* Comprehensive audio format support through GStreamer<br />
* Easy Playlist management<br />
<br />
To install Quod Libet:<br />
pacman -S quodlibet<br />
<br />
Other good audio players are Banshee and Listen. See [http://gnomefiles.org/ Gnomefiles] to compare them.<br />
<br />
====KDE====<br />
=====Amarok=====<br />
[http://amarok.kde.org/ Amarok] is one of the best audio players and music library systems available for KDE. To install it, simply type the code below.<br />
<br />
pacman -S amarok-base<br />
<br />
====Console====<br />
[http://moc.daper.net/ Moc] is a ncurses-based audio player for the console. Other excellent choices are [http://musicpd.org/ mpd], [http://freshmeat.net/projects/cmus/ cmus], and [http://herrie.info/ herrie].<br />
<br />
====Other X-based====<br />
(TODO) Xmms, audacious, bmpx.<br />
<br />
===Codecs and other multimedia content types (i686 only) ===<br />
====DVD====<br />
You can use xine-ui, totem-xine, mplayer or kaffeine (just to name three of the big ones) to watch DVDs. The only thing you may miss is libdvdcss. Beware that using it may be illegal in some countries.<br />
<br />
====Flash====<br />
Install the flash plugin using<br />
pacman -S flashplugin<br />
to enable Macromedia (now Adobe) Flash in your browser, if you run KDE you should see [[Flash_and_Adobe_Acrobat_browser_plugins#Fixing_Flash_in_Konqueror|this]] after installing flash.<br />
<br />
====Quicktime====<br />
Quicktime codecs are contained in the codecs package. Just type<br />
pacman -S codecs<br />
to install them.<br />
====Realplayer====<br />
The codec for Realplayer 9 is contained in the codecs package. Just type<br />
pacman -S codecs<br />
to install them. Realplayer 10 is available as a binary package for Linux. You can get it from AUR [http://aur.archlinux.org/packages.php?do_Details=1&ID=1590&O=0&L=0&C=0&K=realplay&SB=&SO=&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd here].<br />
<br />
===CD and DVD Burning===<br />
====GNOME====<br />
=====Brasero=====<br />
[http://www.gnome.org/projects/brasero/ Brasero] is an application that burns CDs/DVDs for the GNOME Desktop. It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.<br />
<br />
To install:<br />
pacman -S brasero<br />
<br />
====KDE====<br />
=====K3b=====<br />
K3b (from '''K'''DE '''B'''urn '''B'''aby '''B'''urn) is a free software CD and DVD authoring application for GNU/Linux and other <code>UNIX</code>-like operating systems designed for KDE. As is the case with most KDE applications, K3b is written in the C++ programming language and uses the Qt GUI toolkit. K3b provides a graphical user interface to perform most CD/DVD burning tasks like creating an Audio CD from a set of audio files or copying a CD/DVD, as well as more advanced tasks such as burning eMoviX CD/DVDs. It can also perform direct disc-to-disc copies. The program has many default settings which can be customized by more experienced users. The actual disc recording in K3b is done by the command line utilities cdrecord or wodim, cdrdao, and growisofs. As of version 1.0, K3b features a built-in DVD ripper.- licensed under the GPL.<br />
<br />
K3b was voted LinuxQuestions.org's Multimedia Utility of the Year (2006) by the majority (70%) of voters. <br />
-----<br />
To install:<br />
pacman -S k3b<br />
<br />
=====(Todo) cdrecord, graveman...=====<br />
<br />
<br />
<br />
<br />
Most CD burners are wrappers for cdrecord:<br />
<br />
pacman -S cdrkit<br />
<br />
If you install packages for CD/DVD burning applications like Brasero or K3B it also installs the CD/DVD burning library for it, like libburn or cdrkit.<br />
<br />
A good command-line DVD-burning tool is growisofs:<br />
<br />
pacman -S dvd+rw-tools<br />
<br />
===TV-Cards===<br />
<br />
There are several things to do if you want to watch TV under (Arch) Linux. The most important task is to find out which chip your tuner is using. However, quite a lot are supported. Be sure to check at a Hardware Database to be sure (see [http://en.opensuse.org/HCL/TV_Cards this list], for example). Once you know your Model, there are just a few steps ahead to get you going.<br />
<br />
In most cases, you will need to use the bttv-drivers (other drivers exist, like [http://linux.bytesex.org/v4l2/drivers.html V4L]) together with the I2C-modules. Configuring those is the hardest task. If you are lucky, a<br />
modprobe bttv<br />
will autodetect the card (check dmesg for results). In that case, you need only to install an application to watch TV. We will look at that later, though.<br />
If the autodetection did not work, you will need to check the file CARDLIST, which is included in the tarball of [http://dl.bytesex.org/releases/video4linux/ bttv] to find out the right parameters for your card. A PV951 without radio support would need this line:<br />
modprobe bttv card=42 radio=0<br />
Some cards need the following line to produce sound:<br />
modprobe tvaudio<br />
However, that varies. So just try it out. Some other cards demand the following line:<br />
modprobe tuner<br />
This is subject to trial-and-error, too.<br />
<br />
TODO: clarify the installation-procedure<br />
<br />
To actually watch TV, install the xawtv-package with<br />
pacman -S xawtv <br />
and read its manpage.<br />
<br />
TODO: clarify some possible problems and procedures. Introduction to XAWTV on another page?<br />
<br />
===Digital Cameras===<br />
Most newer digital cameras are supported as USB mass storage devices, which means that you can simply plug it in and copy the images. Older cameras may use the PTP (Picture Transfer Protocol) which requires a "special driver". gPhoto2 provides this driver and allows a shell-based transfer of the images; digikam (for KDE) and gthumb (for GNOME, gtkam would be another choice) use this driver and offer a nice GUI.<br />
<br />
===USB Memory Sticks / Hard Disks===<br />
USB Memory Sticks and hard disks are supported out of the box with the USB mass storage device driver and will appear as a new SCSI device (/dev/sdX). If you are using KDE or GNOME you should use dbus and hal (add them to your daemons in /etc/rc.conf), and they will be automatically mounted. If you use a different Desktop Environment you may have a look at ivman.<br />
<br />
==Maintaining the system==<br />
===Pacman===<br />
[[Pacman]] is both a binary and source package manager which is able to download, install, and upgrade packages from both remote and local repositories with full dependency handling, and has easy-to-understand tools for crafting your own packages too.<br />
<br />
A more-detailed description of Pacman can be found in [[Pacman|its article]].<br />
<br />
====Useful commands====<br />
To view the options available for a particular operational command, say '''-Q''', just append it with '''-h''':<br />
pacman -Qh<br />
<br />
To synchronize and update the local packages database with the remote repositories (it is a good idea to do this before installing and upgrading packages):<br />
pacman -Sy<br />
<br />
To '''upgrade''' all packages on the system:<br />
pacman -Su<br />
<br />
To sync, update, and '''upgrade''' all the packages on the system with one command:<br />
pacman -Syu<br />
<br />
To install or upgrade a single package or list of packages (including dependencies):<br />
pacman -S packageA packageB<br />
<br />
You can also sync, update the package database, and install packages in one command:<br />
pacman -Sy packageA packageB<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
pacman -R package<br />
<br />
To remove a package and all of the package's dependencies which are not used by any other installed package:<br />
pacman -Rs package<br />
('''-Rs''' is typically preferred vs '''R''' to remove any package as it will clean up all unused dependencies)<br />
<br />
To remove all of the package's now unneeded dependencies and also instruct pacman to ignore file backup designations. (Normally, when a file is removed from the system the database is checked to see if the file should be renamed with a ".pacsave" extension.):<br />
pacman -Rsn package<br />
<br />
To search the remote (repo) package database for a list of packages matching a given keyword:<br />
pacman -Ss keyword<br />
<br />
To list all packages on your system<br />
pacman -Q<br />
<br />
To list all packages on your system without the version strings, we add the '''-q''' option:<br />
pacman -Qq<br />
<br />
To search (query) the local (your machine) package database for a given package:<br />
pacman -Q package <br />
<br />
To search (query) the local (your machine) package database for a given package and list all pertinent information:<br />
pacman -Qi package<br />
<br />
To list all files installed by a given ''package'':<br />
<tt>pacman -Ql ''package''</tt><br />
Conversely, to find the package that owns a given file (in this example, the ''ls'' executable):<br />
<tt>pacman -Qo /bin/ls</tt><br />
To find all unused packages (orphans):<br />
pacman -Qdt<br />
Missing libraries: Suppose you receive an error message like this:<br />
<tt>mplayer: error while loading shared libraries: ''libgssapi.so.2'': cannot open shared object file: No such file or directory</tt><br />
This may be an indication that a package you have previously installed is now corrupt (some or all of its files are missing). You should try to find the package name that provides the missing shared library. In this example, you could type:<br />
<tt>pacman -Ql | grep ''libgssapi.so.2''</tt><br />
The first column in the output is the package name:<br />
<tt>heimdal /usr/lib/libgssapi.so.2<br />
heimdal /usr/lib/libgssapi.so.2.0.0<br />
</tt><br />
Then, you can just re-install it:<br />
<tt>pacman -Sy heimdal</tt><br />
<br />
To defragment pacman's cache database and optimize for speed:<br />
pacman-optimize<br />
<br />
To count how many packages are currently on your system:<br />
pacman -Q | wc -l<br />
<br />
To install a package compiled from source using ABS and makepkg:<br />
pacman -U packagename.pkg.tar.gz<br />
<br />
Note: There are countless additional pacman functions and commands. Try man pacman and consult the [[pacman]] wiki entries.<br />
<br />
====Files====<br />
There are a number of files left and created by pacman and other programs to facilitate maintenance and to conform to a safe computing practice. When pacman is installing something, the package contains information on whether to back up a particular file. Such files will have the '''.pacsave''' extension. When you force a "NoUpgrade" on a file via [http://www.archlinux.org/pacman/pacman.conf.5.html pacman.conf], it will not be replaced during an upgrade and the new file will come with the '''.pacnew''' extension. For example, you have edited a configuration file thoroughly and you do not want an upgrade of the respective package to replace the file with a new one, we must have the following line in '''/etc/pacman.conf''':<br />
NoUpgrade = /path/to/config/file<br />
To view the differences of the old and new versions of these files, we can either edit them manually or use a '''diff''' utility to take note of the differences. There is an automated tool to find and view such files available from the '''community''' repository:<br />
pacman -S pacman-contrib<br />
cd ~/<br />
pacdiff # as root<br />
There is a bug in the above tool where if you navigate to '''/etc''' and run it from there, the paths will be messed up. We remain on the safer side by being at "home". You may want to run it as user first in case you happen to be a careless person (you may just overwrite or remove files because you ''think'' that is the right way).<br><br />
<br />
There are other types of leftovers depending on the programs available on your system. Some will create backups with a '''.bak''' extension, while others with something like "'''~'''" or "'''-'''". Unfortunately, there is currently no way to "automatically" find and review them. Fear not, as we have no need for automated tools to deal with such trivial tasks. Simply use '''locate''' to search for them:<br />
locate -e *.~ *.- *.bak<br />
And we can use something useful like '''vimdiff''' to look at the differences manually:<br />
pacman -S vim<br />
vimdiff file1 file2<br />
<br />
==Polishing & Further information==<br />
For further information and support you can go to the [http://www.archlinux.org/ homepage], [[Special:Search|search the wiki]], the [http://bbs.archlinux.org/ forums], the [[ArchChannel|IRC channel]], and the [http://www.archlinux.org/mailman/listinfo/ mailing lists].<br />
=====FAQs=====<br />
See [[Arch FAQs for newbies]]<br />
<br />
There is also an [http://bbs.archlinux.org/viewforum.php?id=23 Arch Subforum] devoted to beginners.<br />
<br />
=====Terminology=====<br />
For more information on the jargon used in Arch, look at [[Arch Terminology/Jargon for newbies|this article]].<br />
<br />
=====Where to go from here?=====<br />
<br />
You may also be interested in:<br />
<br />
[[Post Installation Tips]]<br />
<br />
[[ArchLinux User-community Repository (AUR)]]<br />
<br />
[[Get All Mouse Buttons Working]]<br />
<br />
[[Improve Pacman Performance]]<br />
<br />
[[Kernel Compilation]]<br />
<br />
[[Pm-utils]]<br />
<br />
[[Cpufrequtils]]<br />
<br />
[[:Category:Eye candy (English)| Eye Candy]]<br />
<br />
==External links==<br />
* [http://archux.com/page/installation-guide/ Arch Linux installation guide with images]<br />
* [http://archux.com/page/arch-linux-video-installation-guide Arch Linux video installation guide]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Compiz_Fusion&diff=48393
Compiz Fusion
2008-08-30T10:03:50Z
<p>Xiol: /* Fusion effects */ Removed fusion effects section - it's redundant. The packages in question get pulled down with the above groups.</p>
<hr />
<div>[[Category:Eye candy (English)]]<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|:Compiz Fusion}}<br />
{{i18n_entry|Ελληνικά|:Compiz Fusion (Ελληνικά)}}<br />
{{i18n_entry|Português de Brasil|:Compiz Fusion (Português)}}<br />
{{i18n_entry|简体中文|Compiz Fusion(简体中文)}}<br />
{{i18n_links_end}}<br />
Compiz Fusion is a project that aims to add more functionality to Compiz by extending it with more plugins, tools and libraries.<br />
= Installation =<br />
Basic installation can be done using community as repo ( see below ).<br />
<br />
The second way is using nesl's git packages. See [[Compiz_Fusion_Git]] for more information.<br />
<br />
<br />
== Install from Community ==<br />
<br />
Make sure the Community repository is enabled and run this command as root to install everything:<br />
pacman -S compiz-fusion<br />
Run this if you only want gtk-based packages installed:<br />
pacman -S compiz-fusion-gtk<br />
or this if you only want kde-based packages installed:<br />
pacman -S compiz-fusion-kde <br />
<br />
If you want select personally the packages, here is a list:<br />
=== List of packages by group ===<br />
<br />
Entire compiz-fusion group:<br />
ccsm, compiz-core, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-gconf, compizconfig-backend-kconfig, emerald, emerald-themes, fusion-icon<br />
<br />
KDE compiz-fusion group:<br />
ccsm, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-kconfig, emerald, emerald-themes, fusion-icon<br />
<br />
GTK compiz-fusion group:<br />
ccsm, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-gconf, emerald, emerald-themes, fusion-icon<br />
<br />
(more TODO?)<br />
<br />
<br />
<br />
= Starting Compiz Fusion =<br />
<br />
== Manual (with "fusion-icon") ==<br />
<br />
Launch the Compiz Fusion tray icon:<br />
<br />
fusion-icon<br />
<br />
note: if it fails, you may try it with dbus-launch<br />
<br />
dbus-launch "fusion-icon"<br />
<br />
Right click on the icon in the panel and go to 'select window manager'. Choose "Compiz" if it isn't selected already, and you should be set.<br />
<br />
If this fails you can start compiz-fusion by using the following commands<br />
<br />
fusion-icon<br />
emerald --replace<br />
compiz-manager<br />
<br />
== KDE ==<br />
<br />
=== Manual (without "fusion-icon") ===<br />
<br />
Launch Compiz with the following command once installation is done :<br />
<br />
compiz --replace ccp &<br />
<br />
Start new settings manager:<br />
ccsm &<br />
<br />
Select all the plugins you like including “decoration” plugin, Add<br />
kde-window-decorator --replace<br />
as command string under ‘decoration’ plugin.<br />
<br />
<!-- We need some more consistency with the autostart guides. The KDE version suggests starting compiz directly while the GNOME version tells you to use fusion-icon. --><br />
<br />
=== Autostart (with "fusion-icon") ===<br />
<br />
You should add a symbolic link to the fusion-icon executable in your KDE Autostart directory (generally located on ~/.kde/Autostart):<br />
<br />
ln -s /usr/bin/fusion-icon ~/.kde/Autostart/fusion-icon<br />
<br />
Next time you start KDE it will load fusion-icon automatically.<br />
<br />
=== Autostart (without "fusion-icon") ===<br />
<br />
==== Method 1 - Autostart Link ====<br />
<br />
* You can ensure that Compiz Fusion will always start at login by appending a desktop entry to the KDE autostart directory. Create the file ''~/.kde/Autostart/compiz.desktop'' with the following contents:<br />
<br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Exec=compiz --replace ccp<br />
StartupNotify=false<br />
Terminal=false<br />
Type=Application<br />
X-KDE-autostart-after=kdesktop<br />
<br />
* If you want to use the optional <tt>fusion-icon</tt> application, launch ''fusion-icon''. If you log out normally with ''fusion-icon'' running, KDE should restore your session and launch ''fusion-icon'' the next time you log in if this setting is enabled. If it doesn't appear to be working, ensure you have the following line in ''~/.kde/share/config/ksmserverrc'':<br />
<br />
loginMode=restorePreviousLogout<br />
<br />
==== Method 2 - export KDEWM (avoid KWIN) ====<br />
<br />
Using this method will load Compiz-Fusion as the default window manager instead of KWIN from the start. This method is faster then loading Compiz-Fusion in the ~/.kde/Autostart/ (method 1) because it avoids loading KDE's default WM (kwin) first. This way also stops that annoying black screen flicker you might see using other methods (when kwin switches to Compiz on KDE's desktop loading screens).<br />
<br />
As root you must create a short script by doing the following in your terminal. This will allow you to load compiz with the switches because doing it directly via export KDEWM="compiz --replace ccp --sm-disable" doesn't seem to work.<br />
<br />
echo "compiz --replace ccp --sm-disable &" > /usr/bin/compiz-fusion<br />
<br />
If this doesn't work, install the "fusion-icon" package and then use this line instead:<br />
<br />
echo "fusion-icon &" > /usr/bin/compiz-fusion<br />
<br />
Ensure that "/usr/bin/compiz-fusion" has executable (+x) permissions.<br />
<br />
Edit your ~/.bashrc and add the following so KDE will load compiz (via the script you just created) instead of loading kwin.<br />
<br />
export KDEWM="compiz-fusion"<br />
<br />
NOTE: If you use /usr/local/bin directory it may not work. In that case you should export the script with the path, i.e. export KDEWM="/usr/local/bin/compiz-fusion".<br />
<br />
NOTE: The elegant way for above mentioned method is to include<br />
<br />
KDEWM="compiz-fusion"<br />
<br />
line in the ~/.kde/env/compiz.sh or /opt/kde/env/compiz.sh (system wide).<br />
<br />
== GNOME ==<br />
<br />
=== Autostart (without "compiz-fusion") ===<br />
<br />
This is a way that works if you use GDM (and I'd assume KDM too).<br />
<br />
Make a file called /usr/local/bin/compiz-start-boot with the contents:<br />
<br />
#!/bin/bash<br />
export WINDOW_MANAGER="compiz ccp"<br />
exec gnome-session<br />
<br />
and make executable (chmod +x). Next create the file /etc/X11/sessions/Compiz.desktop containing the following:<br />
<br />
[Desktop Entry]<br />
Version=1.0<br />
Encoding=UTF-8<br />
Name=Compiz on GNOME<br />
Exec=/usr/local/bin/compiz-start-boot<br />
Icon=<br />
Type=Application<br />
<br />
Select Compiz on Gnome as your session and you're good to go.<br />
<br />
=== Autostart (with "compiz-fusion") ===<br />
<br />
To start Compiz fusion automatically when starting a session add<br />
"Compiz Fusion" (Name:)<br />
and <br />
"fusion-icon" (Command:)<br />
to the applications that start with your session. You can do this by going to:<br />
<br />
[System] -> [Preferences] -> [Sessions] -> [Startup Programs]<br />
Adding "Compiz Fusion" to the list might be a good idea too so you can switch back to Metacity if need be.<br />
<br />
== Xfce ==<br />
<br />
=== Xfce autostart (without "compiz-fusion") ===<br />
<br />
TO DO<br />
<br />
=== Xfce autostart (with "compiz-fusion") ===<br />
Method 1:<br />
<br />
Start "Autostarted Applications"<br />
<br />
Add<br />
(Name:) Compiz Fusion<br />
and <br />
(Command:) fusion-icon<br />
<br />
<br />
Method 2: (requires root access)<br />
<br />
Find the following file<br />
/etc/xdg/xfce4-session/xfce4-session.rc<br />
<br />
change line 39 from<br />
Client0_Command=xfwm4<br />
<br />
to<br />
<br />
Client0_Command=fusion-icon<br />
<br />
== As a standalone WM ==<br />
<br />
Write a simple script called, say, start-fusion.sh:<br />
#!/bin/sh<br />
# add more apps here if necessary<br />
xfce4-panel&<br />
fusion-icon<br />
Make it executable and add it to ~/.xinitrc, like this:<br />
exec start-fusion.sh<br />
Feel free to use a different panel, tray, or start a whole bunch on applications with your session.<br />
See [http://bbs.archlinux.org/viewtopic.php?id=51282 forum thread] for more info.<br />
<br />
= Troubleshooting =<br />
Make sure that the environmental variable $XLIB_SKIP_ARGB_VISUALS is not set<br />
<br />
Also see [[Compiz_Troubleshooting]]<br />
<br />
= Additional Resources =<br />
*[[AIGLX]]<br />
*[[Xgl]]<br />
*[[Composite]] -- A Xorg extension required by composite managers<br />
*[[Compiz Fusion]] -- A composite and window manager offering a rich 3D accelerated desktop environment<br />
*[[Compiz]] -- The original composite/window manager from Novell<br />
*[[Xcompmgr]] -- A simple composite manager capable of drop shadows and primitive transparency<br />
*[[Beryl]] -- <strike>A composite/window manager forked from Compiz</strike> (since merged to become [[Compiz Fusion]])<br />
*Wikipedia: [http://en.wikipedia.org/wiki/Compositing_window_manager Compositing Window Managers]<br />
*How to set up Compiz Fusion: [http://forlong.blogage.de/article/2007/8/29/How-to-set-up-Compiz-Fusion Forlong's Blog]</div>
Xiol
https://wiki.archlinux.org/index.php?title=User:Xiol&diff=48242
User:Xiol
2008-08-26T19:49:13Z
<p>Xiol: New page: Who?</p>
<hr />
<div>Who?</div>
Xiol
https://wiki.archlinux.org/index.php?title=Laptop/Dell&diff=48070
Laptop/Dell
2008-08-22T18:48:53Z
<p>Xiol: /* */</p>
<hr />
<div>{| style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 3px 3px; border: 1px solid #aaa;"<br />
|-<br />
|align="center"|'''[[HCL|Hardware Compatibility List]] - [[HCL/Laptops|Laptops main page]]''' <br> [[HCL/Laptops/Acer|Acer]] - [[HCL/Laptops/Apple|Apple]] - [[HCL/Laptops/Asus|Asus]] - [[HCL/Laptops/Compaq|Compaq]] - [[HCL/Laptops/Dell|Dell]] - [[HCL/Laptops/Digital|Digital]] - [[HCL/Laptops/ECS|ECS]] - [[HCL/Laptops/Siemens-Fujitsu|Siemens-Fujitsu]] - [[HCL/Laptops/Gateway|Gateway]] - [[HCL/Laptops/Hitachi|Hitachi]] - [[HCL/Laptops/Higrade|Higrade]] - [[HCL/Laptops/HP|HP]] - [[HCL/Laptops/IBM|IBM/Lenovo]] - [[HCL/Laptops/Medion|Medion]] - [[HCL/Laptops/Micron|Micron]] - [[HCL/Laptops/Mitac|Mitac]] - [[HCL/Laptops/Mitsubishi|Mitsubishi]] - [[HCL/Laptops/NEC|NEC]] - [[HCL/Laptops/Panasonic|Panasonic]] - [[HCL/Laptops/Samsung|Samsung]] - [[HCL/Laptops/Sony|Sony]] - [[HCL/Laptops/Toshiba|Toshiba]] - [[HCL/Laptops/Zenith|Zenith]] - [[HCL/Laptops/Other|Other]]<br />
|}<br />
<br />
<br />
[[Category:Hardware Compatibility List]]<br />
<br />
<br />
<br />
{| align="right" width="300px" style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 3px; border: 1px solid #aaa;"<br />
| style="background-color:white" | <small>'''[[HCL|Hardware Compatibility List (HCL)]]'''</small><br />
|-<br />
|<small> ''Full Systems'' </small><br />
|-<br />
|<small>[[HCL/Laptops|Laptops]] - [[HCL/Desktops|Desktops]] - [[HCL/Servers|Servers]] - [[HCL/Virtual Machines|Virtual Machines]]</small><br />
|-<br />
|<small>''Components''</small><br />
HCL/Web Cameras|Web Cameras]] - [[HCL/UPS|UPS]] - [[HCL/Floppy Drives|Floppy Drives]] - [[HCL/CD and DVD Writer/Readers|CD and DVD Writer/Readers]] - [[HCL/SCSI Adapters|SCSI Adapters]] - [[HCL/Gadgets|Gadgets]] - [[HCL/SATA IDE Cards|SATA IDE Cards]] - [[HCL/Keyboards|Keyboards]] - [[HCL/Main Boards|Main Boards]] - [[HCL/RAID Controllers|RAID Controllers]]</small><br />
|}<br />
[[Category:Hardware Compatibility List]]<br />
<br />
<br />
= Model Version =<br />
<br />
== ==<br />
<br />
<br><br><br><br><br><br><br><br><br><br />
{| border="1" cellpadding="2" cellspacing="0"<br />
! rowspan=2 | Model Version:<br />
! rowspan=2 | Arch Linux<br>Install CD Version:<br> <br />
! colspan=8 | Hardware Support:<br />
! rowspan=2 | Remark:<br />
|- <br />
! Video: || Sound: || Ethernet: || Wireless: || Bluetooth: || Power<br>Management:<br> || Modem: || Other:<br />
|-<br />
|-<br />
| e1405 || Any || 3D with x86-video-intel-2.0, native resolution with xorg-server-1.3 (1440x900)|| Intel HD audio with alsa || Yes || Yes, ipw3945 || Yes || Suspend-to-ram shaky, hibernate is flawless || Untested || SD Card reader works out of the box || Everything else works without a hitch ||<br />
|-<br />
| d420 || Duke || 3D with xf86-video-i810 and 915resolution, native resolution with xorg-server-1.2 (1280x800) || Intel HD audio with alsa || Yes (with tg3) || Yes (with ipw3945) || N/A || Both hibernate and suspend-to-ram and works with powersaved || Untested || Have not tested SD Card reader || External D-Bay dvd/cdrw works, docking station mostly works (can undock, but locks up on redocking) ||<br />
|-<br />
| d620 || Duke || 3D with nvidia, native resolution with xorg-server-1.2 (1440x900)<br> 3D with Intel 945GM, native resolution 1440x900 || Intel HD audio with alsa || Yes || Yes, bcm4311 PCIE with bcm43xx (with kernel >= 2.6.21). Yes for some models with iwl3945. || N/A|| Suspend-to-ram perfect, hibernate works fine. || Untested || not tested Smart Card Reader || Everything else works without a hitch ||<br />
|-<br />
| d820 || Duke || 3D with nvidia drivers || Intel HD audio with alsa || Yes || Yes, IPW3945 || YES|| Suspending with KDE works || Untested || Everything works, even fingerprint reader with bioapi and pam_bioapi || Everything else works without a hitch ||<br />
|-<br />
| Inspiron1501 || Duke || 3D with proprietary ATI fglrx || Intel HD audio with alsa || Yes || Yes, bcm4311 PCIE with bcm43xx (with kernel >= 2.6.21) || N/A|| Untested || Untested || Smart Card Reader works out of the box || Everything else works without a hitch ||<br />
|-<br />
| XPS M1210 || Duke || 3D with nvidia open source drivers || sigmatel audio with alsa || b44 module, out of the box || IPW 3945, command-line wireless_tools || not tested || not tested || not tested || rico card reader worked out of the box, hotkeys using keytouch || Everything else works without a hitch ||<br />
|-<br />
| Inspiron 1520 || Core Dump || 3D with nvidia|| sigmatel audio with alsa|| b44 module, out of the box || b43, need firmware || Yes ||Both hibernate and suspend-to-ram and works with pm-utils || untested ||hotkeys works out of the box using hal ||Everything else works without a hitch ||<br />
|-<br />
| Inspiron 1525 || Core Dump (2008.03 iso) || 3D with x86-video-intel-2.2, native resolution with xorg-server-1.4 (1280x800)|| Intel HD audio (SigmaTel STAC9228 codec) with ALSA || Marvell Yukon Gb Ethernet: Yes (sky2 module) || Broadcom BCM4310: Yes, ndiswrapper (I didn't test with b43 modules (requires a firmware))|| Untested (doesn't have) || Untested || Untested || SD Card Reader (Ricoh) works out of the box || Fn+Up/Down (lcd bright control) works independently of the OS , Media keys configured with KeyTouch . DVDRW drive and everything else work out of the box||<br />
|- <br />
| Inspiron 1300 || Don't Panic (Core Dump version) || 3D with xf86-video-intel || intel || b44 module, out of the box || BCM4318 based card, works with ndiswrapper || N/A || Untested || Untested || || Everything works out of the box except wireless and sometimes screen resolution ||<br />
|- <br />
| [[Dell XPS M1330]] || Don't Panic (2007.08-2) || For dedicated graphics (NVIDIA 8400m) works with nvidia package || Works with Intel HD Audio and Alsa, but need to configure mic || Yes || Works with iwl4965 || Can set BT but haven't tested with any devices|| Suspend works fine with pm-utils (acpi-cpufreq problem: http://bbs.archlinux.org/viewtopic.php?id=44500) || Untested || 2.0MP webcam works with uvcvideo, media keys work with keytouch or esekeyd, IR remote works, SD card works || Everything basically worked out of the box except the microphone ||<br />
|}</div>
Xiol
https://wiki.archlinux.org/index.php?title=Laptop/Dell&diff=48069
Laptop/Dell
2008-08-22T18:48:30Z
<p>Xiol: Updated D620 entry.</p>
<hr />
<div>{| style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 3px 3px; border: 1px solid #aaa;"<br />
|-<br />
|align="center"|'''[[HCL|Hardware Compatibility List]] - [[HCL/Laptops|Laptops main page]]''' <br> [[HCL/Laptops/Acer|Acer]] - [[HCL/Laptops/Apple|Apple]] - [[HCL/Laptops/Asus|Asus]] - [[HCL/Laptops/Compaq|Compaq]] - [[HCL/Laptops/Dell|Dell]] - [[HCL/Laptops/Digital|Digital]] - [[HCL/Laptops/ECS|ECS]] - [[HCL/Laptops/Siemens-Fujitsu|Siemens-Fujitsu]] - [[HCL/Laptops/Gateway|Gateway]] - [[HCL/Laptops/Hitachi|Hitachi]] - [[HCL/Laptops/Higrade|Higrade]] - [[HCL/Laptops/HP|HP]] - [[HCL/Laptops/IBM|IBM/Lenovo]] - [[HCL/Laptops/Medion|Medion]] - [[HCL/Laptops/Micron|Micron]] - [[HCL/Laptops/Mitac|Mitac]] - [[HCL/Laptops/Mitsubishi|Mitsubishi]] - [[HCL/Laptops/NEC|NEC]] - [[HCL/Laptops/Panasonic|Panasonic]] - [[HCL/Laptops/Samsung|Samsung]] - [[HCL/Laptops/Sony|Sony]] - [[HCL/Laptops/Toshiba|Toshiba]] - [[HCL/Laptops/Zenith|Zenith]] - [[HCL/Laptops/Other|Other]]<br />
|}<br />
<br />
<br />
[[Category:Hardware Compatibility List]]<br />
<br />
<br />
<br />
{| align="right" width="300px" style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 3px; border: 1px solid #aaa;"<br />
| style="background-color:white" | <small>'''[[HCL|Hardware Compatibility List (HCL)]]'''</small><br />
|-<br />
|<small> ''Full Systems'' </small><br />
|-<br />
|<small>[[HCL/Laptops|Laptops]] - [[HCL/Desktops|Desktops]] - [[HCL/Servers|Servers]] - [[HCL/Virtual Machines|Virtual Machines]]</small><br />
|-<br />
|<small>''Components''</small><br />
HCL/Web Cameras|Web Cameras]] - [[HCL/UPS|UPS]] - [[HCL/Floppy Drives|Floppy Drives]] - [[HCL/CD and DVD Writer/Readers|CD and DVD Writer/Readers]] - [[HCL/SCSI Adapters|SCSI Adapters]] - [[HCL/Gadgets|Gadgets]] - [[HCL/SATA IDE Cards|SATA IDE Cards]] - [[HCL/Keyboards|Keyboards]] - [[HCL/Main Boards|Main Boards]] - [[HCL/RAID Controllers|RAID Controllers]]</small><br />
|}<br />
[[Category:Hardware Compatibility List]]<br />
<br />
<br />
= Model Version =<br />
<br />
== ==<br />
<br />
<br><br><br><br><br><br><br><br><br><br />
{| border="1" cellpadding="2" cellspacing="0"<br />
! rowspan=2 | Model Version:<br />
! rowspan=2 | Arch Linux<br>Install CD Version:<br> <br />
! colspan=8 | Hardware Support:<br />
! rowspan=2 | Remark:<br />
|- <br />
! Video: || Sound: || Ethernet: || Wireless: || Bluetooth: || Power<br>Management:<br> || Modem: || Other:<br />
|-<br />
|-<br />
| e1405 || Any || 3D with x86-video-intel-2.0, native resolution with xorg-server-1.3 (1440x900)|| Intel HD audio with alsa || Yes || Yes, ipw3945 || Yes || Suspend-to-ram shaky, hibernate is flawless || Untested || SD Card reader works out of the box || Everything else works without a hitch ||<br />
|-<br />
| d420 || Duke || 3D with xf86-video-i810 and 915resolution, native resolution with xorg-server-1.2 (1280x800) || Intel HD audio with alsa || Yes (with tg3) || Yes (with ipw3945) || N/A || Both hibernate and suspend-to-ram and works with powersaved || Untested || Have not tested SD Card reader || External D-Bay dvd/cdrw works, docking station mostly works (can undock, but locks up on redocking) ||<br />
|-<br />
| d620 || Duke || 3D with nvidia, native resolution with xorg-server-1.2 (1440x900)<br> 3D with Intel, native resolution 1440x900 || Intel HD audio with alsa || Yes || Yes, bcm4311 PCIE with bcm43xx (with kernel >= 2.6.21). Yes for some models with iwl3945. || N/A|| Suspend-to-ram perfect, hibernate works fine. || Untested || not tested Smart Card Reader || Everything else works without a hitch ||<br />
|-<br />
| d820 || Duke || 3D with nvidia drivers || Intel HD audio with alsa || Yes || Yes, IPW3945 || YES|| Suspending with KDE works || Untested || Everything works, even fingerprint reader with bioapi and pam_bioapi || Everything else works without a hitch ||<br />
|-<br />
| Inspiron1501 || Duke || 3D with proprietary ATI fglrx || Intel HD audio with alsa || Yes || Yes, bcm4311 PCIE with bcm43xx (with kernel >= 2.6.21) || N/A|| Untested || Untested || Smart Card Reader works out of the box || Everything else works without a hitch ||<br />
|-<br />
| XPS M1210 || Duke || 3D with nvidia open source drivers || sigmatel audio with alsa || b44 module, out of the box || IPW 3945, command-line wireless_tools || not tested || not tested || not tested || rico card reader worked out of the box, hotkeys using keytouch || Everything else works without a hitch ||<br />
|-<br />
| Inspiron 1520 || Core Dump || 3D with nvidia|| sigmatel audio with alsa|| b44 module, out of the box || b43, need firmware || Yes ||Both hibernate and suspend-to-ram and works with pm-utils || untested ||hotkeys works out of the box using hal ||Everything else works without a hitch ||<br />
|-<br />
| Inspiron 1525 || Core Dump (2008.03 iso) || 3D with x86-video-intel-2.2, native resolution with xorg-server-1.4 (1280x800)|| Intel HD audio (SigmaTel STAC9228 codec) with ALSA || Marvell Yukon Gb Ethernet: Yes (sky2 module) || Broadcom BCM4310: Yes, ndiswrapper (I didn't test with b43 modules (requires a firmware))|| Untested (doesn't have) || Untested || Untested || SD Card Reader (Ricoh) works out of the box || Fn+Up/Down (lcd bright control) works independently of the OS , Media keys configured with KeyTouch . DVDRW drive and everything else work out of the box||<br />
|- <br />
| Inspiron 1300 || Don't Panic (Core Dump version) || 3D with xf86-video-intel || intel || b44 module, out of the box || BCM4318 based card, works with ndiswrapper || N/A || Untested || Untested || || Everything works out of the box except wireless and sometimes screen resolution ||<br />
|- <br />
| [[Dell XPS M1330]] || Don't Panic (2007.08-2) || For dedicated graphics (NVIDIA 8400m) works with nvidia package || Works with Intel HD Audio and Alsa, but need to configure mic || Yes || Works with iwl4965 || Can set BT but haven't tested with any devices|| Suspend works fine with pm-utils (acpi-cpufreq problem: http://bbs.archlinux.org/viewtopic.php?id=44500) || Untested || 2.0MP webcam works with uvcvideo, media keys work with keytouch or esekeyd, IR remote works, SD card works || Everything basically worked out of the box except the microphone ||<br />
|}</div>
Xiol
https://wiki.archlinux.org/index.php?title=Xorg&diff=48030
Xorg
2008-08-22T14:49:12Z
<p>Xiol: Added link to Compiz Fusion</p>
<hr />
<div>[[Category:X Server (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Dansk|Xorg (Dansk)}}<br />
{{i18n_entry|English|Xorg}}<br />
{{i18n_entry|Ελληνικά|Xorg (Ελληνικά)}}<br />
{{i18n_entry|Español|Configurando Xorg (Español)}}<br />
{{i18n_entry|Polski|Xorg_(Polski)}}<br />
{{i18n_entry|Русский|Xorg (Русский)}}<br />
{{i18n_entry|Česky|Xorg (Česky)}}<br />
{{i18n_entry|Italiano|Xorg (Italiano)}}<br />
{{i18n_entry|简体中文|Xorg (简体中文)}}<br />
{{i18n_entry|Türkçe|Xorg (Türkçe)}}<br />
{{i18n_links_end}}<br />
<br />
== Introduction ==<br />
<br />
'''Xorg''' is the public, open-source implementation of the X11 X Window System. (See the [http://en.wikipedia.org/wiki/X.Org_Server X.org Wikipedia Article] or [http://wiki.x.org/wiki/ X.org] for details.) Basically, if you want a GUI atop Arch, you will want xorg.<br />
<br />
==Installing Xorg==<br />
<br />
Before beginning, make sure you do the following:<br />
#Make sure that [[pacman]] is configured and refreshed.<br />
#If you are running another X server you can close it now. <code>ctrl+alt+backspace</code><br />
#Make a note about third-party drivers (e.g., nVidia or ATI drivers). <br />
<br />
First let us install the complete 'xorg' group:<br />
<br />
# pacman -S xorg<br />
<br />
The default 'vesa' driver is merely a fallback (not accelerated and doesn't support many resolutions), so you will need a proper video driver too. You can type this command to list all the video drivers available:<br />
<br />
# pacman -Ss xf86-video<br />
<br />
Look for the appropriate driver for your card and install it with pacman -S. To check your card, if hwd is installed, run 'hwd -s', or run 'lspci' (look for 'VGA compatible controller'). <br />
<br />
If Xorg installed OK, it's time to make <code>xorg.conf</code><br />
<br />
==Configuring xorg==<br />
<br />
Before you can run xorg, you need to configure it so that it knows about your graphics card, monitor, mouse and keyboard. There are several methods of automating the process:<br />
<br />
===hwd===<br />
<br />
Perhaps the easiest way of getting Xorg up and running quickly is to use <tt>hwd</tt>, a tool written by users in the Arch Linux community. It's basically a hardware-detection tool that has multiple uses, one of which is setting up an X server. Fortunately, hwd is much more streamlined than <code>xorgconf</code> and doesn't require any input at all.<br />
<br />
First, install the <tt>hwd</tt> package:<br />
# pacman -S hwd<br />
<br />
Now simply run the following command as root to generate a default <code>xorg.conf</code> file:<br />
# hwd -xa<br />
<br />
This will overwrite any existing /etc/X11/xorg.conf file with a practical set of defaults, based on what <tt>hwd</tt> detected for your hardware.<br />
<br />
Alternatively, you can generate a sample Xorg config (/etc/X11/xorg.conf.hwd) without overwriting your existing settings. To do so, run <tt>hwd</tt> with the '''-x''' flag instead:<br />
# hwd -x<br />
<br />
Sample result:<br />
/etc/X11/xorg.conf.ati<br />
/etc/X11/xorg.conf.vesa<br />
<br />
Your sample file(s) ready, rename 'xorg.conf'.<br />
If unsure first try 'vesa' (default).<br />
<br />
To use the sample config(s), you must manually rename it. Sample:<br />
# mv /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf<br />
<br />
AD: In my experience hwd creates XF86Config-4 file and if there is not xorg.conf present Xorg uses it automatically.<br />
<br />
===xorgconfig===<br />
<br />
To start up <tt>xorgconfig</tt>:<br />
<br />
# xorgconfig<br />
<br />
or<br />
<br />
# xorgcfg -textmode<br />
<br />
These will generate a new <tt>xorg.conf</tt>.<br />
<br />
Answer the questions, and the program will make the file for you.<br />
This program is not really good but it's a start, and you can fill in special stuff manually afterwards.<br />
<br />
===Xorg -configure===<br />
You can also use<br />
# Xorg -configure<br />
or<br />
# X -configure<br />
<br />
===nvidia-xconfig===<br />
nVidia users can also use<br />
# nvidia-xconfig<br />
when they have official nvidia drivers [[NVIDIA|installed]].<br />
<br />
Comment the line<br />
<br />
Load "type1"<br />
<br />
in the Module section since recent versions of xorg-server does not include the type1 font module (completely replaced by freetype).<br />
<br />
==Editing xorg.conf==<br />
<br />
You may wish to edit the config after it's been generated. To open in your favourite text-editor, such as Vim (you need root privileges):<br />
<br />
# vim /etc/X11/xorg.conf<br />
<br />
or use Xorg Configuration toolkit:<br />
<br />
# xorgcfg -textmode<br />
<br />
If you want to set up mouse wheel support, see [[Get All Mouse Buttons Working]].<br />
<br />
===Monitor Settings===<br />
<br />
Depending on your hardware, Xorg may fail to detect your monitor capabilities correctly, or you may simply wish to use a lower resolution than your monitor is capable of. You might want to look up the following values in your monitor's manual before setting them.<br />
The following settings are specified in the Monitor section:<br />
<br />
====Horizontal Sync====<br />
<br />
HorizSync 28-64<br />
<br />
====Refresh Rate====<br />
<br />
VertRefresh 60<br />
<br />
The following are specified in the Screen section:<br />
<br />
====Colour Depth====<br />
<br />
Depth 24<br />
<br />
====Resolution====<br />
<br />
Modes "1280x1024" "1024x768" "800x600"<br />
<br />
====Multi-monitor setups====<br />
<br />
The easiest way to achieve a working multi-monitor setup is using xrandr after X starts. First, run (from any account):<br />
<br />
xrandr -q<br />
<br />
This will list all your available video outputs, with some information about them. Assume your output names are VGA-0, DVI-0 and S-video. Then, to merge screens connected to DVI-0 and VGA-0 outputs, you just need to run:<br />
<br />
xrandr --output DVI-0 --right-of VGA-0<br />
<br />
If this command works for you, just add it to your .xinitrc file.<br />
<br />
=== Keyboard Settings ===<br />
<br />
Xorg may fail to detect your keyboard correctly. This might give problems with your keyboard layout or keyboard model not being set correctly.<br />
<br />
To see a full list of keyboard models, layouts, variants and options, open.<br />
<br />
<br />
/usr/share/X11/xkb/rules/xorg.lst<br />
<br />
==== Keyboard Layout ====<br />
<br />
To change the keyboard layout, use the XkbLayout option in the keyboard InputDevice section. For example, if you have a keyboard with English layout:<br />
<br />
Option "XkbLayout" "gb"<br />
<br />
To be able to easily switch keyboard layouts, for example between a US and a Swedish layout use this instead:<br />
<br />
Option "XkbLayout" "us, se"<br />
Option "XkbOptions" "grp:caps_toggle"<br />
<br />
This makes your Caps Lock key switch between the different layouts. This is mainly useful if you run don't run a Desktop Environment which takes care of keyboard layouts for you.<br />
<br />
==== Keyboard Model ====<br />
<br />
To change the keyboard model, use the XkbModel option in the keyboard <br />
InputDevice section. For example, if you have a Microsoft Wireless Multimedia Keyboard:<br />
<br />
Option "XkbModel" "microsoftmult"<br />
<br />
==== Problem with your Apple Keyboard? ====<br />
More information can be found [[Apple Keyboard|here]].<br />
<br />
===Display Size/DPI===<br />
<br />
In order to get correct sizing for fonts the display size must be set for your desired DPI. In the section <code>"Monitor"</code> put in your display size in mm:<br />
<br />
Section "Monitor"<br />
...<br />
DisplaySize 336 252 # 96 DPI @ 1280x960<br />
...<br />
EndSection<br />
<br />
<br />
The formula for calculating the DisplaySize values is Width x 25.4 / DPI and Height x 25.4 / DPI. If you're running Xorg with a resolution of 1024x768 and want a DPI of 96, use 1024 x 25.4 / 96 and 768 x 25.4 / 96. Round numbers down.<br />
<br />
# calc: (x|y)pixels * 25.4 / dpi<br />
# DisplaySize 168 126 # 96 DPI @ 640x480<br />
# DisplaySize 210 157 # 96 DPI @ 800x600<br />
# DisplaySize 269 201 # 96 DPI @ 1024x768<br />
# DisplaySize 302 227 # 96 DPI @ 1152x864<br />
# DisplaySize 336 252 # 96 DPI @ 1280x960<br />
# DisplaySize 336 210 # 96 DPI @ 1280x800 (non 4:3 aspect)<br />
# DisplaySize 339 271 # 96 DPI @ 1280x1024 (non 4:3 aspect)<br />
# DisplaySize 370 277 # 96 DPI @ 1400x1050<br />
# DisplaySize 420 315 # 96 DPI @ 1600x1200<br />
# DisplaySize 444 277 # 96 DPI @ 1680x1050<br />
# DisplaySize 506 315 # 96 DPI @ 1920x1200 (non 4:3 aspect)<br />
<br />
<br />
For nVidia drivers you may have to disable automatic detection of DPI to set it manually. There is also an easier way to set DPI on these cards. Either or both of the following lines can be set in the device section for your nVidia card.<br />
<br />
Option "UseEdidDpi" "false"<br />
Option "DPI" "96 x 96"<br />
<br />
<br />
Results can be checked by issuing the following command, which should return 96x96 dots per inch if you set DPI @ 96.<br />
<br />
$ xdpyinfo | grep -B1 dot<br />
<br />
===Proprietary Drivers===<br />
<br />
If you wish to use third-party graphics drivers, do check first that the X server runs OK first. Xorg should run smoothly without official drivers, which are typically needed only for advanced features such as 3D-accelerated rendering for games, dual-screen setups, and TV-out. Refer to the [[NVIDIA]] and [[ATI]] wikis for help with driver installation.<br />
<br />
===Fonts===<br />
<br />
There some tips for setting up fonts in [[Xorg Font Configuration]].<br />
<br />
=== Sample Xorg.conf Files ===<br />
Anyone who has an Xorg.conf file written up that works, go ahead and post a link to it here for others to look at! Please don't inline the entire conf file; upload it somewhere else and link. Thanks!<br />
* Shadowhand (nv and nvidia drivers): http://people.os-zen.net/shadowhand/configs/xorg.conf<br />
* Cerebral (fglrx and radeon drivers): http://www.student.cs.uwaterloo.ca/~tjwillar/configs/xorg.conf<br />
* raskolnikov (via unichrome and synaptics drivers): http://athanatos.free.fr/Arch/xorg.conf<br />
* Leigh (Three independent screens - Three nvidia cards): http://files.myopera.com/allisonleigh/linuxbackup/xorg.conf<br />
* Mr.Elendig (nvidia with composite and "stuff") http://arch.har-ikkje.net/stuff/xorg.conf<br />
<br />
==Running Xorg==<br />
<br />
This is done simply by typing:<br />
<br />
$ startx<br />
<br />
The default X environment is rather bare, and you will typically seek to install window managers or desktop environments to supplement X. <br />
<br />
To test the config file you have created:<br />
<br />
$ X -config ''<your config file>''<br />
<br />
If a problem occurs, then view the log at <tt>/var/log/Xorg.0.log</tt>. Be on the lookout for any lines beginning with ''(EE)'' which represent errors, and also ''(WW)'' which are warnings that could indicate other issues.<br />
<br />
'''*Please Note*'''<br />
Using startx requires a ''~/.xinitrc'' file, so that X knows what to run when it starts. Your best option is to copy ''/etc/skel/.xinitrc'' to your home directory and edit it. Comment out the 'exec' lines you don't want, and add or uncomment one for the WM you want to use. If you are using GNOME it is best to start GNOME through gdm to avoid HAL permission problems.<br />
<br />
In addition, you can also install twm and xterm (via pacman), which will be used as a fallback if ~/.xinitrc does not exist (as stated in /etc/X11/xinit/xinitrc).<br />
<br />
==X startup (/usr/bin/startx) tweaking==<br />
For X's option reference see<br />
<br />
$ man Xserver<br />
<br />
The following options have to be appended to the variable "defaultserverargs" in the /usr/bin/startx file.<br />
<br />
prevent X from listening on tcp:<br />
-nolisten tcp<br />
getting rid of the gray weave pattern while X is starting and let X set a black root window:<br><br />
-br<br />
enable deferred glyph loading for 16 bit fonts:<br />
-deferglyphs 16<br />
<br />
Note: If you start X with kdm, the startx script does not seem to be executed. X options must be appended to the variable "ServerCmd" in the /opt/kde/share/config/kdm/kdmrc file. By default kdm options are<br />
<br />
ServerCmd=/usr/bin/X -br -nolisten tcp<br />
<br />
== Changes with modular Xorg ==<br />
<br />
=== Most Common Packages ===<br />
<br />
Make sure you install drivers for mouse, keyboard and videocard. For mouse and keyboard, '''xf86-input-keyboard''' and '''xf86-input-mouse''' should get installed. Other '''xf86-input-*''' packages are available for different input devices.<br />
<br />
For the videocard, find out which driver is required and install the right '''xf86-video-*''' package. ATI and Nvidia users may wish to install the non-free drivers for their hardware instead ([[NVIDIA]], [[ATI]]).<br />
<br />
To install all drivers in one run, the '''xorg-input-drivers''' and '''xorg-video-drivers''' are available.<br />
<br />
=== OpenGL 3D Acceleration ===<br />
<br />
X.Org 7.0 on Arch Linux uses a modular design for mesa, the OpenGL rendering system. Several implementations are available:<br />
* libgl-dri: Open-source DRI OpenGL implementation. Falls back to software rendering when no DRI driver is installed<br />
* some other driver providing libGL (ati, nvidia)<br />
<br />
When pacman installs an application that needs mesa, it will install one of these packages. To be sure about the right library for your setup, install the library you want prior to installing Xorg. Installing the right package afterwards is also possible, though this gives some dependency errors sometimes, which can be ignored with the -d switch.<br />
<br />
=== Glxgears and Glxinfo ===<br />
<br />
These apps are included in the mesa package.<br />
<br />
=== Changed paths (and configuration) ===<br />
<br />
'''See this entry for additional upgrade info:''' http://www.archlinux.org/blog/2006/01/02/how-to-upgrade-xorg/<br />
<br />
Modular X.Org 7 installs everything in <code>/usr</code>, where the older versions installed in <code>/usr/X11R6</code>. Several configuration files need updates:<br />
* ''/etc/X11/xorg.conf''<br />
** Fontpaths live in /usr/share/fonts now<br />
** RGB database is in /usr/share/X11/rgb<br />
** module path is /usr/lib/xorg/modules<br />
<br />
Also note that some X configuration tools might stop working. The easiest way to configure X.org is by installing the correct driver packages and running ''Xorg -configure'', which results in a <code>/root/xorg.conf.new</code> which only needs modification in the resolutions, mouse configuration and keyboard layouts.<br />
<br />
Some packages have hard-coded references to <code>/usr/X11R6</code>. These packages need fixing. In the meantime, look what packages install files in <code>/usr/X11R6</code>, uninstall those, make a symlink from <code>/usr</code> to <code>/usr/X11R6</code> and reinstall the affected packages. Another option is to move the contents of <code>/usr/X11R6</code> to <code>/usr</code> and make the symlink.<br />
<br />
Or you can just add a second module path via <code/>ModulePath "/usr/X11R6/lib/modules"</code> <br />
This works e.g. for Nvidia 76.76<br />
<br />
== Desktop Effects ==<br />
To setup and enable fancy desktop effects, see the [[Compiz Fusion]] article.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Xorg "can't see" the resolutions your monitor supports ===<br />
I found myself in a situation where if i used one of my monitors(a gnr ts902) Xorg would only present me with the options 640x480 and 320x480 which ofcourse was less than i desired. After a lot of research i found through read-edid(in aur) that part of my EDID was corrupt and so i could only read my HorizSync with read-edid. This fortunately was enough and after adding the right Horisync line to the xorg.conf's Monitor section(didn't have to add VertRefresh...) I restarted X to see the right resolution :)<br />
<br />
note: I'm not sure:<br />
<br />
Option "ModeValidation" "NoEdidModes"<br />
Option "UseEdid" "false"<br />
<br />
in Device section in xorg config are needed aswell, to lazy now to test without them :)<br />
<br />
=== Keyboard Problems ===<br />
<br />
Auto-generated xorg.conf files may cause you problems. If you cannot get to tty1 by holding CTRL-ALT and pressing F1 or cannot get the £ sign for gb people, check to see if the following entries are in your /etc/X11/xorg.conf:<br />
<br />
Option "XkbLayout" "uk" #"uk" is not a real layout, look in /usr/share/X11/xkb/symbols/ for a list of real ones.<br />
Option "XkbRules" "xfree86" #this should be "xorg"<br />
Option "XkbVariant" "nodeadkeys" #This line is also known to cause the problems described, try commenting it out.<br />
<br />
To switch between layouts with Alt+Shift:<br />
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"<br />
<br />
===A Quick Fix for the Bitstream-Vera Conflict===<br />
If you see a message that ttf-bitstream-vera conflicts with xorg:<br />
#Exit the pacman session by answering no.<br />
#Run <code>pacman -Rd xorg</code><br />
#Run <code>pacman -Syu</code><br />
#Run <code>pacman -S xorg</code><br />
#Update your paths in /etc/X11/xorg.conf<br />
<br />
===A Quick Fix for file conflicts in /usr/include===<br />
If you see messages about file conflicts in /usr/include/X11 and /usr/include/GL:<br />
#Run <code>rm /usr/include/{GL,X11}</code><br />
#Run <code>pacman -Su</code><br />
The symlinked directories removed by this operation are replaced by real directories in the new xorg package, causing these file conflicts to appear.<br />
<br />
=== libgl-dri conflicts ===<br />
<br />
If you get a message similar to:<br />
:: libgl-dri conflicts with nvidia-legacy. Remove nvidia-legacy? [Y/n]<br />
this is due to the multiple OpenGL implementations explained in the OpenGL section above - pacman is attempting to install libgl-dri to satisfy this dependency, but also trying to upgrade your existing video driver, and they conflict. To solve, try:<br />
<br />
* Updating your video driver before a full system update: <br />
# pacman -S nvidia-legacy<br />
# pacman -Syu<br />
<br />
Or, if that doesn't work,<br />
* Remove your existing video driver, do the update, then reinstall your driver:<br />
# pacman -Rd nvidia-legacy<br />
# pacman -Syu<br />
# pacman -S nvidia-legacy<br />
:: nvidia-legacy conflicts with libgl-dri. Remove libgl-dri? [Y/n] '''Y'''<br />
<br />
=== Mouse wheel not working ===<br />
The "Auto" protocol doesn't seem to work properly in Xorg 7 any more. In the InputDevice section for your mouse, change:<br />
Option "Protocol" "auto"<br />
to<br />
Option "Protocol" "IMPS/2"<br />
or<br />
Option "Protocol" "ExplorerPS/2"<br />
<br />
=== Extra mouse buttons not working ===<br />
USB Mice users should read [[Get_All_Mouse_Buttons_Working]].<br />
<br />
Intellimouse (ExplorerPS/2) users might find their scroll and side buttons aren't behaving as they used to. Previously xorg.conf needed:<br />
Option "Buttons" "7"<br />
Option "ZAxisMapping" "6 7"<br />
and users also had to run xmodmap to get the side buttons working with a command like:<br />
xmodmap -e "pointer = 1 2 3 6 7 4 5"<br />
Now xmodmap is no longer required. Instead, make xorg.conf look like this:<br />
Option "Buttons" "5"<br />
Option "ZAxisMapping" "4 5"<br />
Option "ButtonMapping" "1 2 3 6 7"<br />
and the side buttons on a 7-button Intellimouse will work like they used to, without needing to run xmodmap.<br />
<br />
===Keyboard problems===<br />
Some keyboard layouts have changed. I wondered why:<br />
* I wasn't able to Ctrl+Alt+Fx to switch to console<br />
* I wasn't able to use layouts<br />
The problem was that the ''sk_qwerty'' layout doesn't exist anymore. I had to replace<br />
Option "XkbLayout" "us,sk_qwerty"<br />
with<br />
Option "XkbLayout" "us,sk"<br />
Option "XkbVariant" ",qwerty"<br />
<br />
Another thing to look for if your keyboard isn't properly functioning is the XkbRules option:<br><br />
You'll need to change<br />
Option "XkbRules" "xfree86"<br />
to<br />
Option "XkbRules" "xorg"<br />
<br />
==== AltGR (Compose Key) not working properly ====<br />
<br />
If, after the update, you can't use the AltGr key as expected any more, try adding this to your keyboard section:<br />
Option "XkbOptions" "compose:ralt"<br />
<br />
This is not the correct way to activate the AltGr Key on a German keyboard (for example, to use the '|' and '@' keys on German keyboards).<br />
Just choose a valid keyboard variant for it to work again, for example (the example is for a German keyboard):<br />
Option "XkbLayout" "de"<br />
Option "XkbVariant" "nodeadkeys"<br />
<br />
The solutions above don't work on an Italian keyboard. To activate the AltGr key on an Italian keyboard make sure you have the following lines set up properly:<br />
Driver "kbd"<br />
Option "XkbRules" "xorg"<br />
Option "XkbVariant" ""<br />
<br />
This might still not be enough for a swedish keyboard. Try the above, but with lv3 instead of compose. (Thank you wyvern!)<br />
That is:<br />
Option "XkbLayout" "se"<br />
Option "XkbVariant" "nodeadkeys"<br />
Option "XkbOptions" "lv3:ralt_switch"<br />
<br />
==== Can't set qwerty layouts using the setxkbmap command ====<br />
<br />
After the update, there aren't qwerty layouts as for example sk_qwerty. If you want to switch your present keyboard layout to any qwerty keyboard layout use this command:<br />
$ setxkbmap NAME_OF_THE_LAYOUT qwerty<br />
e.g.: for sk_qwerty use:<br />
$ setxkbmap sk qwerty<br />
<br />
After the update, trying the above command I had this message "Error loading new keyboard description".<br />
I find out that the xserver doesn't have the rights to write, execute, read in the directory /var/tmp<br />
So give the permissions to that directory. Restart the xserver and you will have your deadkeys back!<br />
Don't believe? Try out the code e.g.: it layout<br />
$ setxkbmap -layout it<br />
<br />
==== Setup French Canadian (old ca_enhanced) layout ====<br />
<br />
With Xorg7, "ca_enhanced" is no more. You have to do a little trick to get the same layout that you are used to:<br />
Switch the old:<br />
Option "XkbLayout" "ca_enhanced"<br />
To:<br />
Option "XkbLayout" "ca"<br />
Option "XkbVariant" "fr"<br />
<br />
It will be similar with other layout, I presume. You can refer to Gentoo HowTo there: http://www.gentoo.org/proj/en/desktop/x/x11/modular-x-howto.xml<br />
<br />
<br />
<br />
=== Missing libraries ===<br />
* '''Help! I get an error message running my favourite app saying "libXsomething" doesn't exist!'''<br><br />
In most cases, all you need to do is take the name of the library (eg libXau.so.1), convert it all to lowercase, remove the extension, and pacman for it:<br />
# pacman -S libxau<br />
<br />
This will install the library you're missing, and all will be well again!<br />
<br />
=== Some packages fail to build and complain about missing X11 includes ===<br />
<br />
Just reinstall the packages xproto and libx11, even if they are already installed.<br />
<br />
=== Unable to load font '(null)' ===<br />
* '''Some programs don't work and say unable to load font `(null)'.'''<br><br />
These packages would like some extra fonts. Some programs only work with bitmap fonts.<br />
Two major packages with bitmap fonts are available, xorg-fonts-75dpi and xorg-fonts-100dpi. You don't need both; one should be enough. To find out which one would be better in your case, try this:<br />
<br />
$ xdpyinfo | grep resolution<br />
<br />
and grab what is closer to you (75 or 100 instead of XX)<br />
<br />
# pacman -S xorg-fonts-XXdpi<br />
<br />
=== KDE Taskbar/Desktop Icons Broken ===<br />
* '''KDE taskbar doesn't work and the desktop icons disappear'''<br><br />
Install the packages libxcomposite and libxss. It will be fine.<br />
<br />
# pacman -S libxcomposite libxss<br />
<br />
=== Updating from testing version to extra (missing files) ===<br />
<br />
If you've updated from Xorg 7 in testing to Xorg 7 in extra and are finding that many files seem to be missing (including startx, /usr/share/X11/rgb.txt, and others), you may have lost many files due to the xorg-clients package splitting from a single package into many smaller sub packages. <br><br />
<br />
You need to reinstall all the packages that are dependencies of xorg-clients:<br />
# pacman -S xorg-apps xorg-font-utils xorg-res-utils xorg-server-utils \<br />
xorg-twm xorg-utils xorg-xauth xorg-xdm xorg-xfs xorg-xfwp \<br />
xorg-xinit xorg-xkb-utils xorg-xsm<br />
<br />
This should fix the problem.<br />
<br />
=== Problem with MIME types in various desktop environments ===<br />
<br />
If you noticed icons missing and can't click-open files in desktop environments, add the following lines to /etc/profile or your preferred init script and reboot.<br />
XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share<br />
export XDG_DATA_DIRS<br />
<br />
=== DRI stops working with Matrox cards ===<br />
<br />
If you use a Matrox card and DRI stops working after upgrading to xorg7, try adding the line<br />
Option "OldDmaInit" "On"<br />
to the Device section that references the video card in xorg.conf.<br />
<br />
=== Cannot start any clients under Xephyr ===<br />
<br />
The client connections are rejected by the X server's security mechanism, you can find a complete explanation and solution in [http://wiki.debian.org/XStrikeForce/FAQ#howtoxnest].<br />
<br />
=== Cannot start X clients as root using "su" ===<br />
<br />
If you're getting "Client is not authorized to connect to server", try adding the line <br />
<br />
session optional pam_xauth.so<br />
<br />
to the file /etc/pam.d/su. <br />
pam_xauth will properly set environment variables and handle xauth keys.<br />
<br />
== Links ==<br />
See also:<br />
<br />
* [[Enabling a DM]]<br />
* [[Start X at boot]]<br />
* [[Xorg Font Configuration]]<br />
* Proprietary Video Drivers<br />
** [[ATI]]<br />
** [[NVIDIA]]<br />
* [[Desktop Environment]]<br />
** [[KDE]]<br />
** [[GNOME]]<br />
** [[Xfce]]<br />
** [[Enlightenment]]<br />
** [[Fluxbox]]<br />
** [[Openbox]]<br />
== External Links ==<br />
<br />
* [http://en.wikipedia.org/wiki/X.Org_Server X.org Wikipedia Article]<br />
* [http://wiki.x.org/wiki/ X.org]<br />
* [http://archux.com/page/installing-and-setting-xorg Installing and setting up Xorg]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Compiz_Fusion&diff=48029
Compiz Fusion
2008-08-22T14:47:05Z
<p>Xiol: /* Troubleshooting */</p>
<hr />
<div>[[Category:Eye candy (English)]]<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|:Compiz Fusion}}<br />
{{i18n_entry|Ελληνικά|:Compiz Fusion (Ελληνικά)}}<br />
{{i18n_entry|Português de Brasil|:Compiz Fusion (Português)}}<br />
{{i18n_entry|简体中文|Compiz Fusion(简体中文)}}<br />
{{i18n_links_end}}<br />
Compiz Fusion is a project that aims to add more functionality to Compiz by extending it with more plugins, tools and libraries.<br />
= Installation =<br />
Basic installation can be done using community as repo ( see below ).<br />
<br />
The second way is using nesl's git packages. See [[Compiz_Fusion_Git]] for more information.<br />
<br />
<br />
== Install from Community ==<br />
<br />
Make sure the Community repository is enabled and run this command as root to install everything:<br />
pacman -S compiz-fusion<br />
Run this if you only want gtk-based packages installed:<br />
pacman -S compiz-fusion-gtk<br />
or this if you only want kde-based packages installed:<br />
pacman -S compiz-fusion-kde <br />
<br />
If you want select personally the packages, here is a list:<br />
=== List of packages by group ===<br />
<br />
Entire compiz-fusion group:<br />
ccsm, compiz-core, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-gconf, compizconfig-backend-kconfig, emerald, emerald-themes, fusion-icon<br />
<br />
KDE compiz-fusion group:<br />
ccsm, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-kconfig, emerald, emerald-themes, fusion-icon<br />
<br />
GTK compiz-fusion group:<br />
ccsm, compiz-fusion-plugins-extra, compiz-fusion-plugins-main, compizconfig-backend-gconf, emerald, emerald-themes, fusion-icon<br />
<br />
(more TODO?)<br />
<br />
=== Fusion effects ===<br />
<br />
You need to install<br />
<br />
* compiz-fusion-plugins-main<br />
* compiz-fusion-plugins-extra<br />
<br />
to get the full panel of fusion-compiz effects, like cube reflexion, expo, ...<br />
<br />
pacman -S compiz-fusion-plugins-main compiz-fusion-plugins-extra<br />
<br />
= Starting Compiz Fusion =<br />
<br />
== Manual (with "fusion-icon") ==<br />
<br />
Launch the Compiz Fusion tray icon:<br />
<br />
fusion-icon<br />
<br />
note: if it fails, you may try it with dbus-launch<br />
<br />
dbus-launch "fusion-icon"<br />
<br />
Right click on the icon in the panel and go to 'select window manager'. Choose "Compiz" if it isn't selected already, and you should be set.<br />
<br />
If this fails you can start compiz-fusion by using the following commands<br />
<br />
fusion-icon<br />
emerald --replace<br />
compiz-manager<br />
<br />
== KDE ==<br />
<br />
=== Manual (without "fusion-icon") ===<br />
<br />
Launch Compiz with the following command once installation is done :<br />
<br />
compiz --replace ccp &<br />
<br />
Start new settings manager:<br />
ccsm &<br />
<br />
Select all the plugins you like including “decoration” plugin, Add<br />
kde-window-decorator --replace<br />
as command string under ‘decoration’ plugin.<br />
<br />
<!-- We need some more consistency with the autostart guides. The KDE version suggests starting compiz directly while the GNOME version tells you to use fusion-icon. --><br />
<br />
=== Autostart (with "fusion-icon") ===<br />
<br />
You should add a symbolic link to the fusion-icon executable in your KDE Autostart directory (generally located on ~/.kde/Autostart):<br />
<br />
ln -s /usr/bin/fusion-icon ~/.kde/Autostart/fusion-icon<br />
<br />
Next time you start KDE it will load fusion-icon automatically.<br />
<br />
=== Autostart (without "fusion-icon") ===<br />
<br />
==== Method 1 - Autostart Link ====<br />
<br />
* You can ensure that Compiz Fusion will always start at login by appending a desktop entry to the KDE autostart directory. Create the file ''~/.kde/Autostart/compiz.desktop'' with the following contents:<br />
<br />
[Desktop Entry]<br />
Encoding=UTF-8<br />
Exec=compiz --replace ccp<br />
StartupNotify=false<br />
Terminal=false<br />
Type=Application<br />
X-KDE-autostart-after=kdesktop<br />
<br />
* If you want to use the optional <tt>fusion-icon</tt> application, launch ''fusion-icon''. If you log out normally with ''fusion-icon'' running, KDE should restore your session and launch ''fusion-icon'' the next time you log in if this setting is enabled. If it doesn't appear to be working, ensure you have the following line in ''~/.kde/share/config/ksmserverrc'':<br />
<br />
loginMode=restorePreviousLogout<br />
<br />
==== Method 2 - export KDEWM (avoid KWIN) ====<br />
<br />
Using this method will load Compiz-Fusion as the default window manager instead of KWIN from the start. This method is faster then loading Compiz-Fusion in the ~/.kde/Autostart/ (method 1) because it avoids loading KDE's default WM (kwin) first. This way also stops that annoying black screen flicker you might see using other methods (when kwin switches to Compiz on KDE's desktop loading screens).<br />
<br />
As root you must create a short script by doing the following in your terminal. This will allow you to load compiz with the switches because doing it directly via export KDEWM="compiz --replace ccp --sm-disable" doesn't seem to work.<br />
<br />
echo "compiz --replace ccp --sm-disable &" > /usr/bin/compiz-fusion<br />
<br />
If this doesn't work, install the "fusion-icon" package and then use this line instead:<br />
<br />
echo "fusion-icon &" > /usr/bin/compiz-fusion<br />
<br />
Ensure that "/usr/bin/compiz-fusion" has executable (+x) permissions.<br />
<br />
Edit your ~/.bashrc and add the following so KDE will load compiz (via the script you just created) instead of loading kwin.<br />
<br />
export KDEWM="compiz-fusion"<br />
<br />
NOTE: If you use /usr/local/bin directory it may not work. In that case you should export the script with the path, i.e. export KDEWM="/usr/local/bin/compiz-fusion".<br />
<br />
NOTE: The elegant way for above mentioned method is to include<br />
<br />
KDEWM="compiz-fusion"<br />
<br />
line in the ~/.kde/env/compiz.sh or /opt/kde/env/compiz.sh (system wide).<br />
<br />
== GNOME ==<br />
<br />
=== Autostart (without "compiz-fusion") ===<br />
<br />
This is a way that works if you use GDM (and I'd assume KDM too).<br />
<br />
Make a file called /usr/local/bin/compiz-start-boot with the contents:<br />
<br />
#!/bin/bash<br />
export WINDOW_MANAGER="compiz ccp"<br />
exec gnome-session<br />
<br />
and make executable (chmod +x). Next create the file /etc/X11/sessions/Compiz.desktop containing the following:<br />
<br />
[Desktop Entry]<br />
Version=1.0<br />
Encoding=UTF-8<br />
Name=Compiz on GNOME<br />
Exec=/usr/local/bin/compiz-start-boot<br />
Icon=<br />
Type=Application<br />
<br />
Select Compiz on Gnome as your session and you're good to go.<br />
<br />
=== Autostart (with "compiz-fusion") ===<br />
<br />
To start Compiz fusion automatically when starting a session add<br />
"Compiz Fusion" (Name:)<br />
and <br />
"fusion-icon" (Command:)<br />
to the applications that start with your session. You can do this by going to:<br />
<br />
[System] -> [Preferences] -> [Sessions] -> [Startup Programs]<br />
Adding "Compiz Fusion" to the list might be a good idea too so you can switch back to Metacity if need be.<br />
<br />
== Xfce ==<br />
<br />
=== Xfce autostart (without "compiz-fusion") ===<br />
<br />
TO DO<br />
<br />
=== Xfce autostart (with "compiz-fusion") ===<br />
Method 1:<br />
<br />
Start "Autostarted Applications"<br />
<br />
Add<br />
(Name:) Compiz Fusion<br />
and <br />
(Command:) fusion-icon<br />
<br />
<br />
Method 2: (requires root access)<br />
<br />
Find the following file<br />
/etc/xdg/xfce4-session/xfce4-session.rc<br />
<br />
change line 39 from<br />
Client0_Command=xfwm4<br />
<br />
to<br />
<br />
Client0_Command=fusion-icon<br />
<br />
== As a standalone WM ==<br />
<br />
Write a simple script called, say, start-fusion.sh:<br />
#!/bin/sh<br />
# add more apps here if necessary<br />
xfce4-panel&<br />
fusion-icon<br />
Make it executable and add it to ~/.xinitrc, like this:<br />
exec start-fusion.sh<br />
Feel free to use a different panel, tray, or start a whole bunch on applications with your session.<br />
See [http://bbs.archlinux.org/viewtopic.php?id=51282 forum thread] for more info.<br />
<br />
= Troubleshooting =<br />
Make sure that the environmental variable $XLIB_SKIP_ARGB_VISUALS is not set<br />
<br />
Also see [[Compiz_Troubleshooting]]<br />
<br />
= Additional Resources =<br />
*[[AIGLX]]<br />
*[[Xgl]]<br />
*[[Composite]] -- A Xorg extension required by composite managers<br />
*[[Compiz Fusion]] -- A composite and window manager offering a rich 3D accelerated desktop environment<br />
*[[Compiz]] -- The original composite/window manager from Novell<br />
*[[Xcompmgr]] -- A simple composite manager capable of drop shadows and primitive transparency<br />
*[[Beryl]] -- <strike>A composite/window manager forked from Compiz</strike> (since merged to become [[Compiz Fusion]])<br />
*Wikipedia: [http://en.wikipedia.org/wiki/Compositing_window_manager Compositing Window Managers]<br />
*How to set up Compiz Fusion: [http://forlong.blogage.de/article/2007/8/29/How-to-set-up-Compiz-Fusion Forlong's Blog]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Compiz_Troubleshooting&diff=48026
Compiz Troubleshooting
2008-08-22T13:17:56Z
<p>Xiol: Added section for troubleshooting 945GM cards</p>
<hr />
<div>{{i18n_links_start}}<br />
{{i18n_entry|English|Compiz Troubleshooting}}<br />
{{i18n_entry|简体中文|Compiz疑难排解}}<br />
{{i18n_links_end}}<br />
<br />
= Compiz ( or Compiz-Fusion ) Troubleshooting =<br />
<br />
== KDE fallback ==<br />
<br />
If you are using KDE and something is not right, for example you don’t see borders for your window, you can switch back to kwin with this command:<br />
<br />
kwin --replace<br />
<br />
== GNOME fallback ==<br />
<br />
If you are using GNOME and something is not right, for example you don’t see borders for your window, you can switch back to metacity with this command:<br />
<br />
metacity --replace<br />
<br />
== Missing GLX_EXT_texture_from_pixmaps when trying to run Compiz Fusion on ATI ==<br />
<br />
=== First solution ===<br />
http://bbs.archlinux.org/viewtopic.php?id=50073<br />
If you run into the following error when trying to run Compiz Fusion on an ATI card:<br />
<br />
Missing GLX_EXT_texture_from_pixmap<br />
<br />
This is because Compiz Fusion's binary was compiled against Mesa's OpenGL library rather than ATI's OpenGL library (which is what you are using). Re-install libgl-dri (yes you will have to uninstall fglrx temporarily) to get Mesa's OpenGL library. <br />
<br />
copy the library into a directory to keep it because ATI's drivers will over write it. <br />
<br />
mkdir /lib/mesa<br />
cp /usr/lib/libGL.so.1.2 /lib/mesa<br />
<br />
Once you have it copied, you can reinstall your fglrx drivers (It should have been removed when you installed libgl-dri). Now you can start Compiz Fusion using the following example syntax: <br />
<br />
LD_PRELOAD=/lib/mesa/libGL.so.1.2 compiz --replace &<br />
<br />
=== Second solution ===<br />
<br />
An other problem could arise with GLX_EXT_texture_from_pixmap, it is possible that the card could only render it indirectly, then you have to pass the option to your libgl like that :<br />
<br />
LIBGL_ALWAYS_INDIRECT=1 compiz --replace ccp &<br />
<br />
(Workaround tested on the following card : ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 02))<br />
<br />
<br />
== Missing GLX_EXT_texture_from_pixmaps when trying to run Compiz Fusion on Intel chip ==<br />
First off, check that you're using the intel driver as opposed to i810. Then, run the following command to run compiz (must use this every time.).<br />
LIBGL_ALWAYS_INDIRECT=true compiz --replace --sm-disable ccp &<br />
If you then don't have borders, run<br />
emerald --replace<br />
As at 17-Oct-07 the [http://wiki.compiz-fusion.org/Troubleshooting Compiz-Fusion Wiki] states: <i>"If you are using an Intel GMA card with AIGLX, you will need to start Compiz Fusion with LIBGL_ALWAYS_INDIRECT=1 appended.</i>"<br />
<br />
== Fusion-Icon showing up as red "X" in status bar, icon missing in menus ==<br />
<br />
The GTK icon cache needs to be refreshed (hopefully this will be added in the .install file of the package). Run the following command:<br />
# gtk-update-icon-cache -f /usr/share/icons/hicolor<br />
if this fails try installing the package hicolor-icon-theme:<br />
# pacman -S hicolor-icon-theme<br />
Fixed with new community package.<br />
<br />
== Compiz starts, but no effects are visible ==<br />
<br />
If you have installed compiz-decorator-gtk:<br />
Check if GConf schema was correctly installed: <br />
gconftool-2 -R /apps/compiz/plugins | grep plugins<br />
make sure that all plugins are listed (not only fade!). If not, try to install compiz schema manually (do this as normal user, not as root!!!): <br />
gconftool-2 --install-schema-file=/usr/share/gconf/schemas/compiz-decorator-gtk.schemas<br />
<br />
== Compiz starts, but gtk-window-decorator does not ==<br />
<br />
It is a configuration problem for gconf and gconfd. I solved it by removing ".gconf" dir in my home, but I'm using KDE. If you are using Gnome you should enter your ".gconf" directory and remove all compiz keys. You'll loose your Compiz settings tough!<br />
Finally exec as user:<br />
<br />
gconftool-2 --install-schema-file=/usr/share/gconf/schemas/compiz-decorator-gtk.schemas<br />
<br />
== Compiz appears to start, but there are no window borders ==<br />
<br />
When you run fusion-icon from commandline, you get output like this:<br />
<br />
* Detected Session: gnome<br />
* Searching for installed applications...<br />
* NVIDIA on Xorg detected, exporting: __GL_YIELD=NOTHING<br />
* Using the GTK Interface<br />
* Metacity is already running<br />
* Setting window manager to Compiz<br />
... executing: compiz --replace --sm-disable --ignore-desktop-hints ccp<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
compiz (core) - Warn: No GLXFBConfig for depth 32<br />
<br />
All you need to do is edit your /etc/X11/xorg.conf and find the "Depth" directive inside the "Screen" section; change all occurences of this value to 24. This occured to me with my colour depth set to 16; but also happens when it is set to 32.<br />
<br />
==Blank screen on resume from suspend-to-ram using the Nvidia binary drivers==<br />
<br />
If you receive a blank screen with a responsive cursor upon resume, try disabling sync to vblank:<br />
<br />
gconftool -s /apps/compiz/general/screen0/options/sync_to_vblank-t boolean false<br />
<br />
==fusion-icon doesn't start==<br />
If you get an output like this from the command line:<br />
[andy@andylaptop ~]$ fusion-icon<br />
* Detected Session: gnome<br />
* Searching for installed applications...<br />
Traceback (most recent call last):<br />
File "/usr/bin/fusion-icon", line 57, in <module><br />
from FusionIcon.interface import choose_interface<br />
File "/usr/lib/python2.5/site-packages/FusionIcon/interface.py", line 23, in <module><br />
import start<br />
File "/usr/lib/python2.5/site-packages/FusionIcon/start.py", line 36, in <module><br />
config.check()<br />
File "/usr/lib/python2.5/site-packages/FusionIcon/util.py", line 362, in check<br />
os.makedirs(self.config_folder)<br />
File "/usr/lib/python2.5/os.py", line 172, in makedirs<br />
mkdir(name, mode)<br />
OSError: [Errno 13] Permission denied: '/home/andy/.config/compiz'<br />
<br />
the problem is with the permission on ~/.config/compiz. You have set the owner of a folder in your area as root. To change this, run (as root)<br />
chown <username> /home/<username>/.config/compiz<br />
<br />
==Video Playback==<br />
If you can't see video playback on Compiz, change the video output to something like OpenGL. In VLC you go to Settings->Video->Output modules and tick the advanced options box.<br />
<br />
==CCSM Locale Errors==<br />
If you get locale errors when starting ccsm, make sure you have set your locale in /etc/rc.conf and in /etc/locale.gen, and then run (as root), <br />
locale-gen<br />
You might have to try a couple different locales for your language to get it to work properly.<br />
<br />
==Poor Performance on Intel cards==<br />
This works on the Intel 945GM, but has not been tested on other Intel cards. For smooth compositing effects you will need to add these lines into your <tt>Device</tt> section:<br />
<br />
Option "DRI" "True"<br />
Option "NoDDC" "True"<br />
Option "XAANoOffscreenPixmaps" "True"<br />
Option "EnablePageFlip" "True"<br />
Option "RenderAccel" "True"<br />
Option "AccelMethod" "XAA"<br />
<br />
And ensure that you have the following somewhere:<br />
<br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection</div>
Xiol
https://wiki.archlinux.org/index.php?title=Intel_GMA_945&diff=48025
Intel GMA 945
2008-08-22T13:16:02Z
<p>Xiol: Added section on xorg compositing</p>
<hr />
<div>{{merge|Intel Graphics|Talk:Intel GMA 945}}<br />
<br />
= Smooth Compositing =<br />
Xorg configuration is relatively straightforward, but to ensure you have smooth compositing effects from Compiz on the Intel 945GM, you will need to add these lines into your <tt>Device</tt> section:<br />
<br />
Option "DRI" "True"<br />
Option "NoDDC" "True"<br />
Option "XAANoOffscreenPixmaps" "True"<br />
Option "EnablePageFlip" "True"<br />
Option "RenderAccel" "True"<br />
Option "AccelMethod" "XAA"<br />
<br />
And ensure that you have the following somewhere:<br />
<br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
<br />
= Native 1400x1050 =<br />
<br />
Install the driver for i810. <br />
pacman -S xf86-video-i810<br />
<br />
Edit your [[xorg.conf]] file<br />
<br />
Section "Device"<br />
Driver "i810"<br />
<br />
Section "Screen"<br />
SubSection "Display"<br />
Depth 16<br />
Modes "1400x1050" "1280x1024" "800x600"<br />
<br />
Install the 915resolution Intel hack tool from the community repo:<br />
pacman -S 915resolution<br />
<br />
Logout of X (CTRL + ALT + Backspace). Then run:<br />
<br />
915resolution -l<br />
Select the modes that you want to overwrite, like 49 and 45 in this case. If your needs differ adjust accordingly.<br />
<br />
915resolution 45 1280 1024 16<br />
915resolution 49 1400 1050 16<br />
<br />
Verify your changes:<br />
915resolution -l<br />
<br />
Start X again a you will get 1400x1050 and 1280x1024. Remember, you'll want to load 915resolution at startup.<br />
<br />
Edit /etc/conf.d/915resolution :<br />
# Enter the VBIOS mode to patch<br />
MODE="49"<br />
<br />
# Enter the desired resolution<br />
RESOLUTION="1400 1050"<br />
<br />
Then add "915resolution" to the [[Daemons | DAEMONS]] line in /etc/[[rc.conf]].<br />
<br />
= External Links =<br />
*[http://www.geocities.com/stomljen 915Resolution: Intel Video BIOS Hack]<br />
<br />
[[Category: HOWTOs (English)]]<br />
[[Category: Graphics (English)]]<br />
[[Category: X Server (English)]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Dell_Latitude_D620&diff=48024
Dell Latitude D620
2008-08-22T13:09:43Z
<p>Xiol: Added section on xorg compositing</p>
<hr />
<div>[[Category:Laptops (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Hardware =<br />
<br />
(Possibly) an early 2007 model D620:<br />
<br />
HARDWARE DETECT ver 4.8.2 (simple mode)<br />
Kernel : 2.6.19-ARCH<br />
CPU & Cache:<br />
Processor 0 is Genuine Intel(R) CPU T2600 @ 2.16GHz 2161MHz, 2048 KB Cache<br />
Processor 1 is Genuine Intel(R) CPU T2600 @ 2.16GHz 2161MHz, 2048 KB Cache<br />
Soundcard : No sound card<br />
Video : nVidia Corp.|Quadro NVS 110M / GeForce Go 7300 server: Xorg (vesa) <br />
Driver : xf86-video-vesa <br />
Monitor : Generic Monitor H: 28.0-96.0kHz V: 50.0-75.0Hz<br />
Mouse : Generic PS/2 Wheel Mouse xtype: PS2 device: /dev/psaux<br />
Drive(scsi): SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)<br />
SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)<br />
USB : Intel Corp.|I/O Controller Hub UHCI USB #1 module: unknown<br />
Ethernet : Broadcom Corp.|NetXtreme BCM5752 Gigabit Ethernet PCI Express module: tg3 device: eth0<br />
eth1 <br />
Network : Broadcom Corp.|NetXtreme BCM5752 Gigabit Ethernet PCI Express module: unknown <br />
PCMCIA slot: O2Micro Inc.|OZ6912 CardBus Controller module: yenta_socket<br />
<br />
A late-2007 model D620 hardware, output from lspci:<br />
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)<br />
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)<br />
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)<br />
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)<br />
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)<br />
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)<br />
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01)<br />
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)<br />
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)<br />
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)<br />
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)<br />
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)<br />
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)<br />
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)<br />
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 01)<br />
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)<br />
03:01.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller (rev 40)<br />
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express (rev 02)<br />
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)<br />
<br />
= Installation =<br />
The latest version of the Arch Linux installer detects all the hardware fine on the late-2007 D620 (with the exception of a problem involving the wireless network card, see below).<br />
<br />
= Xorg Configuration =<br />
Xorg configuration is relatively straightforward, but to ensure you have smooth compositing effects from Compiz on the Intel 945GM, you will need to add these lines into your <tt>Device</tt> section:<br />
<br />
Option "DRI" "True"<br />
Option "NoDDC" "True"<br />
Option "XAANoOffscreenPixmaps" "True"<br />
Option "EnablePageFlip" "True"<br />
Option "RenderAccel" "True"<br />
Option "AccelMethod" "XAA"<br />
<br />
And ensure that you have the following somewhere:<br />
<br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
<br />
= Recommendations =<br />
The D620 has an awfully loud PC speaker. To disable it, ensure the module <tt>pcspkr</tt> isn't loaded during bootup in rc.conf:<br />
<br />
MODULES=(... !pcspkr ...)<br />
<br />
You should follow instructions for installing [[cpufrequtils]] and [[pm-utils]]. There have been no problems with suspending and hibernating this laptop - just ensure you have enough swap!<br />
<br />
= Wireless Networking =<br />
== Intel 3945 ABG PCI Express ==<br />
If your D620 comes with an Intel 3945 ABG card, you should install the <tt>iwlwifi-3945-ucode</tt>, either during installation or afterwards, then<br />
<br />
modprobe iwl3945<br />
<br />
And you should be ready to go.<br />
<br />
In some cases (at least with the 2008.06 installer) you may have the ipw3945 and iwl3945 modules in your <tt>MODULES=()</tt> section of rc.conf after installation. You should remove or ! out the ipw3945 module, as the wireless card will not function correctly or at all with both modules loaded.<br />
<br />
== Broadcom PCI Express ==<br />
{{accuracy}}<br />
Get the latest ndiswrapper from http://ndiswrapper.sourceforge.net/ <br />
I used 1.33<br />
<br />
I got my driver from<br />
ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe<br />
<br />
Check the list if this one does not work for you<br />
http://ndiswrapper.sourceforge.net/mediawiki/index.php/List#B<br />
<br />
tar xvzf ndiswrapper-1.33.tar.gz <br />
cd ndiswrapper-1.33/<br />
make<br />
sudo make install<br />
sudo ndiswrapper -i bcmwl5.inf <br />
sudo ndiswrapper -l<br />
sudo depmod -a<br />
sudo modprobe ndiswrapper<br />
dmesg<br />
sudo ndiswrapper -m</div>
Xiol
https://wiki.archlinux.org/index.php?title=Lighttpd_and_FastCGI&diff=48022
Lighttpd and FastCGI
2008-08-22T11:02:52Z
<p>Xiol: Added merge tag, see discussion.</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{merge|Lighttpd For Both SSL And Non-SSL|talk:Fastcgi and lighttpd#Merge with Lighttpd For Both SSL And Non-SSL}}<br />
This document will describe how to set Ruby on Rails and PHP up on lighttpd with fastcgi.<br />
<br />
{{i18n_links_start}}<br />
<br />
{{i18n_entry|English|GNOME}}<br />
{{i18n_entry|Español|Fastcgi_y_lighttpd_(Español)}}<br />
{{i18n_links_end}}<br />
<br />
====Installing lighttpd and fcgi====<br />
pacman -S lighttpd fcgi<br />
<br />
{{Box Note | New default user and group: Instead of group "nobody" lighttpd now runs as user/group "http" by default.}}<br />
<br />
Now you have lighttpd with fcgi support. If it was that what you wanted you're all set. People that want Ruby on Rails and/or php should continue.<br />
<br />
====Installing php-cgi====<br />
pacman -S php<br />
<br />
Now check if you got the php-cgi version by entering<br />
''php-cgi --version''<br />
<pre><br />
PHP 5.2.5 with Suhosin-Patch 0.9.6.2 (cgi-fcgi) (built: Nov 13 2007 20:03:00)<br />
Copyright (c) 1997-2007 The PHP Group<br />
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies<br />
</pre><br />
If you get a similar output your php is installed successfully<br />
<br />
'''Note''' : Please keep in mind if you receive errors like ''No input file found'' after attempting to access your php files then make sure /etc/php/php.ini has the directives enabled<br />
<br />
<pre><br />
cgi.fix_pathinfo=1<br />
open_basedir = /home/:/tmp/:/usr/share/pear/:/another/path:/second/path<br />
</pre><br />
<br />
====Ruby on Rails related====<br />
Considering you want to use Ruby on Rails I assume you have ruby installed. If not do so.<br />
<br />
We need rubygems and ruby-fcgi. Check the AUR!<br />
Install both rubygems and ruby-fcgi<br />
Rubygems <br />
sudo pacman -S rubygems<br />
<br />
ruby-fcgi<br />
wget http://aur.archlinux.org/packages/ruby-fcgi/ruby-fcgi/PKGBUILD<br />
makepkg<br />
sudo pacman -U ruby-fcgi-x.x.x-x-xxx.pkg.tar.gz<br />
<br />
<br />
Now we have rubygems. Let's get rails!<br />
sudo gem install rails --include-dependencies<br />
sudo gem install fcgi --include-dependencies<br />
<br />
If this fails run<pre>pacman -S fcgi</pre> or get the [http://fastcgi.com/dist/fcgi.tar.gz] and compile it yourself.<br />
<pre><br />
$ wget http://fastcgi.com/dist/fcgi.tar.gz<br />
$ tar zxvf fcgi.tar.gz<br />
$ cd fcgi-2.4.0<br />
$./configure<br />
$ make<br />
# make install<br />
</pre><br />
And repeat the gem install.<br />
<br />
Check if you have more than one fcgi.so<br />
find /usr -name fcgi.so<br />
If you have two, delete the one that doesn't have "/site_ruby/" in its path.<br />
<br />
For documentation how to use Ruby on Rails please consult [http://rubyonrails.org].<br />
<br />
====Configuration of /etc/lighttpd/lighttpd.conf====<br />
I only show those you should change. The config is well commented and documentation can be found on [http://lighttpd.net].<br />
<br />
<pre><br />
server.modules = (<br />
"mod_access",<br />
"mod_fastcgi",<br />
"mod_accesslog" )<br />
<br />
server.indexfiles = ( "dispatch.fcgi", "index.php" ) #dispatch.fcgi is rails specified<br />
<br />
server.error-handler-404 = "/dispatch.fcgi" #too<br />
<br />
fastcgi.server = (<br />
".fcgi" =><br />
( "localhost" =><br />
(<br />
"socket" => "/tmp/rails-fastcgi.socket",<br />
"bin-path" => "/path/to/rails/application/public/dispatch.fcgi"<br />
)<br />
),<br />
".php" =><br />
( "localhost" =><br />
(<br />
"socket" => "/tmp/php-fastcgi.socket",<br />
"bin-path" => "/usr/bin/php-cgi"<br />
)<br />
)<br />
)<br />
</pre><br />
<br />
Prior to switch on the service, in order to get it fully functional, be sure to create the directory /var/run/lighttpd and set the access accordingly. The Lighttpd installation doesn't create it automatically.<br />
<br />
====Troubleshooting====<br />
[http://trac.lighttpd.net/trac/wiki/FrequentlyAskedQuestions Lighttpd FAQ]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Talk:Lighttpd_and_FastCGI&diff=48021
Talk:Lighttpd and FastCGI
2008-08-22T11:00:32Z
<p>Xiol: Merge with Lighttpd For Both SSL And Non-SSL</p>
<hr />
<div>I tried to follow the guide (without the php part) but got errors on lighttpd startup:<br />
<br />
The first one:<br />
2006-07-22 01:02:08: (mod_fastcgi.c.1022) execve failed for: /usr/lib/ruby/gems/1.8/gems/rails-1.1.4/dispatches/dispatch.fcgi No such file or directory<br />
<br />
I saw that permissions were not correct (root.root) at dispatches - dir. I set them to nobody.nobody at /usr/lib/ruby/gems/1.8/gems/rails-1.1.4/dispatches/. I still got that error and then checked the files at dispatches dir more carefully. Each had /usr/local/bin/ruby and I changed it to /usr/bin/ruby.<br />
<br />
Then also added this line to dispatch.fcgi:<br />
require File.dirname(__FILE__) + "/../environments/boot.rb" and commented out the previous environments - one. <br />
<br />
I also did this: <br />
touch /var/log/myapp_fcgi_crash.log<br />
<br />
and then <br />
chown nobody.nobody /var/log/myapp_fcgi_crash.log<br />
<br />
and edited the last line of dispatch.fcgi <br />
RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'<br />
<br />
This made it possible to start lighttpd without any errors<br />
<br />
EDIT: still got 500 errors when tried to get into dispatch.fcgi - then found this page: http://www.pragmatically.net/articles/2006/02/11/using-lighttpd-for-rails-development. After created a new project and copied the mentioned files over and started the lighttpd with script/lighttpd, I managed to get to the project page that came through lighttpd. Just in case they might disappear - I copied the files here, too.<br />
<br />
Here is the first one that should be coped to script/lighttpd:<br />
<br />
==================================== clip ========================================<br />
#!/usr/bin/ruby<br />
<br />
require 'optparse'<br />
<br />
OPTIONS = {<br />
:port => 8000,<br />
:ip => "0.0.0.0",<br />
:daemon => false,<br />
:environment => "development",<br />
:app_name => "myapp",<br />
}<br />
<br />
ARGV.options do |opts|<br />
script_name = File.basename($0)<br />
opts.banner = "Usage: ruby #{script_name} [options]"<br />
<br />
opts.separator ""<br />
<br />
opts.on("-p", "--port=port", Integer,<br />
"Runs Rails on the specified port.",<br />
"Default: 3000") { |OPTIONS[:port]| }<br />
opts.on("-b", "--binding=ip", String,<br />
"Binds Rails to the specified ip.",<br />
"Default: 0.0.0.0") { |OPTIONS[:ip]| }<br />
opts.on("-e", "--environment=name", String,<br />
"Specifies the environment to run this server under (test/development/production).",<br />
"Default: development") { |OPTIONS[:environment]| }<br />
opts.on("-a", "--app-name=name", String,<br />
"Specifies the application name.",<br />
"Default: rails_app") { |OPTIONS[:environment]| }<br />
opts.on("-d", "--daemon",<br />
"Make lighttpd / Rails run as a Daemon (only works if fork is available -- meaning on *nix)."<br />
) { OPTIONS[:daemon] = true }<br />
<br />
opts.separator ""<br />
<br />
opts.on("-h", "--help",<br />
"Show this help message.") { puts opts; exit }<br />
<br />
opts.parse!<br />
end<br />
<br />
ENV["RAILS_ENV"] = OPTIONS[:environment]<br />
RAILS_ROOT = File.dirname(__FILE__) + "/../"<br />
LIGHTTPD_CONF_FILE = "/tmp/#{OPTIONS[:app_name]}_lighttpd.conf"<br />
<br />
File.open("#{RAILS_ROOT}config/lighttpd.conf", "r") do |file|<br />
conf = file.read<br />
conf.gsub!(/PORT/, OPTIONS[:port].to_s)<br />
conf.gsub!(/BINDING/, OPTIONS[:ip])<br />
conf.gsub!(/RAILS_ROOT/, File.expand_path(RAILS_ROOT))<br />
conf.gsub!(/APP_NAME/, OPTIONS[:app_name])<br />
File.open(LIGHTTPD_CONF_FILE, "w") { |output| output.write(conf) }<br />
end<br />
<br />
CMD = "lighttpd -f #{LIGHTTPD_CONF_FILE}" <br />
CMD << " -D" unless OPTIONS[:daemon]<br />
puts CMD<br />
`#{CMD}`<br />
===============================================================================<br />
<br />
and the config file (copy to ./config/lighttpd.conf at your project dir):<br />
<br />
============================ clip ================================================<br />
server.port = PORT<br />
server.bind = "BINDING"<br />
<br />
server.pid-file = "/tmp/APP_NAME_lighttpd.pid"<br />
#server.event-handler = "freebsd-kqueue" <br />
<br />
server.modules = ( "mod_rewrite", "mod_redirect", "mod_access", "mod_fastcgi", "mod_accesslog" )<br />
<br />
server.document-root = "RAILS_ROOT/public/"<br />
server.indexfiles = ( "dispatch.fcgi", "index.html" )<br />
accesslog.filename = "RAILS_ROOT/log/lighttpd_access.log"<br />
server.errorlog = "RAILS_ROOT/log/lighttpd_error.log"<br />
server.error-handler-404 = "/dispatch.fcgi"<br />
<br />
<br />
#### fastcgi module<br />
## read fastcgi.txt for more info<br />
fastcgi.server = (<br />
".fcgi" => (<br />
"APP_NAME" => ( <br />
"socket" => "/tmp/APP_NAME1.socket",<br />
"bin-path" => "RAILS_ROOT/public/dispatch.fcgi",<br />
"min-procs" => 1,<br />
"max_procs" => 2<br />
)<br />
)<br />
)<br />
<br />
# mimetype mapping<br />
mimetype.assign = (<br />
".rpm" => "application/x-rpm",<br />
".pdf" => "application/pdf",<br />
".sig" => "application/pgp-signature",<br />
".spl" => "application/futuresplash",<br />
".class" => "application/octet-stream",<br />
".ps" => "application/postscript",<br />
".torrent" => "application/x-bittorrent",<br />
".dvi" => "application/x-dvi",<br />
".gz" => "application/x-gzip",<br />
".pac" => "application/x-ns-proxy-autoconfig",<br />
".swf" => "application/x-shockwave-flash",<br />
".tar.gz" => "application/x-tgz",<br />
".tgz" => "application/x-tgz",<br />
".tar" => "application/x-tar",<br />
".zip" => "application/zip",<br />
".mp3" => "audio/mpeg",<br />
".m3u" => "audio/x-mpegurl",<br />
".wma" => "audio/x-ms-wma",<br />
".wax" => "audio/x-ms-wax",<br />
".ogg" => "audio/x-wav",<br />
".wav" => "audio/x-wav",<br />
".gif" => "image/gif",<br />
".jpg" => "image/jpeg",<br />
".jpeg" => "image/jpeg",<br />
".png" => "image/png",<br />
".xbm" => "image/x-xbitmap",<br />
".xpm" => "image/x-xpixmap",<br />
".xwd" => "image/x-xwindowdump",<br />
".css" => "text/css",<br />
".html" => "text/html",<br />
".htm" => "text/html",<br />
".js" => "text/javascript",<br />
".asc" => "text/plain",<br />
".c" => "text/plain",<br />
".conf" => "text/plain",<br />
".text" => "text/plain",<br />
".txt" => "text/plain",<br />
".dtd" => "text/xml",<br />
".xml" => "text/xml",<br />
".mpeg" => "video/mpeg",<br />
".mpg" => "video/mpeg",<br />
".mov" => "video/quicktime",<br />
".qt" => "video/quicktime",<br />
".avi" => "video/x-msvideo",<br />
".asf" => "video/x-ms-asf",<br />
".asx" => "video/x-ms-asf",<br />
".wmv" => "video/x-ms-wmv",<br />
".bz2" => "application/x-bzip",<br />
".tbz" => "application/x-bzip-compressed-tar",<br />
".tar.bz2" => "application/x-bzip-compressed-tar"<br />
)<br />
================================================================================<br />
<br />
== Merge with Lighttpd For Both SSL And Non-SSL ==<br />
<br />
I think this article would benefit from being merged with "Lighttpd For Both SSL And Non-SSL" into a general Lighttpd article. --[[User:Xiol|Xiol]] 07:00, 22 August 2008 (EDT)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Apache_OpenOffice&diff=48020
Apache OpenOffice
2008-08-22T10:56:23Z
<p>Xiol: /* Arch offers 3 different OpenOffice branches */ correction</p>
<hr />
<div>[[Category:Office (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|OpenOffice}}<br />
{{i18n_entry|Ελληνικά|OpenOffice (Ελληνικά)}}<br />
{{i18n_entry|简体中文|OpenOffice_(简体中文)}}<br />
{{i18n_entry|Português|OpenOffice_(Português)}}<br />
{{i18n_links_end}}<br />
==Arch offers 3 different OpenOffice branches==<br />
Arch offers 3 trees of binary packages for OpenOffice with different pkg names:<br />
* openoffice-base<br />
This will always be the last released stable version of OpenOffice. <br><br />
Current version: 2.4.1 <br><br />
start it with "soffice" or from Desktop menu <br><br />
spell checking packages and localisation packages will always belong to this package<br />
* openoffice-base-beta<br />
This package will be only present when a new release is not far away. It will be the alpha, beta, and release candidates packages for the next stable release. <br><br />
Current version: 3.0_ooo300_m3 (a version past 3.0 beta2 that will lead to stable 3.0 release) <br><br />
start it with "soffice-beta" or from Desktop menu <br><br />
It's safe to install it together with the stable and devel version.<br><br />
Please test it carefully and report upstream bugs to OpenOffice and packaging bugs in our flyspray <br><br />
see http://wiki.services.openoffice.org/wiki/OOoRelease30 for roadmap<br />
* openoffice-base-devel<br />
This packages will be updated from time to time and is a playground for the packager and for testing latest features. Please test and file upstream issues at http://www.openoffice.org/issues/query.cgi<br><br />
Current version: 3.0_dev300_m29 / snapshot DEV300_m29 (snapshots past branching the 3.0 stable tree that will lead to 3.1 release annd beyond) <br><br />
start it with "soffice-devel" or from Desktop menu <br><br />
It's safe to install it together with the stable and beta version<br />
Attention: if you play with more than one openoffice-base version it's highly recommended to always backup your<br />
configuration directory ~/.openoffice{2,3} !<br />
<br />
==Installation==<br />
* First, install a Java Runtime Environment (optional, highly recommended):<br />
# pacman -S openjdk6 (still in testing) or<br />
# pacman -S jre<br />
* Download the base for stable and/or beta and/or devel:<br />
# pacman -S openoffice-base openoffice-base-beta openoffice-base-devel<br />
===language packages and spell checking for stable releases===<br />
* Install one or more language packs. This is optional as English ''is'' already included in the base:<br />
# pacman -S openoffice-XX (where XX is a language)<br />
* Install spellchecker files (optional):<br />
# pacman -S openoffice-spell-XX (where XX is a language)<br />
<br />
* Spellcheckers and language packs for other languages can be found in [[AUR]]. File feature request in flyspray and try to get votes if you want a pkg to become officially supported in extra.<br />
===Set OOo environment variable===<br />
OpenOffice2 introduced the ability to use several toolkits for drawing and integrates into different desktop environments in a clean way. To choose by hand, you need to set the OOO_FORCE_DESKTOP environment variable, either system-wise (like put it in /etc/profile, rc.local, or ~/.bashrc or something like /etc/profile.d/openoffice) or in the specific shell OpenOffice.org is running in (see message when you install/update openoffice-base).<br />
<br />
To run OpenOffice.org in GTK2 mode, you can issue (using bash):<br />
# OOO_FORCE_DESKTOP=gnome soffice<br />
To run OpenOffice.org in QT/KDE3 mode, you can issue (using bash):<br />
# OOO_FORCE_DESKTOP=kde soffice<br />
<br />
KDE look will be removed in Openoffice3. It's highly recommended to export OOO_FORCE_DESKTOP=gnome for all users (yes, also under kde4) with versions from >=3.x or you will see soon glib/gtk related crashes.<br />
<br />
=== Adding media support to OpenOffice.org 2 ===<br />
<br />
If you want to be able to use sound and video in OpenOffice.org Impress presentations, you need to install the [[Java Media Framework]] and [[Java_Media_Framework#Adding_media_support_to_OpenOffice.org|configure OpenOffice.org to use it]]<br />
<br />
=== Manual dictionary installation ===<br />
<br />
If you for some reason want to install dictionaries manually (e.g. there are no dictionary packages available in your language) follow these instructions:<br />
* Download a dictionary pack for your language. A list of dictionaries is available at [http://wiki.services.openoffice.org/wiki/Dictionaries OOoDictionaries]<br />
* Extract the dictionaries to /opt/openoffice/share/dict/ooo/ <br />
The necessary files are normally named like en_US.dic and en_US.aff for spellchecking, hyph_en_US.dic for hyphenation dictionaries, and th_en_US.dat and th_en_US.idx for the thesaurus files.<br />
* Open /opt/openoffice/share/dict/ooo/dictionary.lst with your favorite text editor. Add the dictionaries to the list using the following rules:<br />
# List of All Dictionaries to be Loaded by OpenOffice<br />
# ---------------------------------------------------<br />
# Each Entry in the list have the following space delimited fields<br />
#<br />
# Field 1: Entry Type "DICT" - spellchecking dictionary<br />
# "HYPH" - hyphenation dictionary<br />
# "THES" - thesaurus files<br />
#<br />
# Field 2: Language code from Locale "en" or "de" or "pt" ... <br />
#<br />
# Field 3: Country Code from Locale "US" or "GB" or "PT"<br />
#<br />
# Field 4: Root name of file(s) "en_US" or "hyph_de" or "th_en_US<br />
# (do not add extensions to the name)<br />
<br />
* An example using the American dictionaries would look like:<br />
### start en<br />
DICT en US en_US<br />
HYPH en US hyph_en_US<br />
THES en US th_en_US<br />
### end en<br />
* Save the file and restart OpenOffice. Make sure all the Openoffice processes is properly killed. Otherwise the newly installed dictionaries won't show up.<br />
<br />
==Running==<br />
<br />
If you want to run a specific module of OpenOffice.org (instead of the soffice default), for example the word processor (Write), spreadsheet application (Calc) or presentation program (Impress), check for the following script front-ends:<br />
<br />
Writer<br />
/opt/openoffice/program/swriter<br />
<br />
Calc<br />
/opt/openoffice/program/scalc<br />
<br />
Impress<br />
/opt/openoffice/program/simpress<br />
<br />
Math (Formula Editor)<br />
/opt/openoffice/program/smath<br />
<br />
Base (Database frontend)<br />
/opt/openoffice/program/sbase<br />
<br />
Printer Administration (Recommended to run as root)<br />
/opt/openoffice/program/spadmin<br />
<br />
==Known Problems==<br />
* extension handling in versions >=3.0<br />
* qt look'n feel since kde4 release</div>
Xiol
https://wiki.archlinux.org/index.php?title=Disable_root_password_and_gain_su_sudo_with_no_password&diff=48019
Disable root password and gain su sudo with no password
2008-08-22T10:53:06Z
<p>Xiol: Formatting</p>
<hr />
<div>{{Accuracy}}<br />
[[Category:Security (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Disable_root_password_and_gain_su_sudo_with_no_password}}<br />
{{i18n_entry|Français|Disable_root_password_and_gain_su_sudo_with_no_password_(Français)}}<br />
{{i18n_links_end}}<br />
<br />
=Caution=<br />
If your sudo settings are screwed up (pacman, other things) for some reason, you wont be able to use the root account on your box. This will really a big pain in headless/remote systems you are administrating. This is more likely to happen than your root password being compromised.<br />
<br />
=Why=<br />
<br />
# User password strength is same as root's password, and one must 1st login in-order to use su/sudo.<br />
# Root password will be disabled - thus anyone who will try login using root user will get denied... this will require anyone who wants to login to be familiar with the user name prior, which gives further security strength.<br />
# Once local security is compromised, a root password is meaningless if a live-cd (etc) is in hands, or as a wise user added - a baseball bat...<br />
<br />
=Requirements=<br />
You'll need "sudo" installed. You can grab it from pacman:<br />
# pacman -S sudo<br />
<br />
=How=<br />
<b> 1. Allow user to sudo:</b><br />
<br />
<b>1.1</b> Add "<user> <machine_name/ALL>=(ALL) ALL" to /etc/sudoers. You should always use visudo to edit the sudoers file, since visudo performs some checks to ensure that the edited file is valid. (Type visudo at a root prompt and edit. The command <b>i</b> will start edit mode of vi, <b>Esc</b> will end it, <b>:wq</b> will save the file and quit, while <b>:q</b> will quit visudo).<br />
<br />
'''If you are uncomfortable with vi, you can "export EDITOR=nano; visudo"<br />
<br />
<pre> > visudo<br />
#allow user ziggy sudo from local machine only (my_machine_name = HOSTNAME in rc.conf and NOT localhost):<br />
ziggy my_machine_name=(ALL) ALL<br />
#allow user arch sudo from anywhere (local/net):<br />
arch ALL=(ALL) ALL </pre><br />
<br />
'''1.2''' If you didn't use visudo, you will need to CHMOD /etc/sudoers to 0440<br />
chmod 0440 /etc/sudoers<br />
<br />
<b>2. Disable root and gain su/sudo with no password:</b><br />
<br />
<b>2.1</b> add group 'wheel' to installed accounts:<br />
<br />
<pre><br />
gpasswd -a <username> wheel<br />
</pre><br />
<br />
<b>2.2</b> Allow members of 'wheel' group to use sudo (it will be passwordless since root will be disabled) by adding the following line to /etc/pam.d/sudo:<br />
<br />
<pre><br />
auth sufficient pam_wheel.so trust use_uid<br />
</pre><br />
<br />
<b>2.3</b> to allow wheel users login via local <b>only</b>, add the following line to /etc/security/access.conf :<br />
<br />
<pre><br />
-:wheel:ALL EXCEPT LOCAL<br />
</pre><br />
<br />
<b>2.4</b> Test it, then disable the root account by removing it's password.<br />
<br />
<pre><br />
passwd -l root<br />
</pre><br />
<br />
<b>3.</b> if you ever need to reacitvate root, just run<br />
<br />
<pre><br />
sudo passwd root<br />
</pre><br />
<br />
Thats it. Enjoy your new passwordless root. :)<br />
<br />
<br />
=KDE - kdesu=<br />
<br />
<b>3. For Kde users, make kdesu use sudo:</b><br />
<br />
<br />
<i>Tips extracted from http://bugs.kde.org/show_bug.cgi?id=20914#c24</i><br />
<br />
<br />
kdesu may be used under kde to launch GUI applications with root privileges.<br />
By default kdesu uses su. As the root password has been deactivated, su will fail.<br />
Fortunately we can tell kdesu to use sudo instead of su.<br />
There are two ways to do so :<br />
<br />
<br />
<b>3.1</b> Recompile kdebase with '--with-sudo-kdesu-backend' configure switch.<br />
<br />
<br />
<b>3.2</b> Create a kdesurc file in '/opt/kde/share/config/' with the following :<br />
<br />
<pre><br />
[super-user-command]<br />
super-user-command=sudo<br />
</pre></div>
Xiol
https://wiki.archlinux.org/index.php?title=DansGuardian&diff=48018
DansGuardian
2008-08-22T10:45:12Z
<p>Xiol: /* Configuration */ Added section on web-based configuration</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
== Preface ==<br />
From the Dansguardian [http://dansguardian.org website].<br />
:::''DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters.''<br />
<br />
:::''DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.''<br />
<br />
:::''DansGuardian is a true web content filter. ''<br />
<br />
DansGuardian is excellent at filtering pages from the Internet as it examines both the URL and the content of the page, and it has many options to allow you to fine tune the process. To run DansGuardian, you will first need a proxy in place. DansGuardian will work with many proxy servers, but [[Squid]] is the recommended one.<br />
<br />
The original author of this article runs Squid and DansGuardian content filters at several schools in the UK, successfully blocking inappropriate content.<br />
<br />
== Installation ==<br />
<br />
DansGuardian is available in the extra repository. Make sure this is enabled in your pacman.conf, then run:<br />
pacman -Sy dansguardian<br />
<br />
This article is based on DansGuardian 2.8.0.6. DansGuardian is hereby referred to as DG.<br />
<br />
== Configuration ==<br />
=== Config Files ===<br />
Assuming you have [[Squid]] already set up, configuring DG is a relatively straightforward process. All of the configuration files, blocking templates, blacklists, etc are stored in <tt>/etc/dansguardian</tt>.<br />
<br />
DG has the concept of groups, which are groups of users or machines that have certain blocks applied to them. For now, we are just going to set up one group for everyone - the idea being that anyone who wants unfiltered access could just hit Squid directly. (This is not ideal.)<br />
<br />
Start by editing <tt>/etc/dansguardian/dansguardian.conf</tt>. The file is pretty well commented so you shouldn't have many problem problems following it through. The defaults are pretty sane. Be sure to check the options under Network Settings for <tt>filterip</tt>, <tt>filterport</tt>, <tt>proxyip</tt> and <tt>proxyport</tt>. You may also want to examine <tt>weightedphrasemode</tt> and <tt>phrasefiltermode</tt>. The filter mode is especially important if you are running this setup on older hardware.<br />
<br />
Next we need to edit the options for our first, and only, group. Edit the file <tt>/etc/dansguardian/dansguardianf1.conf</tt>. Once again this is pretty well commented, but you should pay attention to the <tt>naughtynesslimit</tt>.<br />
<br />
DG examines the content on a page and adds up the naughty words based on a weighting scheme, with worse words getting more points. If this total exceeds the <tt>naughtnesslimit</tt>, the page will be blocked. 50 is a good limit for young children, whereas 160 is good for young adults. In a corporate environment, you'd want this set around 200.<br />
<br />
=== Blacklists ===<br />
<br />
Adding websites to the block lists are done in the same directory, in the almost self-explanatory configuration files. DG provides a powerful regular expression URL and content filter, as well as ordinary URL blocklists. Some of the important files are:<br />
<br />
*bannedsitelist - The domains for your banned sites, e.g. "human-horse-love.com"<br />
*bannedurllist - If you just want to block part of a website, e.g. "bbc.co.uk/games"<br />
*exception* - This is where your domain/URL exceptions go. Sites in this list will not be checked and allowed straight through.<br />
*bannedregexpurllist - Very powerful. This is where you can put regular expressions to block certain URLs, e.g. "(.*q=.*xxx.*)" to stop searching for the word "xxx".<br />
<br />
Whenever you add or remove a URL from the list, you must tell DG you have done so. This can be done with:<br />
dansguardian -r<br />
Which will force DG to reload it's configuration. Doing it this way, rather than restarting the daemon, will mean that for the most part your users won't notice reloading. (I've noticed that straight after the reload, users may have trouble accessing web pages for about 5-10 seconds - if this is a problem you can always run a cronjob at 12am to run <tt>dansguardian -r</tt>).<br />
<br />
You can download a blacklist collection from [http://urlblacklist.com URLBlacklist], but be sure to read the [http://urlblacklist.com/?sec=faq FAQ] first, as you will, paradoxically, want to unsort the collection to enable DG to start faster. Once you have installed the blacklist under <tt>/etc/dansguardian</tt> you can add them to your DG configuration by opening the appropriate configuration file and adding:<br />
.Include</etc/dansguardian/blacklists/ads/domains><br />
.Include</etc/dansguardian/blacklists/drugs/domains><br />
etc...<br />
To the bottom of the file. Take a look around the blacklist collection to see what is available.<br />
<br />
=== "Access Denied" Template ===<br />
<br />
If you wish to change the page that gets displayed to users when a website is blocked, you need to edit the file:<br />
/etc/dansguardian/languages/<LANGUAGE>/template.html.<br />
<br />
=== Web Frontend ===<br />
If you would like a web-based frontend to manage Dansguardian, you could use [[Webmin]] with the Dansguardian [http://sourceforge.net/projects/dgwebminmodule/ Webmin Module].<br />
<br />
== Starting DansGuardian ==<br />
Dansguardian needs to start ''after'' your proxy has started, so run:<br />
/etc/rc.d/squid start<br />
/etc/rc.d/dansguardian start<br />
And ensure in your <tt>DAEMONS=()</tt> section of rc.conf, that DG starts after squid:<br />
DAEMONS=(... squid dansguardian ...)<br />
Without a valid proxy, DG will fail to start, so you will not want to background Squid. Depending on the size of your blacklists and your hardware, DG can take quite a while to start (30-60 seconds), so you may wish to background DG.<br />
DAEMONS=(... squid @dansguardian ...)</div>
Xiol
https://wiki.archlinux.org/index.php?title=DansGuardian&diff=48017
DansGuardian
2008-08-22T10:42:57Z
<p>Xiol: Added category</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
== Preface ==<br />
From the Dansguardian [http://dansguardian.org website].<br />
:::''DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters.''<br />
<br />
:::''DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.''<br />
<br />
:::''DansGuardian is a true web content filter. ''<br />
<br />
DansGuardian is excellent at filtering pages from the Internet as it examines both the URL and the content of the page, and it has many options to allow you to fine tune the process. To run DansGuardian, you will first need a proxy in place. DansGuardian will work with many proxy servers, but [[Squid]] is the recommended one.<br />
<br />
The original author of this article runs Squid and DansGuardian content filters at several schools in the UK, successfully blocking inappropriate content.<br />
<br />
== Installation ==<br />
<br />
DansGuardian is available in the extra repository. Make sure this is enabled in your pacman.conf, then run:<br />
pacman -Sy dansguardian<br />
<br />
This article is based on DansGuardian 2.8.0.6. DansGuardian is hereby referred to as DG.<br />
<br />
== Configuration ==<br />
=== Config Files ===<br />
Assuming you have [[Squid]] already set up, configuring DG is a relatively straightforward process. All of the configuration files, blocking templates, blacklists, etc are stored in <tt>/etc/dansguardian</tt>.<br />
<br />
DG has the concept of groups, which are groups of users or machines that have certain blocks applied to them. For now, we are just going to set up one group for everyone - the idea being that anyone who wants unfiltered access could just hit Squid directly. (This is not ideal.)<br />
<br />
Start by editing <tt>/etc/dansguardian/dansguardian.conf</tt>. The file is pretty well commented so you shouldn't have many problem problems following it through. The defaults are pretty sane. Be sure to check the options under Network Settings for <tt>filterip</tt>, <tt>filterport</tt>, <tt>proxyip</tt> and <tt>proxyport</tt>. You may also want to examine <tt>weightedphrasemode</tt> and <tt>phrasefiltermode</tt>. The filter mode is especially important if you are running this setup on older hardware.<br />
<br />
Next we need to edit the options for our first, and only, group. Edit the file <tt>/etc/dansguardian/dansguardianf1.conf</tt>. Once again this is pretty well commented, but you should pay attention to the <tt>naughtynesslimit</tt>.<br />
<br />
DG examines the content on a page and adds up the naughty words based on a weighting scheme, with worse words getting more points. If this total exceeds the <tt>naughtnesslimit</tt>, the page will be blocked. 50 is a good limit for young children, whereas 160 is good for young adults. In a corporate environment, you'd want this set around 200.<br />
<br />
=== Blacklists ===<br />
<br />
Adding websites to the block lists are done in the same directory, in the almost self-explanatory configuration files. DG provides a powerful regular expression URL and content filter, as well as ordinary URL blocklists. Some of the important files are:<br />
<br />
*bannedsitelist - The domains for your banned sites, e.g. "human-horse-love.com"<br />
*bannedurllist - If you just want to block part of a website, e.g. "bbc.co.uk/games"<br />
*exception* - This is where your domain/URL exceptions go. Sites in this list will not be checked and allowed straight through.<br />
*bannedregexpurllist - Very powerful. This is where you can put regular expressions to block certain URLs, e.g. "(.*q=.*xxx.*)" to stop searching for the word "xxx".<br />
<br />
Whenever you add or remove a URL from the list, you must tell DG you have done so. This can be done with:<br />
dansguardian -r<br />
Which will force DG to reload it's configuration. Doing it this way, rather than restarting the daemon, will mean that for the most part your users won't notice reloading. (I've noticed that straight after the reload, users may have trouble accessing web pages for about 5-10 seconds - if this is a problem you can always run a cronjob at 12am to run <tt>dansguardian -r</tt>).<br />
<br />
You can download a blacklist collection from [http://urlblacklist.com URLBlacklist], but be sure to read the [http://urlblacklist.com/?sec=faq FAQ] first, as you will, paradoxically, want to unsort the collection to enable DG to start faster. Once you have installed the blacklist under <tt>/etc/dansguardian</tt> you can add them to your DG configuration by opening the appropriate configuration file and adding:<br />
.Include</etc/dansguardian/blacklists/ads/domains><br />
.Include</etc/dansguardian/blacklists/drugs/domains><br />
etc...<br />
To the bottom of the file. Take a look around the blacklist collection to see what is available.<br />
<br />
=== "Access Denied" Template ===<br />
<br />
If you wish to change the page that gets displayed to users when a website is blocked, you need to edit the file:<br />
/etc/dansguardian/languages/<LANGUAGE>/template.html<br />
<br />
== Starting DansGuardian ==<br />
Dansguardian needs to start ''after'' your proxy has started, so run:<br />
/etc/rc.d/squid start<br />
/etc/rc.d/dansguardian start<br />
And ensure in your <tt>DAEMONS=()</tt> section of rc.conf, that DG starts after squid:<br />
DAEMONS=(... squid dansguardian ...)<br />
Without a valid proxy, DG will fail to start, so you will not want to background Squid. Depending on the size of your blacklists and your hardware, DG can take quite a while to start (30-60 seconds), so you may wish to background DG.<br />
DAEMONS=(... squid @dansguardian ...)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Firefox&diff=48016
Firefox
2008-08-22T10:38:19Z
<p>Xiol: /* Plugins */ added bit on Adobe Reader</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
Firefox is an open-source graphical web browser from [http://www.mozilla.com Mozilla]. The Firefox package in Arch Linux is compiled without official branding. This means that when you start Firefox it will use a blue globe for its icon and will be named after its release series' codename. This has to be done because a distribution may use the name "Firefox" and its artwork only if there are no unofficial modifications (i.e. no custom patches).<br />
<br />
<br />
= Enable Firefox Branding =<br />
If you would like to enable branding or simply change the user agent there are a fews ways to do it. You can recompile, modify the browser with extensions, or use the advanced configuration. Please note that distributing such a version would be against the law!<br />
<br />
== Recompile ==<br />
The following procedure is for the 2.x version of Firefox. A branded version of Firefox 3.0.1-2 is available via AUR [http://aur.archlinux.org/packages.php?ID=18019 here]. We will use [[ABS]] to rebuild Firefox. Make sure you have '''cvsup''' and '''wget''' installed. Now run <br />
abs<br />
If this is your first time running abs it may take a while. Subsequent runs will be much faster. Before you make any custom package you should run abs. Now perform the following.<br />
<br />
mkdir -p /var/abs/local/firefox<br />
cp /var/abs/extra/firefox/* /var/abs/local/firefox<br />
cd /var/abs/local/firefox<br />
<br />
Now use your favorite editor and open the mozconfig file. Add the following line to the end of the file.<br />
<br />
ac_add_options --enable-official-branding<br />
<br />
Save and exit, then run<br />
<br />
md5sum mozconfig<br />
<br />
Copy the string and then open the PKGBUILD file. Now look at the source and md5sums arrays. You can match up the md5sum to the file by comparing these two. Mozconfig is second on the sources list. So we would modify the second md5sum with the string we obtained earlier.<br />
<br />
Replace this line:<br />
<br />
convert ${startdir}/src/mozilla/browser/app/default.xpm ${startdir}/pkg/usr/share/pixmaps/firefox.png<br />
<br />
with the following:<br />
<br />
convert ${startdir}/src/mozilla/dist/branding/default.xpm ${startdir}/pkg/usr/share/pixmaps/firefox.png<br />
<br />
Now scroll down and look for these two lines.<br />
install -m644 ${startdir}/src/mozilla/browser/app/default.xpm ${startdir}/pkg/usr/lib/firefox/chrome/icons/default/<br />
install -m644 ${startdir}/src/mozilla/browser/app/default.xpm ${startdir}/pkg/usr/lib/firefox/icons/<br />
<br />
Replace them with the following<br />
install -m644 ${startdir}/src/mozilla/dist/branding/default.xpm ${startdir}/pkg/usr/lib/firefox/chrome/icons/default/<br />
install -m644 ${startdir}/src/mozilla/dist/branding/default.xpm ${startdir}/pkg/usr/lib/firefox/icons/ <br />
<br />
<br />
Save and exit, then run<br />
makepkg<br />
This may take some time depending on your system. Once it has created the package, remove your current version of Firefox if you have it installed.<br />
pacman -Rd firefox<br />
Then install the new version with<br />
pacman -A firefox-*.pkg.tar.gz<br />
You may also try upgrading your current Firefox with.<br />
pacman -U firefox-*.pkg.tar.gz<br />
<br />
Of course, replace * with your version number.<br />
<br />
== Extensions ==<br />
*[https://addons.mozilla.org/firefox/2553/ CCK Wizard] - Allows you to customize every aspect of Firefox. Title bar, user agent, icons, about graphic, and a lot more. <br />
<br />
*[https://addons.mozilla.org/firefox/59/ User Agent Switcher] - Adds a menu and a toolbar button to switch the user agent of the browser.<br />
<br />
== Advanced Configuration ==<br />
Enter <code>about:config</code> in your Firefox address bar to access the advanced configuration. In the filter enter <code>useragent.extra.firefox</code>. You will see your current user-agent string; you may put whatever you want in there. If you want to make it appear as the default version of Firefox to websites enter: <code>'''Firefox/2.0.0.11'''</code>. Modify accordingly if there is a newer version.<br />
<br />
== Branding without recompilation ==<br />
To brand "Bon Echo" without recompiling the whole browser, you need to replace the Bon Echo icons with the official Firefox icons, and change the strings "Bon Echo" and "BonEcho" in a few files. The [http://bbs.archlinux.org/viewtopic.php?pid=333606#p333606 firebrand] script takes care of this. Run it after an upgrade or installation of firefox. To revert to the Bon Echo brand again, simply reinstall firefox. The script will by default download the icons every time it is run. To "cache" the icons locally for later firefox upgrades, set the NEWICONSDIR variable to a suitable directory, for instance<br />
NEWICONSDIR=/usr/local/share/firebrand<br />
<br />
= Extensions =<br />
Before you try to install extensions, make sure that your /tmp directory was created with the right permissions. If addons won't install, chmod 777 /tmp should fix it.<br />
*[https://addons.mozilla.org/firefox/1865/ Adblock Plus] - Surprisingly, it blocks ads.<br />
*[https://addons.mozilla.org/firefox/446/ MediaPlayerConnectivity] - Allow you to launch an embedded video from a website in an external application. Good for those who have problems with media plugins.<br />
<br />
= Plugins =<br />
To find out what plugins you have installed enter <code>about:plugins</code> in the Firefox address bar.<br />
*Flash<br />
pacman -S flashplugin<br />
''You may need to install ttf-ms-fonts'' (pacman -S ttf-ms-fonts) ''for flashplayer to render text properly.''<br />
<br />
*Mplayer - Mplayer's multimedia plugin is one of the most mature. This will generally cover everything you need.<br />
pacman -S mplayer-plugin<br />
<br />
*Java<br />
pacman -S jre<br />
<br />
*Citrix<br />
(see [[Citrix]] how-to)<br />
<br />
*Adobe Reader<br />
Adobe Reader is only available in the [http://aur.archlinux.org/packages.php?ID=16980 AUR] due to licensing issues.<br />
yaourt -S --aur acroread<br />
<br />
= Tips =<br />
== Fonts ==<br />
===DPI===<br />
Modifying the following value has been known to improve the way fonts looks in Firefox. Type about:config into your address bar. Type dpi into the filter and change '''layout.css.dpi''' to '''0'''.<br />
===Font Replacement===<br />
Another way to improve how fonts look is to replace them with another. Add or create a ''[[.fonts.conf]]'' with the following.<br />
<br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>'''Helvetica'''</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>'''Bitstream Vera Sans'''</string><br />
</edit><br />
</match><br />
<br />
<br />
The first font name is the one we would like to replace. The second is the one we will be replacing it with.<br />
<br />
=== Font Configuration ===<br />
For more information on font configuration, please read [[Xorg Font Configuration]].<br />
<br />
== Lighten, Speed-up Firefox / Fix fonts and controls issues ==<br />
''Also font fix for Mozilla suite''<br />
<br />
Try to add<br />
<br />
export MOZ_DISABLE_PANGO=1<br />
<br />
to /etc/profile and logout.<br />
<br />
== Why do I get this error when I click the middle mouse button? ==<br />
! The URL is not valid and cannot be loaded.<br />
You may also get unexpected behavior like looking up a random webpage.<br />
<br />
The reason stems from the use of the middle mouse buttons in <code>UNIX</code>-like operating systems. The middle mouse button is used to paste whatever text has been highlighted/added to the clipboard. Also, there is a feature in Firefox which defaults to loading the url of the corresponding text when it is depressed. This can be disabled like so:<br />
<br />
Open the browser, and type the following into the address bar:<br />
<br />
about:config<br />
search for 'middlemouse.contentLoadURL' and set it to false.<br />
<br />
== Tip Articles==<br />
*[[Firefox Tips and Tweaks]]<br />
*[[Adding Firefox Search Engines As User]]<br />
*[[Firefox Widgets|Beautify the form widgets in firefox, e.g. buttons]]<br />
<br />
= Firefox Derivatives =<br />
*[http://en.wikipedia.org/wiki/Iceweasel Iceweasel] - The name of '''two''' different Firefox forks. One is a GNU project based on Firefox 1.5. The other is being developed by Debian and is based on 2.0. At the time of writing the [[AUR]] does have the GNU version of Iceweasel.<br />
<br />
*[http://getswiftfox.com/ Swiftfox] - An optimized and processor-specific build of Firefox. Currently available via AUR. It should be noted that, considering Arch Linux has ABS, you could build your own optimized build of Firefox.<br />
<br />
*[http://swiftweasel.sourceforge.net/ Swiftweasel] - Mostly like Swiftfox, but the binaries aren't under proprietary license. Some PKGBUILDs are available in AUR.<br />
<br />
= Firefox Alternatives =<br />
*[[Opera]] - A very full-featured web suite. Closed source but free (as in beer).<br />
*[http://en.wikipedia.org/wiki/Epiphany_%28browser%29 Epiphany] - GNOME's default web browser. Uses the same rendering engine as Firefox. <br />
*[http://en.wikipedia.org/wiki/Konqueror Konqueror] - KDE's default web browser. Uses the KHTML rendering engine.<br />
*[http://en.wikipedia.org/wiki/Dillo Dillo] - A very lightweight web browser.<br />
*[http://en.wikipedia.org/wiki/SeaMonkey SeaMonkey] - The continuation of the original Mozilla suite. Includes web browser, email client, etc.<br />
<br />
= External Links =<br />
*[http://www.howtocreate.co.uk/browserSpeed.html Browser Speed Comparisons] - Dated but still useful.<br />
*[http://web.glandium.org/blog/?p=97 Facts about Debian and Mozilla® Firefox] - An account of the trademark issues from the Firefox package maintainer for Debian.<br />
*[http://www.gnu.org/software/gnuzilla/ Gnuzilla and IceWeasel] - Official website for the GNU Mozilla forks.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Talk:Browser_plugins&diff=48015
Talk:Browser plugins
2008-08-22T10:35:45Z
<p>Xiol: /* Page title change */ argh, signed...</p>
<hr />
<div>This article's title is TOO SPECIFIC. It should be changed depending on article's scope. --[[User:Foxbunny|foxbunny]] 10:17, 17 November 2006 (PST)<br />
<br />
I dont think that being "too specific" is the problem (see, for example, the [[Installing_VMware_Server_on_Arch64]] article that i authored. I think that's definitely worthy of a single article by itself). It's more of a case of the subject being too "trivial", or too "easy" to be worthy of an article by itself. And so in that sense you're right after all.<br />
--[[User:jf|jf]] 00:42, 24 November 2006 (UTC)<br />
<br />
I think the title should be changed to include 'java', as people wouldn't know that java is included too. Apart from that, I think the article perfectly deserves a page for itself.<br />
<br />
== acroread no longer in repo (demoted to AUR - redistribution rights issue) ==<br />
<br />
I came to this page and tried to follow the instructions and they failed.<br />
<br />
The acroread component is not in the repo (it used to be !!) but a quick search of the AUR revealed why. It seems the acrobat reader licence denies redistribution rights (what a surprise) and so the acroread package cannot ever be promoted to a repository.<br />
<br />
I feel the instructions should be edited to reflect this but I don't personally have the necessary 'bottle' to just go in there and stomp over someone's hard work.<br />
<br />
:: I do :) --[[User:Xiol|Xiol]] 06:24, 22 August 2008 (EDT)<br />
<br />
== Page title change ==<br />
<br />
I think this page's title should be changed to "Browser Plugins", as it contains (and can contain) general information on enabling plugins for your browser. --[[User:Xiol|Xiol]] 06:35, 22 August 2008 (EDT)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Talk:Browser_plugins&diff=48014
Talk:Browser plugins
2008-08-22T10:35:18Z
<p>Xiol: Page title change</p>
<hr />
<div>This article's title is TOO SPECIFIC. It should be changed depending on article's scope. --[[User:Foxbunny|foxbunny]] 10:17, 17 November 2006 (PST)<br />
<br />
I dont think that being "too specific" is the problem (see, for example, the [[Installing_VMware_Server_on_Arch64]] article that i authored. I think that's definitely worthy of a single article by itself). It's more of a case of the subject being too "trivial", or too "easy" to be worthy of an article by itself. And so in that sense you're right after all.<br />
--[[User:jf|jf]] 00:42, 24 November 2006 (UTC)<br />
<br />
I think the title should be changed to include 'java', as people wouldn't know that java is included too. Apart from that, I think the article perfectly deserves a page for itself.<br />
<br />
== acroread no longer in repo (demoted to AUR - redistribution rights issue) ==<br />
<br />
I came to this page and tried to follow the instructions and they failed.<br />
<br />
The acroread component is not in the repo (it used to be !!) but a quick search of the AUR revealed why. It seems the acrobat reader licence denies redistribution rights (what a surprise) and so the acroread package cannot ever be promoted to a repository.<br />
<br />
I feel the instructions should be edited to reflect this but I don't personally have the necessary 'bottle' to just go in there and stomp over someone's hard work.<br />
<br />
:: I do :) --[[User:Xiol|Xiol]] 06:24, 22 August 2008 (EDT)<br />
<br />
== Page title change ==<br />
<br />
I think this page's title should be changed to "Browser Plugins", as it contains (and can contain) general information on enabling plugins for your browser.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Browser_plugins&diff=48013
Browser plugins
2008-08-22T10:32:44Z
<p>Xiol: Updated section on Adobe Reader. This page's title should be changed to include Java.</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Mozilla and Mozilla Firefox browser plugins}}<br />
{{i18n_entry|简体中文|Flash 和 Adobe Acrobat 浏览器插件}}<br />
{{i18n_links_end}}<br />
<br />
= Updated Information for new installations! Use the information in this section=<br />
==Flash and Java plugins==<br />
To install Flash Player and Java, run<br />
<br />
pacman -S flashplugin jre<br />
''You may need to install ttf-ms-fonts'' (pacman -S ttf-ms-fonts) ''for flashplayer to render text properly.''<br />
<br />
That should work!<br />
('''*Note for Arch64:''' j2re will still not work for your browser - at this point in time (Oct 13 2006), there is still no support in jre-64 for java applets... See http://java.com/en/download/manual.jsp#note)<br />
<br />
== Adobe Reader ==<br />
Due to licensing restrictions, Adobe Reader cannot be distributed from any of the normal Arch repos. There is a version available on the AUR [http://aur.archlinux.org/packages.php?ID=16980 here]. If you use yaourt, run:<br />
yaourt -S --aur acroread<br />
There are localisations available in many languages, check the AUR for your language.<br />
yaourt -Ss --aur acroread-<br />
Please note that no matter how many votes it receives, this package will never be included in the community repo. See comment by Snowman [http://aur.archlinux.org/packages.php?ID=16980 here].<br />
<br />
==Fixing Flash in Konqueror==<br />
pacman -S kmplayer<br />
<br />
Run kmplayer to make sure it creates a config file and then close kmplayer. Open "~/.kde/share/config/kmplayerrc" with a text editor of your choice and add this to the ending:<br />
<br />
[application/x-shockwave-flash]<br />
player=npp<br />
plugin=/usr/lib/mozilla/plugins/libflashplayer.so<br />
<br />
Check the plugin line if it is correct by doing:<br />
<br />
slocate libflashplayer.so<br />
<br />
If it is not correct then change it to the correct filepath. Open Konqueror and go to Settings > Configure Konqueror > File Associations, navigate to "application/x-shockwave-flash" and click on the "Embedding" tab and click "Add.." and select "Embedded MPlayer for KDE" and click "Ok". Make sure "Embedded MPlayer for KDE" is on the top. Click "Ok". Now it should work, if it doesn't you might have to restart konqueror and/or KDE.<br />
<br />
Reference: http://mikearthur.co.uk/?p=171<br />
<br />
----<br />
<br />
= Old information for reference on old installations... Or whatever (OUTDATED)=<br />
<br />
==Using Mozilla==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/mozilla/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
Restart Mozilla if it was running.<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
There is a GNU project going on (Gnash) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
==Using Mozilla Firefox==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin ttf-ms-fonts<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/firefox/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
Note: Also works with Firefox3; replace /opt/mozilla/lib/firefox/plugins with /opt/mozilla/lib/firefox-3.0/plugins<br />
<br />
There is a GNU project going on (Gnash) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
Alternate way<br />
<br />
Visit http://www.adobe.com/products/flashplayer/ and download the Adobe Flash player .tar.gz file. Unpack it and execute the flashplayer-installer<br />
as root.<br />
<br />
./flashplayer-installer<br />
<br />
The script will ask for location of the browswer. For Firefox, enter<br />
<br />
/usr/lib/firefox<br />
<br />
Restart Firefox. Repeat for any browsers installed.<br />
<br />
===For Java Plugin===<br />
pacman -S jre<br />
ln -s /opt/java/jre/plugin/i386/ns7-gcc29/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
(for me it's: ln -s /opt/java/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/, note the missing gcc29)<br />
<br />
Use the Tab key to navigate easier through the directories.<br />
<br />
=For Arch64 users=<br />
[[Install Flash on Arch64]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Talk:Browser_plugins&diff=48012
Talk:Browser plugins
2008-08-22T10:24:52Z
<p>Xiol: /* acroread no longer in repo (demoted to AUR - redistribution rights issue) */</p>
<hr />
<div>This article's title is TOO SPECIFIC. It should be changed depending on article's scope. --[[User:Foxbunny|foxbunny]] 10:17, 17 November 2006 (PST)<br />
<br />
I dont think that being "too specific" is the problem (see, for example, the [[Installing_VMware_Server_on_Arch64]] article that i authored. I think that's definitely worthy of a single article by itself). It's more of a case of the subject being too "trivial", or too "easy" to be worthy of an article by itself. And so in that sense you're right after all.<br />
--[[User:jf|jf]] 00:42, 24 November 2006 (UTC)<br />
<br />
I think the title should be changed to include 'java', as people wouldn't know that java is included too. Apart from that, I think the article perfectly deserves a page for itself.<br />
<br />
== acroread no longer in repo (demoted to AUR - redistribution rights issue) ==<br />
<br />
I came to this page and tried to follow the instructions and they failed.<br />
<br />
The acroread component is not in the repo (it used to be !!) but a quick search of the AUR revealed why. It seems the acrobat reader licence denies redistribution rights (what a surprise) and so the acroread package cannot ever be promoted to a repository.<br />
<br />
I feel the instructions should be edited to reflect this but I don't personally have the necessary 'bottle' to just go in there and stomp over someone's hard work.<br />
<br />
:: I do :) --[[User:Xiol|Xiol]] 06:24, 22 August 2008 (EDT)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Newcomers_Guide&diff=48011
Newcomers Guide
2008-08-22T10:08:03Z
<p>Xiol: /* USB stick */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Provides a highly detailed, explanatory guide to installing and configuring a full-featured Arch Linux system.}}<br />
{{Article summary heading|Available Languages}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|Dansk|Dansk_Begynderguide}}<br />
{{i18n_entry|简体中文|Beginners Guide 新手指南}}<br />
{{i18n_entry|正體中文|Beginner's Guide 新手指南}}<br />
{{i18n_entry|Deutsch|Beginners Guide (Deutsch)}}<br />
{{i18n_entry|English|Beginners Guide}}<br />
{{i18n_entry|Español|Guía para Principiantes (Español)}}<br />
{{i18n_entry|Français|Manuel_du_Débutant_(Français)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_entry|Português Brasil|Guia do Iniciante(Português do Brasil)}}<br />
{{i18n_entry|Türkçe|Başlangıç Rehberi (Türkçe)}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Official Arch Linux Install Guide}} (provides a more general approach)<br />
{{Article summary end}}<br />
==Preface==<br />
<br />
=====Everything you ever wanted to know about installing Arch, but were afraid to ask=====<br />
Welcome. This document will guide you through the process of installing and configuring [[ArchLinux|Arch Linux]]; a simple, agile and lightweight GNU/Linux distribution, <code>UNIX</code>-like operating system. Arch Linux requires a certain level of intimate knowledge of its configuration and of <code>UNIX</code>-like system methodology and for this reason, extra explanatory information is included. It is aimed at new Arch users, but strives to serve as a strong reference and informative base for all. <br />
<br />
Since GNU/Linux Distributions are fundamentally 'modular' by design, the article is logically divided into 3 main components of a desktop <code>UNIX</code>-like operating system:<br />
<br />
'''[[#Part I: Install the Base System|Part I: Installing the Base system]]'''<br />
<br />
'''[[#Part II: Install X and configure ALSA|Part II: Installing X and configuring ALSA]]'''<br />
<br />
'''[[#Part III: Installing and configuring a Desktop Environment|Part III: Installing a Desktop Environment]]'''<br />
<br />
=====DON'T PANIC!=====<br />
The Arch Linux system is assembled by the ''user'', from the shell, using basic command line tools. This is '''[[The Arch Way]].''' Unlike the more rigid structures of other distributions and installers, there are no default environments nor configurations chosen for you. From the command line, ''you'' will add packages from the Arch repositories using the [[pacman]] tool via your internet connection and manually configure your installation until your system is customized to your requirements. This method allows for maximum flexibility, choice, and system resource control ''from the base up''.<br />
<br />
Arch Linux is aimed at GNU/Linux users who desire minimal 'code separation' from their machine.<br />
<br />
=====[[The Arch Way]]=====<br />
<br />
'''''The design principles behind Arch are aimed at keeping it [[The Arch Way|simple]].'' '''<br />
<br />
'Simple', in this context, shall mean 'without unnecessary additions, modifications, or complications'. In short; an elegant, minimalist approach.<br />
<br />
'''Some thoughts to keep in mind:'''<br />
<br />
*''" 'Simple' is defined from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use and technically [inferior]." -Aaron Griffin''<br />
<br />
*''Entia non sunt multiplicanda praeter necessitatem'' or "Entities should not be multiplied unnecessarily." -Occam's razor. The term ''razor'' refers to the act of shaving away unnecessary complications to arrive at the simplest explanation, method or theory.<br />
<br />
*''"The extraordinary part of [my method] lies in its simplicity..I always believe that the simple way is the right way."'' - Bruce Lee<br />
<br />
{{Box Note |'''Following this guide closely is essential in order to successfully install a properly configured Arch Linux system, so ''please'' read it thoroughly.'''}}<br />
* You may wish to make a print out of this guide which will serve as a useful Arch Linux user reference. Simply click on the 'Printable Version' tab in the toolbox on the top-left.<br />
*''If you would like to add to this wiki, please include the "Why" as well as the "How", where appropriate. The best documentation teaches us how, as well as why!''<br />
* The Arch wiki is an excellent resource and should be consulted for issues [http://wiki.archlinux.org/index.php/Main_Page first]; IRC (freenode #archlinux), and the [http://bbs.archlinux.org/ forums] are also available if the answer cannot be found.<br />
----<br />
Welcome to Arch! Now, let's get started.<br />
<br />
==Part I: Install the Base System==<br />
<br />
===Obtain the latest Installation media ===<br />
<br />
You can obtain Arch's latest installation media from [http://archlinux.org/download/ here].<br />
<br />
*Both the Core installer and the FTP/HTTP-downloads provide only the necessary packages to create an '''Arch Linux base system'''. ''Note that the Base System does not include a GUI. It is mainly comprised of the GNU toolchain, (compiler, assembler, linker, libraries, shell, and a few useful utilities) the Linux kernel, and a few extra libraries and modules.'' <br />
*Expanding your Arch Linux system beyond the base system, to include extra software, a Graphical User Interface, etc., is achieved from the command line, ''by the user'', via the pacman package manager to grab i686/x86-64 binary packages. The process is covered in detail below.<br />
====CD installer====<br />
Burn the .iso to a CD with your favorite burner, and continue with [[#Boot Arch Linux Installer | Boot Arch Linux Installer]]<br />
{{Box Note| Generally, using a maximum speed of no more than 8x is recommended for reliable burns, and some users recommend speeds '''''as low as 4x or 2x!''''' If you are experiencing unexpected behavior from the CD, try burning at the minimum speed supported by your system.}}<br />
<br />
====USB stick====<br />
<font color="red">'''WARNING''': This will destroy all data on your USB stick.</font><br />
<br />
Insert an empty or expendable USB stick, determine its path, and dd the .img to the USB stick like so:<br />
dd if=archlinux-2008.06-[core_or_ftp]-i686.img of=/dev/sd''x''<br />
where ''if='' is the path to the img file and ''of='' is your USB device. Make sure to use /dev/sd''x'' and not /dev/sd''x1''.<br />
<br />
Continue with [[#Boot Arch Linux Installer | Boot Arch Linux Installer]]<br />
<br />
===Boot Arch Linux Installer===<br />
As you follow these directions, you may find the [[Official Arch Linux Install Guide]] helpful as well. <br />
<br />
Insert the CD or USB stick and boot from it. You may have to <br />
change the boot order in your computer BIOS or press a key (usually DEL, F1, F2, F11 or F12) during the BIOS POST phase.<br />
<br />
Memory requirements:<br />
<br />
* CORE : 160 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
* FTP : 160 MB RAM x86_64/i686 (all packages selected, with swap partition)<br />
<br />
Choose Boot Archlive or Boot Archlive [legacy IDE] if you have trouble with libata/PATA. <br />
<br />
To change boot options press '''e''' for editing the boot lines. Many users may wish to change the resolution of the framebuffer, for more readable console output. Append:<br />
vga=773<br />
to the kernel line, followed by <ENTER>, for a 1024x768 framebuffer. Hit '''b''' to boot.<br />
<br />
The system will now boot and present a login prompt.<br />
<br />
===Login and Changing the keymap===<br />
Login as 'root'. If you have a non-US keyboard layout do:<br />
km<br />
at the prompt, and choose your keymap/console font.<br />
<br />
That's right, the ever-popular '''km''' program is back as of 2008-06!<br />
<br />
===Documentation===<br />
The guide you are now reading is available on the live system. Change to vc/2 with <ALT>+F2 and do:<br />
less /arch/beginnersguide.txt<br />
'''Less''' will allow you to page through the document. Change back to vc/1 with <ALT>+F1. <br />
<br />
Change back to vc/2 if you need to reference the Beginners' Guide at any time.<br />
<br />
===Start the Installation===<br />
As root, run the installer script from vc/1:<br />
/arch/setup <br />
<br />
====Select an installation source====<br />
After a welcome screen, you will be prompted for an installation source. Choose the appropriate source for the installer you are using. <br />
* If you chose the CORE installer, continue below with [[#Prepare Hard Drive|Prepare Hard Drive]].<br />
* FTP/HTTP only: You shall be prompted to load ethernet drivers manually, if desired. Udev is quite effective at loading the required modules, so you may assume it has already done so. You may verify this by invoking ifconfig -a from vc/3. (Select OK to continue.)<br />
<br />
===Configure Network (FTP/HTTP)===<br />
Available Interfaces will be presented. If an interface and HWaddr is listed, then your module has already been loaded. If your interface is not listed, you may probe it from the installer, or manually do so from another virtual console.<br />
<br />
The following screen will prompt you to ''Select the interface, Probe,'' or ''Cancel''. Choose the appropriate interface and continue.<br />
<br />
The installer will then ask if you wish to use DHCP. Choosing Yes will run '''dhcpcd''' to discover an available gateway and request an IP address; Choosing No will prompt you for your static IP, netmask, broadcast, gateway DNS IP, HTTP proxy, and FTP proxy. Lastly, you will be presented with an overview to ensure your entries are correct.<br />
<br />
====Wireless Quickstart (If you need wireless connectivity during the installation process)====<br />
<br />
The wireless drivers and utilities are now available to you in the live environment of the installation media. <br />
<br />
If you need wireless functionality from the initial installation (live installer environment) onwards, the basic procedure will be:<br />
* Switch to a free virtual console, e.g.: <ALT>+F3<br />
* Identify your wireless card and appropriate module:<br />
hwdetect --show-net<br />
* Ensure udev has loaded the module:<br />
lsmod | grep <name_of_module><br />
* If not, probe it:<br />
modprobe <name_of_module><br />
* Ensure the driver has created a usable wireless kernel interface:<br />
iwconfig<br />
(Output should show an available wireless interface)<br />
* Bring the interface up with <code>ifconfig <interface> up</code>. <br />
<br />
An example, using an atheros card and madwifi driver:<br />
ifconfig ath0 up<br />
(Remember, your interface may be named something else, depending on your module (driver) and chipset: wlan0, eth1, etc.)<br />
* Specify the id of the wireless network with iwconfig <interface> essid <youressid> key <yourwepkey>, e.g.:<br />
iwconfig ath0 essid linksys key 0241baf34c<br />
* Acquire an IP address with dhcpcd <interface>. e.g.:<br />
dhcpcd ath0<br />
* Ensure you can route:<br />
ping -c 3 www.google.com<br />
Done.<br />
<br />
After the initial Arch installation is complete, you may wish to refer to [[Wireless Setup]] to ensure a permanent configuration solution for your system.<br />
<br />
<br />
Return to vc/1 with <ALT>+F1. Continue with [[#Prepare Hard Drive|Prepare Hard Drive]]<br />
<br />
===Prepare Hard Drive===<br />
<font color="red"> '''WARNING:''' '''''Partitioning hard drives can destroy data. You are strongly cautioned and advised to backup your critical data if applicable.'''''</font><br />
<br />
Select the first menu entry "Prepare Hard Drive". <br />
* Option 1: Auto Prepare<br />
Auto-Prepare divides your disk into the following configuration:<br />
<br />
* ext2 /boot partition, default size 32MB. ''You will be prompted to modify the size to you requirement.''<br />
* swap partition, default size 256MB. ''You will be prompted to modify the size to you requirement.'' <br />
* A Separate / and /home partition, (sizes can also be specified). You may choose from ext2, ext3, reiserfs, xfs and jfs, but note that ''both / and /home must share the same fs type'' if choosing the Auto Prepare option.<br />
<br />
Be warned that Auto-prepare will completely erase the chosen hard drive. Read the <font color="red">warning</font> presented by the installer very carefully, and make sure the correct device is about to be partitioned.<br />
<br />
* Option 2: '''(Recommended)''' Partition Hard Drives (with cfdisk)<br />
<br />
This option will allow for the most robust and customized partitioning solution for your personal needs. <br />
<br />
''At this point, more advanced GNU/Linux users who are familiar and comfortable with manually partitioning may wish to skip down to '''[[#Select Packages|Select Packages]]''' below.''<br />
<br />
====Partition Hard Drives====<br />
<br />
=====Partition Info=====<br />
<br />
Partitioning a hard disk drive defines specific areas (the partitions) within the disk, that will each appear and behave as a separate disk and upon which a filesystem may be created (formatted). There exist 3 types of disk partitions: '''Primary, Extended, and Logical.''' <br />
<br />
'''Primary''' partitions can be bootable, and are limited to 4. If a partitioning scheme requires more than 4 partitions, we are forced to use an '''extended''' partition which will contain '''logical''' partitions.<br />
<br />
Extended partitions are not usable by themselves; they are merely a "container" for logical partitions. If required, a hard disk shall contain only one extended partition; which shall then be sub-divided into logical partitions. <br />
<br />
When partitioning a disk, one can observe this numbering scheme by creating primary partitions sda1-3 followed by creating an extended partition, sda4, and subsequently creating logical partition(s) within the extended partition; sda5, sda6, and so on.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on your hard drive where virtual ram resides, allowing the kernel to easily use disk storage for data that does not fit into physical RAM. <br />
<br />
Historically, the general rule for swap partition size was 2x the amount of physical RAM. Over time, as computers have gained ever larger memory capacities, this rule has become increasingly deprecated. Generally, on machines with up to 512MB RAM, the 2x rule is usually quite sufficient. On machines with 1GB RAM, generally a 1x rule is adequate. If you have gratuitous amounts of RAM (more than 1024 MB) it may be possible to completely forgo a swap partition altogether, though this is not recommended. We will create a 1 GB swap partition in this example.<br />
{{Box Note|If you plan on using suspend-to-disk, (hibernate) you must have a swap partition at least '''equal''' in size to the amount of physical RAM, and some Arch users even recommend oversizing it beyond the amount of physical RAM by 10-15%, to allow for possible bad sectors.}}<br />
<br />
=====Partition Scheme=====<br />
A disk partitioning scheme is a very personalized preference. Each user's choices will be unique to their own computing habits and requirements. Filesystem candidates for separate partitions include:<br />
<br />
'''/''' (root) ''The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory "/", even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system.'' <br />
<br />
'''/boot''' ''This directory contains the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files.''<br />
<br />
'''/home''' ''User data and user specific configuration files for applications are stored in each user's home directory in a file that starts with the '.' character (a "dot file").''<br />
<br />
'''/usr''' ''While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system update/upgrade. Any information that is host-specific or varies with time is stored elsewhere.''<br />
<br />
'''/tmp''' ''directory for programs that require temporary files''<br />
<br />
'''/var''' ''contains variable data; spool directories and files, administrative and logging data, pacman's cache, the ABS tree, etc.''<br />
<br />
There are several reasons for using separate filesystems, rather than combining everything into one:<br />
<br />
* Security: Each filesystem may be configured as 'nosuid', 'nodev', 'noexec', 'readonly', etc. (This is specified in /etc/fstab).<br />
* Stability: A user, or a runaway program, can completely fill a filesystem with garbage if they have write permissions for it. Critical programs, which reside on a different filesystem do not get interrupted.<br />
* Speed: A filesystem which gets written to frequently may become somewhat fragmented. (An effective method of avoiding fragmentation is to ensure that each filesystem is never in danger of filling up completely.) Separate filesystems remain unaffected, and each can be defragmented separately as well.<br />
* Integrity: If one filesystem becomes corrupted, separate filesystems remain unaffected.<br />
* Versatility: Sharing data across several systems becomes more expedient when independent filesystems are used. Separate filesystem types may also be chosen based upon the nature of data and usage. <br />
In this recommended example, we shall use separate partitions for /, /var, /home, and a swap partition. <br />
<br />
{{Box Note | /var contains many small files. You may wish to take this into consideration when choosing a filesystem type for it.}}<br />
<br />
=====How big should my partitions be?=====<br />
This question is best answered based upon individual needs. If you have little or no experience with partitioning, you may wish to simply create one partition for root, and one partition for swap. Or, follow the recommended example closely, and consider these guidelines to provide a frame of reference:<br />
* The root filesystem (/) in the example will contain the /usr directory, which can become moderately large, depending upon how much software is installed.<br />
<br />
* The /var filesystem will contain, among other data, the pacman cache. Keeping cached packages is useful and versatile; it provides the ability to downgrade packages if needed. The cache can grow large over long periods of time, but can be safely cleared if needed.<br />
* The /home filesystem is typically where user data, downloads, and multimedia reside, typically resulting in the largest filesystem on the drive by a large margin. <br />
* An extra 25% of space added to each filesystem will provide a cushion for unforeseen occurrence, expansion, and serve as a preventive against fragmentation.<br />
From the guidelines above, the example system shall contain a ~12GB root (/) partition, ~6GB /var, 1GB swap, and a /home containing the remaining disk space.<br />
<br />
=====cfdisk=====<br />
Start by creating the primary partition that will contain the '''root''', (/) filesystem. <br />
<br />
Choose '''N'''ew -> Primary and enter the desired size for root (/). Put the partition at the beginning of the disk. <br />
<br />
Also choose the '''T'''ype by designating it as '83 Linux'. The created / partition shall appear as sda1 in our example.<br />
<br />
Now create a primary partition for /var, designating it as '''T'''ype 83 Linux. The created /var partition shall appear as sda2 <br />
<br />
Next, create a partition for swap. Select an appropriate size and specify the '''T'''ype as 82 (Linux swap / Solaris). The created swap partition shall appear as sda3.<br />
<br />
Lastly, create a partition for your /home directory. Choose another primary partition and set the desired size.<br />
<br />
Likewise, select the '''T'''ype as 83 Linux. The created /home partition shall appear as sda4.<br />
<br />
Example:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Primary Linux 12440 #root<br />
sda2 Primary Linux 6256 #/var<br />
sda3 Primary Linux swap / Solaris 1024 #swap<br />
sda4 Primary Linux 140480 #/home<br />
<br />
Choose '''W'''rite and type ''''yes''''. Beware that this operation may destroy data on your disk. Choose '''Q'''uit to leave the partitioner. <br />
Choose Done to leave this menu and continue with "Set Filesystem Mountpoints".<br />
<br />
{{Box Note | Since the latest developments of the Linux kernel which include the libata and PATA modules, all IDE, SATA and SCSI drives have adopted the sd''x'' naming scheme. This is perfectly normal and should not be a concern.}}<br />
<br />
====Set Filesystem Mountpoints====<br />
First you will be asked for your swap partition. Choose the appropriate partition (sda3 in this example). You will be asked if you want to create a swap filesystem; select yes. Next, choose where to mount the / (root) directory (sda1 in the example). At this time, you will be asked to specify the filesystem type.<br />
<br />
=====Filesystem Types=====<br />
<br />
Again, a filesystem type is a very subjective matter which comes down to personal preference. Each has its own advantages, disadvantages, and unique idiosyncrasies. Here is a very brief overview of supported filesystems:<br />
<br />
1. '''ext2''' ''Second Extended Filesystem''- Old, reliable GNU/Linux filesystem. Very stable, but ''without journaling support''. May be inconvenient for root (/) and /home, due to very long fsck's. ''An ext2 filesystem can easily be converted to ext3.'' Generally regarded as a good choice for /boot/.<br />
<br />
2. '''ext3''' ''Third Extended Filesystem''- Essentially the ext2 system, but with journaling support. ext3 is completely compatible with ext2. ''Extremely'' stable, mature, and by far the most widely used, supported and developed GNU/Linux FS.<br />
<br />
'''High Performance Filesystems:'''<br />
<br />
3. '''ReiserFS''' - Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput based on an unconventional and creative algorithm. ReiserFS is touted as very fast, especially when dealing with many small files. ReiserFS is fast at formatting, yet comparatively slow at mounting. Quite mature and stable. ReiserFS is not actively developed at this time (Reiser4 is the new Reiser filesystem). Generally regarded as a good choice for /var/.<br />
<br />
4. '''JFS''' - IBM's '''J'''ournaled '''F'''ile'''S'''ystem- The first filesystem to offer journaling. JFS had many years of use in the IBM AIX® OS before being ported to Linux. JFS currently uses the least CPU resources of any GNU/Linux filesystem. Very fast at formatting, mounting and fsck's, and very good all-around performance, especially in conjunction with the deadline I/O scheduler. (See [[JFS]].) Not as widely supported as ext or ReiserFS, but very mature and stable.<br />
<br />
5. '''XFS''' - Another early journaling filesystem originally developed by Silicon Graphics for the IRIX OS and ported to Linux. XFS offers very fast throughput on large files and large filesystems. Very fast at formatting and mounting. Generally benchmarked as slower with many small files, in comparison to other filesystems. XFS is very mature and is currently the only available stable Linux FS with online defragmentation ability.<br />
<br />
===== A note on Journaling=====<br />
All above filesystems, except ext2, utilize [http://en.wikipedia.org/wiki/Journaling_file_system journaling]. Journaling file systems are fault-resilient file systems that use a journal to log changes before they're committed to the file system to avoid metadata corruption in the event of a crash. Note that not all journaling techniques are alike; specifically, only ext3 offers ''data-mode journaling'', (though, not by default), which journals ''both'' data ''and'' meta-data (but with significant speed penalty). The others only offer ''ordered-mode journaling'', which journals meta-data only. While all will return your filesystem to a valid state after recovering from a crash, ''data-mode journaling'' offers the greatest protection against file system corruption and data loss but can suffer from performance degradation, as all data is written twice (first to the journal, then to the disk). Depending on how important your data is, this may be a consideration in choosing your filesystem type.<br />
<br />
Choose and create the filesystem (format the partition) for / by selecting '''yes'''. You will now be prompted to add any additional partitions. In our example, sda2 and sda4 remain. For sda2, choose a filesystem type and mount it as /var. Finally, choose the filesystem type for sda4, and mount it as /home. Return to main menu.<br />
<br />
===Select Packages===<br />
<br />
*Core ISO: Choose CD as source and select the appropriate CD drive if you have more than one.<br />
*FTP ISO: Select an FTP/HTTP mirror. ''Note that archlinux.org is throttled to 50KB/s''.<br />
<br />
Package selection is split into two stages. First, you will select package categories, then you will be presented will the full lists of packages in the selected categories, allowing you to fine-tune your selections. The space bar selects and unselects the categories.<br />
<br />
*'''BASE:''' Contains the minimal GNU/Linux package set; just enough for a barebones environment; The linux kernel, GNU, fsprogs, bootloader, editor, bash, etc.<br />
*'''SUPPORT:''' Additional convenience packages for networking and filesystems, etc; gpm, fuse, dnsutils, wireless drivers, ndiswrapper, ntfs-3g, and so forth.<br />
*'''DEVEL:''' Critical software compiling tools such as GCC, autoconf, automake and make.<br />
*'''LIB:''' A thimbleful of various extra libraries such as gmp, lebelf, libevent, etc. <br />
<br />
Choose OK to continue and then choose 'yes' for 'Select all packages by default', for now.<br />
<br />
The next screen will present you with the selected packages within your selected categories. Leaving all selected is a safe choice for beginners, while more experienced users will wish to trim a few unnecessary packages. (For instance, an unneeded filesystem type utility, unneeded drivers, etc.)<br />
<br />
===Install Packages===<br />
Next, choose 'Install Packages'. You will be asked if you wish to keep the packages in the pacman cache. If you choose 'yes', you will have the flexibility to [[Downgrade packages|downgrade]] to previous package versions in the future, so this is recommended (you can always clear the cache in the future). The installer script will now install the selected packages, as well as the default Arch 2.6 kernel, to your system. <br />
*FTP ISO: The [[Pacman]] package manager will now download and install your selected packages. (See vc/5 for output, vc/1 to return to the installer)<br />
*CORE ISO: The packages will be installed from the CD.<br />
<br />
Note: For Arch 2007.08 FTP installation: after 'Install Packages' you have to upgrade pacman (<ALT>+F3, pacman -Sy pacman) and again 'Install Packages'.<br />
<br />
===Configure the System===<br />
''Closely following and understanding these steps is of key importance to ensure a properly configured system.'' <br />
<br />
The installer will ask if you want to choose [[Hwdetect|hwdetect]] to gather information for your configuration. Beginners should choose 'yes'. <br />
<br />
Advanced users who are thoroughly familiar with their hardware, required modules, and who are able to manually configure /etc/rc.conf, /etc/mkinitcpio and /etc/fstab, etc. from scratch may wish to choose 'no'. (Needless to say, this option is very involved, beyond the scope of this guide, and therefore is not covered.)<br />
<br />
Next, you will be asked if you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, encrypted volumes, and DSDT support. Choose yes if you need it; in our example nothing is needed. <br />
<br />
Now you will be asked which text editor you want to use; choose [http://en.wikipedia.org/wiki/Nano_%28text_editor%29 nano] or [http://en.wikipedia.org/wiki/Vim_%28text_editor%29 vim] (recommended). You will be presented with a menu including the main configuration files for your system. <br />
<br />
{{Box Note | ''It is very important at this point to edit, or at the very least, to verify by opening, every configuration file.'' The installer script relies on your input to create these files on your installation. A common error is to skip over these critical steps of configuration.}}<br />
<br />
=====Can the installer handle this more automatically?=====<br />
Hiding the process of system configuration is in direct opposition to [[The Arch Way]]. While it is true that recent versions of the kernel and hardware probing tools offer excellent hardware support and auto-configuration, Arch presents the user all pertinent configuration files during installation for the purposes of ''transparency and system resource control''. By the time you have finished modifying these files to your specifications, you will have learned the simple method of manual Arch Linux system configuration and become more familiar with the base structure, leaving you better prepared to use and maintain your new installation productively.<br />
<br />
====='''/etc/rc.conf'''=====<br />
Arch Linux follows in the '''*BSD''' tradition of utilizing '''/etc/rc.conf''' as the principal location for system configuration. This one file contains a wide range of configuration information, principally used at system startup. As its name directly implies, it also contains settings for and invokes the /etc/rc* files, and is, of course, sourced ''by'' these files. /etc/rc.conf offers a simple, elegant method of streamlining system resource configuration by encompassing a wide range of control, readily accessible for the Arch user. <br />
* '''LOCALIZATION''' section<br />
** '''LOCALE'''=: This sets your system locale, which will be used by all i18n-aware applications and utilities. You can get a list of the available locales by running 'locale -a' from the command line. This setting's default is fine for US English users. <br />
** '''HARDWARECLOCK'''=: Specifies whether the hardware clock, which is synchronized on bootup and on shutdown, stores '''UTC''' time, or the '''localtime'''. UTC makes sense because it greatly simplifies changing timezones and daylight savings time. localtime is necessary if you dual boot with an operating system such as Windows, that only stores localtime to the hardware clock.<br />
** '''TIMEZONE'''=: Specify your TIMEZONE. (All available zones are under /usr/share/zoneinfo/).<br />
** '''KEYMAP'''=: The available keymaps are in /usr/share/kbd/keymaps. Please note that this setting is only valid for your TTYs, not any graphical window managers or X!<br />
** '''CONSOLEFONT'''=: Available console fonts reside under /usr/share/kbd/consolefonts/ if you must change. The default (blank) is safe.<br />
** '''CONSOLEMAP'''=: Defines the console map to load with the setfont program on bootup. Possible maps are found in /usr/share/kbd/consoletrans, if needed. The default (blank) is safe. <br />
** '''USECOLOR'''=: Select "yes" if you have a color monitor and wish to have colors in your consoles.<br />
<br />
LOCALE="en_US.utf8"<br />
HARDWARECLOCK="localtime"<br />
TIMEZONE="US/Eastern"<br />
KEYMAP="us"<br />
CONSOLEFONT=<br />
CONSOLEMAP=<br />
USECOLOR="yes"<br />
* '''HARDWARE''' section<br />
** '''MOD_AUTOLOAD'''=: Setting this to "yes" will utilize '''udev''' to automatically probe hardware and load the appropriate modules during boot-up, (convenient with the default modular kernel). Setting this to "no" will rely on the user's ability to specify this information manually, or compile their own custom kernel and modules, etc. <br />
** '''MOD_BLACKLIST'''=: This has become deprecated in favor of adding blacklisted modules directly to the '''MODULES=''' line below. <br />
** '''MODULES'''=: Specify additional MODULES if you know that an important module is missing, ('''hwdetect''' should have filled in the most important modules). Also specify any blacklisted modules by prefixing them with a bang (!). Udev will be forced NOT to load blacklisted modules. In the example, the IPv6 module as well as the annoying pcspeaker are blacklisted. <br />
# Scan hardware and load required modules at bootup<br />
MOD_AUTOLOAD="yes"<br />
# Module Blacklist - Deprecated<br />
MOD_BLACKLIST=()<br />
#<br />
MODULES=(e100 eepro100 mii slhc snd-ac97-codec snd-intel8x0 soundcore !net-pf-10 !pcspkr)<br />
* '''NETWORKING''' section<br />
** '''HOSTNAME'''=:Set your HOSTNAME to your liking.<br />
** '''eth0'''=: 'Ethernet, card 0'. Adjust the interface IP address, netmask and broadcast address ''if'' you are using '''static IP'''. Set eth0="dhcp" if you want to use '''DHCP'''<br />
** '''INTERFACES'''=: Specify any/all interfaces here. If you do not use DHCP to configure a device, just keep in mind that the value of the variable (whose name must be equal to the name of the device which is supposed to be configured) equals the line which would be appended to the ifconfig command if you were to configure the device manually in the shell.<br />
** '''gateway'''=: If you are using '''static IP''', set the gateway address. If using '''DHCP''', you can usually ignore this variable, though some users have reported the need to define it.<br />
** '''ROUTES'''=: If you are using static '''IP''', remove the '''!''' in front of 'gateway'. If using '''DHCP''', you can usually leave this variable commented out with the bang (!), but again, some users require the gateway and ROUTES defined. If you experience networking issues with pacman, for instance, you may want to return to these variables. <br />
<br />
Example, using '''DHCP''':<br />
HOSTNAME="arch"<br />
#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" <br />
eth0="dhcp"<br />
INTERFACES=(eth0)<br />
gateway="default gw 192.168.0.1"<br />
ROUTES=(!gateway)<br />
{{Box Note | Arch uses the '''dhcpcd''' DHCP client. Alternatively, '''dhclient''' is available from the [extra] repository via pacman.}}<br />
* '''DAEMONS''' section<br />
This array simply lists the names of those scripts contained in /etc/rc.d/ which are to be started during the boot process, and the order in which they start. <br />
DAEMONS=(@network syslog-ng netfs crond)<br />
*If a script name is prefixed with a bang (!), it is not executed. <br />
*If a script is prefixed with an "at" symbol (@), then it will be executed in the background; the startup sequence will not wait for successful completion of each daemon before continuing to the next. (Useful for speeding up system boot).<br />
*Edit this array whenever new system services are installed, if starting them automatically during bootup is desired. <br />
<br />
This 'BSD-style' init, is the Arch way of handling what others handle with various symlinks to an /etc/init.d directory.<br />
<br />
======About DAEMONS======<br />
You do not have to change the [[daemons]] line at this time, but it is useful to explain what daemons are, because we need them later in this guide. <br />
<br />
Analogous to a Windows service, a ''daemon'' is a program that runs in the background, waiting for events to occur and offering services. A good example is a webserver that waits for a request to deliver a page or an SSH server waiting for someone trying to log in. While these are full-featured applications, there are daemons whose work is not that visible. Examples are a daemon which writes messages into a log file (e.g. syslog, metalog), a daemon which lowers your CPU's frequency if your system has nothing to do (e.g.:cpufreq), and a daemon which offers you a graphical login (e.g.: gdm, kdm). All these programs can be added to the daemons line and will be started when the system boots. Useful daemons will be presented during this guide.<br />
<br />
Historically, the term ''daemon'' was coined by the programmers of MIT's Project MAC. They took the name from ''Maxwell's demon'', an imaginary being from a famous thought experiment that constantly works in the background, sorting molecules. <code>UNIX</code> systems inherited this terminology and created the backronym '''d'''isk '''a'''nd '''e'''xecution '''mon'''itor. <br />
<br />
*<font color="blue">'''Tip:</font> All Arch daemons reside under /etc/rc.d/'''<br />
<br />
=====/etc/fstab=====<br />
The '''fstab''' (for '''f'''ile '''s'''ystems '''tab'''le) is part of the system configuration listing all available disks and disk partitions, and indicating how they are to be initialized or otherwise integrated into the overall system's filesystem. The '''/etc/fstab''' file is most commonly used by the '''mount''' command. The mount command takes a filesystem on a device, and adds it to the main system heirarchy that you see when you use your system. '''mount -a''' is called from /etc/rc.sysinit, about 3/4 of the way through the boot process, and reads /etc/fstab to determine which options should be used when mounting the specified devices therein. If '''noauto''' is appended to a filesystem in /etc/fstab, '''mount -a''' will not mount it at boot.<br />
<br />
An example '''/etc/fstab''':<br />
<br />
#<br />
# /etc/fstab: static file system information<br />
#<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
#/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0<br />
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0<br />
#/dev/fd0 /media/fl auto user,noauto 0 0<br />
/dev/disk/by-uuid/0ec-933.. / jfs defaults,noatime,nodiratime 0 1<br />
/dev/disk/by-uuid/7ef-223.. /home jfs defaults,noatime,nodiratime 0 2<br />
/dev/disk/by-uuid/530-1e-.. swap swap defaults 0 0<br />
/dev/disk/by-uuid/4fe-110.. /var reiserfs defaults,noatime,notail 0 2 <br />
{{Box Note | '''''The 'noatime' and 'nodiratime' options may safely be appended to / and /home regardless of your specified filesystem type for increased speed, performance, and power efficiency, for laptops as well as desktops. 'notail' disables the ReiserFS tailpacking feature, for added performance at the cost of slightly less efficient disk usage.'''''}}<br />
Modify your '''fstab''' to your requirements.<br />
{{Box Note | As of 2008-04rc, Arch is now utilizing the UUID, or Universally Unique Identifier naming convention, for consistent device mapping. This is due to active developments in the kernel and also udev, which may randomly change the ordering in which drivers for storage controllers are loaded, yielding an unbootable system/kernel panic. Nearly every motherboard has several controllers (onboard SATA, onboard IDE), and due to the aforementioned development updates, /dev/sda may become /dev/sdb on the next reboot- hence the persistent device naming convention of UUID has been adopted for reliability. ''If you do not need nor wish to use UUID, simply change your fstab to use whatever naming convention desired.'' (See [[Persistent block device naming| this wiki article]] for more information on persistent block device naming. )}}<br />
ls -lF /dev/disk/by-uuid/<br />
Will list all partitions by uuid.<br />
<br />
*If you plan on using '''hal''' to automount media such as DVDs, you may wish to comment out the cdrom and dvd entries in preparation for '''hal''', which will be installed later in this guide.<br />
<br />
<br />
<br />
Expanded information available in the [[Fstab]] wiki entry.<br />
<br />
====='''/etc/mkinitcpio.conf and /etc/modprobe.conf'''=====<br />
Editing these configurations is unnecessary at this point. <br />
<br />
* '''mkinitcpio.conf''' This file allows you to fine-tune the initial ram filesystem (also commonly referred to as the initial ramdisk or "initrd") for your system. The initrd is a gzipped image that is read by the kernel during bootup. The purpose of the initrd is to bootstrap the system to the point where it can access the root filesystem. This means it has to load any modules that are required for devices like IDE, SCSI, or SATA drives (or USB/FW, if you are booting off a USB/FW drive). Once the initrd loads the proper modules, either manually or through udev, it passes control to the Arch system and your bootup continues. For this reason, the initrd only needs to contain the modules necessary to access the root filesystem. It does not need to contain every module you would ever want to use. The majority of your everyday modules will be loaded later on by udev, during the init process.<br />
<br />
* '''modprobe.conf''' can be used to set special configuration options for the kernel modules<br />
<br />
=====/etc/resolv.conf (for Static IP)=====<br />
The ''resolver'' is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). One of the main functions of DNS is to translate domain names into IP addresses, to make the Web a friendlier place. The resolver configuration file, or /etc/resolv.conf, contains information that is read by the resolver routines the first time they are invoked by a process.<br />
<br />
*''If you are using DHCP, you may safely ignore this file, as by default, it will be dynamically created and destroyed by the dhcpcd daemon. You may change this default behavior if you wish. (See [http://wiki.archlinux.org/index.php/Network#For_DHCP_IP Network]]).''<br />
<br />
If you use a static IP, set your DNS servers in /etc/resolv.conf (nameserver <ip-address>). You may have as many as you wish, e.g.:<br />
nameserver 208.67.222.222<br />
nameserver 208.67.220.220<br />
<br />
If you are using a router, you will probably want to specify your DNS servers in the router itself, and merely point to it from your '''/etc/resolv.conf''', using your router's IP (which is also your gateway from '''/etc/rc.conf'''), e.g.:<br />
nameserver 192.168.1.1<br />
<br />
If using '''DHCP''', you may also specify your DNS servers in the router, or allow automatic assignment from your ISP, if your ISP is so equipped.<br />
<br />
=====/etc/hosts=====<br />
<br />
This file associates IP addresses with hostnames and aliases, one line per IP address. For each host a single line should be present with the following information:<br />
<IP-address> <hostname> [aliases...]<br />
Add your ''hostname'', coinciding with the one specified in /etc/rc.conf, as an alias, so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost '''''yourhostname'''''<br />
{{Box Note |''This format, '''including the 'localhost' and your actual host name''', is required for program compatibility! Errors in this entry may cause poor network performance and/or certain programs to open very slowly, or not work at all. This is a very common error for beginners.''}}<br />
<br />
If you use a static IP, add another line using the syntax: <static-IP> <hostname.domainname.org> <hostname> e.g.:<br />
192.168.1.100 '''''yourhostname'''''.domain.org '''''yourhostname'''''<br />
<br />
*<font color="blue">'''TIP''':</font> For convenience, you may also use /etc/hosts aliases for hosts on your network, and/or on the Web, e.g.:<br />
64.233.169.103 www.google.com g<br />
192.168.1.90 media<br />
192.168.1.88 data<br />
The above example would allow you to access google simply by typing 'g' into your browser, and access to a media and data server on your network by name and without the need for typing out their respective IP addresses.<br />
<br />
=====/etc/hosts.deny and /etc/hosts.allow=====<br />
Modify these configurations according to your needs if you plan on using the [[SSH|ssh]] daemon. The default configuration will reject all incoming connections, not only ssh connections. Edit your '''/etc/hosts.allow '''file and add the appropriate parameters: <br />
<br />
* let everyone connect to you<br />
sshd: ALL<br />
<br />
* restrict it to a certain ip<br />
sshd: 192.168.0.1<br />
<br />
* OR restrict for an IP range<br />
sshd: 10.0.0.0/255.255.255.0<br />
<br />
If you do not plan on using the [[SSH|ssh]] daemon, leave this file at the default, (empty), for added security.<br />
<br />
=====/etc/locale.gen=====<br />
<br />
The '''locale-gen''' command reads from '''/etc/locale.gen''' to generate specific locales. They can then be used by '''glibc''' and any other locale-aware program or library for rendering "peculiar" text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards. The ability to setup a default locale is a great built-in privilege of using a <code>UNIX</code>-like operating system.<br />
<br />
By default /etc/locale.gen is an empty file with commented documentation. Once edited, the file remains untouched. '''locale-gen''' runs on every '''glibc''' upgrade, generating all the locales specified in /etc/locale.gen.<br />
<br />
Choose the locale(s) you need (remove the # in front of the lines you want), e.g.:<br />
en_US ISO-8859-1<br />
en_US.UTF-8 <br />
<br />
The installer will now run the locale-gen script, which will generate the locales you specified. You may change your locale in the future by editing /etc/locale.gen and subsequently running 'locale-gen' as root.<br />
<br />
{{Box Note |'''''If you fail to choose your locale, this will lead to a "The current locale is invalid..." error. This is perhaps the most common mistake by new Arch users, and also leads to the most commonly asked questions on the forum.'''''}}<br />
<br />
=====Root password=====<br />
Finally, set a root password and make sure that you remember it later. Return to the main menu and continue with installing bootloader.<br />
<br />
=====Pacman-Mirror=====<br />
Choose a mirror repository for '''pacman'''. <br />
*''archlinux.org is throttled, limiting downloads to 50KB/s'' <br />
<br />
Return to the main menu.<br />
<br />
===Install Bootloader===<br />
Because we have no secondary operating system in our example, we will need a bootloader. [http://www.gnu.org/software/grub/ GNU GRUB] is the recommended bootloader. Alternatively, you may choose [http://lilo.go.dyndns.org/ LILO]. <br />
====GRUB====<br />
The provided '''GRUB''' configuration ('''/boot/grub/menu.lst''') should be sufficient, but verify its contents to ensure accuracy. You may want to alter the resolution of the console by adding a vga=<number> kernel argument corresponding to your desired virtual console resolution. (A table of resolutions and the corresponding numbers is printed in the menu.lst.)<br />
<br />
Example: <br />
title Arch Linux (Main)<br />
root (hd0,0) <br />
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/0ec1-9339.. ro vga=773<br />
initrd /boot/kernel26.img<br />
{{Box Note | '''''The linux kernel, 'vmlinuz', is so named because it incorporated '''v'''irtual '''m'''emory capability early in its development. The '''z''' denotes a zipped (compressed) image.'''''}}<br />
<br />
Explanation:<br />
<br />
Line 1: '''title''': A printed menu selection. "Arch Linux (Main)" will be printed on the screen as a menu selection.<br />
<br />
Line 2: '''root''': '''GRUB''''s root; the drive and partition where the kernel (/boot) resides, according to system BIOS. (More accurately, where GRUB's stage2 file resides). '''NOT necessarily the root''' (/) file system, as they can reside on separate partitions. GRUB's numbering scheme starts at 0, and uses an hd''x,x'' format regardless of IDE or SATA, and enclosed within parentheses. <br />
<br />
The example indicates that /boot is on the first partition of the first drive, according to BIOS, or, (hd0,0).<br />
<br />
Line 3: '''kernel''': This line specifies:<br />
<br />
* The path and filename of the kernel '''''relative to GRUB's root'''''.<br />
In the example, /boot is merely a directory residing on the same partition as / and '''vmlinuz26''' is the kernel filename; '''/boot/vmlinuz26'''. ''If /boot were on a separate partition, the path and filename would be simply '''/vmlinuz26''', being relative to '''GRUB''''s root.'' <br />
<br />
* The root= argument to the kernel statement specifies the partition containing the root (/) directory in the booted system, (more accurately, the partition containing '''/sbin/init'''), ''according to the UUID numbering scheme'' as of 2008-04rc, which uses the /dev/disk/by-uuid/xxxx-xxxx-xxxx format. <br />
<br />
*An easy way to distinguish the 2 appearances of 'root' in /boot/grub/menu.lst is to remember that the first root statement ''informs GRUB where the kernel resides'', whereas the second root= kernel argument ''tells the kernel where the root filesystem (/) resides''.<br />
<br />
* Kernel options. <br />
<br />
In our example, '''ro''' mounts the filesystem as read only during startup, and the '''"vga=773"''' argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Line 4: '''initrd''': (For Initial RAM disk) The path and filename of the initial RAM filesystem '''relative to GRUB''''s root. Again, in the example, /boot is merely a directory residing on the same partition as / and '''kernel26.img''' is the initrd filename; '''/boot/kernel26.img'''. ''If /boot were on a separate partition, the path and filename would be simply '''/kernel26.img''', being relative to '''GRUB''''s root.'' <br />
<br />
Install the '''GRUB''' bootloader to the master boot record, (sda in our example).<br />
<br />
===Reboot===<br />
<br />
That's it; You have configured and installed your Arch Linux base system. Exit the install, and type the magic word:<br />
<br />
reboot<br />
(Be sure to remove the installer CD)<br />
<br />
Your new Arch Linux system will boot up and finish with a login prompt (you may want to change the boot order in your '''BIOS''' back to booting from hard disk).<br />
<br />
'''Congratulations, and welcome to your shiny, new Arch Linux base system!'''<br />
<br />
Your new Arch Linux base system is now a functional GNU/Linux environment ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes. <br />
<br />
Login with the root account. We will configure pacman and update the system as root, then add a normal user. <br />
{{Box Note |Virtual consoles 1-6 are available.}}<br />
<br />
===Configuring the network (if necessary)===<br />
*''This section will assist you in configuring most types of networks, if your network configuration is not working for you.''<br />
<br />
If you properly configured your system, you should have a working network. Try to ping www.google.com to verify this.<br />
ping -c 3 www.google.com<br />
<br />
''If you have successfully established a network connection, continue with '''[[#Update, Sync and Upgrade the system with pacman|Update, Sync and Upgrade the system with pacman]]'''.''<br />
<br />
If, after trying to ping www.google.com, you get an "unknown host" error, you may conclude that your network is not properly configured. You may choose to double-check the following files for integrity and proper settings:<br />
<br />
'''/etc/rc.conf''' # Specifically, check your HOSTNAME= and NETWORKING section for typos and errors.<br />
<br />
'''/etc/hosts''' # Double-check your format. (See above.)<br />
<br />
'''/etc/resolv.conf''' # If you are using a static IP. If you are using DHCP, this file will be dynamically created and destroyed by default, but can be changed to your preference. (See [[Network]].)<br />
<br />
Advanced instructions for configuring the network can be found in the [[Network]] article.<br />
<br />
====Wired LAN====<br />
<br />
Check your Ethernet with<br />
ifconfig -a<br />
All interfaces will be listed. You should see an entry for eth0, or perhaps eth1. <br />
*'''Static IP'''<br />
<br />
If required, you can set a new static IP with:<br />
ifconfig eth0 <ip address> netmask <netmask> up <br />
and the default gateway with<br />
route add default gw <ip address of the gateway><br />
Verify that /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.com. If everything is working now, adjust /etc/rc.conf as described above for static IP. <br />
*'''DHCP'''<br />
If you have a DHCP server/router in your network try:<br />
dhcpcd eth0<br />
If this is working, adjust /etc/rc.conf as described above, for dynamic IP.<br />
<br />
====Wireless LAN====<br />
Detailed setup guide: [[Wireless Setup]]<br />
<br />
====Analog Modem====<br />
To be able to use a Hayes-compatible, external, analog modem, you need to at least have the ppp package installed. Modify the file /etc/ppp/options to suit your needs and according to man pppd. You will need to define a chat script to supply your username and password to the ISP after the initial connection has been established. The manpages for pppd and chat have examples in them that should suffice to get a connection up and running if you're either experienced or stubborn enough. With udev, your serial ports usually are /dev/tts/0 and /dev/tts/1.<br />
Tip: Read [[Dialup without a dialer HOWTO]].<br />
<br />
Instead of fighting a glorious battle with the plain pppd, you may opt to install wvdial or a similar tool to ease the setup process considerably. In case you're using a so-called WinModem, which is basically a PCI plugin card working as an internal analog modem, you should indulge in the vast information found on the [http://www.linmodems.org/ LinModem] homepage.<br />
<br />
====ISDN====<br />
<br />
Setting up ISDN is done in three steps:<br />
# Install and configure hardware<br />
# Install and configure the ISDN utilities<br />
# Add settings for your ISP <br />
<br />
The current Arch stock kernels include the necessary ISDN modules, meaning that you will not need to recompile your kernel unless you're about to use rather odd ISDN hardware. After physically installing your ISDN card in your machine or plugging in your USB ISDN-Box, you can try loading the modules with modprobe. Nearly all passive ISDN PCI cards are handled by the hisax module, which needs two parameters: type and protocol. You must set protocol to '1' if your country uses the 1TR6 standard, '2' if it uses EuroISDN (EDSS1), '3' if you're hooked to a so-called leased-line without D-channel, and '4' for US NI1.<br />
<br />
Details on all those settings and how to set them is included in the kernel documentation, more specifically in the isdn subdirectory, and available online. The type parameter depends on your card; a list of all possible types can be found in the README.HiSax kernel documentation. Choose your card and load the module with the appropriate options like this:<br />
<br />
modprobe hisax type=18 protocol=2<br />
<br />
This will load the hisax module for my ELSA Quickstep 1000PCI, being used in Germany with the EDSS1 protocol. You should find helpful debugging output in your /var/log/everything.log file, in which you should see your card being prepared for action. Please note that you will probably need to load some USB modules before you can work with an external USB ISDN Adapter.<br />
<br />
Once you have confirmed that your card works with certain settings, you can add the module options to your /etc/modprobe.conf:<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Alternatively, you can add only the options line here, and add hisax to your MODULES array in the rc.conf. It's your choice, really, but this example has the advantage that the module will not be loaded until it's really needed.<br />
<br />
That being done, you should have working, supported hardware. Now you need the basic utilities to actually use it!<br />
<br />
Install the isdn4k-utils package, and read the manpage to isdnctrl; it'll get you started. Further down in the manpage you will find explanations on how to create a configuration file that can be parsed by isdnctrl, as well as some helpful setup examples. Please note that you have to add your SPID to your MSN setting separated by a colon if you use US NI1.<br />
<br />
After you have configured your ISDN card with the isdnctrl utility, you should be able to dial into the machine you specified with the PHONE_OUT parameter, but fail the username and password authentication. To make this work add your username and password to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets as if you were configuring a normal analogous PPP link, depending on which protocol your ISP uses for authentication. If in doubt, put your data into both files.<br />
<br />
If you set up everything correctly, you should now be able to establish a dial-up connection with<br />
isdnctrl dial ippp0<br />
as root. If you have any problems, remember to check the logfiles!<br />
<br />
====DSL (PPPoE)====<br />
<br />
These instructions are relevant to you only if your PC itself is supposed to manage the connection to your ISP. You do not need to do anything but define a correct default gateway if you are using a separate router of some sort to do the grunt work.<br />
<br />
Before you can use your DSL online connection, you will have to physically install the network card that is supposed to be connected to the DSL-Modem into your computer. After adding your newly installed network card to the modules.conf/modprobe.conf or the MODULES array, you should install the rp-pppoe package and run the pppoe-setup script to configure your connection. After you have entered all the data, you can connect and disconnect your line with<br />
<br />
/etc/rc.d/adsl start<br />
<br />
and<br />
<br />
/etc/rc.d/adsl stop<br />
<br />
respectively. The setup usually is rather easy and straightforward, but feel free to read the manpages for hints. If you want to automatically 'dial in' on boot-up, add adsl to your DAEMONS array.<br />
<br />
===Update, Sync and Upgrade the system with [[pacman]]===<br />
Now we will update the system using [[pacman]]. <br />
<br />
====What is pacman ?====<br />
[[Pacman]] is the '''pac'''kage '''man'''ager of Arch Linux. Pacman is written in C and is designed from the ground up to be lightweight, fast, simple, and extremely versatile. It manages your entire package system and handles installation, removal, package downgrade (through cache), custom compiled package handling, automatic dependency resolution, remote and local searches and much more. Arch uses the .tar.gz package format, which further enhances pacman's speed; Gzipped tarballs, though slightly larger, are decompressed many times faster than their Bzipped counterparts, and are therefore installed ''much'' more expediently. <br />
<br />
We will use pacman to download software packages from remote repositories and install them onto your system.<br />
<br />
Pacman is the most important tool in your Arch Linux toolbox for building the base system into whatsoever you please.<br />
<br />
====Configuring pacman====<br />
<br />
=====Package Repositories and /etc/pacman.conf=====<br />
Arch currently offers the following 5 repositories readily accessible through pacman:<br />
<br />
'''[core]'''<br />
<br />
The simple principle behind [core] is to provide only one of each necessary tool for a base Arch Linux system; The GNU toolchain, the Linux kernel, one editor, one command line browser, etc. (There are a few exceptions to this. For instance, both vi and nano are provided, allowing the user to choose one or both.) It contains all the packages that MUST be in perfect working order to make sure your system continues to run. These are the absolute system-critical packages. Developer maintained.<br />
<br />
*''The Core installation media simply contains an installer script, and a snapshot of the core repository at the time of release.''<br />
<br />
'''[extra]'''<br />
<br />
The [extra] repository contains all Arch packages that are not themselves necessary for a base Arch system, but contribute to a more full-featured environment. '''X''', KDE, and Apache, for instance, can be found here. Developer maintained.<br />
<br />
'''[unstable]'''<br />
<br />
The [unstable] repository contains experimental and unstable software, especially if the development version of a package has become popular for some reason. For example, perhaps the upstream stable version is hopelessly out of date, or the unstable version has some groundbreaking changes that a lot of users seem interested in, like experimental kernel drivers or -svn package versions. Developer maintained.<br />
<br />
{{Box Note |'''Contrary to popular belief, it is perfectly safe to enable the unstable repository, as there are no name collisions with [core], [community] or [extra]. Packages from [unstable] are only installed if you explicitly do so. If there is a conflict between an [Unstable] package and an installed package, pacman will warn you and resolve the conflict, if prompted, by removing the installed package.'''}}<br />
<br />
The [unstable] repository is currently not maintained for ''x86_64''.<br />
<br />
'''[testing]'''<br />
<br />
The [testing] repository contains packages that are candidates for the [core], [extra] or [unstable] repositories. New packages go into [testing] if:<br />
* they are expected to break something on update and need to be tested first<br />
* they require other packages to be rebuilt. In this case, all packages that need to be rebuilt are put into [testing] first and when all rebuilds are done, they are moved back to the other repositories. Developer maintained.<br />
<br />
[testing] is the only repository that can have name collisions with any of the other official repositories. If enabled, it has to be the first repo listed in your ''pacman.conf'' file.<br />
<br />
<font color="red">'''WARNING''': '''''Be careful when enabling [testing]. Your system may break after you update with [testing] enabled. Only experienced users should use it.'''''</font><br />
<br />
'''[community]'''<br />
<br />
The [community] repository is maintained by the ''Trusted Users (TUs)'' and is part of the ''Arch User Repository ([[AUR]])''. It contains binary packages from the ''AUR'' that have enough votes and were adopted by a ''TU''. Like all repos listed above, [community] may be readily accessed by pacman.<br />
<br />
The '''[[AUR]]''' also contains the '''unsupported''' branch, which cannot be accessed directly by pacman*. [unsupported] contains more than eight thousand PKGBUILD scripts for building packages from source, that may be unavailable through the other repos. <br />
<br />
<nowiki>*</nowiki> '''''[[AUR Helpers]]''''' can help you seamlessly access AUR.<br />
<br />
'''/etc/pacman.conf'''<br />
<br />
pacman will attempt to read /etc/pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package [[Official Repositories|repository]] that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
nano /etc/pacman.conf<br />
Example:<br />
# GENERAL OPTIONS<br />
#<br />
[options]<br />
LogFile = /var/log/pacman.log<br />
NoUpgrade = etc/passwd etc/group etc/shadow etc/sudoers<br />
NoUpgrade = etc/fstab etc/raidtab etc/ld.so.conf<br />
NoUpgrade = etc/rc.conf etc/rc.local<br />
NoUpgrade = etc/modprobe.conf etc/modules.conf<br />
NoUpgrade = boot/grub/menu.lst<br />
#IgnorePkg = wine<br />
HoldPkg = pacman glibc<br />
#XferCommand = /usr/bin/wget --passive-ftp -nv -c -O %o %u<br />
#XferCommand = /usr/bin/aria2c -s 2 -m 2 -d / -o %o %u<br />
ILoveCandy<br />
#<br />
# REPOSITORIES<br />
# - can be defined here or included from another file<br />
# - pacman will search repositories in the order defined here.<br />
# - local/custom mirrors can be added here or in separate files<br />
# <br />
<br />
#[testing]<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[unstable]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#Server = file:///home/custompkgs<br />
<br />
Enable all desired repositories (remove the # in front of the 'Include =' and '[repository]' lines).<br />
<br />
<br />
*'''''When choosing repos, be sure to uncomment both the repository header lines in [brackets] as well as the 'Include =' lines. Failure to do so will result in the selected repository being omitted! This is a very common error.'' '''<br />
<br />
=====/etc/pacman.d/mirrorlist=====<br />
Faster mirrors will dramatically improve pacman performance, and your overall Arch Linux experience.<br />
<br />
Edit /etc/pacman.d/mirrorlist:<br />
nano /etc/pacman.d/mirrorlist<br />
Remove all mirrors which are not on your continent, or are extremely distant. (Using nano, you may use CTRL-K to cut each unneeded line.) <br />
<br />
Edit /etc/pacman.d/mirrorlist by placing the best mirror at the top of the list. (Recall that archlinux.org is throttled to 50KB/s). If using nano, you can cut a line with CTRL-K and paste with CTRL-U. <br />
<br />
After changing mirrors, issue the following command:<br />
pacman -Syy<br />
This will force pacman to resynchronize with the new repo. Issuing pacman -Syy ''whenever a mirror is changed'', is good practice and will avoid possible headaches.<br />
=====Ignoring packages=====<br />
When you execute the command "pacman -Syu", your entire system will be updated. It is possible that you want to prevent a package from being upgraded. An example could be the kernel (kernel26) or a package for which an upgrade may prove problematic for your system. In this case, you have two options; indicate the packages you want to skip in the pacman command line using the --ignore switch (do pacman -S --help for details) or permanently indicate the packages you want to skip in your /etc/pacman.conf file:<br />
<br />
IgnorePkg = kernel26<br />
The typical way to use Arch is to use pacman to install all packages unless there is no package available, in which case you can build your own package using [[ABS]]. Many user-contributed package build scripts are also available in the [[AUR]]. <br />
<br />
You are expected to keep your system up to date with pacman -Syu, rather than selectively upgrading packages. You may diverge from this typical usage as you wish; just be warned that there is a greater chance that things will not work as intended and that it could break your system. The majority of complaints happen when selective upgrading, unusual compilation or improper software installation is performed. Use of '''IgnorePkg''' in /etc/pacman.conf is therefore discouraged, and should only be used sparingly, if you know what you are doing.<br />
<br />
=====Ignoring Configuration Files=====<br />
In the same vein, you can also "protect" your configuration/system files from being overwritten during "pacman -Su" using the following option in your /etc/pacman.conf<br />
<br />
NoUpgrade = etc/lilo.conf boot/grub/menu.lst<br />
<br />
====Update System====<br />
Update, sync, and '''upgrade''' your entire new system with:<br />
pacman -Syu<br />
pacman will now fetch the latest information about available packages and perform all available upgrades. (You may be prompted to upgrade pacman itself at this point. If so, say yes, and then reissue the pacman -Syu command when finished.) <br />
Reboot if a kernel upgrade has occurred. <br />
{{Box Note|'''''Occasionally, configuration changes may take place requiring user action during an update; read pacman's output for any pertinent information.'''''}}<br />
If the messages go by too fast to read, you can look at them later at /var/log/pacman.log.<br />
<br />
=====The beauty of the Arch rolling release model=====<br />
Keep in mind that Arch is a '''rolling release''' distribution. This means there is never a reason to reinstall or perform elaborate system rebuilds to upgrade to the newest version. Simply issuing '''pacman -Syu''' periodically keeps your entire system up-to-date and on the bleeding edge. At the end of this upgrade, your system is completely current. <br />
Reboot if a kernel upgrade has occurred.<br />
<br />
====Get familiar with pacman====<br />
Pacman is the Arch user's best friend. It is highly recommended to study and learn how to use the pacman tool. Try:<br />
man pacman<br />
Check out the bottom of this article, and look up the [[pacman]] wiki entries at your leisure.<br />
<br />
<br />
<br />
===Add a user and setup groups===<br />
You should not do your everyday work using the root account. It is more than poor practice; it is dangerous. Root is for administrative tasks. Instead, add a normal user account using:<br />
adduser<br />
While most default options are safe to use, you may want to add audio, optical, storage, video, and wheel when prompted for additional groups (separate them with a comma and no space) - especially if you are planning on having a full-featured desktop environment. <br />
<br />
Groups and users thereof are defined in /etc/group. <br />
<br />
They include:<br />
<br />
*'''audio''' - for tasks involving sound card and related software<br />
*'''floppy''' - for access to a floppy if applicable<br />
*'''lp''' - for managing printing tasks<br />
*'''optical''' - for managing tasks pertaining to the optical drive(s)<br />
*'''storage''' - for managing storage devices<br />
*'''video''' - for video tasks and 3d acceleration<br />
*'''wheel''' - for using sudo<br />
<br />
See the [[Groups]] article to understand what groups you need to be a member of. <br />
<br />
Check the man pages for usermod and gpasswd for more information.<br />
===Install and setup Sudo===<br />
<br />
See [[Sudo]]<br />
<br />
==Part II: Install X and configure ALSA==<br />
<br />
<br />
===Configure the audio card with alsamixer===<br />
The Advanced Linux Sound Architecture (known by the acronym '''ALSA''') is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing device drivers for sound cards. Besides the sound device drivers, '''ALSA''' also bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers. <br />
-----<br />
{{Box Note|udev will automatically probe your hardware on boot-up, loading the corresponding module for your audio card. Your sound should already be working, but you cannot hear anything because it is muted by default.}} <br />
The alsa-utils package contains alsamixer, which will allow us to configure the sound device from the console. (You may also run alsamixer from an '''X''' environment later.)<br />
<br />
Install the alsa-utils package:<br />
pacman -S alsa-utils<br />
Did you add your normal user to the audio group? If not, now would be a good time. As root do:<br />
gpasswd -a yourusername audio<br />
Log out the root user, and login as non-root user.<br />
<br />
As '''''normal, non-root''''' user, do: <br />
'''$''' alsamixer<br />
Unmute the Master and PCM channels by scrolling to them with cursor left/right and pressing '''M'''. Increase the volume levels with the cursor-up key. (70-90 Should be a safe range.) Some machines, (like the Thinkpad T61), have a '''Speaker''' channel which must be unmuted and adjusted as well. Leave alsamixer by pressing ESC. <br />
==== Sound Test ====<br />
Test your sound configuration as normal user using aplay:<br />
aplay /usr/share/sounds/alsa/Front_Center.wav<br />
You should hear a very eloquent woman say, "Front, center."<br />
<br />
''Note: If you still cannot hear any sound, try checking (by running alsamixer) if Speaker is muted. If so, press '''M''' to unmute it and then try playing the test sound again.''<br />
<br />
Then run alsactl as root:<br />
alsactl store<br />
This will create '/etc/asound.state', saving the alsamixer settings. <br />
<br />
Also, add the alsa ''daemon'' to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings on boot-up.<br />
nano /etc/rc.conf<br />
DAEMONS=(syslog-ng network crond '''alsa''')<br />
''Note that the alsa daemon merely restores your volume mixer levels on boot up by reading /etc/asound.state. It is separate from the alsa audio library (and kernel level API).''<br />
<br />
Expanded information available in the [[ALSA]] wiki entry.<br />
<br />
===Installing and configuring X===<br />
The '''X''' Window System (commonly '''X11''', or just simply '''X''') is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on <code>UNIX</code>-like operating systems.<br />
<br />
'''X''' provides the basic framework, or primitives, for building GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard. '''X''' does not mandate the user interface — individual client programs handle this. <br />
<br />
'''X''' is so named because it was preceded by the '''W''' Window System, originally developed at Stanford University. <br />
-----<br />
<br />
{{Box Note| If you plan on using an '''open-source''' video driver, and need 3d acceleration, it is recommended to install the libgl library before installing Xorg:}}<br />
pacman -S libgl<br />
''(Proprietary video drivers provide their own gl library implementations.)''<br />
----- <br />
Now we will install the base Xorg packages using pacman. This is the first step in building a GUI.<br />
<br />
pacman -S xorg<br />
3d utilities such as glxgears are included in the '''mesa''' package:<br />
pacman -S mesa<br />
<br />
Now we have the base packages we need for running the '''X''' Server. You should add the driver for your graphics card now (e.g. xf86-video-<name>). The easiest way to configure X.org is by installing the correct driver packages first, and then generating /etc/X11/xorg.conf using an autoconfiguration script, like Xorg -configure.<br />
<br />
You will need knowledge of which video chipset your machine has. If you do not know, use the lspci program:<br />
lspci | grep VGA<br />
<br />
If you need a list of all '''open-source''' video drivers, do: <br />
pacman -Ss xf86-video | less<br />
Here is a list of '''open source''' drivers, and the corresponding video chipsets.<br />
*'''xf86-video-apm''' Alliance ProMotion video driver<br />
*'''xf86-video-ark''' ark video driver<br />
*'''xf86-video-ati''' ATI(AMD) video driver<br />
*'''xf86-video-chips''' Chips and Technologies video driver<br />
*'''xf86-video-cirrus''' Cirrus Logic video driver<br />
*'''xf86-video-dummy''' dummy video driver<br />
*'''xf86-video-fbdev''' framebuffer video driver<br />
*'''xf86-video-glint''' GLINT/Permedia video driver<br />
*'''xf86-video-i128''' Number 0 i128 video driver<br />
*'''xf86-video-i740''' Intel i740 video driver<br />
*'''xf86-video-i810''' Intel i810/i830/i9xx video drivers (deprecated - use -intel)<br />
*'''xf86-video-intel''' Newer Version of Intel i810/i830/i9xx video drivers<br />
*'''xf86-video-imstt''' Integrated Micro Solutions Twin Turbo vidoe driver<br />
*'''xf86-video-mga''' mga video driver (Matrox Graphics Adapter)<br />
*'''xf86-video-neomagic''' neomagic video driver<br />
*'''xf86-video-nv''' Nvidia nv video driver<br />
*'''xf86-video-rendition''' Rendition video driver<br />
*'''xf86-video-s3''' S3 video driver<br />
*'''xf86-video-s3virge''' S3 Virge video driver<br />
*'''xf86-video-savage''' savage video driver<br />
*'''xf86-video-siliconmotion''' siliconmotion video driver<br />
*'''xf86-video-sis''' SiS video driver<br />
*'''xf86-video-sisusb''' SiS USB video driver<br />
*'''xf86-video-tdfx''' tdfx video driver<br />
*'''xf86-video-trident''' Trident video driver<br />
*'''xf86-video-tseng''' tseng video driver<br />
*'''xf86-video-unichrome''' VIA S3 Unichrome video drivers<br />
*'''xf86-video-v4l''' v4l video driver<br />
*'''xf86-video-vesa''' vesa video driver<br />
*'''xf86-video-vga''' VGA 16 color video driver<br />
*'''xf86-video-via''' via video driver<br />
*'''xf86-video-vmware ''' vmware video driver<br />
*'''xf86-video-voodoo ''' voodoo video driver<br />
<br />
* Note that the '''vesa''' driver is the most generic, and should work with almost any modern video chipset. If you cannot find a suitable driver for your video chipset, vesa '''should''' work.<br />
<br />
*If you have an NVIDIA or ATI video adapter, you may wish to install the proprietary NVIDIA or ATI drivers. '''Installing proprietary video drivers is covered [[#Using proprietary Graphics Driver (NVIDIA, ATI)|below]].'''<br />
<br />
Use pacman to install the appropriate video driver for your video card/onboard video. e.g.:<br />
pacman -S xf86-video-savage<br />
(for the Savage driver.)<br />
<br />
===Create /etc/X11/xorg.conf===<br />
=====What is /etc/X11/xorg.conf?=====<br />
/etc/X11/xorg.conf is the main configuration file for your '''X''' Window System, the foundation of your '''G'''raphical '''U'''ser '''I'''nterface. It is a plain text file ordered into sections and subsections. Important sections are ''Files, InputDevice, Module, Monitor, Modes, Screen, Device, and ServerLayout''. Sections can appear in any order and there may be more than one section of each kind, for example, if you have more than one monitor, or if your laptop has a trackpoint as well as a mouse. <br />
------<br />
By default, you will not have an Xorg config file, as the newest versions of Xorg feature autodetection. ''If'' the autodetection ''works satisfactorily'' and you do not need to specify special features such as aiglx, compositing and so forth, you may forgo creating an xorg.conf file. <br />
<br />
''Most people will still find that they need to generate a config file, however.''<br />
<br />
Advanced users may wish to manually create their own xorg.conf file. You may also use the Xorg -configure script to generate a basic config file. As root, do:<br />
Xorg -configure<br />
This will create a config file at /root/xorg.conf.new <br />
<br />
To test the server, run:<br />
X -config /root/xorg.conf.new<br />
'''X''' should start with the white hollow vector '''X''' in the center of the screen, which should respond to mouse, trackpoint or touchpad movement. Use CTRL-Alt-Backspace to exit '''X'''.<br />
<br />
Inspect your config file in case of errors:<br />
<br />
nano /root/xorg.conf.new<br />
<br />
Ensure the Xorg -configure script has correctly specified your video driver. e.g.:<br />
Section "Device"<br />
<br />
...<br />
<br />
Driver "savage"<br />
<br />
...<br />
<br />
EndSection<br />
<br />
Ensure there are horizontal sync and vertical refresh specs under section "Monitor". If not, add them:<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Monitor Vendor"<br />
ModelName "Monitor Model"<br />
HorizSync 30.0 - 130.0 # Safe for LCD's<br />
VertRefresh 50.0 - 100.0 # Safe for LCD's and most CRT's.<br />
EndSection<br />
(If you do not know these specs, consult your monitor's documentation.)<br />
<br />
Specify your default color depth under section "Screen":<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
(Typically, this will be set to 24 for true color.)<br />
<br />
Also add your desired Modes to your "Display" subsection, at least under the Depth 24 header, e.g.:<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24<br />
Modes "1024x768" "800x600" "640x480"<br />
Add the following section, if you wish to enable eye candy which requires the composite extension: <br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
Try your config again, after modifying:<br />
X -config /root/xorg.conf.new<br />
Ensure an '''X''' session opens, without errors, and move the generated config file to /etc/X11/:<br />
mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
Detailed instructions in the [[Xorg]] article.<br />
<br />
====Alternative xorg.conf generation====<br />
* Note that if your machine has a successfully configured xorg.conf under another distribution, you may easily copy it over to your current Arch system.<br />
* If Xorg -configure is not generating a usable xorg.conf, you may alternatively use the hwd tool. Install with:<br />
pacman -S hwd<br />
And run with<br />
hwd -xa<br />
* You may also try the xorgcfg script:<br />
xorgcfg <br />
* Lastly, you may choose xorgconfig, which will interactively prompt you for hardware information to create a basic xorg.conf:<br />
xorgconfig<br />
Continue with '''[[#Simple baseline X test|Simple baseline X test]]'''<br />
<br />
===Using proprietary Graphics Driver (NVIDIA, ATI)===<br />
You may choose to use the proprietary video drivers from NVIDIA or ATI. <br />
====NVIDIA Graphic Cards====<br />
The NVIDIA proprietary drivers are generally considered to be of good quality, and offer 3D performance, whereas the open source '''nv''' driver offers only 2d support at this time. <br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has 3 different driver packages that each match a certain subset of Cards: <br />
<br />
'''1. nvidia-71xx''' ''for very old Cards like TNT and TNT2''<br />
<br />
'''2. nvidia-96xx''' ''slightly newer cards up to the GF 4''<br />
<br />
'''3. nvidia''' ''newest GPUs after the GF 4''<br />
<br />
Consult the NVIDIA-Homepage to see which one is for you. The difference is only for the installation; Configuration works the same with every driver.<br />
<br />
Select and install the appropriate NVIDIA driver ''for your card'', e.g.: <br />
pacman -S nvidia-96xx<br />
<br />
The NVIDIA package has a utility for updating your existing /etc/X11/xorg.conf for use with the NVIDIA driver:<br />
nvidia-xconfig<br />
<br />
It also has several options which will further specify the contents and options of the xorg.conf file.<br />
For example,<br />
nvidia-xconfig --composite --add-argb-glx-visuals<br />
<br />
For more detailed information, see nvidia-xconfig(1).<br />
<br />
Some useful tweaking options in the device section are (beware that these may not work on your system):<br />
Option "RenderAccel" "true"<br />
Option "NoLogo" "true"<br />
Option "AGPFastWrite" "true"<br />
Option "EnablePageFlip" "true"<br />
Make sure all instances of DRI are commented out:<br />
# Load "dri"<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal sync, vertical refresh, and resolutions are acceptable.<br />
<br />
Update kernel module dependencies:<br />
depmod -a<br />
<br />
Advanced instructions for nvidia configuration can be found in the [[NVIDIA]] article.<br />
<br />
Continue with '''[[#Simple baseline X test|Simple baseline X test]]'''<br />
<br />
====ATI Graphic Cards====<br />
ATI owners have two options for drivers. If you are unsure which driver to use, please try the open-source one first. The open-source driver will suit most needs along with being generally less problematic.<br />
<br />
Install the '''proprietary''' ATI Driver with<br />
pacman -S catalyst<br />
Use the aticonfig tool to modify the xorg.conf.<br />
<br />
Install the '''open-source''' ATI Driver with<br />
pacman -S xf86-video-ati<br />
Currently, the performance of the open-source driver is not on par with that of the proprietary one. It also lacks TV-out, dual-link DVI support, and possibly other features. On the other hand, it supports Aiglx and has better dual-head support.<br />
{{Box Note| The latest proprietary driver does support [[AIGLX]] now. To use [[Compiz]] or [[Beryl]] add Option "AIGLX" "True" to Section ServerFlags and Option "Composite" "True" to Section Extensions.}}<br />
Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki]].<br />
<br />
===Simple baseline X test===<br />
<br />
At this point, you should have xorg installed, with a suitable video driver and an /etc/X11/xorg.conf configuration file. If you want to test your configuration quickly, to ensure your ability to start '''X''' from the command line before installing a complete desktop environment, you can do so by invoking '''xterm'''. Xterm is a very simple terminal emulator which runs in the '''X '''Server environment; it is installed as part of the base xorg packages. More advanced users who are comfortable with '''X''' configuration may choose to skip this optional step.<br />
<br />
Prepare for the test by configuring a ~/.xinitrc:<br />
<br />
===== ~/.xinitrc =====<br />
One of the main functions of this file is to dictate what '''X''' Window client is invoked with the '''startx''' and/or '''xinit''' command ''on a per-user basis''. (The '''startx''' script is merely a front end to the more versatile '''xinit''' command.) There are ''vast'' amounts of additional configurable specifications that may also be added to ~/.xinitrc as you further customize your system.<br />
{{Box Note | '''.xinitrc''' is a so-called 'dot' (.) file. Files in a UNIX filesystem which are preceded with a dot (.) are 'hidden', and will not show up with a regular 'ls' command, usually for the sake of keeping directories tidy. Dot files may be seen by issuing '''ls -a'''. The 'rc' denotes ''Run Commands'' and simply indicates that it is a configuration file. Since it controls how a program runs, it is (although historically incorrect) also said to stand for "Run Control".}}<br />
<br />
'''startx/xinit''' will start the '''X''' server and clients. To determine the client to run, '''startx/xinit''' will first look for a .xinitrc file in the user's home directory. In the absence of file ~/.xinitrc, it defaults to the global xinitrc in the xinit library directory; /etc/X11/xinit/xinitrc, which defaults to using the TWM window manager. (Hence, if you invoke startx without a ~/.xinitrc file, a TWM session will start.)<br />
<br />
Switch to your '''''normal, non-root''''' user:<br />
su yourusername<br />
* /etc/skel/ contains files and directories to provide sane defaults for newly created user accounts. The name '''skel''' is derived from the word '''skeleton''', because the files it contains form the basic structure for users' home directories.<br />
Copy the sample xinitrc file from /etc/skel/ to your home directory: <br />
<br />
cp /etc/skel/.xinitrc ~/<br />
Edit the file: <br />
nano ~/.xinitrc<br />
and add:<br />
<br />
exec xterm<br />
<br />
So that it looks like this:<br />
<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
exec xterm<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
''Be sure to have only one uncommented '''exec''' line in your ~/.xinitrc''. Below, we shall edit this file again to specify the appropriate desktop environment/window manager of your choice.<br />
<br />
Finally, test your configurations by starting '''X''' as '''normal, non-root''' user, with:<br />
<br />
startx<br />
or<br />
xinit<br />
You should have an '''xterm''' session open up. You can exit the '''X''' Server with Ctrl+Alt+Backspace, or by typing "exit". If you have problems starting '''X''', you can look for errors in the /var/log/Xorg.0.log file and on the console output of the console you started '''X''' from.<br />
<br />
If you prove a properly configured /etc/X11/xorg.conf by successfully running the test, you can be assured that your DE/WM of choice will work smoothly.<br />
<br />
Advanced instructions for Xorg configuration can be found in the [[Xorg]] article.<br />
<br />
==Part III: Installing and configuring a Desktop Environment ==<br />
While The '''X''' Window System provides the basic framework for building a ''graphical user interface'' (GUI), a '''Desktop Environment''' (DE), works atop and in conjunction with '''X''', to provide a completely functional and dynamic GUI. A DE typically provides icons, applets, windows, toolbars, folders, wallpapers, applications and abilities like drag and drop. The particular functionalities and designs of each DE will uniquely affect your overall environment and experience. Therefore, choosing a DE is a very subjective and personal decision. Choose the best environment for ''your'' needs.<br />
<br />
* If you want something full-featured and similar to Windows and Mac OSX, '''[[#KDE|KDE]]''' is a good choice<br />
* If you want something slightly more minimalist, which follows the K.I.S.S. principle more closely, '''[[#GNOME|GNOME]]''' is a good choice<br />
* '''[[#Xfce|Xfce]]''' is generally perceived as similar to GNOME, but lighter and less demanding on system resources, yet still visually pleasing and providing a very complete environment.<br />
* '''[[#LXDE|LXDE]]''' is an even lighter choice than Xfce. It provides most things you need for a modern desktop while keeping relatively low system resource usage.<br />
<br />
If you desire a lighter, less demanding GUI, you may choose to simply install a '''Window Manager''', or WM. A WM controls the placement and appearance of application windows in conjunction with the X Window System but does NOT provide such additions as panels, applets, icons, applications, etc.<br />
* Lightweight floating WM's include: [[#Openbox|'''Openbox''']], [[#Fluxbox|'''Fluxbox''']], [[#fvwm2|'''fvwm2''']], '''Windowmaker, Pekwm, and TWM'''.<br />
* If you need something completely different, try '''Awesome, ion, wmii, dwm, or xmonad'''.<br />
<br />
===Install Fonts===<br />
At this point, you may wish to install visually pleasing, true type fonts, before installing a desktop environment/window manager. Dejavu and bitstream-vera are good, general-purpose font sets. You may also want to have the Microsoft font sets, which are especially popular on websites. <br />
<br />
Install with:<br />
pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<br />
<br />
===~/.xinitrc (again)===<br />
<br />
As '''non-root user''', edit your /home/username/.xinitrc to utilize the DE you wish to use. This will allow you to use '''startx/xinit''' from the shell, in the future, to open your DE/WM of choice:<br />
<br />
nano ~/.xinitrc<br />
<br />
Uncomment or add the ''''exec''' ..' line of the appropriate desktop environment/window manager. Some examples are below:<br />
<br />
For the Xfce4 desktop environment:<br />
exec startxfce4 <br />
<br />
For the KDE desktop environment:<br />
exec startkde<br />
A '''startkde''' or '''startxfce4''' command starts the KDE or Xfce4 desktop environment. This command does not finish until you logout of the DE. Normally the shell would wait for KDE to finish, then run the next command. The "exec" prefix to this command tells the shell that this is the last command, so the shell does not need to wait to run a subsequent command.<br />
<br />
Remember to have only one uncommented '''exec''' line in your ~/.xinitrc for now. <br />
<br />
Continue below, installing the DE/WM of your choice.<br />
<br />
* [[#GNOME|'''GNOME''']]<br />
* [[#KDE|'''KDE''']]<br />
* [[#Xfce|'''Xfce''']]<br />
* [[#LXDE|'''LXDE''']]<br />
* [[#Openbox|'''Openbox''']]<br />
* [[#Fluxbox|'''Fluxbox''']]<br />
* [[#fvwm2|'''fvwm2''']]<br />
<br />
===GNOME===<br />
====About GNOME====<br />
The '''G'''NU '''N'''etwork '''O'''bject '''M'''odel '''E'''nvironment. The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for end-users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop.<br />
<br />
====Installation====<br />
Install the base GNOME environment with:<br />
pacman -S gnome<br />
<br />
Additionally, you can install the extras:<br />
pacman -S gnome-extra<br />
<br />
It's safe to choose all packages shown in the extra package. <br />
<br />
=====Useful DAEMONS for GNOME=====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The '''hal''' daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The '''fam''' daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. Both '''hal''' and '''fam''' make life easier for the GNOME user. The hal and fam packages are installed when you install GNOME, but must be invoked to become useful.<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. <br />
<br />
As root:<br />
pacman -S gdm<br />
You will almost certainly want the '''hal''' and '''fam''' daemons.<br />
<br />
Start hal and fam:<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
<br />
Add them to your /etc/rc.conf DAEMONS section, so they will be invoked on bootup:<br />
nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond alsa '''hal fam gdm''')<br />
(If you prefer to log into the console and manually start X, leave out gdm.)<br />
<br />
<br />
As normal user, start X:<br />
startx<br />
If ~/.xinitrc is not configured for GNOME, you may always start it with '''xinit''':<br />
xinit /usr/bin/gnome-session<br />
You may want to install a terminal and an editor. I would recommend gnome-terminal (part of the group gnome-extra) and geany:<br />
pacman -S geany gnome-terminal<br />
<br />
Advanced instructions for installing and configuring GNOME can be found in the [[Gnome]] article.<br />
<br />
Congratulations! Welcome to your GNOME desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
====Eye Candy====<br />
You may find the default GNOME theme and icons not very attractive. A nice gtk theme is murrine. Install it with<br />
pacman -S gtk-engine-murrine<br />
and select it with System->Preferences->Theme. You can find more themes, icons, and wallpaper at [http://www.gnome-look.org Gnome Look].<br />
<br />
===KDE===<br />
====About KDE====<br />
The '''K''' '''D'''esktop '''E'''nvironment. KDE is a powerful Free Software graphical desktop environment for GNU/Linux and <code>UNIX</code> workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of <code>UNIX</code>-like operating systems.<br />
<br />
====Installation====<br />
Arch offers several versions of kde: '''kde, kdebase, and KDEmod'''. Choose '''one''' of the following, and continue below with '''[[#Useful KDE DAEMONS|Useful KDE DAEMONS]]''': <br />
<br />
'''1.)''' Package '''kde''' is the complete, vanilla KDE, ~300MB.<br />
pacman -S kde<br />
'''2.)''' Package '''kdebase''' is a slimmed-down version with less applications, ~80MB.<br />
pacman -S kdebase<br />
'''3.)''' Lastly, '''KDEmod''' is an Arch Linux exclusive, community-driven system which is modified for extreme performance and modularity. The KDEmod project website can be found at [http://kdemod.ath.cx/ http://kdemod.ath.cx/]. KDEmod is extremely fast, lightweight and responsive, with a pleasing, customized theme.<br />
<br />
====Useful KDE DAEMONS====<br />
<br />
KDE will require the '''hal''' ('''H'''ardware '''A'''bstraction '''L'''ayer) and '''fam''' ('''F'''ile '''A'''lteration '''M'''onitor) daemons. The '''kdm''' daemon is the '''K''' '''D'''isplay '''M'''anager, which provides a '''graphical login''', if desired.<br />
<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system.. Both '''hal''' and '''fam''' make life easier for the KDE user. The hal, fam and kdm packages are installed when you install KDE, but must be invoked to become useful.<br />
-----<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
{{Box Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to invoke them on bootup. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng network crond alsa '''hal fam kdm''')<br />
*This method will start the system at runlevel 3, (/etc/inittab default, multiuser mode), and then start KDM as a daemon. <br />
<br />
*Some users prefer an alternative method of starting a display manager like KDM on bootup by utilizing the /etc/inittab method and starting the system at runlevel 5. See [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]] for more.<br />
<br />
*If you prefer to log into the '''console''' at runlevel 3, and manually start X, leave out kdm, or comment it out with an exclamation. ( ! )<br />
<br />
Now try starting your X Server as normal user:<br />
startx<br />
Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
===Xfce===<br />
====About Xfce====<br />
The cholesterol-free '''X''' environment. Xfce, like GNOME or KDE, is a desktop environment, but aims to be fast and lightweight while remaining visually appealing and easy to use. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit (like GNOME) and contains its own development environment (libraries, daemons, etc) similar to other big DEs. Unlike GNOME or KDE, Xfce is lightweight and designed more around CDE than Windows or Mac. It has a much slower development cycle, but is very stable and extremely fast. Xfce is great for older hardware, and will fly with especially great speed on newer machines as well.<br />
<br />
====Installation====<br />
Install Xfce: <br />
pacman -S xfce4 <br />
You may also wish to install themes and extras:<br />
pacman -S xfce4-goodies gtk2-themes-collection<br />
If you want to admire 'Tips and Tricks' on login, you must install the '''fortune-mod''' package:<br />
pacman -S fortune-mod <br />
====Useful DAEMONS====<br />
Recall from above that a daemon is a program that runs in the background, waiting for events to occur and offering services. The hal daemon, among other things, will automate the mounting of disks, optical drives, and USB drives/thumbdrives for use in the GUI. The fam daemon will allow real-time representation of file alterations in the GUI, allowing instant access to recently installed programs, or changes in the file system. The hal and fam packages are installed when you install Xfce, but must be invoked to become useful.<br />
<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
{{Box Note|The hal daemon relies on, and will automatically start, the dbus daemon.}}<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to invoke them on bootup.<br />
<br />
Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] article.<br />
<br />
If you wish to install one, see [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup]]. Otherwise you can login in via the console and run:<br />
<br />
startxfce4<br />
<br />
Congratulations! Welcome to your Xfce desktop environment on your new Arch Linux system! You may wish to continue by viewing '''[[#Tweaks/Finishing touches|Tweaks and finishing touches]]''', or the rest of the information below. You may also be interested in the [[Post Installation Tips]] wiki article.<br />
<br />
===LXDE===<br />
====About LXDE====<br />
LXDE, (for ''L''ightweight ''X''11 ''D''esktop ''E''nvironment), is a new project aimed to provide a modern desktop environment which aims to be lightweight, fast, intuitive and functional while keeping system resource usage low. LXDE is quite different from other known desktop environments, since each component of LXDE is a discrete and independent application, and each can be easily substituted by other programs. This modular design eliminates all unnecessary dependencies and provides more flexibility. Details and screenshots available at: http://lxde.org/ <br />
<br />
LXDE provides:<br />
# The OpenBox windowmanager<br />
# PCManFM File manager<br />
# LXpanel system panel<br />
# LXSession session manager<br />
# LXAppearance GTK+ theme switcher<br />
# GPicView image viewer<br />
# Leafpad simple text editor<br />
# XArchiver: Lightweight, fast, and desktop-independent gtk+-based file archiver<br />
# LXNM (still under development): Lightweight network manager for LXDE supporting wireless connections<br />
These lightweight and versatile tools combine for quick setup, modularity and simplicity.<br />
<br />
Install LXDE with: <br />
pacman -S lxde<br />
Add:<br />
exec startlxde<br />
to your ~/.xinitrc and start with ''startx'' or ''xinit''<br />
<br />
Further information available at the [[LXDE]] wiki article.<br />
<br />
===*box===<br />
====Fluxbox====<br />
Fluxbox © is yet another windowmanager for X.<br />
It's based on the Blackbox 0.61.1 code. Fluxbox looks like blackbox and handles styles, colors, window placement and similar things exactly like blackbox (100% theme/style compability).<br />
<br />
Install Fluxbox using <br />
pacman -S fluxbox fluxconf<br />
<br />
If you use gdm/kdm a new fluxbox session will be automatically added. Otherwise, you should modify your user's .xinitrc and add this to it:<br />
exec startfluxbox <br />
<br />
More information is available in the [[Fluxbox]] article.<br />
<br />
====Openbox====<br />
Openbox is a standards compliant, fast, light-weight, extensible window manager.<br />
<br />
Openbox works with your applications, and makes your desktop easier to manage. This is because the approach to its development was the opposite of what seems to be the general case for window managers. Openbox was written first to comply with standards and to work properly. Only when that was in place did the team turn to the visual interface.<br />
<br />
Openbox is fully functional as a stand-alone working environment, or can be used as a drop-in replacement for the default window manager in the GNOME or KDE desktop environments. <br />
<br />
Install openbox using<br />
pacman -S openbox<br />
Additional configuration tools are also available, if desired:<br />
pacman -S obconf obmenu<br />
<br />
Once openbox is installed you will get a message to move menu.xml & rc.xml to ~/.config/openbox/ in your home directory:<br />
<br />
mkdir -p ~/.config/openbox/<br />
cp /etc/xdg/openbox/rc.xml ~/.config/openbox/<br />
cp /etc/xdg/openbox/menu.xml ~/.config/openbox/<br />
<br />
'''rc.xml''' is the main configuration file for OpenBox. It may be manually edited, (or you can use OBconf). '''menu.xml''' configures the right-click menu.<br />
<br />
You may log into OpenBox via graphical login using KDM/GDM, or from the shell using '''startx''', in which case you will need to edit your ~/.xinitrc (as non-root user) and add the following:<br />
<br />
exec openbox-session<br />
You may also start OpenBox from the shell using '''xinit''':<br />
xinit /usr/bin/openbox-session<br />
* Openbox may also be used as the window manager for GNOME, KDE, and Xfce.<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Some useful, lightweight programs for OpenBox are:<br />
* PyPanel or LXpanel if you want a panel<br />
* feh if you want to set the background<br />
* ROX if you want a simple file manager (also provides simple icons)<br />
* PcmanFM a lightweight but versatile file manager (also provides desktop icon functionality)<br />
* iDesk (available in [[AUR]]) for providing desktop icons<br />
<br />
More information is available in the [[Openbox]] article.<br />
<br />
===fvwm2===<br />
FVWM is an extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent. <br />
<br />
Install fvwm2 with<br />
pacman -S fvwm <br />
<br />
fvwm will automatically be listed in kdm/gdm in the sessions menu. Otherwise, add <br />
exec fvwm <br />
<br />
to your user's .xinitrc.<br />
<br />
Note that this stable version of fvwm is a few years old. If you want a more recent version of fvwm, there is a fvwm-devel package in the unstable repo.<br />
<br />
=APPENDIX=<br />
<br />
==An Introduction to [[ABS]]==<br />
<br />
[[ABS]] is the Arch Linux Build System. It is a ports-like system for compiling sources into installable packages. <br />
<br />
'Ports' is a system used by *BSD, which utilizes simple build scripts residing in a directory tree on the local machine. Each port is simply a directory, named for the installable 3rd party software, and containing a build script. Typically, a *BSD user who wanted to build and install ''firefox'', would cd into the corresponding firefox port residing under /usr/ports and do <code>make install clean</code>. The ''firefox'' sourcecode would then be downloaded from a 3rd party source. According to the port build script, the sources would then be compiled, patched (if directed), and finally, installed to the system.<br />
<br />
[[ABS]] offers the same functionality by providing build scripts called [[#ABS PKGBUILD Explained | PKGBUILD]]s, which contain all information for a given piece of software; The md5sums, source URL, version, license and compilation instructions. In addition, [[ABS]] provides the advantage of compiling the sources ''into an installable package'' with the extension ''.pkg.tar.gz''. Obviously, it is a simple g-zipped tarball, but it is cleanly installable/removable/trackable via pacman.<br />
<br />
Install the abs package:<br />
pacman -Sy abs<br />
<br />
After installing the ''abs'' package with pacman, run the <code>abs</code> script as root:<br />
# abs <br />
The ''ABS tree'' is then installed under /var/abs, organized according to the installable software. <br />
<br />
To build a package from source, create a build directory and copy the abs directory for a given application to the build directory:<br />
mkdir ~/abs<br />
cp -r /var/abs/extra/x11/slim ~/abs<br />
This will move the slim subdir and PKGBUILD script for slim to the build directory.<br />
{{Box Note | In addition to PKGBUILDs, some software requires an additional *.install file. See the '''[[ABS]]''' and '''[[makepkg]]''' wiki entries for more information}}<br />
navigate to the slim build directory and, after modifying the PKGBUILD if desired or necessary, invoke the abs <code>[[makepkg]]</code> tool<br />
[[makepkg]] -cs<br />
* -c Cleans up any leftover files from the source compilation<br />
* -s Downloads and installs any missing dependencies by invoking pacman<br />
Install with pacman's upgrade switch:<br />
pacman -U slim<version>.pkg.tar.gz<br />
Done. Slim sources are downloaded, compiled, compressed into a package and finally, installed.<br />
{{Box Note | You may build, clean, install any needed dependencies and finally install the package with one command: '''makepkg -csi'''. The above example used pacman -U to install as a separate step for informational purposes. See the '''[[makepkg]]''' man page.}} <br />
Q: Why would I need [[ABS]] to compile and create an installable package from source, when I have access to all of the same software via pacman and the binary repos?<br />
<br />
A: A few reasons:<br />
*For installing newer, unstable, custom, or development versions of an application.<br />
PKGBUILDs are transparent and simple. Edit the software version and the md5sums of the desired versions within the PKGBUILD, and build and install your custom packages.<br />
*For patching.<br />
Copy the corresponding PKGBUILD to a build directory along with your patch, edit the PKGBUILD, and build/install with <code>makepkg</code>.<br />
*For creating your own packages for yourself, or to share with the community on the [[AUR]].<br />
You are not limited to the PKGBUILDs under /var/abs. Create your own to build from 3rd party sourcecode. They are simple, open and transparent. Explore the prototpe PKGBUILD provided at /usr/share/pacman/PKGBUILD.proto<br />
*ABS provides an expedient method for recompiling, if necessary. <br />
For example, to recompile your video or wireless drivers.<br />
* To build an installable package with custom configurations<br />
Enable or disable options in any package by modifying the PKGBUILD<br />
* To build an installable package, further optimized for your machine's architecture, <br />
Specify your [[#makepkg.conf | CFLAGS]] in /etc/[[makepkg]].conf.<br />
* To rebuild your entire system, further optimized for your machine's architecure.<br />
Use the makeworld script, or the community-contributed [http://bbs.archlinux.org/viewtopic.php?id=48957 pacbuilder]<br />
==An Introduction to The [[AUR]]==<br />
The '''A'''rch '''U'''ser '''R'''epository<br />
<br />
The [[ABS]] tree provides the ability to build all Arch software available in the [core], [extra], [community], [unstable] and [testing] repositories by providing build scripts on the local machine. The [[AUR]] does not provide a tree on the local machine, but rather, an unsupported repository sporting a handsome web interface at http://aur.archlinux.org/index.php Also, there is an AUR link tab at the top right of every page on the Arch site.<br />
<br />
Once you have navigated to the AUR web page, click on the '''Packages''' button on the top right. You will be brought to the packages search page. <br />
<br />
The general procedure will be:<br />
# Enter the search criteria into the '''keywords''' field and click on '''go'''. The next screen will present all related results.<br />
# Take note of the '''Location''' on the package listing. If the package location is in '''community''', you have not done your homework, and should simply use pacman or ABS to install. If the location is '''unsupported''', continue. <br />
# Click on the name of the package on the package listing. You will be brought to the Package Details page.<br />
An example for the '''yaourt''' package:<br />
yaourt 0.9-2<br />
http://www.archlinux.fr/yaourt-en/<br />
A Pacman frontend with more features and AUR support<br />
unsupported :: system<br />
Maintainer: wain<br />
Votes: 943<br />
License: GPL<br />
Last Updated: Sat, 15 Mar 2008 17:15:20 +0000<br />
First Submitted: Tue, 04 Jul 2006 20:37:58 +0000<br />
Tarball :: Files :: PKGBUILD<br />
Click on the '''Tarball''' link in the last line of the details, and save to a build directory.<br />
<br />
Navigate to, and extract the tarball:<br />
tar -xvf yaourt.tar.gz<br />
Enter the build directory and invoke makepkg, which will download the sources, compile, and compress the installation into an installable .pkg.tar.gz package:<br />
makepkg -c<br />
Install with pacman's '''-U''' (upgrade) switch:<br />
pacman -U yaourt<version>.pkg.tar.gz<br />
Done.<br />
<br />
See the [[AUR]] wiki entry for more information.<br />
<br />
==Tweaks/Finishing touches==<br />
===Install an AUR Helper===<br />
[[AUR Helpers]] add seamless access to the [[AUR]]. They vary in their features, but can ease in searching, fetching, building, and installing from over 9000 PKGBUILDs found in AUR.<br />
<br />
===HAL===<br />
Since you have now installed a desktop environment/window manager, and if you did not do so earlier, now would be a good time to also install HAL. HAL allows plug-and-play for your mobile phone, your iPod, your external HD's, etc. It will mount the device and make a nice visual icon on your desktop and/or in 'My Computer', allowing you to access the device after you have plugged it in instead of having to manually configure the /etc/fstab file or udev rules for each and every new device.<br />
<br />
KDE, GNOME and XFCE all use HAL.<br />
<br />
The installation procedure is described in the [[HAL]] article. Some information can also be found at [http://en.wikipedia.org/wiki/HAL_(software) Wikipedia].<br />
<br />
===Backgrounding DAEMONS on startup===<br />
<br />
To speed up system start up procedure, background selected DAEMONS in /etc/rc.conf by prefixing them with a '@' e.g.:<br />
<br />
DAEMONS=(syslog-ng @network crond @alsa @hal @fam @kdm)<br />
This will enable daemons to load in the background, without waiting for the preceding daemon to load first.<br />
<br />
Prefix any daemons which you do not need with a bang (!) e.g.:<br />
<br />
DAEMONS=(syslog-ng @network !netfs !crond @alsa @hal @fam @kdm)<br />
<br />
Alternatively, you may also simply remove unneeded daemons.<br />
<br />
===Beautifying Fonts for LCD's===<br />
See [[Fonts]]<br />
<br />
===Adjusting Mouse for scroll wheel===<br />
While your mouse should be working out of the box, you may want to use your scroll wheel. Add this to your Input Section (mouse0):<br />
Option "ZAxisMapping" "4 5 6 7"<br />
<br />
===Get All Mouse Buttons Working===<br />
See [[Get All Mouse Buttons Working]]<br />
<br />
===Configuring Touchpad for Laptops===<br />
See [[Touchpad Synaptics]]<br />
<br />
===Adjusting Keyboard Layout===<br />
You may want to change your keyboard layout. To do this edit your /etc/X11/xorg.conf and add these lines in the InputDevice Section (Keyboard0) (the example shows a German keyboard layout with no dead keys; alter this to fit your needs).<br />
Option "XkbLayout" "de"<br />
Option "XkbVariant" "nodeadkeys"<br />
<br />
===Additional tweaks for laptops===<br />
ACPI support is needed if you want to use some special functions on your notebook (e.g. sleep, sleep when lid is closed, special keys...). Install <tt>acpid</tt> using<br />
pacman -S acpid<br />
and add it to the daemons in /etc/rc.conf. If you already have '''hal''' specified in your DAEMONS, there is no need to add '''acpid'''. HAL will automatically detect and load the acpid daemon. Manually, it can be started by<br />
/etc/rc.d/acpid start<br />
<br />
More-specific information about Arch Linux on various Laptops can be found at [[:Category:Laptops (English)]]<br />
<br />
===Configuring CPU frequency scaling===<br />
Modern processors can decrease their frequency and voltage to reduce heat and power consumption. Less heat leads to a quieter system; Laptop users will definitely want this, but even a desktop system will benefit from it. Install cpufrequtils with<br />
pacman -S cpufrequtils<br />
Edit the config file /etc/conf.d/cpufreq and change <br />
governor="ondemand"<br />
which dynamically increases the CPU frequency if needed (which is a safe choice on desktop systems too). Alter min_freq and max_freq to match your system's CPU spec. If you do not know the frequencies, run ''cpufreq-info'' after loading one of the frequency scaling modules. You can also comment out or delete the min_freq and max_freq lines: things will work automatically. Add the frequency scaling modules to your /etc/rc.conf modules line. Most modern notebooks and desktops can simply use the ''acpi-cpufreq'' driver, however other options include the ''p4-clockmod, powernow-k6, powernow-k7, powernow-k8, and speedstep-centrino'' drivers. Load the module with<br />
modprobe <modulname> <br />
and start cpufreq with<br />
/etc/rc.d/cpufreq start<br />
For more details, see [[Cpufrequtils]]<br />
<br />
===Pm-Utils===<br />
The pm-utils package will allow you to suspend-to-RAM and hibernate: <br />
pacman -S pm-utils<br />
[[Pm-utils]] wiki page.<br />
<br />
===Laptop-Mode===<br />
The laptop-mode-tools package is sort of a one-stop configuration for all laptop power management utilities. It works in conjunction with other installed tools to fully configure everything from hard disk spin-down to X display DPMS standby times, if desired.<br />
pacman -S laptop-mode-tools<br />
Add laptop-mode to your DAEMONS= line in /etc/rc.conf and configure /etc/laptop-mode/laptop-mode.conf.<br />
<br />
==File and directory explanation==<br />
<br />
"Shareable" files are defined as those that can be stored on one host and<br />
used on others. "Unshareable" files are those that are not shareable. For<br />
example, the files in user home directories are shareable whereas device<br />
lock files are not. "Static" files include binaries, libraries,<br />
documentation files and other files that do not change without system<br />
administrator intervention. "Variable" files are defined as files that<br />
are not static.<br />
<br />
'''/''' (root) The root filesystem is the primary filesystem from which all other filesystems stem; the top of the hierarchy. All files and directories appear under the root directory "/", even if they are stored on different physical devices. The contents of the root filesystem must be adequate to boot, restore, recover, and/or repair the system.<br />
<br />
'''/bin/''' Essential command binaries that must be available in single user mode; for all users (e.g., cat, ls, cp). /bin/ provides programs that must be available even if only the partition containing / is mounted. This situation may arise should one need to repair other partitions but have no access to shared directories (i.e. you are in single user mode and therefore have no network access). Unlike /sbin, the /bin directory contains several useful commands that are of use to both the root user as well as non-root users.<br />
<br />
'''/boot/''' Unshareable, static directory containing the kernel and ramdisk images as well as the bootloader configuration file, and bootloader stages. /boot also stores data that is used before the kernel begins executing userspace programs. This may include saved master boot sectors and sector map files.<br />
<br />
'''/dev/''' Essential device nodes created by udev during the boot process and as machine hardware is discovered by events. This directory highlights one important aspect of the <code>UNIX</code> filesystem - everything is a file or a directory. Exploring this directory will reveal many files, each representing a hardware component of the system. The majority of devices are either block or character devices; however other types of devices exist and can be created. In general, 'block devices' are devices that store or hold data, whereas 'character devices' can be thought of as devices that transmit or transfer data. For example, hard disk drives and optical drives are categorized as block devices while serial ports, mice and USB printer ports are all character devices.<br />
<br />
'''/etc/''' Host-specific, unshareable global configuration files shall be placed in the /etc directory. If more than one configuration file is required for an application, it is customary to utilize a subdirectory in order to keep the /etc/ area as clean as possible. It is considered good practice to make frequent backups of this directory as it contains all system related configuration files. <br />
:'''/etc/conf.d/''' Some daemon scripts will have a matching configuration file in this directory that contains some useful default values. When a daemon is started, it will first source the settings from its config file within this directory, and then source /etc/rc.conf. Arch's simple, transparent scripting approach means you can easily centralize all your daemon configuration options in your /etc/rc.conf simply by setting an appropriate variable value, or, split up your configuration over multiple files if you prefer a decentralized approach to this issue. <br />
:'''/etc/rc.d/''' All Arch daemons reside here. Custom scripts may also be placed here and invoked from the DAEMONS= array in /etc/rc.conf<br />
:'''/etc/X11/''' Configuration files for the X Window System<br />
:::'''/etc/X11/xinit/''' xinit configuration files. 'xinit' is a configuration method of starting up an X session that is designed to be used as part of a script. <br />
:::'''/etc/X11/xinit/xinitrc''' Global xinitrc file, used by all X sessions started by xinit (startx). Its usage is of course overridden by a .xinitrc file located in the home directory of a user.<br />
<br />
'''/home/''' <code>UNIX</code> is a multi-user environment. Therefore, each user is also assigned a specific directory that is accessible only to them and to the root user. These are the user home directories, which can be found under '/home/$USER' (~/). Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch. If there is a conflict between personal and system wide configuration files, the settings in the personal file will prevail. Dotfiles most likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside. <br />
'''/home''' can become quite large as it is typically used for storing downloads, compiling, installing and running programs, mail, collections of multimedia files etc.<br />
<br />
'''/lib/''' Contains kernel modules and essential shared library images (the C programming code library) needed to boot the system and run the commands under /bin/ and /sbin/. Libraries are collections of frequently used program routines and are readily identifiable through their filename extension of *.so. They are essential for basic system functionality. Kernel modules (drivers) are in the subdirectory /lib/modules/<kernel-version>.<br />
<br />
'''/lost+found''' <code>UNIX</code>-like operating systems must execute a proper shutdown sequence. At times, a system might crash or a power failure might take the machine down. Either way, at the next boot, a filesystem check using the ''fsck'' program shall be performed. ''Fsck'' will go through the system and try to recover any corrupt files that it finds. The result of this recovery operation will be placed in this directory. The files recovered are not likely to be complete or make much sense but there always is a chance that something worthwhile is recovered.<br />
<br />
'''/media/''' Mount points for removable media. CDROMs, DVD's, and USB sticks shall have an appropriate mount point under /media/. The motivation for the creation of this directory has been that historically there have been a number of other different places used to mount removeable media such as /cdrom, /mnt or /mnt/cdrom. Placing the mount points for all removeable media directly in the root directory would potentially result in a large number of extra directories in /. Although the use of subdirectories in /mnt as a mount point has recently been common, it conflicts with a much older tradition of using /mnt directly as a temporary mount point. Therefore, Arch allocates /media as the mountpoint for removable media. On systems where more than one device exists for mounting a certain type of media, mount directories shall be created by appending a digit to the name of those available above starting with '0', but the unqualified name must also exist.<br />
* hal mounts removable media to /media as /media/<name_of_removable_filesystem><br />
<br />
'''/mnt/''' This is a generic mount point for temporary filesystems or devices. Mounting is the process of making a filesystem available to the system. After mounting, files will be accessible under the mount-point. Additional mount-points (subdirectories) may be created under /mnt/. There is no limitation to creating a mount-point anywhere on the system, but by convention and for practicality, littering a file system with mount-points should be avoided.<br />
<br />
'''/proc/''' /proc is very special in that it is also a virtual filesystem. It is sometimes referred to as the ''process information pseudo-file system''. It doesn't contain 'real' files, but rather, runtime system information (e.g. system memory, devices mounted, hardware configuration, etc). For this reason it can be regarded as a control and information center for the kernel. In fact, quite a lot of system utilities are simply calls to files in this directory. For example, 'lsmod' is the same as 'cat /proc/modules' while 'lspci' is a synonym for 'cat /proc/pci'. By altering files located in this directory, kernel parameters may be read/changed (sysctl) while the system is running.<br />
<br />
The most distinctive facet about files in this directory is the fact that all of them have a file size of 0, with the exception of '''kcore, mounts''' and '''self'''. <br />
<br />
'''/root/''' Home directory of the System Administrator, 'root'. This may be somewhat confusing, ('/root under root') but historically, '/' was root's home directory (hence the name of the Administrator account). To keep things tidier, 'root' eventually got his own home directory. Why not in '/home'? Because '/home' is often located on a different partition or even on another system and would thus be inaccessible to 'root' when - for some reason - only '/' is mounted. <br />
<br />
'''/sbin/''' <code>UNIX</code> discriminates between 'normal' executables and those used for system maintenance and/or administrative tasks. The latter reside either here or - the less important ones - in /usr/sbin. Programs executed after /usr is known to be mounted (when there are no problems) are generally placed into /usr/sbin. This directory contains binaries that are essential to the working of the system. These include system administration as well as maintenance and hardware configuration programs. grub (the command), fdisk, init, route, ifconfig, etc., all reside here. Another directory that contains system binaries is /usr/sbin. <br />
<br />
'''/srv/''' Site-specific data which is served by the system. The main purpose of specifying this is so that users may find the location of the data files for a particular service, and so that services which require a single tree for readonly data, writable data and scripts (such as cgi scripts) can be reasonably placed. Data that is only of interest to a specific user shall be placed that user's home directory.<br />
<br />
<br />
'''/tmp''' This directory contains files that are required temporarily. Many programs use this to create lock files and for temporary storage of data. Do not remove files from this directory unless you know exactly what you are doing! Many of these files are important for currently running programs and deleting them may result in a system crash. On most systems, this directory is cleared out at boot or at shutdown by the local system. The basis for this was historical precedent and common practice<br />
<br />
'''/usr/''' While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except in the case of system administrator intervention (installation, update, upgrade). Any information that is host-specific or varies with time is stored elsewhere. <br />
<br />
Aside from /home/, /usr/ usually contains by far the largest share of data on a system. Hence, this is one of the most important directories in the system as it contains all the user binaries, their documentation, libraries, header files, etc. X and its supporting libraries can be found here. User programs like telnet, ftp, etc., are also placed here. In the original <code>UNIX</code> implementations, /usr/ (for ''user''), was where the home directories of the system's users were placed (that is to say, /usr/''someone'' was then the directory now known as /home/''someone''). Over time, /usr/ has become where userspace programs and data (as opposed to 'kernelspace' programs and data) reside. The name has not changed, but its meaning has narrowed and lengthened from ''everything user related'' to ''user usable programs and data''. As such, the backronym ''''U'''ser '''S'''ystem '''R'''esources' was created. <br />
::'''/usr/bin/''' Non-essential command binaries (not needed in single user mode); for all users. This directory contains the vast majority of binaries (applications) on your system. Executables in this directory vary widely. For instance vi, gcc, and gnome-session reside here.<br />
::'''/usr/include/''' Header files needed for compiling userspace source code..<br />
::'''/usr/lib/''' Libraries for the binaries in /usr/bin/ and /usr/sbin/.<br />
::'''/usr/sbin/''' Non-essential system binaries of use to the system administrator. This is where the network daemons for the system reside, along with other binaries that (generally) only the system administrator has access to, but which are not required for system maintenance and repair. Normally, these directories are never part of normal user's $PATHs, only of root's (PATH is an environment variable that controls the sequence of locations that the system will attempt to look in for commands).<br />
::'''/usr/share/''' This directory contains 'shareable', architecture-independent files (docs, icons, fonts etc). Note, however, that '/usr/share' is generally not intended to be shared by different operating systems or by different releases of the same operating system. Any program or package which contains or requires data that doesn't need to be modified should store that data in '/usr/share/' (or '/usr/local/share/', if manually installed- see below). It is recommended that a subdirectory be used in /usr/share for this purpose.<br />
::'''/usr/src/''' The 'linux' sub-directory holds the Linux kernel sources, and header-files.<br />
::'''/usr/local/''' Optional tertiary hierarchy for local data. The original idea behind '/usr/local' was to have a separate ('local') '/usr/' directory on every machine besides '/usr/', which might be mounted read-only from somewhere else. It copies the structure of '/usr/'. These days, '/usr/local/' is widely regarded as a good place in which to keep self-compiled or third-party programs. This directory is empty by default in Arch Linux. It may be used for manually compiled software installations if desired. Pacman installs to /usr/, therefore, manually compiled/installed software installed to /usr/local/ may peacefully co-exist with pacman-tracked system software. <br />
<br />
'''/var/''' Variable files, such as logs, spool files, and temporary e-mail files. On Arch, the [[ABS]] tree and pacman cache also reside here. Why not put the variable and transient data into /usr/? Because there might be circumstances when /usr/ is mounted as read-only, e.g. if it is on a CD or on another computer. '/var/' contains variable data, i.e. files and directories the system must be able to write to during operation, whereas /usr/ shall only contain static data. Some directories can be put onto separate partitions or systems, e.g. for easier backups, due to network topology or security concerns. Other directories have to be on the root partition, because they are vital for the boot process. 'Mountable' directories are: '/home', '/mnt', '/tmp', '/usr' and '/var'. Essential for booting are: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc' and '/sbin'. <br />
::'''/var/abs/''' The [[ABS]] tree. A ports-like package build system hierarchy containing build scripts within subdirectories corresponding to all installable Arch software.<br />
::'''/var/cache/pacman/pkg/''' The pacman package cache. <br />
::'''/var/lib/''' State information. Persistent data modified by programs as they run (e.g. databases, packaging system metadata etc.).<br />
::'''/var/lock/''' Unsharable Lock files data. Files keeping track of resources currently in use.<br />
::'''/var/log/''' Log files. <br />
::'''/var/mail/''' Shareable directory for users' mailboxes.<br />
::'''/var/run/''' Unshareable data about the running system since last boot (e.g. currently logged-in users and running daemons).<br />
::'''/var/spool/''' Spool for tasks waiting to be processed (e.g. print queues and unread mail).<br />
::'''/var/spool/mail/''' Deprecated location for users' mailboxes.<br />
::'''/var/tmp/''' Temporary files to be preserved between reboots.<br />
'''/opt/''' Packages that do not fit cleanly into the above GNU filesystem layout can be placed here. If a package's files cannot be cleanly placed into the above directories, then /opt shall be used. /opt shall therefore contain shareable data.<br />
<br />
For example, the acrobat package has Browser, Reader, and Resource<br />
directories sitting at the same level as the bin directory. This<br />
doesn't fit into a normal GNU filesystem layout, so Arch places all the<br />
files in a subdirectory of /opt.<br />
<br />
==Boot Scripts==<br />
<br />
Arch Linux uses a fairly simple bootup sequence quite similar to *BSDs. The first boot script to run is /etc/rc.sysinit. When it's done, /etc/rc.multi will be called (in a normal bootup). The last script to run will be /etc/rc.local. When started in runlevel 1, the single user mode, the script /etc/rc.single is run instead of /etc/rc.multi. You will not find an endless symlink collection in the /etc/rc?.d/ directories to define the bootup sequence for all possible runlevels. In fact, due to this approach Arch only really has three runlevels, if you take starting up X in runlevel 5 into account. The boot scripts are using the variables and definitions found in the /etc/rc.conf file and also a set of general functions defined in the<br />
/etc/rc.d/functions script. If you plan to write your own daemon<br />
files, you should consider having a look at this file and existing<br />
daemon scripts.<br />
<br />
Boot Script Overview<br />
#/etc/inittab<br />
#/etc/rc.sysinit<br />
#/etc/rc.single<br />
#/etc/rc.multi<br />
#/etc/rc.local<br />
#/etc/profile<br />
#/etc/rc.shutdown<br />
#/etc/rc.local.shutdown<br />
#/etc/rc.d/*<br />
<br />
'''/etc/inittab'''<br />
<br />
After the kernel is loaded, it looks for the program <code>init</code> which resides at /sbin/init. <code>init</code> reads the file /etc/inittab, which tells it what to do. Looking over the inittab script, you will find that the first uncommented line defines the default system runlevel, or, 3. The next thing it is told to do is to run an initialization script. The program that executes (or interprets) this script is bash, the same program that gives you a command prompt. In Arch Linux, the main initialization script is /etc/rc.sysinit. /etc/inittab also defines your virtual consoles, which are 'respawned' by /sbin/init if terminated. Lastly, inittab defines a login manager, if starting the system at runlevel 5 is desired. The login manager is also respawned by /sbin/init if terminated.<br />
<br />
'''/etc/rc.sysinit'''<br />
<br />
The main system boot script, which mounts filesystems, runs udev, activates swap, loads modules, sets localization parameters, etc. <br />
<br />
'''/etc/rc.single'''<br />
<br />
Single-user startup. Not used in a normal boot-up. If the system is started in single-user mode, for example with the kernel parameter 1 before booting or during normal multi-user operation with the command init 1, this script makes sure no daemons are running except for the bare minimum; syslog-ng and udev. The single-user mode is useful if you need to make any changes to the system while making sure that no remote user can do anything that might cause data loss or damage. <br />
For desktop users, this mode is usually quite useless.<br />
<br />
'''/etc/rc.multi'''<br />
<br />
Multi-user startup script. It starts all daemons you configured in the DAEMONS array (set in /etc/rc.conf) after which it calls /etc/rc.local. <br />
<br />
'''/etc/rc.local'''<br />
<br />
Local multi-user startup script. It is a good place to put any last-minute commands you want the system to run at the very end of the bootup process. Most common system configuration tasks, like loading modules, changing<br />
the console font or setting up devices, usually have a dedicated place where they belong. To avoid confusion, you should make sure that whatever you intend to add to your rc.local is not already residing in /etc/profile.d/, or any other already existing config location instead.<br />
<br />
'''/etc/profile''' This script is run on each user login to initialize the system. It also globally defines PS1, $PATH, bash aliases, etc. It is kept quite simple under Arch Linux, as most things are. You may wish to edit or customize it to suit your needs.<br />
<br />
'''/etc/rc.shutdown''' <br />
<br />
System shutdown script. It stops daemons, unmounts filesystems, deactivates the swap, etc. <br />
<br />
'''/etc/rc.local.shutdown''' (Optional)<br />
<br />
Analogous to the /etc/rc.local file, this file may contain any commands you want to run right before the common rc.shutdown is executed. Please note that this file does not exist by default, and for it to work properly, it must be set as executable.<br />
<br />
<br />
'''/etc/rc.d/*'''<br />
<br />
This directory contains the daemon scripts referred to from the rc.conf's DAEMONS= array. In addition to being called on bootup, you can use these scripts when the system is running to manage the services of your system. For example the command<br />
/etc/rc.d/postfix stop<br />
<br />
will stop the postfix daemon. This directory is not in the $PATH by default, but may be added for convenience. Obviously a corresponding daemon script only exists when the appropriate package has been installed (in this case postfix). With a base system install, there are few scripts in here, but rest assured that all relevant daemon scripts end up here. If you wish, you can, of course, create your own scripts and place them here, to be called by the DAEMONS= array in /etc/rc.conf on system startup. <br />
<br />
This directory is pretty much the equivalent to the /etc/rc3.d/ or /etc/init.d/ directories of other distributions, but without all the symlink hassle. The lack of symlink requirement is a defining difference of a *BSD-style init framework, vs a sysvinit.<br />
<br />
==Useful Applications==<br />
This section will never be complete. It just shows some good applications for the everyday user. <br />
<br />
'''KDE users NOTE''': Since KDE resides in /opt, you will most likely have to log out and in after initial installation to update your PATH before these programs can be used.<br />
<br />
===Web browser===<br />
<br />
=====Firefox=====<br />
The ever-popular Firefox web browser is available through pacman, although it does not have its official branding. Therefore, the program appears as its development codename, ''Gran Paradiso'', when opened.<br />
<br />
Install with:<br />
<br />
pacman -S firefox<br />
Be sure and install 'flashplugin', 'mplayer', 'mplayer-plugin', and the 'codecs' packages for a complete web experience:<br />
pacman -S flashplugin mplayer mplayer-plugin codecs<br />
(The codecs package contains most codecs, including those for Win32, Quicktime and Realplayer9 content.)<br />
<br />
Thunderbird is useful for managing your emails. If you are using GNOME you may want to take a look at Epiphany and Evolution; if you are using KDE Konqueror and KMail could be your choice. If you want something completely different you can still use Opera. Finally, if you are working on the system console - or in a terminal session - you could use various text-based browsers like ELinks, Links and Lynx, and manage your emails with [[Mutt]]. Pidgin (previously known as Gaim) and Kopete are good instant messengers for GNOME and KDE, respectively. PSI and Gajim are perfect if you are using only Jabber or Google Talk.<br />
<br />
===Office===<br />
OpenOffice.org is a complete office suite (similar to Microsoft Office). Abiword is a good, small alternative word processor, and Gnumeric an Excel replacement for the GNOME desktop. KOffice is a complete office suite for the KDE Desktop. GIMP (or GIMPShop) is a pixel-based graphics program (similar to Adobe Photoshop), while Inkscape is a vector-based graphics program (like Adobe Illustrator). And, of course, Arch comes with a full set of LaTeX Programs: tetex has been popular for many years and still works, and its successor [[Texlive]] is available from the [[AUR]] repository.<br />
<br />
===Video Player===<br />
====VLC====<br />
VLC Player is a versatile multimedia player which can many different formats, from a disc or file. It also provides the ability to stream multimedia over a lan. To install it, simply type the code below.<br />
<br />
pacman -S vlc<br />
<br />
(TODO) Instructions for VLC mozilla plug-in<br />
<br />
====Mplayer====<br />
MPlayer is a multimedia player for Linux. To install it, simply type the code below.<br />
<br />
pacman -S mplayer<br />
<br />
It also has a Mozilla plug-in for videos and streams embedded in web pages. To install it, simply type the code below.<br />
<br />
pacman -S mplayer-plugin<br />
<br />
If you use KDE, KMplayer is a better choice. It comes with a plug-in for videos and streams embedded in web pages, which works with Konqueror. To install it, simply type the code below.<br />
<br />
pacman -S kmplayer<br />
<br />
(TODO) GMPlayer instructions<br />
<br />
====Xine====<br />
<br />
Xine is an excellent player, especially for DVDs.<br />
<br />
pacman -S xine-ui<br />
The libdvdcss library provides DVD decoding for encrypted DVDs. ''Ensure the legality of using libdvdcss in your country before installing!''<br />
pacman -S libdvdcss<br />
<br />
====GNOME====<br />
=====Totem=====<br />
[http://www.gnome.org/projects/totem/ Totem] is the official movie player of the GNOME desktop environment based on xine-lib or GStreamer (gstreamer is the default which installs with the arch totem package). It features a playlist, a full-screen mode, seek and volume controls, as well as keyboard navigation.<br />
It comes with added functionality such as:<br />
<br />
* Video thumbnailer for the file manager<br />
* Nautilus properties tab<br />
* Epiphany / Mozilla (Firefox) plugin to view movies inside your browser <br />
* Webcam utility (in development)<br />
<br />
Totem-xine is still the better choice if you want to watch DVDs.<br />
<br />
Totem is part of the gnome-extra group; the Totem webbrowser plugin is not.<br />
<br />
To install separately:<br />
pacman -S totem<br />
<br />
To install the Totem webbrowser plugin:<br />
pacman -S totem-plugin<br />
<br />
====KDE====<br />
=====Kaffeine=====<br />
Kaffeine is a good option for KDE users. To install it, simply type the code below.<br />
<br />
pacman -S kaffeine<br />
<br />
===Audio Player===<br />
====Gnome/Xfce====<br />
=====Exaile=====<br />
[[Exaile]] is a music player written in Python that makes use of the GTK+ toolkit. It tries to be close to the popular Amarok, but in GTK. It is in [community], so install with:<br />
pacman -S exaile<br />
<br />
=====Rhythmbox=====<br />
[http://www.gnome.org/projects/rhythmbox/ Rhythmbox] is an integrated music management application, originally inspired by Apple's iTunes. It is free software, designed to work well under the GNOME Desktop, and based on the powerful GStreamer media framework.<br />
<br />
Rhythmbox has a number of features, including:<br />
<br />
* Easy-to-use music browser<br />
* Searching and sorting<br />
* Comprehensive audio format support through GStreamer<br />
* Internet radio support<br />
* Playlists<br />
<br />
To install rhythmbox:<br />
pacman -S rhythmbox<br />
<br />
=====Quod Libet=====<br />
[http://www.sacredchao.net/quodlibet Quod Libet] is a music manager that uses the GStreamer media framework to play audio files. This allows it to play all the file-types that Rhythmbox (which uses GStreamer too) can play. Quod Libet is more suited to non-Gnome desktops since it has a smaller footprint and fewer dependencies than Rhythmbox (Rhythmbox depends on nautilus, which requires a lot of GNOME to be installed).<br />
<br />
In addition to the music player/manager, Quod Libet also includes Ex Falso, a tag editor.<br />
<br />
Quod Libet's features include:<br />
<br />
* Easy-to-use music browser<br />
* Searching<br />
* Comprehensive audio format support through GStreamer<br />
* Easy Playlist management<br />
<br />
To install Quod Libet:<br />
pacman -S quodlibet<br />
<br />
Other good audio players are Banshee and Listen. See [http://gnomefiles.org/ Gnomefiles] to compare them.<br />
<br />
====KDE====<br />
=====Amarok=====<br />
[http://amarok.kde.org/ Amarok] is one of the best audio players and music library systems available for KDE. To install it, simply type the code below.<br />
<br />
pacman -S amarok-base<br />
<br />
====Console====<br />
[http://moc.daper.net/ Moc] is a ncurses-based audio player for the console. Other excellent choices are [http://musicpd.org/ mpd], [http://freshmeat.net/projects/cmus/ cmus], and [http://herrie.info/ herrie].<br />
<br />
====Other X-based====<br />
(TODO) Xmms, audacious, bmpx.<br />
<br />
===Codecs and other multimedia content types (i686 only) ===<br />
====DVD====<br />
You can use xine-ui, totem-xine, mplayer or kaffeine (just to name three of the big ones) to watch DVDs. The only thing you may miss is libdvdcss. Beware that using it may be illegal in some countries.<br />
<br />
====Flash====<br />
Install the flash plugin using<br />
pacman -S flashplugin<br />
to enable Macromedia (now Adobe) Flash in your browser, if you run KDE you should see this after installing flash. http://wiki.archlinux.org/index.php/Flash_and_Adobe_Acrobat_browser_plugins#Fixing_Flash_in_Konqueror<br />
<br />
====Quicktime====<br />
Quicktime codecs are contained in the codecs package. Just type<br />
pacman -S codecs<br />
to install them.<br />
====Realplayer====<br />
The codec for Realplayer 9 is contained in the codecs package. Just type<br />
pacman -S codecs<br />
to install them. Realplayer 10 is available as a binary package for Linux. You can get it from AUR [http://aur.archlinux.org/packages.php?do_Details=1&ID=1590&O=0&L=0&C=0&K=realplay&SB=&SO=&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd here].<br />
<br />
===CD and DVD Burning===<br />
====GNOME====<br />
=====Brasero=====<br />
[http://www.gnome.org/projects/brasero/ Brasero] is an application that burns CDs/DVDs for the GNOME Desktop. It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.<br />
<br />
To install:<br />
pacman -S brasero<br />
<br />
====KDE====<br />
=====K3b=====<br />
K3b (from '''K'''DE '''B'''urn '''B'''aby '''B'''urn) is a free software CD and DVD authoring application for GNU/Linux and other <code>UNIX</code>-like operating systems designed for KDE. As is the case with most KDE applications, K3b is written in the C++ programming language and uses the Qt GUI toolkit. K3b provides a graphical user interface to perform most CD/DVD burning tasks like creating an Audio CD from a set of audio files or copying a CD/DVD, as well as more advanced tasks such as burning eMoviX CD/DVDs. It can also perform direct disc-to-disc copies. The program has many default settings which can be customized by more experienced users. The actual disc recording in K3b is done by the command line utilities cdrecord or wodim, cdrdao, and growisofs. As of version 1.0, K3b features a built-in DVD ripper.- licensed under the GPL.<br />
<br />
K3b was voted LinuxQuestions.org's Multimedia Utility of the Year (2006) by the majority (70%) of voters. <br />
-----<br />
To install:<br />
pacman -S k3b<br />
<br />
=====(Todo) cdrecord, graveman...=====<br />
<br />
<br />
<br />
<br />
Most CD burners are wrappers for cdrecord:<br />
<br />
pacman -S cdrkit<br />
<br />
If you install packages for CD/DVD burning applications like Brasero or K3B it also installs the CD/DVD burning library for it, like libburn or cdrkit.<br />
<br />
A good command-line DVD-burning tool is growisofs:<br />
<br />
pacman -S dvd+rw-tools<br />
<br />
===TV-Cards===<br />
<br />
There are several things to do if you want to watch TV under (Arch) Linux. The most important task is to find out which chip your tuner is using. However, quite a lot are supported. Be sure to check at a Hardware Database to be sure (see [http://en.opensuse.org/HCL/TV_Cards this list], for example). Once you know your Model, there are just a few steps ahead to get you going.<br />
<br />
In most cases, you will need to use the bttv-drivers (other drivers exist, like [http://linux.bytesex.org/v4l2/drivers.html V4L]) together with the I2C-modules. Configuring those is the hardest task. If you are lucky, a<br />
modprobe bttv<br />
will autodetect the card (check dmesg for results). In that case, you need only to install an application to watch TV. We will look at that later, though.<br />
If the autodetection did not work, you will need to check the file CARDLIST, which is included in the tarball of [http://dl.bytesex.org/releases/video4linux/ bttv] to find out the right parameters for your card. A PV951 without radio support would need this line:<br />
modprobe bttv card=42 radio=0<br />
Some cards need the following line to produce sound:<br />
modprobe tvaudio<br />
However, that varies. So just try it out. Some other cards demand the following line:<br />
modprobe tuner<br />
This is subject to trial-and-error, too.<br />
<br />
TODO: clarify the installation-procedure<br />
<br />
To actually watch TV, install the xawtv-package with<br />
pacman -S xawtv <br />
and read its manpage.<br />
<br />
TODO: clarify some possible problems and procedures. Introduction to XAWTV on another page?<br />
<br />
===Digital Cameras===<br />
Most newer digital cameras are supported as USB mass storage devices, which means that you can simply plug it in and copy the images. Older cameras may use the PTP (Picture Transfer Protocol) which requires a "special driver". gPhoto2 provides this driver and allows a shell-based transfer of the images; digikam (for KDE) and gthumb (for GNOME, gtkam would be another choice) use this driver and offer a nice GUI.<br />
<br />
===USB Memory Sticks / Hard Disks===<br />
USB Memory Sticks and hard disks are supported out of the box with the USB mass storage device driver and will appear as a new SCSI device (/dev/sdX). If you are using KDE or GNOME you should use dbus and hal (add them to your daemons in /etc/rc.conf), and they will be automatically mounted. If you use a different Desktop Environment you may have a look at ivman.<br />
<br />
==Maintaining the system==<br />
===Pacman===<br />
[[Pacman]] is both a binary and source package manager which is able to download, install, and upgrade packages from both remote and local repositories with full dependency handling, and has easy-to-understand tools for crafting your own packages too.<br />
<br />
A more-detailed description of Pacman can be found in [[Pacman|its article]].<br />
<br />
====Useful commands====<br />
To view the options available for a particular operational command, say '''-Q''', just append it with '''-h''':<br />
pacman -Qh<br />
<br />
To synchronize and update the local packages database with the remote repositories (it is a good idea to do this before installing and upgrading packages):<br />
pacman -Sy<br />
<br />
To '''upgrade''' all packages on the system:<br />
pacman -Su<br />
<br />
To sync, update, and '''upgrade''' all the packages on the system with one command:<br />
pacman -Syu<br />
<br />
To install or upgrade a single package or list of packages (including dependencies):<br />
pacman -S packageA packageB<br />
<br />
You can also sync, update the package database, and install packages in one command:<br />
pacman -Sy packageA packageB<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
pacman -R package<br />
<br />
To remove a package and all of the package's dependencies which are not used by any other installed package:<br />
pacman -Rs package<br />
('''-Rs''' is typically preferred vs '''R''' to remove any package as it will clean up all unused dependencies)<br />
<br />
To remove all of the package's now unneeded dependencies and also instruct pacman to ignore file backup designations. (Normally, when a file is removed from the system the database is checked to see if the file should be renamed with a ".pacsave" extension.):<br />
pacman -Rsn package<br />
<br />
To search the remote (repo) package database for a list of packages matching a given keyword:<br />
pacman -Ss keyword<br />
<br />
To list all packages on your system<br />
pacman -Q<br />
<br />
To list all packages on your system without the version strings, we add the '''-q''' option:<br />
pacman -Qq<br />
<br />
To search (query) the local (your machine) package database for a given package:<br />
pacman -Q package <br />
<br />
To search (query) the local (your machine) package database for a given package and list all pertinent information:<br />
pacman -Qi package<br />
<br />
To list all files installed by a given ''package'':<br />
<tt>pacman -Ql ''package''</tt><br />
Conversely, to find the package that owns a given file (in this example, the ''ls'' executable):<br />
<tt>pacman -Qo /bin/ls</tt><br />
To find all unused packages (orphans):<br />
pacman -Qdt<br />
Missing libraries: Suppose you receive an error message like this:<br />
<tt>mplayer: error while loading shared libraries: ''libgssapi.so.2'': cannot open shared object file: No such file or directory</tt><br />
This may be an indication that a package you have previously installed is now corrupt (some or all of its files are missing). You should try to find the package name that provides the missing shared library. In this example, you could type:<br />
<tt>pacman -Ql | grep ''libgssapi.so.2''</tt><br />
The first column in the output is the package name:<br />
<tt>heimdal /usr/lib/libgssapi.so.2<br />
heimdal /usr/lib/libgssapi.so.2.0.0<br />
</tt><br />
Then, you can just re-install it:<br />
<tt>pacman -Sy heimdal</tt><br />
<br />
To defragment pacman's cache database and optimize for speed:<br />
pacman-optimize<br />
<br />
To count how many packages are currently on your system:<br />
pacman -Q | wc -l<br />
<br />
To install a package compiled from source using ABS and makepkg:<br />
pacman -U packagename.pkg.tar.gz<br />
<br />
Note: There are countless additional pacman functions and commands. Try man pacman and consult the [[pacman]] wiki entries.<br />
<br />
====Files====<br />
There are a number of files left and created by pacman and other programs to facilitate maintenance and to conform to a safe computing practice. When pacman is installing something, the package contains information on whether to back up a particular file. Such files will have the '''.pacsave''' extension. When you force a "NoUpgrade" on a file via [http://www.archlinux.org/pacman/pacman.conf.5.html pacman.conf], it will not be replaced during an upgrade and the new file will come with the '''.pacnew''' extension. For example, you have edited a configuration file thoroughly and you do not want an upgrade of the respective package to replace the file with a new one, we must have the following line in '''/etc/pacman.conf''':<br />
NoUpgrade = /path/to/config/file<br />
To view the differences of the old and new versions of these files, we can either edit them manually or use a '''diff''' utility to take note of the differences. There is an automated tool to find and view such files available from the '''community''' repository:<br />
pacman -S pacman-contrib<br />
cd ~/<br />
pacdiff # as root<br />
There is a bug in the above tool where if you navigate to '''/etc''' and run it from there, the paths will be messed up. We remain on the safer side by being at "home". You may want to run it as user first in case you happen to be a careless person (you may just overwrite or remove files because you ''think'' that is the right way).<br><br />
<br />
There are other types of leftovers depending on the programs available on your system. Some will create backups with a '''.bak''' extension, while others with something like "'''~'''" or "'''-'''". Unfortunately, there is currently no way to "automatically" find and review them. Fear not, as we have no need for automated tools to deal with such trivial tasks. Simply use '''locate''' to search for them:<br />
locate -e *.~ *.- *.bak<br />
And we can use something useful like '''vimdiff''' to look at the differences manually:<br />
pacman -S vim<br />
vimdiff file1 file2<br />
<br />
==Polishing & Further information==<br />
For further information and support you can go to the [http://www.archlinux.org/ homepage], [[Special:Search|search the wiki]], the [http://bbs.archlinux.org/ forums], the [[ArchChannel|IRC channel]], and the [http://www.archlinux.org/mailman/listinfo/ mailing lists].<br />
=====FAQs=====<br />
See [[Arch FAQs for newbies]]<br />
<br />
There is also an [http://bbs.archlinux.org/viewforum.php?id=23 Arch Subforum] devoted to beginners.<br />
<br />
=====Terminology=====<br />
For more information on the jargon used in Arch, look at [[Arch Terminology/Jargon for newbies|this article]].<br />
<br />
=====Where to go from here?=====<br />
<br />
You may also be interested in:<br />
<br />
[[Post Installation Tips]]<br />
<br />
[[ArchLinux User-community Repository (AUR)]]<br />
<br />
[[Get All Mouse Buttons Working]]<br />
<br />
[[Improve Pacman Performance]]<br />
<br />
[[Kernel Compilation]]<br />
<br />
[[Pm-utils]]<br />
<br />
[[Cpufrequtils]]<br />
<br />
[[:Category:Eye candy (English)| Eye Candy]]<br />
<br />
==External links==<br />
* [http://archux.com/page/installation-guide/ Arch Linux installation guide with images]<br />
* [http://archux.com/page/arch-linux-video-installation-guide Arch Linux video installation guide]</div>
Xiol
https://wiki.archlinux.org/index.php?title=NVIDIA&diff=48010
NVIDIA
2008-08-22T10:06:19Z
<p>Xiol: /* Arch specific */ Removed link that didn't make sense.</p>
<hr />
<div>[[Category:Graphics (English)]]<br />
[[Category:X Server (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|NVIDIA}}<br />
{{i18n_entry|Nederlands|NVIDIA (Nederlands)}}<br />
{{i18n_entry|Русский|NVIDIA (Russian)}}<br />
{{i18n_entry|Česky|NVIDIA (česky)}}<br />
{{i18n_links_end}}<br />
<br />
===How to install Nvidia Driver with pacman===<br />
<br />
====Info from Package Maintainer ''tpowa''====<br />
<br />
The package is for those people who run a stock arch kernel!<br />
I only test with kernel 2.6 and xorg.<br />
<br />
Multiple kernel users:<br />
You need to install nvidia package for each extra!<br />
<br />
====Installing drivers====<br />
<br />
You have to use extra repository, enable it for pacman.<br />
Leave X-Server, else pacman cannot finish installation and it will not work! <br />
As root, run:<br />
pacman -Sy nvidia (for newer cards)<br />
pacman -Sy nvidia-96xx or pacman -Sy nvidia-71xx (for older cards)<br />
<br />
For newer-newer cards you may need to install nvidia-beta from AUR, because stable drivers are not available. (See /usr/share/doc/nvidia/supported-cards.txt in nvidia package if your card is supported.)<br />
<br />
If you use the '''-mm''' kernel, adjust the above command appropriately.<br />
<br />
See the [http://us.download.nvidia.com/XFree86/Linux-x86_64/100.14.11/README/appendix-a.html <code>README</code>] from nvidia for details on which card is supported by which driver.<br />
<br />
====Configuring X-Server====<br />
<br />
Edit <code>/etc/X11/XF86Config</code> or your <code>/etc/X11/xorg.conf</code> config file:<br />
Disable in modules section:<br />
<code>GLcore</code> and <code>DRI</code><br />
<br />
Add to modules section:<br />
Load "glx"<br />
<br />
Make sure you DON'T have a line<br />
<br />
Load "type1"<br />
<br />
in the Module section since recent versions of xorg-server does not include the type1 font module (completely replaced by freetype).<br />
<br />
Disable <code>Section DRI</code> completely:<br />
#Section "DRI"<br />
# Mode 0666<br />
#EndSection<br />
<br />
Change <code>Driver "nv"</code> or <code>Driver "vesa"</code> to <code>Driver "nvidia"</code><br />
If it exists disable <code>Chipset</code> option (only needed for nv driver).<br />
<br />
This was for basic setup, if you need more tweaking options<br />
have a look at <code>/usr/share/doc/nvidia/README</code>.<br />
<br />
You can also run:<br />
nvidia-xconfig<br />
<br />
See [http://wiki.archlinux.org/index.php/Xorg7 installing and configuring xorg].<br />
<br />
====Enabling Composite in Xorg====<br />
Refer to the [[Composite]] wiki for detailed instructions.<br />
<br />
====Modifying Arch <code>rc.conf</code> file====<br />
<br />
Add <code>nvidia</code> to <code>/etc/rc.conf</code> MODULES section (not needed anymore if you run xorg and udev).<br />
Needed for nvidia-71xx and kernel >=2.6.13!<br />
<br />
====Problems that might occur====<br />
<br />
=====Nvidia specific=====<br />
Xorg7:<br />
Please remove your old /usr/X11R6 dir it can cause trouble during installation. Also make sure you've installed <code>pkgconfig</code>. The NVIDIA installer uses pkgconfig to determine where modular Xorg components are installed.<br />
<br />
If you experience slow 3D Performance have a look at<br />
<code>/usr/lib/libGL.so.1</code>, <code>/usr/lib/libGL.so</code>, <code>/usr/lib/libGLcore.so.1</code><br />
Perhaps they are wrong linked to mesa or something else.<br />
Try reinstalling with <code>pacman -S nvidia</code>.<br />
<br />
When you get this message when you try to start an openGL application (for example enemy-territory, or glxgears):<br />
Error: Could not open /dev/nvidiactl because the permissions are too<br />
restrictive. Please see the <code>FREQUENTLY ASKED QUESTIONS</code> <br />
section of <code>/usr/share/doc/NVIDIA_GLX-1.0/README</code> <br />
for steps to correct.<br />
<br />
Add yourself to the <code>video</code> group using <code>gpasswd -a ''yourusername'' video</code> (don't forget to log out and back in, or type: source /etc/profile).<br />
<br />
=====Arch specific=====<br />
<br />
'''GCC update:'''<br />
You must compile the module with the compiler that was used for the kernel<br />
else it may fail.<br />
A simple <code>pacman -S nvidia</code> should do it, if not wait for a new kernel release and stay with old kernel and gcc.<br />
<br />
'''Kernel update:'''<br />
Kernel updates will require reinstalling the driver.<br />
<br />
====Driver Config Tool====<br />
<br />
The new config tool for the nvidia-drivers is included called 'nvidia-settings'<br />
You don't have to use it it's only a add-on! <br><br />
For more information about the use, have a look at the following file:<br><br />
/usr/share/doc/NVIDIA_GLX-1.0/nvidia-settings-user-guide.txt<br><br />
Please install gtk2 with "pacman -S gtk2" in order to use this tool.<br />
<br />
'''NOTE:'''<br />
If you experience problems like crashing the X-Server while running the tool<br />
you have to delete your <code>.nvidia-settings-rc</code> file in your home directory.<br />
<br />
'''Nvidia-Settings Autostart:'''<br />
You might like to apply the settings chosen using nvidia-settings at startup, firstly run nvidia-settings at least once in order for settings to be restored. The settings file is stored in ~/.nvidia-settings-rc. Then add the following to the auto-startup method of your DE:<br />
nvidia-settings --load-config-only<br />
<br />
====Known Issues====<br />
<br />
If you experience crashes, try to disable <code>RenderAccel "True"</code> option.<br />
<br />
If you have nvidia installer complaining about different versions of gcc between the current one and the one used for compiling the kernel then see on how to install the traditional way but remember to <code>export IGNORE_CC_MISMATCH=1</code><br />
<br />
If you have comments on the package please post it here: http://bbs.archlinux.org/viewtopic.php?t=10692<br />
If you have a problem with the drivers have a look at the nvidia forum: http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14<br />
For a Changelog please look here: http://www.nvidia.com/object/linux_display_ia32_1.0-8762.html<br />
<br />
Note: please don't change the above part without notifying me.<br />
<br />
===Bad performance after installing new nvidia-driver===<br />
<br />
If you experience very slow fps rate in compare with older driver first check if You have Direct Rendering turned on. You can do it by: <br />
<br />
glxinfo | grep direct<br />
<br />
If You get: direct rendering: No then that's your problem. <br />
Next check if You have the same versions of glx for the client and server by this:<br />
<br />
glxinfo | egrep "glx (vendor|version)"<br />
<br />
And if you see different vendors or versions for the client and server run this:<br />
<br />
ln -fs /usr/lib/libGL.so.$VER /usr/X11R6/lib/libGL.so<br />
ln -fs /usr/lib/libGL.so.$VER /usr/X11R6/lib/libGL.so.1<br />
ln -fs /usr/lib/libGL.so.$VER /usr/lib/libGL.so.1.2<br />
<br />
Where $VER is the version of nvidia package, that you're using. You can check it by <code>nvidia-settings</code><br />
<br />
That's all. Now restart your Xserver and you should have normal acceleration.<br />
<br />
<br />
<br />
==Tweaking NVIDIA drivers==<br />
Open <code>/etc/X11/xorg.conf</code> or <code>/etc/X11/XFree86Config</code> with your editor of choice and try the following options to improve performance.<br />
''Not all options may work for your system, try them carefully and always backup your configuration file.''<br />
<br />
===Disable NVIDIA Graphics Logo on startup===<br />
Under <code>Device</code> section add the <code>"NoLogo"</code> Option<br />
Option "NoLogo" "True"<br />
<br />
===Enable hardware acceleration===<br />
Under <code>Device</code> section add the <code>"RenderAccel"</code> Option.<br />
Option "RenderAccel" "True"<br />
<br />
'''NOTE:''' The RenderAccel is enabled by default since drivers version 9746.<br />
<br />
===Override monitor detection===<br />
The <code>"ConnectedMonitor"</code> Option under <code>Device</code> section allows to override the monitor detection when X server starts. This may save a bunch of seconds at start up. The available options are: <code>"CRT"</code> (cathode ray tube), <code>"DFP"</code> (digital flat panel), or <code>"TV"</code> (television).<br />
<br />
The following statement force NVIDIA drivers to use DFP monitors.<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
'''NOTE:''' use "CRT" for all analog 15 pin VGA connections (even if you have a flat panel). "DFP" is intended for DVI digital connections only!<br />
<br />
===Enable TripleBuffer===<br />
Enable the use of triple buffering by adding under <code>Device</code> section the <code>"TripleBuffer"</code> Option.<br />
Option "TripleBuffer" "True"<br />
<br />
Use this option if your GPU has plenty of ram (128mb and more) and combined with "Sync to VBlank". You may enable sync to vblank in nvidia-settings.<br />
<br />
===Enable BackingStore===<br />
This option is used to enable the server's support for backing store, a mechanism by which pixel data for occluded window regions is remembered by the server thereby alleviating the need to send expose events to X clients when the data needs to be redisplayed. BackingStore is not bounded to NVIDIA drivers but to X server itself. ATI users would benefit of this option as well.<br />
<br />
Under Device section add:<br />
Option "BackingStore" "True"<br />
<br />
===Use OS-level events===<br />
Taken from NVIDIA drivers README file: ''"Use OS-level events to efficiently notify X when a client has performed direct rendering to a window that needs to be composited."'' Whatever it means, it may help improve performance. This option is currently incompatible with SLI and Multi-GPU modes.<br />
<br />
Under <code>Device</code> section add:<br />
Option "DamageEvents" "True"<br />
This option is enabled by default in newer driver.<br />
<br />
===Enable power saving===<br />
... For a greener planet (not strictly related to NVIDIA drivers). Under <code>Monitor</code> section add:<br />
Option "DPMS" "True"<br />
<br />
===Force Powermizer performance level (for laptops)===<br />
In your xorg.conf, add the following to Section "Device"<br />
#force Powermizer to a certain level at all times<br />
# level 0x1 = highest<br />
# level 0x2 = med<br />
# level 0x3 = lowest<br />
Option "RegistryDwords" "PowerMizerLevelAC=0x3"<br />
Option "RegistryDwords" "PowerMizerLevel=0x3"<br />
<br />
===Let the GPU set its own performance level (based on temperature)===<br />
In your xorg.conf, add the following to the Section "Device"<br />
Option "RegistryDwords" "PerfLevelSrc=0x3333"<br />
<br />
===Disable vblank interrupts (for laptops) ===<br />
When running the interrupt detection utility powertop, it is seen that the nvidia driver will generate an interrupt for every vblank. to disable, place in the Device section:<br />
Option "OnDemandVBlankInterrupts" "True"<br />
<br />
This will reduce interrupts to about one or two per second.<br />
<br />
===Enable overclocking via nvidia-settings===<br />
To enable overclocking, place the following line in the "device" section:<br />
Option "Coolbits" "1"<br />
This will enable on the fly overclocking by running nvidia-settings inside X.<br />
<br />
Please note that overclocking may damage your hardware and that no responsibility may be placed on the authors of this page due to any damage to any information technology equipment from operating products out of specifications set by the manufacturer.<br />
<br />
===Further readings===<br />
* [http://us.download.nvidia.com/XFree86/Linux-x86/169.12/README/appendix-b.html NVIDIA drivers README file] (latest drivers)<br />
* [http://wiki.compiz-fusion.org/Hardware/NVIDIA Compiz Fusion wiki]<br />
<br />
==Using TV-out on your NVIDIA card==<br />
<br />
Good article on the subject can be found from:<br />
http://en.wikibooks.org/wiki/NVidia/TV-OUT<br />
<br />
==Why is the refresh rate not reported correctly by utilities that use the XRandR X extension (e.g., the GNOME "Screen Resolution Preferences" panel, `xrandr -q`, etc)?==<br />
<br />
The XRandR X extension is not presently aware of multiple display devices on a single X screen; it only sees the MetaMode bounding box, which may contain one or more actual modes. This means that if multiple MetaModes have the same bounding box, XRandR will not be able to distinguish between them.<br />
<br />
In order to support DynamicTwinView, the NVIDIA X driver must make each MetaMode appear to be unique to XRandR. Presently, the NVIDIA X driver accomplishes this by using the refresh rate as a unique identifier.<br />
<br />
You can use `nvidia-settings -q RefreshRate` to query the actual refresh rate on each display device.<br />
<br />
The XRandR extension is currently being redesigned by the X.Org community, so the refresh rate workaround may be removed at some point in the future.<br />
<br />
This workaround can also be disabled by setting the "DynamicTwinView" X configuration option to FALSE, which will disable NV-CONTROL support for manipulating MetaModes, but will cause the XRandR and XF86VidMode visible refresh rate to be accurate.<br />
<br />
==How to install NVIDIA Driver with custom kernel==<br />
<br />
It's an advantage to know how the ABS system works by reading some of the other wiki pages about it, first:<br />
* http://wiki.archlinux.org/index.php/ABS<br />
* http://wiki.archlinux.org/index.php/Makepkg<br />
* http://wiki.archlinux.org/index.php/The_Arch_package_making_HOW-TO_-_with_guidelines.<br />
<br />
<br />
We will create our own pacman package quickly by using ABS, which will build the module for the currently running kernel:<br />
<br />
Make a temporary directory for creating our new package:<br />
mkdir -p /var/abs/local/<br />
<br />
Make a copy of the nvidia package directory:<br />
cp -r /var/abs/extra/nvidia/ /var/abs/local/<br />
<br />
Go into our temporary nvidia directory:<br />
cd /var/abs/local/nvidia<br />
<br />
We need to edit the two files nvidia.install and the PKGBUILD file, so they contain the right kernel version variables, so we don't have to move it from the stock kernel /lib/modules/2.6.xx-ARCH directory.<br />
<br />
You can get your kernel version and local version name if you type:<br />
uname -r<br />
<br />
* In nvidia.install replace the KERNEL_VERSION="2.6.xx-ARCH" variable with your kernel version, such as KERNEL_VERSION="2.6.22.6" or KERNEL_VERSION"2.6.22.6-custom" depending on what your kernels version is and local version text/number. Do this for all instances of the version number within this file.<br />
<br />
* In PKGBUILD change the _kernver='2.6.xx-ARCH' variable to match your kernel version again, like above.<br />
* If you have more than one kernel coexisting in parallel with another, (such as a custom kernel alongside the default -ARCH kernel) change the "pkgname=nvidia" variable in the PKGBUILD to a unique identifier, such as nvidia-2622 or nvidia-custom. This will allow both kernels to use the nvidia module, since the custom nvidia module has a different package name and will not overwrite the original.<br />
Then do:<br />
makepkg -i -c<br />
<br />
.. Now it will automatically build the NVIDIA module for your custom kernel and clean up the leftover files from creating the package. Enjoy!</div>
Xiol
https://wiki.archlinux.org/index.php?title=HP_Compaq_nc6220&diff=48009
HP Compaq nc6220
2008-08-22T09:39:14Z
<p>Xiol: </p>
<hr />
<div>[[Category:Laptops (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
==Introduction==<br />
My plan when I finish is to have my laptop (HP Compaq nc6220) dual booted with Windows XP Pro (work image). I repartitioned my hard drive with [http://gparted.sourceforge.net/livecd.php Gparted Live CD]. It only took a minute or so. I will be doing the install with the arch 0.8 beta2 base cd. There is an [http://archlinux.org/static/docs/arch-install-guide.html installation guide (0.7.2)] that may help.I will do my best to give as much detail as possible.<br />
<br />
NOTE: Per [http://h18000.www1.hp.com/products/quickspecs/12130_na/12130_na.HTML HP's website], this laptop is Novell Linux Desktop 9 certified. So getting linux on this laptop should not be too hard.<br />
<br />
===System Specifications===<br />
<br />
HP Compaq nc6220 - Intel Centrino<br />
* Intel Pentium M processor 750 (1.86-GHz, 533-MHz FSB, 2-MB L2 cache)<br />
* Mobile Intel 915GM Express Chipset<br />
* 512-MB 533-MHz DDR2 SDRAM<br />
* 60-GB 5400 rpm IDE ATA Harddrive <br />
* 14.1-inch color TFT SXGA+ (1400 x 1050 resolution and 16 M colors)<br />
* Intel Graphics Media Accelerator 900 with up to 128 MB of shared system memory<br />
* ADI AC '97 CODEC<br />
* 9.5-mm DVD/CD-RW Combo (Matshita UJDA775 IDE ATA 8x DVD/24x CDRW)<br />
* 56K Fax/Modem<br />
* NetXtreme Gigabit PCI Express Ethernet Controller (10/100/1000 NIC)<br />
* Intel PRO/Wireless 2200BG 802.11b/g WLAN<br />
* One Type I/II PC Card Slot??<br />
* One Integrated Smart Card Reader??<br />
* One Integrated Secure Digital Slot??<br />
* Dual pointing devices (both Pointstick and Touchpad)<br />
* 6-cell high capacity Lithium-Ion (52Wh)<br />
* External 65W adapter<br />
<br />
<br />
Output of lshwd<br />
<br />
00:00.0 Host bridge: Intel Corp.|Mobile Memory Controller Hub (intel-agp)<br />
00:02.0 VGA compatible controller: Intel Corp.|Mobile 915GM/GMS/910GML Express Graphics Controller (i810)<br />
00:02.1 Display controller: Intel Corp.|Mobile Graphics Controller (vesa)<br />
00:1c.0 PCI bridge: Intel Corp.|I/O Controller Hub PCI Express Port 0 (unknown)<br />
00:1c.1 PCI bridge: Intel Corp.|I/O Controller Hub PCI Express Port 1 (unknown)<br />
00:1d.0 USB Controller: Intel Corp.|I/O Controller Hub USB (unknown)<br />
00:1d.1 USB Controller: Intel Corp.|I/O Controller Hub USB (unknown)<br />
00:1d.2 USB Controller: Intel Corp.|I/O Controller Hub USB (unknown)<br />
00:1d.7 USB Controller: Intel Corp.|I/O Controller Hub USB2 (unknown)<br />
00:1e.0 PCI bridge: Intel Corp.|82801 Hub Interface to PCI Bridge (hw_random)<br />
00:1e.2 Multimedia audio controller: Intel Corp.|82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (snd-intel8x0)<br />
00:1e.3 Modem: Intel Corp.|I/OController Hub Modem (Hsf:www.linmodems.org)<br />
00:1f.0 ISA bridge: Intel Corp.|I/O Controller Hub LPC (i810-tco)<br />
00:1f.1 IDE interface: Intel Corp.|I/O Controller Hub PATA (piix)<br />
02:04.0 Network controller: Intel Corp.|Intel(R) PRO/Wireless 2200BG (ipw2200)<br />
02:06.0 CardBus bridge: Texas Instruments|Texas Instruments PCIxx21/x515 Cardbus Controller (yenta_socket)<br />
02:06.3 Mass storage controller: Texas Instruments|Texas Instruments PCIxx21 Integrated FlashMedia Controller (unknown)<br />
02:06.4 : Texas Instruments|Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) C (unknown)<br />
02:06.5 : Texas Instruments|Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Smart Card Controller (unknown)<br />
10:00.0 Ethernet controller: Broadcom Corp.|NetXtreme BCM5751M Gigabit Ethernet PCI Express (tg3)<br />
004:001 USB Hub: Virtual|Hub (unknown)<br />
003:001 USB Hub: Virtual|Hub (unknown)<br />
002:001 USB Hub: Virtual|Hub (unknown)<br />
001:001 USB Hub: Virtual|Hub (unknown)<br />
<br />
<br />
===What works/What doesn't===<br />
Pretty much everything works on this laptop except the SD-card reader. I am still working on it. The screen needs a little tweaking to get the full resolution and works great. Also I have not tried the modem (no POTS line) or tried to suspend the laptop yet.<br />
<br />
==Installation==<br />
Boot from the CD and do the base installation from the CD. My partitions are setup as follows:<br />
<br />
HDA1 20gb Win XP<br />
HDA5 32mb /boot<br />
HDA6 1gb swap (needed for hibernate mode...I think)<br />
HDA7 39gb /<br />
<br />
With Windows XP as an option, the grub boot loader should look something like this:<br />
<br />
# Windows XP<br />
title Microsoft Windows XP Professional<br />
rootnoverify (hd0,0)<br />
makeactive<br />
chainloader +1<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,4)<br />
kernel /vmlinuz26 root=/dev/sda7 ro<br />
initrd /kernel26.img<br />
<br />
# (1) Arch Linux<br />
title Arch Linux Fallback<br />
root (hd0,4)<br />
kernel /vmlinuz26 root=/dev/sda7 ro<br />
initrd /kernel26-fallback.img<br />
<br />
==Post Installation==<br />
First, create your user account:<br />
#useradd -m <user><br />
Add yourself to some needed group:<br />
#gpasswd -a <user> audio; gpasswd -a <user> optical; gpasswd -a <user> storage; gpasswd -a <user> users<br />
Next is to upgrade:<br />
#pacman -Syu<br />
<br />
==Install GUI==<br />
Now, lets get the gui going.<br />
<br />
===Video Driver===<br />
First things first. Lets install the driver. Per the lshwd command I displayed earlier, it should be the i810 driver. Let's search for it:<br />
<br />
#pacman -Ss i810<br />
current/xf86-video-i810 1.7.4-2<br />
X.org Intel i810/i830/i915 video drivers<br />
<br />
Now let's install it:<br />
<br />
#pacman -S xf86-video-i810<br />
<br />
===Xorg/Gnome===<br />
I am a gnome person. To get it installed, I followed the [http://wiki.archlinux.org/index.php/Xorg Xorg] and [http://wiki.archlinux.org/index.php/Gnome Gnome] wikis. They provide enough information to get it setup. I will post my xorg.conf file in the next section.<br />
Note: Make sure you update the daemons in /etc/rc.conf.<br />
====Mouse====<br />
There is a synaptic touchpad on this laptop. If you follow this [http://wiki.archlinux.org/index.php/Touchpad_Synaptics howto], you should have no problems getting this to work. It works great for me.<br />
Note: Make sure you update the modules in /etc/rc.conf.<br />
====Compiz Fusion====<br />
This laptop supports Compiz Fusion. So I followed the [http://wiki.archlinux.org/index.php/Compiz_fusion wiki], and it worked great.<br />
<br />
===Fix Resolution===<br />
When I got Gnome up and running, I wanted to get the display to its native resolution to 1400x1050. I installed 915resolution. To configure it, I found a good site called [http://www.geocities.com/stomljen/ 915Resolution: Intel Video BIOS Hack]. There is also a [http://wiki.archlinux.org/index.php/Intel_945_GM_How_To_Resolution wiki howto] for it. I followed this [http://www.geocities.com/stomljen/readme.html howto], and it worked like a champ. This is what I did:<br />
<br />
#pacman -Sy 915resolution<br />
<br />
You will need to uncomment the community repo from /etc/pacman.conf. Next to list the resolutions:<br />
<br />
#915resolution -l<br />
Intel 800/900 Series VBIOS Hack : version 0.5.2<br />
<br />
Chipset: 915GM<br />
BIOS: TYPE 1<br />
Mode Table Offset: $C0000 + $269<br />
Mode Table Entries: 36<br />
<br />
Mode 30 : 640x480, 8 bits/pixel<br />
Mode 32 : 800x600, 8 bits/pixel<br />
Mode 34 : 1024x768, 8 bits/pixel<br />
Mode 38 : 1280x1024, 8 bits/pixel<br />
Mode 3a : 1600x1200, 8 bits/pixel<br />
Mode 3c : 1920x1440, 8 bits/pixel<br />
Mode 41 : 640x480, 16 bits/pixel<br />
Mode 43 : 800x600, 16 bits/pixel<br />
Mode 45 : 1024x768, 16 bits/pixel<br />
Mode 49 : 1280x1024, 16 bits/pixel<br />
Mode 4b : 1600x1200, 16 bits/pixel<br />
Mode 4d : 1920x1440, 16 bits/pixel<br />
Mode 50 : 640x480, 32 bits/pixel<br />
Mode 52 : 800x600, 32 bits/pixel<br />
Mode 54 : 1024x768, 32 bits/pixel<br />
Mode 58 : 1280x1024, 32 bits/pixel<br />
Mode 5a : 1600x1200, 32 bits/pixel<br />
Mode 5c : 1920x1440, 32 bits/pixel<br />
<br />
Now pick the one you want to overwrite. For me, it is 3c. So I then do a:<br />
<br />
#915resolution 3c 1400 1050<br />
<br />
Now to make sure it took:<br />
<br />
#915resolution -l<br />
Intel 800/900 Series VBIOS Hack : version 0.5.2 <br />
<br />
Chipset: 915GM<br />
BIOS: TYPE 1<br />
Mode Table Offset: $C0000 + $269<br />
Mode Table Entries: 36<br />
<br />
Mode 30 : 640x480, 8 bits/pixel<br />
Mode 32 : 800x600, 8 bits/pixel<br />
Mode 34 : 1024x768, 8 bits/pixel<br />
Mode 38 : 1280x1024, 8 bits/pixel<br />
Mode 3a : 1600x1200, 8 bits/pixel<br />
Mode 3c : 1400x1050, 8 bits/pixel<br />
Mode 41 : 640x480, 16 bits/pixel<br />
Mode 43 : 800x600, 16 bits/pixel<br />
Mode 45 : 1024x768, 16 bits/pixel<br />
Mode 49 : 1280x1024, 16 bits/pixel<br />
Mode 4b : 1600x1200, 16 bits/pixel<br />
Mode 4d : 1400x1050, 16 bits/pixel<br />
Mode 50 : 640x480, 32 bits/pixel<br />
Mode 52 : 800x600, 32 bits/pixel<br />
Mode 54 : 1024x768, 32 bits/pixel<br />
Mode 58 : 1280x1024, 32 bits/pixel<br />
Mode 5a : 1600x1200, 32 bits/pixel<br />
Mode 5c : 1400x1050, 32 bits/pixel<br />
<br />
Now you can start/restart the xserver. I did not reboot because it would mess up my settings. Now to make sure that this works. I want to make sure that it will do this automatically. I added the following into /etc/rc.local:<br />
<br />
/usr/sbin/915resolution 3c 1400 1050<br />
<br />
Now I can reboot without any more worries.<br />
<br />
Here is the output of my /etc/X11/xorg.conf:<br />
<br />
Section "ServerLayout"<br />
Identifier "Xorg Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
InputDevice "Touchpad" "SendCoreEvents"<br />
Option "AIGLX" "true"<br />
EndSection<br />
<br />
Section "ServerFlags"<br />
Option "AllowMouseOpenFail" "true" <br />
EndSection<br />
<br />
Section "Files"<br />
RgbPath "/usr/share/X11/rgb"<br />
ModulePath "/usr/lib/xorg/modules"<br />
FontPath "/usr/share/fonts/misc:unscaled"<br />
FontPath "/usr/share/fonts/misc"<br />
FontPath "/usr/share/fonts/75dpi:unscaled"<br />
FontPath "/usr/share/fonts/75dpi"<br />
FontPath "/usr/share/fonts/100dpi:unscaled"<br />
FontPath "/usr/share/fonts/100dpi"<br />
FontPath "/usr/share/fonts/PEX"<br />
FontPath "/usr/share/fonts/cyrillic"<br />
FontPath "/usr/share/fonts/Type1"<br />
FontPath "/usr/share/fonts/ttf/western"<br />
FontPath "/usr/share/fonts/ttf/decoratives"<br />
FontPath "/usr/share/fonts/truetype"<br />
FontPath "/usr/share/fonts/truetype/openoffice"<br />
FontPath "/usr/share/fonts/truetype/ttf-bitstream-vera"<br />
FontPath "/usr/share/fonts/latex-ttf-fonts"<br />
FontPath "/usr/share/fonts/defoma/CID"<br />
FontPath "/usr/share/fonts/defoma/TrueType"<br />
EndSection<br />
<br />
Section "Module"<br />
Load "ddc" # ddc probing of monitor<br />
Load "dbe"<br />
Load "dri"<br />
Load "extmod"<br />
Load "glx"<br />
Load "bitmap" # bitmap-fonts<br />
Load "type1"<br />
Load "freetype"<br />
Load "record"<br />
Load "synaptics"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Keyboard0"<br />
Driver "keyboard"<br />
Option "CoreKeyboard"<br />
Option "XkbRules" "xorg"<br />
Option "XkbModel" "pc105"<br />
Option "XkbLayout" ""<br />
Option "XkbVariant" ""<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "USB Mouse"<br />
Driver "mouse"<br />
Option "Device" "/dev/input/mice"<br />
Option "SendCoreEvents" "true"<br />
Option "Protocol" "IMPS/2"<br />
Option "ZAxisMapping" "4 5"<br />
Option "Buttons" "5"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Touchpad"<br />
Driver "synaptics"<br />
Option "Device" "/dev/input/mouse1"<br />
Option "Protocol" "auto-dev"<br />
Option "LeftEdge" "1700"<br />
Option "RightEdge" "5300"<br />
Option "TopEdge" "1700"<br />
Option "BottomEdge" "4200"<br />
Option "FingerLow" "25"<br />
Option "FingerHigh" "30"<br />
Option "MaxTapTime" "180"<br />
Option "MaxTapMove" "220"<br />
Option "VertScrollDelta" "100"<br />
Option "MinSpeed" "0.06"<br />
Option "MaxSpeed" "0.12"<br />
Option "AccelFactor" "0.0010"<br />
Option "SHMConfig" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "DPMS" "true"<br />
HorizSync 28.0 - 96.0 # Warning: This may fry old Monitors<br />
VertRefresh 50.0 - 75.0 # Very conservative. May flicker.<br />
# 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz<br />
ModeLine "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -HSync +Vsync<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "i810"<br />
VendorName "Intel Corp."<br />
BoardName "Unknown Board"<br />
Option "XAANoOffscreenPixmaps" "true"<br />
Option "DRI" "true"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultColorDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1400x1050"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "DRI"<br />
Mode 0666<br />
EndSection<br />
<br />
Section "Extensions"<br />
Option "Composite" "Enable"<br />
EndSection<br />
<br />
==Audio==<br />
Now for the sound. It works out of the box, but alsa needs to be installed for saving sound setting and all the other good stuff alsa does. Thankfully there is a [http://wiki.archlinux.org/index.php/ALSA howto here].<br />
<br />
== Network ==<br />
=== Wired ===<br />
The wired connection worked out of the box. The Neworkmanager, that we will setup in the next section, will manage this as well as the wireless.<br />
<br />
=== Wireless ===<br />
Now lets get wireless going. There is a [http://wiki.archlinux.org/index.php/Wireless_Setup wireless setup howto] and there is a [http://wiki.archlinux.org/index.php/Networkmanager Networkmanager howto]. I will go into detail about this because wireless is one of the most difficult things to get running (generally). This should be pretty easy to get going.<br />
<br />
Install wireless drivers and network tools<br />
#pacman -Sy ipw2200-fw wireless_tools gnome-network-manager<br />
Add yourself to the network group<br />
#gpasswd -a <user> network<br />
Load module<br />
#modprobe ipw2200<br />
See what device the wireless card it on:<br />
#iwconfig<br />
lo no wireless extensions.<br />
<br />
eth0 no wireless extensions.<br />
<br />
eth1 IEEE 802.11g ESSID:"" <br />
Mode:Managed Frequency:2.442 GHz Access Point: 00:90:4C:7E:00:10 <br />
Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0 <br />
Retry limit:7 RTS thr:off Fragment thr:off<br />
Power Management:off<br />
Link Quality=98/100 Signal level=-27 dBm Noise level=-92 dBm<br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:0 Missed beacon:0<br />
While still in the /etc/rc.conf file still open, edit the network part of the file:<br />
lo="lo 127.0.0.1"<br />
eth0="dhcp"<br />
eth1="dhcp"<br />
INTERFACES=(lo !eth0 !eth1)<br />
I belive this is optional. It is just to get the blue LED to light up when the wireless is enabled. I added the following to /etc/modprobe.conf:<br />
options ipw2200 led=1 hwcrypto=0<br />
With /etc/rc.conf still open, edit it to stop the network daemon from starting and have networkmanager and dhcdpd daemons start at boot:<br />
DAEMONS=(... !network ... networkmanager dhcdbd)<br />
Now reboot or stop/start the daemons:<br />
# /etc/rc.d/network stop;/etc/rc.d/networkmanager start;/etc/rc.d/dhcdbd start<br />
<br />
That should do it. Note, this is a generic way to set it up. My wireless router is broadcasting its SSID and has no encryption on it. I want to get WPA working though. That will be a task for later.<br />
<br />
=== Modem ===<br />
Have not tried.<br />
<br />
== ACPI ==<br />
When I login to gnome, I keep getting a acpi did not load error. I installed:<br />
pacman -Sy acpid gnome-power-manager<br />
And I added the daemons in the /etc/rc.conf file<br />
DAEMONS=(... acpid)<br />
And rebooted. Now I have the battery monitor to the gnome panel and life is good.<br />
<br />
== Card Readers ==<br />
=== PCMCIA ===<br />
As far as I've understood from other reports, the pcmcia card works as expected. I don't have one at this time, so I can't confirm it.<br />
=== Compact Flash ===<br />
The same goes for the Compact Flash. It's supposed to work as it uses the same interfaces as the PCMCIA does, but I can't confirm anything since I don't have a CF-card.<br />
=== Secure Digital ===<br />
The SD-card reader on the other hand is a pain! It uses proprietary drivers from ricoh under windows and there are no drivers under linux. I would really want this working but I think the only chance would be to reverse engineer the reader and I guess not enough coders have this device. Subsequently, there are no drivers now and there won't be in the foreseeable future...<br />
<br />
==Other Tweaks==<br />
===kernel26beyond===<br />
I use the beyond kernel because I am looking to get [http://wiki.archlinux.org/index.php/Suspend_to_Disk suspend] working. There is a list of different kernel patches/patchsets [http://wiki.archlinux.org/index.php/Kernel_Patches_and_Patchsets here].<br />
Now, lets install the beyond kernel:<br />
# pacman -Sy kernel26beyond<br />
Now add the following to the boot loader. For me, it is grub:<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,4)<br />
kernel /vmlinuz26beyond root=/dev/sda7 ro<br />
initrd /kernel26beyond.img<br />
<br />
# (1) Arch Linux<br />
title Arch Linux Fallback<br />
root (hd0,4)<br />
kernel /vmlinuz26beyond root=/dev/sda7 ro<br />
initrd /kernel26beyond-fallback.img<br />
<br />
===Sudo===<br />
I like to use sudo to manage my system. So as root, I do a:<br />
# pacman -Sy sudo<br />
Then I do a give myself rights:<br />
# visudo -f /etc/sudoers<br />
Add myself under root.<br />
===DISABLE IPV6===<br />
I disabled the IPV6 module because I do not need it. Here is the [http://wiki.archlinux.org/index.php/IPv6_-_Disabling_the_Module howto] to get this.<br />
===SSHfs===<br />
To connect to other shares and doing updates I use SSHfs. Here is a [http://wiki.archlinux.org/index.php/Sshfs howto] for that.<br />
===Packages===<br />
affinity<br />
firefox<br />
thunderbird<br />
flashplugin<br />
flashplayer-standalone<br />
jre # Java<br />
mplayer<br />
vlc<br />
Glipper<br />
tomboy<br />
gaim<br />
ms-fonts<br />
ntp<br />
tracker<br />
affinity<br />
f-spot<br />
<br />
===Files Edited===<br />
<br />
rc.local<br />
rc.conf<br />
pacman.conf<br />
modprobe.conf<br />
inittab<br />
xorg.conf<br />
sudoers<br />
<br />
= External Links =<br />
<br />
* This report is listed at the [http://tuxmobil.org/fujitsu.html TuxMobil: Linux Laptop and Notebook Installation Guides Survey: Fujitsu-Siemens - FSC].</div>
Xiol
https://wiki.archlinux.org/index.php?title=Dell_Latitude_D630&diff=48008
Dell Latitude D630
2008-08-22T09:36:46Z
<p>Xiol: Category and stub tag</p>
<hr />
<div>[[Category:Laptops (English)]]<br />
{{stub}}<br />
=Introduction=<br />
The Dell D630 is a business line laptop made for corporate users who have a need for durability. This article will tell you how to get the basic components of the laptop running with Arch.<br />
=Installation=<br />
You can follow the [[Official Arch Linux Install Guide]] to get yourself up and running. I did a pretty standard install, keeping the XP partition that came with the laptop as my company requires all work computers to have Windows on them.<br />
<br />
The new installers will detect the Intel 3945 card and give you the option of installing the drivers and module for it but I didn't have any success doing that. It's good to have a wired connection to begin with just to make sure you get everything up and running.<br />
<br />
=To Be Continued=</div>
Xiol
https://wiki.archlinux.org/index.php?title=Post_Installation_Tips&diff=48007
Post Installation Tips
2008-08-22T09:34:28Z
<p>Xiol: /* Timesaving Command-aliases */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Post Installation Tips}}<br />
{{i18n_entry|Español|Consejos para después de Instalar (Español)}}<br />
{{i18n_entry|Italiano|Suggerimenti Post Installazione}}<br />
{{i18n_entry|Ελληνικά|Post Installation Tips (Ελληνικά)}}<br />
{{i18n_entry|简体中文|ArchTips(简体中文)}}<br />
{{i18n_entry|Türkçe|Kurulum Sonrası Ayarları (Türkçe)}}<br />
{{i18n_links_end}}<br />
<br />
Here are some performance tweaks and other useful information for Arch Linux newbies.<br />
==== Hardware Auto-Recognition====<br />
* <code>lshwd</code> is your hardware auto-recognition tool. It will inform you which module you need to load and set.<br />
<br />
* Or you can use <code>hwdetect</code>. In my experience it detects more hardware and is faster than lshwd. More information: [[hwdetect]]<br />
<br />
====Lilo Boot Process Speed-Up====<br />
* to speed up lilo boot process, add the following command to <code>/etc/lilo.conf</code>:<br />
compact<br />
<br />
===End of Boot Process===<br />
After the boot process; the screen is cleared and the login prompt appears. Some users may want to modify this behaviour such that they can see the messages that appeared during the boot process still.<br />
<br />
You can either add one of the following to the bottom of your /etc/rc.local file:<br />
* Wait at the end of the process until you press a key before clearing the screen and letting you log in:<br />
read -n1<br />
* Wait for at most 5 seconds or until you press a key:<br />
read -t5 -n1<br />
<br />
Or:<br />
* Remove the first character in <code>/etc/issue</code> file, which is a "clear screen" escape code. Obviously this will stop the screen from being cleared after you log out from your login session as well as just after boot.<br />
* Run <code>dmesg</code> from the shell prompt to display all the boot messages generated by the kernel.<br />
<br />
===Colorize your PS1 and Console===<br />
~/.bashrc and /root/.bashrc contain the default PS1 (shell prompt) variables for normal user and root, respectively.<br />
<br />
As normal user:<br />
nano ~/.bashrc<br />
Comment out the default prompt:<br />
#PS1='[\u@\h \W]\$ '<br />
And add:<br />
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[m\] \[\e[1;32m\]\$ \[\e[m\]\[\e[1;37m\] '<br />
This will give a very pleasing, colorful prompt and theme for the console with bright white text.<br />
<br />
As root, edit the /root/.bashrc:<br />
# nano /root/.bashrc<br />
Comment out the default PS1:<br />
#PS1='[\u@\h \W]\$ '<br />
The following PS1 is useful for a root bash prompt, with red designation and green console text:<br />
PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\] '<br />
<br />
For more, see the [[Color Bash Prompt]] wiki entry.<br />
<br />
===Less on steroids===<br />
If you are a frequent user of the command line interface, you might want to install lesspipe (that you will find on AUR). It will allow you to type:<br />
less lesspipe.tar.gz<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- solstice/users 695 2008-01-04 19:24 lesspipe/PKGBUILD<br />
-rw------- solstice/users 43 2007-11-07 11:17 lesspipe/lesspipe.sh<br />
lesspipe.tar.gz (END)<br />
<br />
i.e. use less to see the content of many files, instead of using specific command each time.<br />
Use <tt>man lesspipe</tt> to see how to activate it.<br />
<br />
===Change Console Fonts===<br />
Terminus is a popular favorite amongst Archers. Install with:<br />
pacman -S terminus-font<br />
Edit /etc/rc.conf:<br />
CONSOLEFONT="ter-v16b"<br />
Switch fonts on-the-fly with '''setfont''':<br />
setfont ter-v16b<br />
<br />
===Getting a colored manpage===<br />
If you're new to linux, you will have to read a lot of manpages if you want to learn. However color will allow a clearer presentation of the contents and hopefully easier digestion. To get manpages to render in color install a reader program like most(8).<br />
<br />
pacman -S most<br />
<br />
This is similar to less and more but also allows you to render text in color in an easier way.<br />
<br />
To get it up and running change the /etc/man.conf file and change the PAGER and BROWSER variable to:<br />
<br />
PAGER /usr/bin/most -s<br />
BROWSER /usr/bin/most -s<br />
<br />
Now you can type:<br />
man whatever_man_page<br />
to see it in clarifying colors.<br />
<br />
If you want to modify the colors, experiment with the ~/.mostrc file (create it if it isn't there) or use /etc/most.conf.<br />
<br />
example ~/.mostrc:<br />
<br />
% Color settings<br />
<br />
color normal lightgray black<br />
color status yellow blue<br />
color underline yellow black<br />
color overstrike brightblue black<br />
<br />
another example for less-like keybindings (jump to line with 'J'):<br />
<br />
% less-like keybindings<br />
<br />
unsetkey "^K"<br />
unsetkey "g"<br />
unsetkey "G"<br />
unsetkey ":"<br />
<br />
setkey next_file ":n"<br />
setkey find_file ":e"<br />
setkey next_file ":p"<br />
setkey toggle_options ":o"<br />
setkey toggle_case ":c"<br />
setkey delete_file ":d"<br />
setkey exit ":q"<br />
<br />
setkey bob "g"<br />
setkey eob "G"<br />
setkey down "e"<br />
setkey down "E"<br />
setkey down "j"<br />
setkey down "^N"<br />
setkey up "y"<br />
setkey up "^Y"<br />
setkey up "k"<br />
setkey up "^P"<br />
setkey up "^K"<br />
setkey page_down "f"<br />
setkey page_down "^F"<br />
setkey page_up "b"<br />
setkey page_up "^B"<br />
setkey other_window "z"<br />
setkey other_window "w"<br />
setkey search_backward "?"<br />
setkey bob "p"<br />
setkey goto_mark "'"<br />
setkey find_file "E"<br />
setkey edit "v"<br />
<br />
Alternatively you can get the same coloured result for manpages with less. This method has the advantage that less has many more features than most thus comes much more handy for advanced users. Just add the following to your .SHELLrc<br />
<br />
export LESS_TERMCAP_mb=$'\E[01;31m'<br />
export LESS_TERMCAP_md=$'\E[01;31m'<br />
export LESS_TERMCAP_me=$'\E[0m'<br />
export LESS_TERMCAP_se=$'\E[0m' <br />
export LESS_TERMCAP_so=$'\E[01;44;33m' <br />
export LESS_TERMCAP_ue=$'\E[0m'<br />
export LESS_TERMCAP_us=$'\E[01;32m'<br />
<br />
Source: http://nion.modprobe.de/blog/archives/572-less-colors-for-man-pages.html<br />
<br />
===Accessing AUR seamlessly===<br />
Everyone should know how to use AUR, ABS, and makepkg if they want to build packages. Tracking and updating your custom built packages can become tedious, especially if you have many. There are some programs and scripts that help make building packages more convenient.<br />
<br />
The most popular third-party program that can search AUR is called [http://aur.archlinux.org/packages.php?ID=5863 yaourt].<br />
<br />
[[AUR User Guidelines#List of AUR-DMS|See a list of other programs that help you access AUR]]<br />
<br />
=== Enabling History Search ===<br />
<br />
Usually, when typing <code>ls</code> and pressing <up> key, your current input will be replaced with the last command used. If you are using history seach, only past commands beginning with <code>ls</code> (the current input) will be shown.<br />
<br />
You can enable this mode by adding to <code>/etc/inputrc</code> or your <code>~/.inputrc</code>:<br />
"\e[A":history-search-backward<br />
"\e[B":history-search-forward<br />
<br />
===Enabling shellcompletion===<br />
This is a very desirable feature that you will no doubt benefit greatly from.<br />
<br />
pacman -S bash-completion<br />
<br />
and afterwards add<br />
<br />
if [ -f /etc/bash_completion ]; then<br />
. /etc/bash_completion<br />
fi<br />
<br />
to ~/.bashrc<br />
<br />
===Enabling mouse support in console (gpm)===<br />
* You can enable mouse support in the console by installing <b>gpm</b>:<br />
pacman -S gpm<br />
* If you see the mouse cursor flickering and it doesn't work properly, you will need to change <code>/etc/conf.d/gpm</code>.<br />
'''For PS/2 mouse replace the existing line with:'''<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
'''For USB mouse replace the existing line with:'''<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
'''For IBM Trackpoint, replace the existing line with:'''<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
<br />
* When it works, you can add <code>gpm</code> into <code>DAEMONS</code> array in <code>/etc/rc.conf</code> to have it started at boot.<br />
* Mouse support in the console is useful for many things, including programs such as Links and Lynx.<br />
<br />
===Start X at boot===<br />
* [[Start X at boot]]<br />
<br />
===Beautifying Fonts for LCD's===<br />
See [[Fonts]]<br />
<br />
===Activating Numlock on Bootup===<br />
* [[Activating Numlock on Bootup]]<br />
<br />
===ABS to build your own packages===<br />
* If you use [[ABS]] to build your own packages, remember to do it outside of the main /var/abs tree. Copy the PKGBUILD and all accompanying files to an empty directory in your homedir and build from there. That way you won't risk your modifications getting overwritten on the next <code>abs</code> run and it's easier to keep track of them.<br />
<br />
===Optimizing your packages===<br />
* For optimizing the packages you build using makepkg (the kernel is a good example), set your GCC preferred settings in <code>/etc/makepkg.conf</code>:<br />
(example for Athlon CPU)<br />
export CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
export CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
See [http://wiki.archlinux.org/index.php/Safe_Cflags Safe CFlags] for more info.<br />
<br />
===Timesaving Command-aliases===<br />
* You can create your own commands-aliases using <code><homedir>/.bashrc</code> or <code>/etc/profile</code>. Both can be used to define your own aliases:<br />
<pre><br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
<br />
# Lets you search through all available packages simply using 'pacsearch packagename'<br />
alias pacsearch="pacman -Sl | cut -d' ' -f2 | grep "<br />
<br />
# sudo pacman -Syu by typing pacup (sudo must be installed and configured first)<br />
alias pacup="sudo pacman -Syu"<br />
<br />
# sudo pacman -S by typing pac<br />
alias pac="sudo pacman -S"<br />
</pre><br />
<br />
Colorized pacman -Ss search output: <br />
# colorized pacman output with pacs alias:<br />
alias pacs="pacsearch"<br />
pacsearch() {<br />
echo -e "$(pacman -Ss "$@" | sed \<br />
-e 's#^core/.*#\\033[1;31m&\\033[0;37m#g' \<br />
-e 's#^extra/.*#\\033[0;32m&\\033[0;37m#g' \<br />
-e 's#^community/.*#\\033[1;35m&\\033[0;37m#g' \<br />
-e 's#^.*/.* [0-9].*#\\033[0;36m&\\033[0;37m#g' ) \<br />
\033[0m"<br />
}<br />
<br />
You can also download pacman-color from the [http://aur.archlinux.org/packages.php?ID=11827 AUR].<br />
<br />
===Disabling IPv6===<br />
Until the widespread adoption of IPv6, you may benefit from [[IPv6_-_Disabling_the_Module|disabling the IPv6 module]]. <br />
<br />
===Useful Commands & Programs===<br />
*<code>grep</code> - searches for files by its contents (example: <code>grep -i syslog /etc/*</code> will search all files in /etc for those containing the word "syslog"; NOT case-sensitive (using the <code>-i</code> parameter))<br />
*<code>pkill/killall <process_name></code> - kills processes by name (example: <code>killall kdm</code>)<br />
*<code>ps</code> - display process status (example: <code>ps xau</code> will display all active processes)<br />
*<code>locate</code> - quickly locates files on your hard drive (use <code>updatedb</code> to create a database of them first) (example: <code>locate Xservers</code> will find all files named Xservers)<br />
<br />
====pacman====<br />
There are some nice ways to do a bunch of things easily with bash commands. If we want to install a number of packages sharing similar patterns in their names - not the entire group nor all matching packages - eg. '''kdemod''', we can do:<br />
pacman -S kdemod-{applets,theme,tools}<br />
Of course, that is not limited and can be expanded to however many levels you need:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
Pacman has the '''-q''' option to hide the version column, and we can do something like reinstall packages with "compiz" as part of their name:<br />
pacman -S `pacman -Qq | grep compiz`<br />
The above can be achieved without '''-q''' by issuing an '''awk''' operation:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
Want to reinstall everything? Easy! Wait - not so fast. Listing currently installed packages will output everything including those that have been built with ''makepkg''. Simply running<br />
pacman -S `pacman -Qq`<br />
will output errors because some (or many) of them were not found in the database. We need a way to list only packages that have been installed by pacman. In order to do so, we must combine a command to list all packages, and another to hide the list of foreign packages. This, we achieve by using '''comm -3''' to show only the packages that are not foreign packages.<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====makepkg====<br />
An automated tool to create packages - it actually automates the <code>./configure && make && make install</code> procedure, (or whatever combination of commands involved in the building of the application) and packs it up into a .pkg.tar.gz to be easily installed with pacman. It uses a script file called a PKGBUILD which must exist in the build directory. View a PKGBUILD file and read the installation document to learn more about how to work with makepkg.<br />
<br />
====ABS====<br />
An automated toolkit that allows you to rebuild any of pacman's packages (so you may provide your own compiler and linker settings, for better optimization, debugging info, etc). Simply executing abs will synchronize all PKGBUILD scripts from the SVN repository into <code>/var/abs</code>.<br />
<br />
===Extracting compressed files===<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.bz : bzip -cd file.bz | tar xvf -<br />
file.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
The construction of these tar arguments is quite archaic (but nevertheless handy). Have a look at the bsdtar manpage, section COMPATIBILITY for how they work in detail. (bsdtar comes in the libarchive package)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Dell_Latitude_D620&diff=48005
Dell Latitude D620
2008-08-22T09:26:53Z
<p>Xiol: Added a little bit about power management. Removing stub tag - nothing else is really needed as everything works.</p>
<hr />
<div>[[Category:Laptops (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
=== Hardware ===<br />
<br />
(Possibly) an early 2007 model D620:<br />
<br />
HARDWARE DETECT ver 4.8.2 (simple mode)<br />
Kernel : 2.6.19-ARCH<br />
CPU & Cache:<br />
Processor 0 is Genuine Intel(R) CPU T2600 @ 2.16GHz 2161MHz, 2048 KB Cache<br />
Processor 1 is Genuine Intel(R) CPU T2600 @ 2.16GHz 2161MHz, 2048 KB Cache<br />
Soundcard : No sound card<br />
Video : nVidia Corp.|Quadro NVS 110M / GeForce Go 7300 server: Xorg (vesa) <br />
Driver : xf86-video-vesa <br />
Monitor : Generic Monitor H: 28.0-96.0kHz V: 50.0-75.0Hz<br />
Mouse : Generic PS/2 Wheel Mouse xtype: PS2 device: /dev/psaux<br />
Drive(scsi): SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)<br />
SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)<br />
USB : Intel Corp.|I/O Controller Hub UHCI USB #1 module: unknown<br />
Ethernet : Broadcom Corp.|NetXtreme BCM5752 Gigabit Ethernet PCI Express module: tg3 device: eth0<br />
eth1 <br />
Network : Broadcom Corp.|NetXtreme BCM5752 Gigabit Ethernet PCI Express module: unknown <br />
PCMCIA slot: O2Micro Inc.|OZ6912 CardBus Controller module: yenta_socket<br />
<br />
A late-2007 model D620 hardware, output from lspci:<br />
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)<br />
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)<br />
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)<br />
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)<br />
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)<br />
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)<br />
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01)<br />
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)<br />
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)<br />
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)<br />
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)<br />
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)<br />
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)<br />
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)<br />
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 01)<br />
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)<br />
03:01.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller (rev 40)<br />
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express (rev 02)<br />
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)<br />
<br />
== Installation ==<br />
The latest version of the Arch Linux installer detects all the hardware fine on the late-2007 D620 (with the exception of a problem involving the wireless network card, see below).<br />
<br />
== Recommendations ==<br />
The D620 has an awfully loud PC speaker. To disable it, ensure the module <tt>pcspkr</tt> isn't loaded during bootup in rc.conf:<br />
<br />
MODULES=(... !pcspkr ...)<br />
<br />
You should follow instructions for installing [[cpufrequtils]] and [[pm-utils]]. There have been no problems with suspending and hibernating this laptop - just ensure you have enough swap!<br />
<br />
== Wireless Networking ==<br />
=== Intel 3945 ABG PCI Express ===<br />
If your D620 comes with an Intel 3945 ABG card, you should install the <tt>iwlwifi-3945-ucode</tt>, either during installation or afterwards, then<br />
<br />
modprobe iwl3945<br />
<br />
And you should be ready to go.<br />
<br />
In some cases (at least with the 2008.06 installer) you may have the ipw3945 and iwl3945 modules in your <tt>MODULES=()</tt> section of rc.conf after installation. You should remove or ! out the ipw3945 module, as the wireless card will not function correctly or at all with both modules loaded.<br />
<br />
=== Broadcom PCI Express ===<br />
{{accuracy}}<br />
Get the latest ndiswrapper from http://ndiswrapper.sourceforge.net/ <br />
I used 1.33<br />
<br />
I got my driver from<br />
ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe<br />
<br />
Check the list if this one does not work for you<br />
http://ndiswrapper.sourceforge.net/mediawiki/index.php/List#B<br />
<br />
tar xvzf ndiswrapper-1.33.tar.gz <br />
cd ndiswrapper-1.33/<br />
make<br />
sudo make install<br />
sudo ndiswrapper -i bcmwl5.inf <br />
sudo ndiswrapper -l<br />
sudo depmod -a<br />
sudo modprobe ndiswrapper<br />
dmesg<br />
sudo ndiswrapper -m</div>
Xiol
https://wiki.archlinux.org/index.php?title=Bashrc&diff=48003
Bashrc
2008-08-22T09:19:52Z
<p>Xiol: </p>
<hr />
<div>{{stub}}<br />
<br />
[[Category:Dotfiles (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Bashrc}}<br />
{{i18n_entry|Español|Bashrc (Español)}}<br />
{{i18n_links_end}}<br />
<br />
A place for Arch users' .bashrc file tips and tricks<br />
==PS1==<br />
To colourise the bash prompt:<br />
Comment out the default PS1:<br />
#PS1='[\u@\h \W]\$ '<br />
The following PS1 is useful for a root bash prompt, with red designation and green console text:<br />
PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\] '<br />
See also [[Color Bash Prompt | this wiki page]]<br />
==Aliases==<br />
<br />
===Default command usage===<br />
To make rm prompt for removals<br />
alias rm='rm -i'<br />
To make spelling mistakes not matter<br />
alias unmount='umount'<br />
alias pakman='pacman'<br />
Seen in forums to force someone to learn vim<br />
alias nano='vi'<br />
<br />
===Shortcuts===<br />
<br />
==Useful environment variables==<br />
Set a default text editor<br />
EDITOR=nano<br />
EDITOR=vi<br />
<br />
== HTTP / FTP Proxy ==<br />
You can export your HTTP and FTP proxy settings from .bashrc by adding the following:<br />
export http_proxy="http://172.16.1.6:3128"<br />
export ftp_proxy="ftp://172.16.1.6:3128"</div>
Xiol
https://wiki.archlinux.org/index.php?title=Resizing_an_NTFS_partition&diff=47999
Resizing an NTFS partition
2008-08-22T09:11:40Z
<p>Xiol: </p>
<hr />
<div>[[Category:Storage (English)]]<br />
[[Category:General (English)]]<br />
<br />
{{stub}}<br />
<br />
'''Note''': Please ensure you have a backup before attempting this.<br />
<br />
Most sytems that are purchased already have [[Windows XP]] installed on it, and most people would prefer not wipe it off completely when doing an ArchLinux installation. Therefore, it is useful to resize the existing windows partition to make room for a Linux partition.<br />
<br />
[http://www.sysresccd.org/ System Rescue CD] is a good tool to have, and works seemlessly in most cases.<br />
<br />
* Download the CD image (from http://www.sysresccd.org/)<br />
* Burn the image to a CD<br />
* Boot from the CD<br />
<br />
Once booted, run qt_parted and the rest should be fairly obvious.<br />
<br />
If you already have ArchLinux installed on your system and simply want to resize an existing NTFS partition, you can use the ''parted'' and ''ntfsprogs'' packages to do it.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Dell_D630&diff=47998
Dell D630
2008-08-22T09:09:30Z
<p>Xiol: Dell D630 moved to Dell Latitude D630</p>
<hr />
<div>#REDIRECT [[Dell Latitude D630]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Dell_Latitude_D630&diff=47997
Dell Latitude D630
2008-08-22T09:09:30Z
<p>Xiol: Dell D630 moved to Dell Latitude D630</p>
<hr />
<div>=Introduction=<br />
The Dell D630 is a business line laptop made for corporate users who have a need for durability. This article will tell you how to get the basic components of the laptop running with Arch.<br />
=Installation=<br />
You can follow the [[Official Arch Linux Install Guide]] to get yourself up and running. I did a pretty standard install, keeping the XP partition that came with the laptop as my company requires all work computers to have Windows on them.<br />
<br />
The new installers will detect the Intel 3945 card and give you the option of installing the drivers and module for it but I didn't have any success doing that. It's good to have a wired connection to begin with just to make sure you get everything up and running.<br />
<br />
=To Be Continued=</div>
Xiol
https://wiki.archlinux.org/index.php?title=PrBoom&diff=47996
PrBoom
2008-08-22T09:08:22Z
<p>Xiol: Added section about using FreeDoom WAD</p>
<hr />
<div>{{Stub}}<br />
<br />
[[Category:Games and entertainment (English)]]<br />
<br />
= Introduction =<br />
[http://prboom.sourceforge.net/ PrBoom] is a cross-platform version of the classic 3D first person shooter [http://en.wikipedia.org/wiki/Doom_%28video_game%29 Doom] from id Software. Originally written for win32 (MS Windows), PrBoom has since been ported to Linux and many other platforms. It offers a number of enhancements over the original game, including OpenGL rendering and high video resolutions, while attempting to remain true to the original Doom in terms of play. You will need the original Doom data, unless you install the FreeDoom package (see below).<br />
<br />
= Installation =<br />
PrBoom is available from the standard repos:<br />
pacman -S prboom<br />
<br />
= Data =<br />
If you do not have the original Doom data available to play PrBoom, you can install the <tt>freedoom</tt> package from the [http://aur.archlinux.org/packages.php?ID=6176 AUR].<br />
yaourt -S --aur freedoom<br />
This will place the data in the correct directory, so you can just start PrBoom and frag away!</div>
Xiol
https://wiki.archlinux.org/index.php?title=Su&diff=47995
Su
2008-08-22T09:04:12Z
<p>Xiol: </p>
<hr />
<div>{{stub}}<br />
[[Category:Security (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
==Login Shell==<br />
<br />
In most cases, you will want to run su with the '-' option, so it acts as if you just logged in as that user directly:<br />
su -<br />
<br />
You may wish to add an alias to ~/.bashrc for this:<br />
alias su="su -"<br />
<br />
<br />
==How to allow only the "wheel" group to run su==<br />
*Uncomment the appropriate line in /etc/pam.d/su<br />
auth required pam_wheel.so use_uid</div>
Xiol
https://wiki.archlinux.org/index.php?title=Network_manager&diff=47994
Network manager
2008-08-22T09:00:29Z
<p>Xiol: Fixed redirection</p>
<hr />
<div>#REDIRECT [[NetworkManager]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Samba&diff=47993
Samba
2008-08-22T09:00:01Z
<p>Xiol: Changed to redirection</p>
<hr />
<div>#REDIRECT [[Setting up Samba]]</div>
Xiol
https://wiki.archlinux.org/index.php?title=Frequently_asked_questions&diff=47992
Frequently asked questions
2008-08-22T08:57:58Z
<p>Xiol: Added Q&A about spell check dictionaries.</p>
<hr />
<div>[[Category:About Arch (English)]]<br />
[[Category:FAQs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|Dansk|FAQ_(Dansk)}}<br />
{{i18n_entry|English|FAQ}}<br />
{{i18n_entry|Español|FAQ_(Español)}}<br />
{{i18n_entry|Nederlands|FAQ_(Nederlands)}}<br />
{{i18n_entry|Français|FAQ (Français)}}<br />
{{i18n_entry|Italiano|FAQ (Italiano)}}<br />
{{i18n_entry|Polski|FAQ (Polski)}}<br />
{{i18n_entry|简体中文|FAQ常见问题集}}<br />
{{i18n_entry|正體中文|FAQ 常見問答集}}<br />
{{i18n_entry|Slovensky|FAQ_(Slovensky)}}<br />
{{i18n_entry|Česky|FAQ_(Česky)}}<br />
{{i18n_entry|Deutsch|FAQ_(Deutsch)}}<br />
{{i18n_entry|Português do Brasil|FAQ_(Português do Brasil)}}<br />
{{i18n_entry|Русский|FAQ_(Русский)}}<br />
{{i18n_entry|ไทย|FAQ_(ไทย)}}<br />
{{i18n_links_end}}<br />
<br />
Besides the questions covered below, you may find [[The Arch Way]], [[Arch Linux]], and [[Devland]] helpful. All three contain a good deal of information about Arch Linux.<br />
<br />
= General =<br />
<br />
==Q) I am a complete GNU/Linux beginner. Should I use Arch?==<br />
'''A)''' This question has had much debate. Arch is targeted at more-advanced GNU/Linux users, but some people feel "Arch is a good place to start". If you are a beginner and want to use Arch, just be warned that you MUST be willing to learn. Before asking any question, do your own independent research by googling, searching the Wiki, and searching the forum (and reading past FAQs). If you do that, you should be fine. Also know that many people do not want to answer the same basic questions over and over, so you are exposing yourself to that environment. ''There is a reason these resources were created/made available to you.'' Recommended reading: The Arch Linux [[Beginners Guide|Beginners' Guide]].<br />
<br />
==Q) I really like Arch, except the development team needs to implement feature X.==<br />
'''A)''' Before going further, did you read [[The Arch Way]]? Have you provided the feature/solution? Does it conform to the Arch philosophy of ''minimalism'' and ''code-correctness over convenience''? Get involved, contribute your code/solution to the community. If it is well regarded by the community and development team, perhaps it will be merged. The Arch community thrives on contribution and sharing of code and tools.<br />
<br />
==Q) When will the new release be made?==<br />
'''A)''' Arch Linux releases coincide with each major kernel version, but are merely a snapshot of the /core repository, combined with various features or modifications to the installer script itself. The rolling release model keeps every Arch Linux system current and on the bleeding edge by issuing one command.<br />
<br />
For this reason, releases are not terribly important in Arch, because the rolling-release system makes new releases out of date as soon as a package has been updated. If you are looking to obtain the latest Arch Linux release, you do not need to reinstall. You simply run the ''pacman -Syu'' command and your system will be identical to what you would get with a brand-new install.<br />
<br />
For this same reason, new Arch Linux releases are not typically full of new and exciting features. New and exciting features are released as needed with the packages that are updated, and can be obtained immediately via ''pacman -Syu''.<br />
<br />
==Q) Arch needs more/less press (i.e. advertisement)==<br />
'''A)''' Arch gets plenty of press as it is. The goal of Arch Linux is not to be large. The goal is to provide an elegant, minimalist and bleeding edge distribution focused on simplicity and code-correctness. Growth occurs naturally amongst the target user base. Trying to force growth will just cause problems.<br />
<br />
Similarly, the development model does not restrict natural growth. More users might mean more devs to work on Arch Linux. This may cause some organizational issues at the "top", but those will be dealt with when they arrive.<br />
<br />
==Q) Arch needs more documentation==<br />
'''A)''' This is essentially true, so feel free to contribute. Documentation does not occur ex nihilo. After searching the forums and the wiki, if you cannot find the documentation you require, try creating it. Start a page on the wiki, and post in the forums regarding it. Likely other people have experience in the area, or are at least willing to help. If nobody does, don't be discouraged. When you finish your documentation, other people will likely find it an extremely valuable resource.<br />
There is always a need for documentation; contribute to the wiki.<br />
<br />
==Q) Arch needs more devs==<br />
'''A)''' Possibly so. Feel free to volunteer your time! Visit the forums, IRC channel, and mailing lists, and see what needs to be done.<br />
There is always a need for documentation; contribute to the wiki.<br />
<br />
==Q) Why is Arch so slow? I thought it's supposed to be fast!==<br />
'''A)''' Make sure that your hostname is correctly set in /etc/hosts (i.e., that it matches the hostname in /etc/rc.conf. Have a look at "Configure the System" in The [[Beginner's Guide]]). If the hostnames do not match, applications may start up very slowly.<br />
<br />
==Q) Why is my internet so slow compared to other operating systems?==<br />
'''A)''' Is your network configured correctly? Have you double checked your /etc/rc.conf /etc/hosts and /etc/resolv.conf? Have a look at "Configure the System" in The [[Beginner's Guide]].<br />
<br />
=Package Management=<br />
<br />
==Q) I've found an error with Package X. What should I do?==<br />
'''A)''' First, you need to figure out if this error is something the Arch team can fix. Sometimes it's not (that Firefox crash may be the fault of the Mozilla team) - this is called an ''upstream error''. If it is an Arch problem, there is a series of steps you can take:<br />
#Search the forums for information. See if anyone else has noticed it.<br />
#Notify the package maintainer. Try a "pacman -Qi <package name>" for this info.<br />
#Post a bug report with detailed information at http://bugs.archlinux.org.<br />
#If you'd like, write a forum post detailing the problem and the fact that you have reported it already. This will help prevent a lot of people from reporting the same error.<br />
<br />
==Q) Will Arch have a database for pacman?==<br />
'''A)''' Possibly. There is discussion over the issue. <br><br />
http://bbs.archlinux.org/viewtopic.php?t=11193 <br><br />
http://bbs.archlinux.org/viewtopic.php?t=10898 <br><br />
Look at http://bugs.archlinux.org/task/5328, too.<br />
<br />
==Q) Arch packages need to use a unique naming convention. .pkg.tar.gz is too long and/or confusing==<br />
'''A)''' This has been discussed on the Arch mailing list. Some proposed a .pac file extension. As far as is currently known, there is no plan to change the package extension.<br />
As Tobias Kieslich, one of the Arch devs, put it, "A package '''is''' a gzipped tarball! And it can be opened, investigated and manipulated by any tar-capable application. Moreover, the mime-type is automatically detected correctly by most applications."<br />
<br />
==Q) Pacman needs a library so other applications can easily access package information==<br />
'''A)''' Since version 3.0.0, pacman has been the front-end to libalpm, the "Arch Linux Package Management" library. This library allows alternative front-ends to be written (for instance, a GUI front-end).<br />
<br />
==Q) Why doesn't Pacman have an official GUI front-end?==<br />
'''A)''' Did you read [[The Arch Way]] and [[Arch Linux]] and [[Devland]]?<br />
The answer is basically that the Arch dev team will not be providing one. Feel free to use one of those developed by users. There is a nice list of them on the [[UserContributionsPage]] in the links section, and a selective list on [[Pacman GUI Frontends]].<br />
<br />
==Q) Pacman needs Feature X!==<br />
'''A)''' Did you read [[The Arch Way]] and [[Arch Linux]] and [[Devland]]?<br />
The Arch philosophy is "Keep It Simple". If you think the idea has merit, and does not violate this simple litany, then by all means, discuss it on the forum [http://bbs.archlinux.org/ here]. You might also like to check [http://bugs.archlinux.org here]; it's a place for feature requests if you find it is important.<br />
<br />
However, the best way to get a feature added to Pacman or Arch Linux is to implement it yourself. There's no telling whether the patch will be officially accepted, but others will appreciate and test your effort.<br />
<br />
==Q) Arch needs a stable package branch==<br />
'''A)'''<br />
Never say never.<br />
Some of the many discussions on the topic: <br><br />
http://bbs.archlinux.org/viewtopic.php?t=11288<br />
<br><br />
http://archlinux.org/pipermail/arch/2007-November/016048.html<br />
<br />
==Q) What's the difference between all these repositories?==<br />
'''A)''' See [[The Arch Linux Repositories]].<br />
<br />
==Q) Why doesn't Arch include docs and info pages in its packages?==<br />
'''A)''' In its goal to be simple and lightweight, the relatively useless portions of a Linux system have been left out, things like /usr/doc and the info pages, in favor of man pages. This question is brought up a lot; read some past discussions about it: <br><br />
http://www.archlinux.org/pipermail/arch/2005-April/004194.html <br><br />
http://bbs.archlinux.org/viewtopic.php?id=14527<br />
<br />
==Q) I just installed Package X. How do I start it?==<br />
'''A)''' If you're using a desktop environment like KDE or GNOME, the program should automatically show up in your menu. If you're trying to run the program from a terminal and don't know the binary name, try executing "pacman -Ql packagename | grep bin". A common problem for packages like Firefox or OpenOffice is that they are installed to /opt, which is not in your $PATH - you can "source /etc/profile" or logout/login to fix this.<br />
<br />
=Installation=<br />
<br />
==Q) Arch needs a better installer. Maybe a GUI installer.==<br />
'''A)''' The discussion of a "better" installer is a subjective opinion. The best way to cope with these issues it to fit the installer to "the Arch way". If this opinion on a better installer is backed with more-concrete arguments, it might be taken into account for further development of the installer. Since installation doesn't occur often (see the question above on rolling release), it is not a high priority for developers or users.<br />
However, two unofficial methods exist: [http://archie.dotsrc.org/ Archie Live CD] for XFCE (other desktops in development) and [http://user-contributions.org/wikis/userwiki/index.php?title=Arch_Linux_Office_Install_CD Arch Linux Office Install CD] for KDE.<br />
<br />
==Q) I installed Arch, and now I am at a bash login! What now?==<br />
'''A)''' Have a look at the Arch Linux [[Beginner's Guide]]<br />
<br />
=Other=<br />
<br />
==Q) I get an error every time I use pacman saying 'warning: current locale is invalid; using default "C" locale'. What do I do?==<br />
'''A)''' As the error message says, your locale isn't correctly configured. Have a look at the [[Configuring locales|locale configuration wiki page]].<br />
<br />
==Q) How do I automount/mount something? ==<br />
'''A)''' If you use GNOME, install gnome-volume-manager:<br />
pacman -Sy gnome-volume-manager<br />
<br />
Now add yourself to the storage group:<br />
gpasswd -a ''your_user'' storage<br />
<br />
If you don't want to use gnome-volume-manager, check out the [[AutoFS_HowTo|AutoFS HowTo]].<br />
<br />
==Q) How do I connect to my wireless network?==<br />
'''A)''' See [[Wireless Setup]].<br />
<br />
==Q) How do I connect to my wired network?==<br />
'''A)''' See [[Configuring network]].<br />
<br />
==Q) What is this AUR thing I keep hearing about?==<br />
'''A)''' See [[AUR Q & A]].<br />
<br />
==Q) Why do I get a green screen whenever I try to watch a video?==<br />
'''A)''' Your colour depth is set wrong. It may need to be 24 instead of 16, for example.<br />
<br />
==Q) Spellcheck is marking all of my text as incorrect!==<br />
'''A)''' Have you installed an aspell dictionary? Use <tt>pacman -Ss aspell</tt> to see the available dictionaries.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Pidgin&diff=47959
Pidgin
2008-08-21T16:02:37Z
<p>Xiol: Added category</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
== Preface == <br />
<br />
Pidgin is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc.<br />
<br />
== Installation ==<br />
<br />
pacman -S pidgin<br />
<br />
You may also want to install extra plugins from the <tt>purple-plugin-pack</tt>.<br />
<br />
== Live Messenger ==<br />
<br />
The MSN protocol included with Pidgin is quite outdated, so you may want to install the <tt>msn-pecan</tt> package from the AUR.<br />
<br />
yaourt -S --aur msn-pecan<br />
<br />
If you do this, when you are creating your accounts in Pidgin select the WLM protocol, rather than MSN.<br />
<br />
== Spellcheck ==<br />
<br />
Aspell will be pulled down as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary.<br />
<br />
pacman -S aspell-en<br />
<br />
For the English dictionary. Use <tt>pacman -Ss aspell</tt> for a list of available languages.</div>
Xiol
https://wiki.archlinux.org/index.php?title=DansGuardian&diff=47958
DansGuardian
2008-08-21T16:01:24Z
<p>Xiol: /* Starting DG */</p>
<hr />
<div>== Preface ==<br />
From the Dansguardian [http://dansguardian.org website].<br />
:::''DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters.''<br />
<br />
:::''DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.''<br />
<br />
:::''DansGuardian is a true web content filter. ''<br />
<br />
DansGuardian is excellent at filtering pages from the Internet as it examines both the URL and the content of the page, and it has many options to allow you to fine tune the process. To run DansGuardian, you will first need a proxy in place. DansGuardian will work with many proxy servers, but [[Squid]] is the recommended one.<br />
<br />
The original author of this article runs Squid and DansGuardian content filters at several schools in the UK, successfully blocking inappropriate content.<br />
<br />
== Installation ==<br />
<br />
DansGuardian is available in the extra repository. Make sure this is enabled in your pacman.conf, then run:<br />
pacman -Sy dansguardian<br />
<br />
This article is based on DansGuardian 2.8.0.6. DansGuardian is hereby referred to as DG.<br />
<br />
== Configuration ==<br />
=== Config Files ===<br />
Assuming you have [[Squid]] already set up, configuring DG is a relatively straightforward process. All of the configuration files, blocking templates, blacklists, etc are stored in <tt>/etc/dansguardian</tt>.<br />
<br />
DG has the concept of groups, which are groups of users or machines that have certain blocks applied to them. For now, we are just going to set up one group for everyone - the idea being that anyone who wants unfiltered access could just hit Squid directly. (This is not ideal.)<br />
<br />
Start by editing <tt>/etc/dansguardian/dansguardian.conf</tt>. The file is pretty well commented so you shouldn't have many problem problems following it through. The defaults are pretty sane. Be sure to check the options under Network Settings for <tt>filterip</tt>, <tt>filterport</tt>, <tt>proxyip</tt> and <tt>proxyport</tt>. You may also want to examine <tt>weightedphrasemode</tt> and <tt>phrasefiltermode</tt>. The filter mode is especially important if you are running this setup on older hardware.<br />
<br />
Next we need to edit the options for our first, and only, group. Edit the file <tt>/etc/dansguardian/dansguardianf1.conf</tt>. Once again this is pretty well commented, but you should pay attention to the <tt>naughtynesslimit</tt>.<br />
<br />
DG examines the content on a page and adds up the naughty words based on a weighting scheme, with worse words getting more points. If this total exceeds the <tt>naughtnesslimit</tt>, the page will be blocked. 50 is a good limit for young children, whereas 160 is good for young adults. In a corporate environment, you'd want this set around 200.<br />
<br />
=== Blacklists ===<br />
<br />
Adding websites to the block lists are done in the same directory, in the almost self-explanatory configuration files. DG provides a powerful regular expression URL and content filter, as well as ordinary URL blocklists. Some of the important files are:<br />
<br />
*bannedsitelist - The domains for your banned sites, e.g. "human-horse-love.com"<br />
*bannedurllist - If you just want to block part of a website, e.g. "bbc.co.uk/games"<br />
*exception* - This is where your domain/URL exceptions go. Sites in this list will not be checked and allowed straight through.<br />
*bannedregexpurllist - Very powerful. This is where you can put regular expressions to block certain URLs, e.g. "(.*q=.*xxx.*)" to stop searching for the word "xxx".<br />
<br />
Whenever you add or remove a URL from the list, you must tell DG you have done so. This can be done with:<br />
dansguardian -r<br />
Which will force DG to reload it's configuration. Doing it this way, rather than restarting the daemon, will mean that for the most part your users won't notice reloading. (I've noticed that straight after the reload, users may have trouble accessing web pages for about 5-10 seconds - if this is a problem you can always run a cronjob at 12am to run <tt>dansguardian -r</tt>).<br />
<br />
You can download a blacklist collection from [http://urlblacklist.com URLBlacklist], but be sure to read the [http://urlblacklist.com/?sec=faq FAQ] first, as you will, paradoxically, want to unsort the collection to enable DG to start faster. Once you have installed the blacklist under <tt>/etc/dansguardian</tt> you can add them to your DG configuration by opening the appropriate configuration file and adding:<br />
.Include</etc/dansguardian/blacklists/ads/domains><br />
.Include</etc/dansguardian/blacklists/drugs/domains><br />
etc...<br />
To the bottom of the file. Take a look around the blacklist collection to see what is available.<br />
<br />
=== "Access Denied" Template ===<br />
<br />
If you wish to change the page that gets displayed to users when a website is blocked, you need to edit the file:<br />
/etc/dansguardian/languages/<LANGUAGE>/template.html<br />
<br />
== Starting DansGuardian ==<br />
Dansguardian needs to start ''after'' your proxy has started, so run:<br />
/etc/rc.d/squid start<br />
/etc/rc.d/dansguardian start<br />
And ensure in your <tt>DAEMONS=()</tt> section of rc.conf, that DG starts after squid:<br />
DAEMONS=(... squid dansguardian ...)<br />
Without a valid proxy, DG will fail to start, so you will not want to background Squid. Depending on the size of your blacklists and your hardware, DG can take quite a while to start (30-60 seconds), so you may wish to background DG.<br />
DAEMONS=(... squid @dansguardian ...)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Pidgin&diff=47957
Pidgin
2008-08-21T15:59:51Z
<p>Xiol: /* Live Messenger */ spelling</p>
<hr />
<div>== Preface == <br />
<br />
Pidgin is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc.<br />
<br />
== Installation ==<br />
<br />
pacman -S pidgin<br />
<br />
You may also want to install extra plugins from the <tt>purple-plugin-pack</tt>.<br />
<br />
== Live Messenger ==<br />
<br />
The MSN protocol included with Pidgin is quite outdated, so you may want to install the <tt>msn-pecan</tt> package from the AUR.<br />
<br />
yaourt -S --aur msn-pecan<br />
<br />
If you do this, when you are creating your accounts in Pidgin select the WLM protocol, rather than MSN.<br />
<br />
== Spellcheck ==<br />
<br />
Aspell will be pulled down as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary.<br />
<br />
pacman -S aspell-en<br />
<br />
For the English dictionary. Use <tt>pacman -Ss aspell</tt> for a list of available languages.</div>
Xiol
https://wiki.archlinux.org/index.php?title=Pidgin&diff=47956
Pidgin
2008-08-21T15:59:21Z
<p>Xiol: Initial creation.</p>
<hr />
<div>== Preface == <br />
<br />
Pidgin is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc.<br />
<br />
== Installation ==<br />
<br />
pacman -S pidgin<br />
<br />
You may also want to install extra plugins from the <tt>purple-plugin-pack</tt>.<br />
<br />
== Live Messenger ==<br />
<br />
The MSN protocol included with Pidgin is quite outdated, so you may want to install the <tt>msn-pecan</tt> package from the AUR.<br />
<br />
yaourt -S --aur msn-pecan<br />
<br />
If you do this, when you are creating your accounts in Pidgin select the WLM protocal, rather than MSN.<br />
<br />
== Spellcheck ==<br />
<br />
Aspell will be pulled down as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary.<br />
<br />
pacman -S aspell-en<br />
<br />
For the English dictionary. Use <tt>pacman -Ss aspell</tt> for a list of available languages.</div>
Xiol
https://wiki.archlinux.org/index.php?title=DansGuardian&diff=47944
DansGuardian
2008-08-21T09:42:36Z
<p>Xiol: /* Blacklists */</p>
<hr />
<div>== Preface ==<br />
From the Dansguardian [http://dansguardian.org website].<br />
:::''DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters.''<br />
<br />
:::''DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.''<br />
<br />
:::''DansGuardian is a true web content filter. ''<br />
<br />
DansGuardian is excellent at filtering pages from the Internet as it examines both the URL and the content of the page, and it has many options to allow you to fine tune the process. To run DansGuardian, you will first need a proxy in place. DansGuardian will work with many proxy servers, but [[Squid]] is the recommended one.<br />
<br />
The original author of this article runs Squid and DansGuardian content filters at several schools in the UK, successfully blocking inappropriate content.<br />
<br />
== Installation ==<br />
<br />
DansGuardian is available in the extra repository. Make sure this is enabled in your pacman.conf, then run:<br />
pacman -Sy dansguardian<br />
<br />
This article is based on DansGuardian 2.8.0.6. DansGuardian is hereby referred to as DG.<br />
<br />
== Configuration ==<br />
=== Config Files ===<br />
Assuming you have [[Squid]] already set up, configuring DG is a relatively straightforward process. All of the configuration files, blocking templates, blacklists, etc are stored in <tt>/etc/dansguardian</tt>.<br />
<br />
DG has the concept of groups, which are groups of users or machines that have certain blocks applied to them. For now, we are just going to set up one group for everyone - the idea being that anyone who wants unfiltered access could just hit Squid directly. (This is not ideal.)<br />
<br />
Start by editing <tt>/etc/dansguardian/dansguardian.conf</tt>. The file is pretty well commented so you shouldn't have many problem problems following it through. The defaults are pretty sane. Be sure to check the options under Network Settings for <tt>filterip</tt>, <tt>filterport</tt>, <tt>proxyip</tt> and <tt>proxyport</tt>. You may also want to examine <tt>weightedphrasemode</tt> and <tt>phrasefiltermode</tt>. The filter mode is especially important if you are running this setup on older hardware.<br />
<br />
Next we need to edit the options for our first, and only, group. Edit the file <tt>/etc/dansguardian/dansguardianf1.conf</tt>. Once again this is pretty well commented, but you should pay attention to the <tt>naughtynesslimit</tt>.<br />
<br />
DG examines the content on a page and adds up the naughty words based on a weighting scheme, with worse words getting more points. If this total exceeds the <tt>naughtnesslimit</tt>, the page will be blocked. 50 is a good limit for young children, whereas 160 is good for young adults. In a corporate environment, you'd want this set around 200.<br />
<br />
=== Blacklists ===<br />
<br />
Adding websites to the block lists are done in the same directory, in the almost self-explanatory configuration files. DG provides a powerful regular expression URL and content filter, as well as ordinary URL blocklists. Some of the important files are:<br />
<br />
*bannedsitelist - The domains for your banned sites, e.g. "human-horse-love.com"<br />
*bannedurllist - If you just want to block part of a website, e.g. "bbc.co.uk/games"<br />
*exception* - This is where your domain/URL exceptions go. Sites in this list will not be checked and allowed straight through.<br />
*bannedregexpurllist - Very powerful. This is where you can put regular expressions to block certain URLs, e.g. "(.*q=.*xxx.*)" to stop searching for the word "xxx".<br />
<br />
Whenever you add or remove a URL from the list, you must tell DG you have done so. This can be done with:<br />
dansguardian -r<br />
Which will force DG to reload it's configuration. Doing it this way, rather than restarting the daemon, will mean that for the most part your users won't notice reloading. (I've noticed that straight after the reload, users may have trouble accessing web pages for about 5-10 seconds - if this is a problem you can always run a cronjob at 12am to run <tt>dansguardian -r</tt>).<br />
<br />
You can download a blacklist collection from [http://urlblacklist.com URLBlacklist], but be sure to read the [http://urlblacklist.com/?sec=faq FAQ] first, as you will, paradoxically, want to unsort the collection to enable DG to start faster. Once you have installed the blacklist under <tt>/etc/dansguardian</tt> you can add them to your DG configuration by opening the appropriate configuration file and adding:<br />
.Include</etc/dansguardian/blacklists/ads/domains><br />
.Include</etc/dansguardian/blacklists/drugs/domains><br />
etc...<br />
To the bottom of the file. Take a look around the blacklist collection to see what is available.<br />
<br />
=== "Access Denied" Template ===<br />
<br />
If you wish to change the page that gets displayed to users when a website is blocked, you need to edit the file:<br />
/etc/dansguardian/languages/<LANGUAGE>/template.html<br />
<br />
== Starting DG ==<br />
Dansguardian needs to start ''after'' your proxy has started, so run:<br />
/etc/rc.d/squid start<br />
/etc/rc.d/dansguardian start<br />
And ensure in your <tt>DAEMONS=()</tt> section of rc.conf, that DG starts after squid:<br />
DAEMONS=(... squid dansguardian ...)<br />
Without a valid proxy, DG will fail to start, so you will not want to background Squid. Depending on the size of your blacklists and your hardware, DG can take quite a while to start (30-60 seconds), so you may wish to background DG.<br />
DAEMONS=(... squid @dansguardian ...)</div>
Xiol
https://wiki.archlinux.org/index.php?title=DansGuardian&diff=47943
DansGuardian
2008-08-21T09:38:30Z
<p>Xiol: Created a new page about a web content filter.</p>
<hr />
<div>== Preface ==<br />
From the Dansguardian [http://dansguardian.org website].<br />
:::''DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters.''<br />
<br />
:::''DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.''<br />
<br />
:::''DansGuardian is a true web content filter. ''<br />
<br />
DansGuardian is excellent at filtering pages from the Internet as it examines both the URL and the content of the page, and it has many options to allow you to fine tune the process. To run DansGuardian, you will first need a proxy in place. DansGuardian will work with many proxy servers, but [[Squid]] is the recommended one.<br />
<br />
The original author of this article runs Squid and DansGuardian content filters at several schools in the UK, successfully blocking inappropriate content.<br />
<br />
== Installation ==<br />
<br />
DansGuardian is available in the extra repository. Make sure this is enabled in your pacman.conf, then run:<br />
pacman -Sy dansguardian<br />
<br />
This article is based on DansGuardian 2.8.0.6. DansGuardian is hereby referred to as DG.<br />
<br />
== Configuration ==<br />
=== Config Files ===<br />
Assuming you have [[Squid]] already set up, configuring DG is a relatively straightforward process. All of the configuration files, blocking templates, blacklists, etc are stored in <tt>/etc/dansguardian</tt>.<br />
<br />
DG has the concept of groups, which are groups of users or machines that have certain blocks applied to them. For now, we are just going to set up one group for everyone - the idea being that anyone who wants unfiltered access could just hit Squid directly. (This is not ideal.)<br />
<br />
Start by editing <tt>/etc/dansguardian/dansguardian.conf</tt>. The file is pretty well commented so you shouldn't have many problem problems following it through. The defaults are pretty sane. Be sure to check the options under Network Settings for <tt>filterip</tt>, <tt>filterport</tt>, <tt>proxyip</tt> and <tt>proxyport</tt>. You may also want to examine <tt>weightedphrasemode</tt> and <tt>phrasefiltermode</tt>. The filter mode is especially important if you are running this setup on older hardware.<br />
<br />
Next we need to edit the options for our first, and only, group. Edit the file <tt>/etc/dansguardian/dansguardianf1.conf</tt>. Once again this is pretty well commented, but you should pay attention to the <tt>naughtynesslimit</tt>.<br />
<br />
DG examines the content on a page and adds up the naughty words based on a weighting scheme, with worse words getting more points. If this total exceeds the <tt>naughtnesslimit</tt>, the page will be blocked. 50 is a good limit for young children, whereas 160 is good for young adults. In a corporate environment, you'd want this set around 200.<br />
<br />
=== Blacklists ===<br />
<br />
Adding websites to the block lists are done in the same directory, in the almost self-explanatory configuration files. DG provides a powerful regular expression URL and content filter, as well as ordinary URL blocklists. Some of the important files are:<br />
<br />
*bannedsitelist - This is where you put the domains for your banned sites, e.g. "human-horse-love.com"<br />
*bannedurllist - This is where URLs go, if you just want to block part of a website, e.g. "bbc.co.uk/games"<br />
*exception* - This is where your domain/URL exceptions go. Sites in this list will not be checked and allowed straight through.<br />
*bannedregexpurllist - This is where you can put regular expressions to block certain URLs, e.g. "(.*q=.*xxx.*)" to stop searching for the word "xxx".<br />
<br />
Whenever you add or remove a URL from the list, you must tell DG you have done so. This can be done with:<br />
dansguardian -r<br />
Which will force DG to reload it's configuration. Doing it this way, rather than restarting the daemon, will mean that for the most part, your users won't notice reloading. (I've noticed that straight after the reload, users may have trouble accessing web pages for about 5-10 seconds - if this is a problem you can always run a cronjob at 12am to run <tt>dansguardian -r</tt>).<br />
<br />
You can download a blacklist collection from [http://urlblacklist.com URLBlacklist], but be sure to read the [http://urlblacklist.com/?sec=faq FAQ] first, as you will, paradoxically, want to unsort the collection to enable DG to start faster. Once you have installed the blacklist under <tt>/etc/dansguardian</tt> you can add them to your DG configuration by opening the appropriate configuration file and adding:<br />
.Include</etc/dansguardian/blacklists/ads/domains><br />
.Include</etc/dansguardian/blacklists/drugs/domains><br />
etc...<br />
To the bottom of the file. Take a look around the blacklist collection to see what is available.<br />
<br />
=== "Access Denied" Template ===<br />
<br />
If you wish to change the page that gets displayed to users when a website is blocked, you need to edit the file:<br />
/etc/dansguardian/languages/<LANGUAGE>/template.html<br />
<br />
== Starting DG ==<br />
Dansguardian needs to start ''after'' your proxy has started, so run:<br />
/etc/rc.d/squid start<br />
/etc/rc.d/dansguardian start<br />
And ensure in your <tt>DAEMONS=()</tt> section of rc.conf, that DG starts after squid:<br />
DAEMONS=(... squid dansguardian ...)<br />
Without a valid proxy, DG will fail to start, so you will not want to background Squid. Depending on the size of your blacklists and your hardware, DG can take quite a while to start (30-60 seconds), so you may wish to background DG.<br />
DAEMONS=(... squid @dansguardian ...)</div>
Xiol
https://wiki.archlinux.org/index.php?title=Squid&diff=47942
Squid
2008-08-21T09:04:10Z
<p>Xiol: </p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
From the squid [http://www.squid-cache.org website]:<br />
<br />
:::''Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on Unix and Windows and is licensed under the GNU GPL.''<br />
<br />
While squid works wonderfully in large corporations and schools, it can also benefit the home user too. However, if you're looking for a more lightweight single-user proxy, you should try [[Polipo]] ([http://www.pps.jussieu.fr/~jch/software/polipo/ website]).<br />
<br />
== Installation ==<br />
<br />
To install the latest version of Squid, run<br />
<br />
pacman -Sy squid<br />
<br />
== Configuration ==<br />
<br />
By default, the cache directories will be created in /var/cache/squid, and the appropriate permissions set up for those directories. However, for greater control, we need to delve into <tt>/etc/squid/squid.conf</tt>.<br />
<br />
Everything is well commented, but if you want to strip the comments out you should run:<br />
<br />
cat /etc/squid/squid.conf | grep -e '^[^#]' > ~/squid.tmp && mv ~/squid.tmp /etc/squid/squid.conf<br />
<br />
The following options might be of some use to you. If you do not have the option present in your configuration file, add it!<br />
<br />
* <tt>http_port</tt> - Sets the port that Squid binds to on your local machine. You can have Squid bind to multiple ports by specifying multiple http_proxy lines. By default, Squid binds to port 3128.<br />
http_port 3128<br />
http_port 3129<br />
* <tt>http_access</tt> - This is an access control list for who is allowed to use the proxy. By default only localhost is allowed to access the proxy. For testing purposes, you may want to change the option <tt>http_access deny all</tt> to <tt>http_access allow all</tt>, which will allow anyone to connect to your proxy. If you wanted to just allow access to your subnet, you can do:<br />
acl ip_acl src 192.168.1.0/24<br />
http_access allow ip_acl<br />
http_acesss deny all<br />
*<tt>cache_mgr</tt> - This is the email address of the cache manager.<br />
cache_mgr squid.admin@example.com<br />
*<tt>shutdown_lifetime</tt> - Specifies how long Squid should wait when it's rc.d script is asked to stop. If you're running squid on your desktop PC, you may want to set this to something short.<br />
shutdown_lifetime 10 seconds<br />
*<tt>cache_mem</tt> - This is how much memory you want Squid to use to keep objects in memory rather than writing them to disk. Squid's total memory usage will exceed this! By default this is 8MB, so you might want to increase it if you have lots of RAM available.<br />
cache_mem 64 MB<br />
*<tt>visible_hostname</tt> - Pretty much self explanatory!<br />
visible_hostname cerberus<br />
*<tt>cache_peer</tt> - If you want your Squid to go through another proxy server, rather than directly out to the Internet, you need to specify it here.<br />
*<tt>never_direct</tt> - Tells the cache to never go direct to the internet to retrieve a page. You will want this if you have set the option above.<br />
cache_peer 10.1.1.100 parent 8080 0 no-query default<br />
never_direct allow all<br />
*<tt>maximum_object_size</tt> - The largest size of a cached object. By default this is small (256KB I think), so if you have a lot of disk space you will want to increase the size of it to something reasonable.<br />
maximum_object_size 10 MB<br />
*<tt>cache_dir</tt> - This is your cache directory, where all the cached files are stored. There are many options here, but the format should generally go like:<br />
cache_dir diskd <directory> <size in MB> 16 256<br />
So, in the case of a school's internet proxy:<br />
cache_dir diskd /cache0 200000 16 256<br />
If you change the cache directory from defaults, you must set the correct permissions on the cache directory before starting Squid, else it won't be able to create it's cache directories and will fail to start.<br />
<br />
== Starting ==<br />
<br />
Once you have finished your configuration, you should check that your configuration file is correct:<br />
squid -k check<br />
Then create your cache directories:<br />
squid -z<br />
Then you can start Squid!<br />
/etc/rc.d/squid start<br />
<br />
Don't forget to add <tt>squid</tt> to the <tt>DAEMONS=()</tt> section of rc.conf if you want it to start on boot.<br />
<br />
== Other Software ==<br />
<br />
If you're looking for a content filtering solution to work with Squid, you should check out the very powerful [[DansGuardian]] ([http://www.dansguardian.org website]). If you'd like a web-based frontend for managing Squid, [[Webmin]] is your best bet.<br />
<br />
== NTLM ==<br />
''This section is really unclear...''<br />
<br />
To get windows authentication then we should change /etc/squid/squid.conf:<br />
<br />
<pre><br />
http_port 3128<br />
hierarchy_stoplist cgi-bin ?<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache<br />
cache_mem 50 MB<br />
access_log /var/log/squid/access.log squid<br />
auth_param ntlm children 20<br />
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp<br />
authenticate_ip_ttl 9 hour<br />
refresh_pattern ^ftp: 1440 20% 10080<br />
refresh_pattern ^gopher: 1440 0% 1440<br />
refresh_pattern . 0 20% 4320<br />
acl all src 0.0.0.0/0.0.0.0<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl to_localhost dst 127.0.0.0/8<br />
acl SSL_ports port 443<br />
acl Safe_ports port 80 # http<br />
acl Safe_ports port 21 # ftp<br />
acl Safe_ports port 443 # https<br />
acl Safe_ports port 70 # gopher<br />
acl Safe_ports port 210 # wais<br />
acl Safe_ports port 1025-65535 # unregistered ports<br />
acl Safe_ports port 280 # http-mgmt<br />
acl Safe_ports port 488 # gss-http<br />
acl Safe_ports port 591 # filemaker<br />
acl Safe_ports port 777 # multiling http<br />
acl CONNECT method CONNECT<br />
acl auth proxy_auth REQUIRED<br />
<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow all auth<br />
http_access deny all<br />
<br />
http_access allow all<br />
<br />
http_reply_access allow all<br />
icp_access allow all<br />
<br />
cache_effective_user proxy<br />
cache_effective_group proxy<br />
<br />
coredump_dir /var/cache/squid<br />
<br />
visible_hostname youhostname<br />
</pre></div>
Xiol
https://wiki.archlinux.org/index.php?title=Squid&diff=47941
Squid
2008-08-21T08:40:51Z
<p>Xiol: Added information on installing and configuring Squid.</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
From the squid [http://www.squid-cache.org website]:<br />
<br />
:::''Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on Unix and Windows and is licensed under the GNU GPL.''<br />
<br />
While squid works wonderfully in large corporations and schools, it can also benefit the home user too. However, if you're looking for a more lightweight single-user proxy, you should try [[Polipo]] ([http://www.pps.jussieu.fr/~jch/software/polipo/ website]).<br />
<br />
== Installation ==<br />
<br />
To install the latest version of Squid, run<br />
<br />
pacman -Sy squid<br />
<br />
== Configuration ==<br />
<br />
By default, the cache directories will be created in /var/cache/squid, and the appropriate permissions set up for those directories. However, for greater control, we need to delve into <tt>/etc/squid/squid.conf</tt>.<br />
<br />
Everything is well commented, but if you want to strip the comments out you should run:<br />
<br />
cat /etc/squid/squid.conf | grep -e '^[^#]' > ~/squid.tmp && mv ~/squid.tmp /etc/squid/squid.conf<br />
<br />
The following options might be of some use to you. If you do not have the option present in your configuration file, add it!<br />
<br />
* <tt>http_port</tt> - Sets the port that Squid binds to on your local machine. You can have Squid bind to multiple ports by specifying multiple http_proxy lines. By default, Squid binds to port 3128.<br />
http_port 3128<br />
http_port 3129<br />
* <tt>http_access</tt> - This is an access control list for who is allowed to use the proxy. By default only localhost is allowed to access the proxy. For testing purposes, you may want to change the option <tt>http_access deny all</tt> to <tt>http_access allow all</tt>, which will allow anyone to connect to your proxy. If you wanted to just allow access to your subnet, you can do:<br />
acl ip_acl src 192.168.1.0/24<br />
http_access allow ip_acl<br />
http_acesss deny all<br />
*<tt>cache_mgr</tt> - This is the email address of the cache manager.<br />
cache_mgr squid.admin@example.com<br />
*<tt>shutdown_lifetime</tt> - Specifies how long Squid should wait when it's rc.d script is asked to stop. If you're running squid on your desktop PC, you may want to set this to something short.<br />
shutdown_lifetime 10 seconds<br />
*<tt>cache_mem</tt> - This is how much memory you want Squid to use to keep objects in memory rather than writing them to disk. Squid's total memory usage will exceed this! By default this is 8MB, so you might want to increase it if you have lots of RAM available.<br />
cache_mem 64 MB<br />
*<tt>visible_hostname</tt> - Pretty much self explanatory!<br />
visible_hostname cerberus<br />
*<tt>cache_peer</tt> - If you want your Squid to go through another proxy server, rather than directly out to the Internet, you need to specify it here.<br />
*<tt>never_direct</tt> - Tells the cache to never go direct to the internet to retrieve a page. You will want this if you have set the option above.<br />
cache_peer 10.1.1.100 parent 8080 0 no-query default<br />
never_direct allow all<br />
*<tt>maximum_object_size</tt> - The largest size of a cached object. By default this is small (256KB I think), so if you have a lot of disk space you will want to increase the size of it to something reasonable.<br />
maximum_object_size 10 MB<br />
*<tt>cache_dir</tt> - This is your cache directory, where all the cached files are stored. There are many options here, but the format should generally go like:<br />
cache_dir diskd <directory> <size in MB> 16 256<br />
So, in the case of a school's internet proxy:<br />
cache_dir diskd /cache0 200000 16 256<br />
If you change the cache directory from defaults, you must set the correct permissions on the cache directory before starting Squid, else it won't be able to create it's cache directories and will fail to start.<br />
<br />
== Starting ==<br />
<br />
Once you have finished your configuration, you should check that your configuration file is correct:<br />
squid -k check<br />
Then create your cache directories:<br />
squid -z<br />
Then you can start Squid!<br />
/etc/rc.d/squid start<br />
<br />
Don't forget to add <tt>squid</tt> to the <tt>DAEMONS=()</tt> section of rc.conf if you want it to start on boot.<br />
<br />
If you're looking for a content filtering solution to work with Squid, you should check out the very powerful [[Dansguardian]] ([http://www.dansguardian.org website]). If you'd like a web-based frontend for managing Squid, [[Webmin]] is your best bet.<br />
<br />
== NTLM ==<br />
''This section is really unclear...''<br />
<br />
To get windows authentication then we should change /etc/squid/squid.conf:<br />
<br />
<pre><br />
http_port 3128<br />
hierarchy_stoplist cgi-bin ?<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache<br />
acl apache rep_header Server ^Apache<br />
broken_vary_encoding allow apache<br />
cache_mem 50 MB<br />
access_log /var/log/squid/access.log squid<br />
auth_param ntlm children 20<br />
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp<br />
authenticate_ip_ttl 9 hour<br />
refresh_pattern ^ftp: 1440 20% 10080<br />
refresh_pattern ^gopher: 1440 0% 1440<br />
refresh_pattern . 0 20% 4320<br />
acl all src 0.0.0.0/0.0.0.0<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
acl to_localhost dst 127.0.0.0/8<br />
acl SSL_ports port 443<br />
acl Safe_ports port 80 # http<br />
acl Safe_ports port 21 # ftp<br />
acl Safe_ports port 443 # https<br />
acl Safe_ports port 70 # gopher<br />
acl Safe_ports port 210 # wais<br />
acl Safe_ports port 1025-65535 # unregistered ports<br />
acl Safe_ports port 280 # http-mgmt<br />
acl Safe_ports port 488 # gss-http<br />
acl Safe_ports port 591 # filemaker<br />
acl Safe_ports port 777 # multiling http<br />
acl CONNECT method CONNECT<br />
acl auth proxy_auth REQUIRED<br />
<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow all auth<br />
http_access deny all<br />
<br />
http_access allow all<br />
<br />
http_reply_access allow all<br />
icp_access allow all<br />
<br />
cache_effective_user proxy<br />
cache_effective_group proxy<br />
<br />
coredump_dir /var/cache/squid<br />
<br />
visible_hostname youhostname<br />
</pre></div>
Xiol
https://wiki.archlinux.org/index.php?title=Music_Player_Daemon&diff=47913
Music Player Daemon
2008-08-20T15:16:45Z
<p>Xiol: /* Last.fm scrobbling */ Correction</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:Daemons and system services (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|mpd}}<br />
{{i18n_entry|Polski|mpd (polski)}}<br />
{{i18n_entry|Nederlands|Music Player Daemon (Nederlands)}}<br />
{{i18n_entry|Русский|MPD - Music Player Daemon (Русский)}}<br />
{{i18n_entry|简体中文|MPD(简体中文)}}<br />
{{i18n_links_end}}<br />
<br />
==What is mpd?==<br />
mpd (Music Player Daemon) is an audio player that has a server-client architecture. mpd runs in the background as a daemon, manages playlists and a music database, and uses very few resources. In order to interface with it, you need a separate client. More information can be found on their [http://www.musicpd.org/ website]<br />
<br />
==Daemon Install Procedure==<br />
<br />
* Sync and install with pacman<br />
<br />
<pre><br />
pacman -S mpd<br />
</pre><br />
<br />
==Configure mpd==<br />
<br />
* For more information about mpd configuration visit http://mpd.wikia.com/wiki/Configuration<br />
<br />
===Quick Single User Installation===<br />
<br />
* Edit mpd.conf<br />
<pre><br />
cp /etc/mpd.conf.example /etc/mpd.conf<br />
$EDITOR /etc/mpd.conf<br />
</pre><br />
To make audio output actually work ensure that you have setup audio card and mixer correctly. See /var/log/mpd/mpd.error if it still doesn't work.<br />
<br />
When configuring the alsa or oss audio outputs, do not uncomment the 'device' or 'format' lines as this can cause problems with multiple sound playback. For example, this can prevent Mplayer from playing back sound while the mpd daemon is running, returning an audio error message stating the device is busy.<br />
<br />
* In /etc/mpd.conf add the lines <br />
<pre><br />
music_directory "~/Music"<br />
playlist_directory "~/Playlists"<br />
</pre><br />
<br />
* In /etc/mpd.conf remove the "mpd" user and replace it with your username<br />
<br />
* Create the new directory for music <br />
<pre><br />
mkdir ~/Music<br />
mkdir ~/Playlists<br />
</pre><br />
<br />
* Change the permissions to all /var/lib/mpd files<br />
<pre><br />
chown username:users /var/lib/mpd/*<br />
</pre><br />
<br />
* Create the pid file<br />
<pre><br />
touch /var/run/mpd/mpd.pid<br />
chown username:users /var/run/mpd/*<br />
</pre><br />
<br />
* Change ownership to the log files<br />
<pre><br />
chown username:users /var/log/mpd/*<br />
</pre><br />
<br />
* Create the mpd database. (this can take a while depending on the size of your collection): <br />
<pre><br />
mpd --create-db<br />
</pre><br />
<br />
* Start mpd<br />
<pre><br />
mpd<br />
</pre><br />
<br />
* Edit '''/etc/rc.conf''' and add '''mpd''' to the list of daemons to start on bootup.<br />
<br />
==Troubleshooting==<br />
<br />
'''Note:''' in case of permission problems when using ESD with mpd run this as root:<br />
<pre><br />
chsh -s /bin/true mpd<br />
</pre><br />
<br />
===Tips===<br />
<br />
To get rid of timeouts (i.e. when you paused music for long time) in gpmc and other clients uncomment and increase <code>connection_timeout</code> option in mpd.conf.<br />
<br />
If files and/or titles are shown in wrong encoding, uncomment and change <code>filesystem_charset</code> and <code>id3v1_encoding</code> options.<br />
Note that you cannot set encoding for ID3 v2 tags. To workaround this you may use [http://mpd.wikia.com/wiki/GenericDecoder#Generic_Tagreader external tag readers].<br />
<br />
If you want to use another computer to control mpd over a network, the <code>bind_to_address</code> option in mpd.conf will need to be set to either your IP address, or <code>any</code> if your IP address changes frequently. Remember to add mpd to the /etc/hosts.allow file to enable external access.<br />
<br />
==Client Install Procedure==<br />
<br />
Install a client program for mpd. Popular options are:<br />
<br />
'''mpc''' - Command Line Client (you'll probably want this one no matter what)<br />
<br />
'''ncmpc''' - NCurses Client (this one is very handy for running in a console) [http://hem.bredband.net/kaw/ncmpc/ Official Website of ncmpc]<br />
<br />
'''sonata''' - Python GTK+ Client [http://sonata.berlios.de/ Official Website of Sonata]<br />
<br />
'''gmpc''' - Gnome Client [http://www.sarine.nl/gmpc Official Website of gmpc]<br />
<br />
Install with<br />
pacman -Sy mpc<br />
pacman -Sy ncmpc<br />
pacman -Sy sonata<br />
pacman -Sy gmpc<br />
<br />
==Extra stuff==<br />
<br />
===Last.fm scrobbling===<br />
<br />
To scrobble your songs to [http://www.last.fm Last.fm] using MPD there are several alternatives. The easiest way, if you don't care about having to have a program window open all the time, is using Sonata which is a graphical frontend to MPD. It has built-in support for Last.fm scrobbling in its preferences.<br />
<br />
If you're not too keen on using Sonata (and having it open at all times) there is the very popular mpdscribble which acts as a background process which continuously fetches information about the status of MPD and quietly submits the information to Last.fm. It's fairly easy to configure and also easy to monitor using <code>/var/log/mpdscribble.log</code>.<br />
<br />
=== MPD & Alsa ===<br />
<br />
Sometimes, when you use other audio output, e.g: some web pages containing Flash applets, mpd cannot reproduce anything anymore (until you restart). The error looks something like: (if you search the file /var/log/mpd.error)<br />
<br />
<pre><br />
Error opening alsa device "hw:0,0": Device or resource busy<br />
</pre><br />
<br />
And here is the correct solution :D (dmix saving our life again), apply these lines in your /etc/mpd.conf<br />
<br />
<pre><br />
audio_output {<br />
type "alsa"<br />
name "Sound Card"<br />
options "dev=dmixer"<br />
device "plug:dmix"<br />
}<br />
</pre><br />
<br />
And then restart with /etc/rc.d/mpd restart<br />
<br />
Searching on Internet i found in Gentoo's wiki the reason for why that happens:<br />
<br />
* The sound card does not support hardware mixing (uses '''dmix''' plugin)<br />
* An application does not work with ALSA with it's default settings<br />
<br />
So that error won't happening to everybody, just some people (like me) and you if that config works for you :-)<br />
<br />
==External links==<br />
<br />
* [http://www.musicpd.org/ Official Web Site]<br />
* [http://mpd.wikia.com/wiki/Main_Page Official Wiki]<br />
* [http://mpd.wikia.com/wiki/Clients Sorted List of MPD Clients]<br />
* [http://www.musicpd.org/forum/ MPD forum]</div>
Xiol