https://wiki.archlinux.org/api.php?action=feedcontributions&user=Peets&feedformat=atom
ArchWiki - User contributions [en]
2024-03-29T13:35:14Z
User contributions
MediaWiki 1.41.0
https://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T450(s)&diff=393009
Lenovo ThinkPad T450(s)
2015-08-21T01:03:28Z
<p>Peets: add tip about reversing order of sound cards</p>
<hr />
<div>[[Category:Lenovo]]<br />
== Model description ==<br />
<br />
Lenovo ThinkPad T450s <br />
<br />
=== Support ===<br />
<br />
{| class="wikitable"<br />
| '''Device''' || '''Working'''<br />
|-<br />
| [[Intel graphics]] || {{Yes}}<br />
|-<br />
| [[Wireless network configuration]] || {{Y|Manual}}<br />
|-<br />
| [[ALSA]] || {{Yes}}<br />
|-<br />
| [[Touchpad]] || {{Y|Manual}}<br />
|-<br />
| [[Trackpad]] || {{Yes}}<br />
|-<br />
| [[Camera]] || {{Yes}}<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== Touchpad ===<br />
<br />
Install {{Pkg|xf86-input-synaptics}} and see [[Touchpad Synaptics]] for configuration.<br />
<br />
=== Sound ===<br />
<br />
There are two sound cards:<br />
<br />
<pre><br />
$ cat /proc/asound/cards<br />
0 [HDMI ]: HDA-Intel - HDA Intel HDMI<br />
HDA Intel HDMI at 0xe1230000 irq 50<br />
1 [PCH ]: HDA-Intel - HDA Intel PCH<br />
HDA Intel PCH at 0xe1234000 irq 48<br />
</pre><br />
<br />
By default, audio outputs to the first card. However, the speakers and headphones are at the second card (PCH). To reverse the order of the sound cards, use the "index" parameter of the "snd_hda_intel" module. e.g.<br />
<br />
<pre><br />
$ cat /etc/modprobe.conf/thinkpad-t450s.conf<br />
options snd_hda_intel index=1,0<br />
</pre></div>
Peets
https://wiki.archlinux.org/index.php?title=FluidSynth&diff=107121
FluidSynth
2010-05-24T17:25:42Z
<p>Peets: /* Alsa daemon mode */ typo</p>
<hr />
<div>[[Category: Audio/Video (English)]]<br />
[[Category:HOWTOs (English)]]<br />
[http://fluidsynth.resonance.org/trac FluidSynth] is a real-time software synthesizer based on the SoundFont 2 specifications.<br />
<br />
==Installing FluidSynth==<br />
The first step is to install FluidSynth itself. It can be installed via pacman from the [[Pacman#Repositories|extra repository]]:<br />
# pacman -S fluidsynth<br />
<br />
'''However, fluidsynth will not produce any sound yet'''. This is because fluidsynth does not include any instrument samples. To produce sound, instrument patches and/or soundfonts need to be installed and fluidsynth configured so it knows where to find them. You can install [[Timidity#Soundfonts|Soundfont sample]].<br />
<br />
==How to use fluidsynth==<br />
There are two ways to use fluidsynth. Either as MIDI player or as daemon adding MIDI support to ALSA.<br />
<br />
===Standalone mode===<br />
You can simply use fluidsynth to play MIDI files:<br />
$ fluidsynth -a alsa -m alsa_seq -l -i /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 example.midi<br />
Assuming than you installed fluidr3.<br />
<br />
There are many other options to fluidsynth; see manpage or use -h to get help.<br />
<br />
===Alsa daemon mode===<br />
If you want fluidsynth to run as ALSA daemon, edit /etc/config.d/fluidsynth and modify FSYNTH_SOUNDFONT with de sound sample you want to use, for fluidr3:<br />
FSYNTH_SOUNDFONT="/usr/share/soundfonts/fluidr3/FluidR3GM.SF2"<br />
<br />
After that, you can start fluidsynth with:<br />
<br />
# /etc/rc.d/fluidsynth start<br />
<br />
If you want to have permanent MIDI support, add fluidsynth to your daemon list in /etc/rc.conf:<br />
DAEMONS=(... fluidsynth ...)<br />
<br />
This will give you an output software MIDI port (in addition of hardware MIDI ports on your system, if any):<br />
<br />
$ aconnect -o<br />
client 128: 'FLUID Synth (5117)' [type=user]<br />
0 'Synth input port (5117:0)'<br />
<br />
An example of usage for this is aplaymidi:<br />
<br />
aplaymidi -p128:0 example.midi<br />
<br />
== How to convert MIDI to OGG ==<br />
Simple command lines to convert midi to ogg:<br />
<br />
# fluidsynth -nli -r 48000 -o synth.cpu-cores=2 -F /dev/shm/midi_temp.raw /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 example.MID<br />
# oggenc -r -B 16 -C 2 -R 48000 /dev/shm/midi_temp.raw -o example.ogg<br />
<br />
Here's a little script to convert multiple midi files to ogg in parallel:<br />
<br />
#!/bin/bash<br />
maxjobs=$(cat /proc/cpuinfo | grep processor | wc -l)<br />
#echo $maxjobs<br />
midi2ogg() {<br />
name=`echo $@ | sed s/[.][mM][iI][dD][iI]?$//g | sed s/^[.][/]//g`<br />
for arg; do <br />
fluidsynth -nli -r 48000 -o synth.cpu-cores=$maxjobs -F "/dev/shm/$name.raw" /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 "$@"<br />
oggenc -r -B 16 -C 2 -R 48000 "/dev/shm/$name.raw" -o "$name.ogg"<br />
rm "/dev/shm/$name.raw"<br />
done<br />
}<br />
export -f midi2ogg<br />
find . -regex '.*[.][mM][iI][dD][iI]?$' -print0 | xargs -0 -n 1 -P $maxjobs bash -c 'midi2ogg "$@"' --</div>
Peets
https://wiki.archlinux.org/index.php?title=Perl_package_guidelines&diff=104710
Perl package guidelines
2010-04-26T02:39:12Z
<p>Peets: /* Automation */ removed link to orphaned package, added opinion</p>
<hr />
<div>[[Category:Package development (English)]]<br />
[[Category:Guidelines (English)]]<br />
==Package Naming==<br />
For modules the package name should begin with '''perl-''' and the rest of the name should be constructed from the module name by converting it to lowercase and then replacing colons with hyphens. For example the package name corresponding to HTML::Parser will be '''perl-html-parser'''. Perl applications should have the same name as that of the application but in lowercase.<br />
<br />
==File Placement==<br />
Perl modules should install module files in {{Filename|/usr/lib/perl5/vendor_perl/}} (this is done by setting the {{Codeline|INSTALLDIRS}} variable as shown below). No files should be stored in {{Filename|/usr/lib/perl5/site_perl/}} as that directory is reserved for use by the system administrator to install Perl packages outside the package management system. The files {{Filename|perllocal.pod}} and {{Filename|.packlist}} also should not be present; this is taken care of by the example [[PKGBUILD]] given below.<br />
<br />
==Example==<br />
An example PKGBUILD can be found at {{Filename|/usr/share/pacman/PKGBUILD-perl.proto}} which is present in the {{Package Official|abs}} package. It is also reproduced below (without the comments):<br />
<pre><br />
# Contributor: Your Name <youremail@domain.com><br />
pkgname=perl-foo-bar<br />
pkgver=VERSION<br />
pkgrel=1<br />
pkgdesc=""<br />
arch=()<br />
url=""<br />
license=('GPL' 'PerlArtistic')<br />
depends=('perl>=5.10.0')<br />
makedepends=()<br />
provides=()<br />
conflicts=()<br />
replaces=()<br />
backup=()<br />
options=(!emptydirs)<br />
install=<br />
source=(http://search.cpan.org/CPAN/authors/id/***/***-$pkgver.tar.gz)<br />
md5sums=()<br />
<br />
build() {<br />
cd "$srcdir/***-$pkgver"<br />
<br />
# install module in vendor directories.<br />
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1<br />
make || return 1<br />
make install DESTDIR="$pkgdir/" || return 1<br />
<br />
## for packages with Build.PL, do this instead:<br />
# perl Build.PL installdirs=vendor destdir="$pkgdir/"<br />
# perl Build<br />
# perl Build install<br />
<br />
# remove perllocal.pod and .packlist<br />
find "$pkgdir" -name perllocal.pod -delete<br />
find "$pkgdir" -name .packlist -delete<br />
}<br />
<br />
# vim:set ts=2 sw=2 et:<br />
</pre><br />
<br />
In most cases, you should put '''any''' in the {{Codeline|arch}} array since most Perl packages are architecture independent.<br />
<br />
==Automation==<br />
As Perl is centered around the [http://www.cpan.org CPAN], there are a few scripts to make the most of this, and save you writing PKGBUILDs by hand.<br />
<br />
The more perlish method is to use a {{Codeline|CPANPLUS::Dist}} plugin for installing CPAN modules as dynamically generated pacman packages, available at http://aur.archlinux.org/packages.php?ID=24971<br />
<br />
There is also a script called {{Codeline|pacpan}}, which can recursively generate PKGBUILDs for a module: http://aur.archlinux.org/packages.php?ID=23495<br />
<br />
==Before Perl 5.10.0-1 (legacy)==<br />
{{Note|This section refers to the old Perl guidelines and is kept for historical purposes only.}}<br />
<br />
Packages before perl 5.10.0-1 installed modules into /usr/lib/perl5/current and /usr/lib/perl5/site_perl/current.<br />
<br />
===Example Makefile.PL PKGBUILD===<br />
<pre><br />
# Contributor: Your Name <your_email@foobar.org><br />
pkgname=perl-dbd-pg<br />
pkgver=1.49<br />
pkgrel=1<br />
pkgdesc="Postgres Driver for DBI"<br />
url="http://search.cpan.org/~DBDPG/DBD-Pg"<br />
depends=('perl-dbi>=1.45')<br />
license=('GPL')<br />
options=('!emptydirs')<br />
arch=('i686' 'x86_64')<br />
source=(http://www.cpan.org/authors/id/D/DB/DBDPG/DBD-Pg-$pkgver.tar.gz) <br />
md5sums=('76b9d6a2f4cbaefcba23380f83998215')<br />
<br />
build() {<br />
cd ${srcdir}/DBD-Pg-$pkgver<br />
eval `perl -V:archname`<br />
/usr/bin/perl Makefile.PL \<br />
INSTALLARCHLIB=/usr/lib/perl5/current/${archname} \<br />
INSTALLSITELIB=/usr/lib/perl5/site_perl/current \<br />
INSTALLSITEARCH=/usr/lib/perl5/site_perl/current/${archname}<br />
/usr/bin/make || return 1<br />
/usr/bin/make DESTDIR=${pkgdir} install<br />
/usr/bin/find ${pkgdir} -name '.packlist' -delete<br />
/usr/bin/find ${pkgdir} -name '*.pod' -delete<br />
}<br />
</pre><br />
<br />
===Example Build.PL PKGBUILD===<br />
<pre><br />
# Contributor: Your Name <your_email@foobar.org><br />
pkgname=perl-string-random<br />
pkgver=0.22<br />
pkgrel=1<br />
pkgdesc="Generate random strings"<br />
url="http://search.cpan.org/~STEVE/String-Random"<br />
makedepends=('perl-module-build')<br />
license=('GPL')<br />
options=('!emptydirs')<br />
arch=('i686' 'x86_64')<br />
source=(http://www.cpan.org/authors/id/S/ST/STEVE/String-Random-$pkgver.tar.gz) <br />
md5sums=('c0319f95c56450624cc646f7425e327e')<br />
<br />
build() {<br />
cd ${srcdir}/String-Random-$pkgver<br />
eval `perl -V:archname`<br />
perl Build.PL destdir=${pkgdir} \<br />
--install_path lib=/usr/lib/perl5/site_perl/current \<br />
--install_path arch=/usr/lib/perl5/site_perl/current/${archname}<br />
./Build<br />
./Build install<br />
/usr/bin/find ${pkgdir} -name '.packlist' -delete<br />
/usr/bin/find ${pkgdir} -name '*.pod' -delete<br />
}<br />
</pre></div>
Peets
https://wiki.archlinux.org/index.php?title=AUR_helpers&diff=76249
AUR helpers
2009-09-21T11:39:03Z
<p>Peets: added 'package management' category</p>
<hr />
<div>[[Category:Utilities (English)]]<br />
[[Category:AUR]]<br />
[[Category:Package management (English)]]<br />
<br />
<!--<br />
<br />
Please use this template when adding entries to the AUR Helpers page:<br />
<br />
=== AUR Helper foo ===<br />
<br />
Description bar<br />
<br />
*Homepage: <br />
*AUR Package Details:<br />
*Screenshots: <br />
<br />
--><br />
<br />
''' Overview '''<br />
----<br />
<br />
This is a list of AUR helper command line tools that search and/or build packages from the Arch User Repository. None of these tools are officially supported. [http://wiki.archlinux.org/index.php/AUR_Helpers#yaourt Yaourt] is one of the most commonly used AUR helpers.<br />
<br />
A list of GUI pacman frontends, some of which also work with the AUR, may be found on the [http://wiki.archlinux.org/index.php/Pacman_GUI_Frontends Pacman GUI Frontends wikipage].<br />
<br />
=== arson ===<br />
<br />
Arson is an AUR searcher and downloader, written in Ruby. It allows you to search the AUR for a package you want, and download it. It does NOT automatically install the downloaded package. It can extract it, but not install. Searching for a package also searches through pacman's db cache (rather than going to each mirror and querying those).<br />
<br />
*Homepage: http://evaryont.github.com/arson/<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=16021<br />
*Screenshots: <br />
<br />
=== aurbuild ===<br />
<br />
AURBuild is a tool written in Python to download and build packages from the AUR.<br />
<br />
*Homepage: http://aurbuild.berlios.de/<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=1775<br />
*Screenshots: <br />
<br />
=== AurGet ===<br />
<br />
AurGet is a bash script aimed at quickly searching and installing from aur. visually designed to mimic pacman-color, aurget accepts -u to check for and install updates to your installed aur packages, -s to search the aur, -d and -b to download the tarball or build the package respectively, and finally run option-less to install the passed targets.<br />
<br />
*Homepage: http://pbrisbin.com:8080/bin/aurget<br />
*AUR Package Details:<br />
*Screenshots: http://pbrisbin.com:8080/screenshots/aurget_0906130038.png<br />
<br />
=== aurploader ===<br />
<br />
Aurploader prompts the user for an AUR name and password and will then upload passed AUR tarballs to the AUR. Before uploading each package, the user is prompted to select a category. When the uploads have completed, the user is asked if the cookie file should be kept so that the script can be run again without needing the AUR name and password to be re-entered.<br />
<br />
*Homepage: http://xyne.archlinux.ca/info/aurploader<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=23393<br />
*Screenshots: <br />
<br />
=== aurshell ===<br />
<br />
Aurshell is a shell written in Python. With plugins included, it's possible to use AUR, ABS and even wrap pacman.<br />
<br />
*Homepage: http://husio.homelinux.com/static/aurshell/<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=16656<br />
*Screenshots: http://xs128.xs.to/xs128/08231/2008-06-02_13-46-33_screenshot_scrot754.png<br />
<br />
=== autoaur ===<br />
<br />
Autoaur is a script for automatic mass downloading, updating, building, and installing groups of AUR packages.<br />
<br />
*Homepage: http://wiki.archlinux.org/index.php/AUTOAUR<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=6390<br />
*Screenshots:<br />
<br />
=== haskell-archlinux ===<br />
<br />
haskell-archlinux is a library to programmatically access AUR and package metadata from the Haskell programming language.<br />
<br />
*http://hackage.haskell.org/package/archlinux<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=29267<br />
<br />
=== makeaur ===<br />
<br />
Makeaur is is a wrapper for pacman and makepkg that allows users to easily install packages from the Arch User Repository.<br />
<br />
*Homepage:<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=23678<br />
*Screenshots: <br />
<br />
=== makerepo ===<br />
<br />
Makerepo is a tool to simplify building and maintaining a repository. A simple configuration file is use to specify the basic arguments such as database name and directory, package lists, etc. Makerepo is able to build packages from the AUR and from local PKG‐BUILDS such as the ABS tree. It can even build pkgs from CPAN modules if pacpan is installed.<br />
<br />
*Homepage: http://xyne.archlinux.ca/info/makerepo<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=23500<br />
*Screenshots: <br />
<br />
=== pbget ===<br />
<br />
Pbget is a simple command-line tool for retrieving PKGBUILDs and local source files for Arch Linux. It is able to retrieve files from the official SVN and CVS web interface, the AUR and the ABS rsync server.<br />
<br />
*Homepage: http://xyne.archlinux.ca/info/pbget<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=23848<br />
*Screenshots: <br />
<br />
=== pkgman ===<br />
<br />
Pkgman is a bash script which helps to manage a local repository. <br />
It retrieves the PKGBUILD and related files for given name from ABS or AUR and lets you edit them, automatically generates checksums, backs up the source tarball, builds and adds the package to your local repository. Then you can install it as usual with pacman. It also has AUR support for submitting tarballs and leaving comments.<br />
<br />
*Homepage: http://sourceforge.net/docman/display_doc.php?docid=131846&group_id=242118<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=17100<br />
*Forum Thread: http://bbs.archlinux.org/viewtopic.php?id=49023<br />
*Screenshots: <br />
<br />
=== qpkg ===<br />
<br />
Qpkg is a tool written in python for searching in all known repositories and on AUR. It can install and automatically update packages from AUR and it also can install all needed dependencies of a package from AUR.<br />
<br />
*Homepage: http://qpkg.berlios.de/<br />
*AUR Package Details:<br />
*Screenshots:<br />
<br />
=== slurpy ===<br />
<br />
Slurpy is an aur helper written in python for searching AUR, downloading packages, showing information about packages, checking for updates and uploading a package to AUR. <br />
<br />
*Github Page: http://github.com/rson/slurpy/tree/master<br />
*AUR Packge Details: http://aur.archlinux.org/packages.php?ID=28285<br />
<br />
=== yaourt === <br />
<br />
Yet Another User Repository Tool. Yaourt is a community-contributed wrapper for pacman which adds seamless access to the AUR, allowing and automating package compilation and installation from your choice of the 11,000+ PKGBUILDs in the AUR, in addition to the many thousands of available Arch binary packages. Yaourt uses the same exact syntax as pacman, which saves you from relearning an entirely new method of system maintenance, but also adds new options. Yaourt expands the power and simplicity of pacman by adding even more useful features and provides pleasing, colorized output, interactive search mode, and much more.<br />
<br />
*Homepage: http://wiki.archlinux.org/index.php/Yaourt<br />
*AUR Package Details: http://aur.archlinux.org/packages.php?ID=5863<br />
*Screenshots: http://archlinux.fr/yaourt-en#Utilisation<br />
<br />
=== yogurt ===<br />
<br />
Yogurt is an ArchLinux related tool useful in building packages for unsupported software which is only provided by the PKGBUILD in the Archlinux User Repository. Yogurt features a rudimental dependency support both for standard repositories and AUR.<br />
<br />
*Homepage: http://wikilinux.altervista.org/dokuwiki/doku.php?id=scriptseprogrammi:yogurt<br />
*AUR Package Details:<br />
*Screenshots: http://wikilinux.altervista.org/dokuwiki/lib/exe/fetch.php?cache=cache&media=scriptseprogrammi%3Ashot_yogurt.jpg</div>
Peets
https://wiki.archlinux.org/index.php?title=Dell_Inspiron_6400&diff=51201
Dell Inspiron 6400
2008-10-15T15:26:40Z
<p>Peets: /* rc.conf */ mod_blacklist -> !module</p>
<hr />
<div>[[Category:Laptops (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
=Introduction=<br />
==Summary==<br />
The goal of this wiki is to provide a comprehensive guide for Dell Inspiron 6400 owners seeking to install Arch Linux. It will attempt to cover all facets of hardware management, including wireless networking and hotkey support. Although this guide has been written specifically for the Inspiron 6400, many of the sub-sections can be applied to other Dell Inspiron models, including: <br />
* Dell Inspiron 640m<br />
* Dell Inspiron e1405<br />
* Dell Inspiron e1505<br />
* Dell Inspiron e1705<br />
<br />
==From the original contributor==<br />
I will attempt to cover as much as possible, however please feel free to contribute to this guide as you feel necessary. I will be happy to answer any questions, but I am by no means a Linux expert so there's a good chance I won't know the answer either! ~[[User:Thayer|Thayer]] (thayerw(at)gmail(dot)com)<br />
<br />
=Hardware Specifications=<br />
The 6400 series laptop is currently available in a number of configurations and this guide will attempt to cover them all. Refer to the list below to determine whether your configuration has been documented.<br />
<br />
*<span style="color:green;">Green items are confirmed to work</span><br />
*<span style="color:red;">Red items have yet to be confirmed and require a Wiki entry</span><br />
<br />
===Base Components===<br />
<br />
* Intel Core Duo and Core 2 Duo processors<br />
** T2500 (2GHz/667MHz FSB/2MB Cache)<br />
** T5600 (1.83GHz/667MHz FSB/2MB Cache)<br />
** T2050 (1.66GHz/667MHz FSB/2MB Cache)<br />
** T1350 (1.66GHz/667MHz FSB/2MB Cache)<br />
** T5200 (1.60GHz/667MHz FSB/2MB Cache)<br />
* 512MB/1GB/2GB 533MHz/667MHz DDR2 SDRAM Memory<br />
* 15.4" Widescreen Display<br />
** WXGA (1280 x 800)<br />
** <span style="color:green;">WSXGA 1280x800 with TrueLife™</span><br />
** <span style="color:green;">WSXGA+ 1680x1050 with TrueLife™</span><br />
* 80GB/100GB/120GB/160GB 5400/7200 RPM SATA Hard Drive<br />
* <span style="color:green;">8x CD/DVD+/-RW/DL+R</span><br />
* <span style="color:green;">Broadcom 440x 10/100 Ethernet</span><br />
* <span style="color:green;">Conexant HDA D110 MDC V.92 modem (winmodem)</span><br />
* <span style="color:green;">Sigmatel STAC 92xx Audio</span><br />
* <span style="color:green;">Ricoh R5C822 SD/SDIO/MMC/MS/MSPro Card Reader</span><br />
* <span style="color:green;">4 USB 2.0 Ports</span><br />
* <span style="color:red;">Firewire port (IEEE 1394)</span><br />
* <span style="color:red;">1 ExpressCard Slot</span><br />
* <span style="color:green;">Synaptics touchpad with scroll zones</span><br />
<br />
===Video Options===<br />
<br />
* <span style="color:green;">128MB ATI Mobility Radeon X1300 with HyperMemory</span><br />
* <span style="color:green;">256MB ATI Mobility Radeon X1400 with Hypermemory</span><br />
* <span style="color:green;">256MB nVidia GeForce Go 7300 with TurboCache</span><br />
* <span style="color:green;">128MB Intel Graphics Media Accelerator 950</span><br />
<br />
===Wireless Options===<br />
<br />
* <span style="color:green;">Intel Pro/Wireless 3945ABG (802.11a/b/g)</span><br />
* <span style="color:green;">Dell Wireless 1390</span><br />
* <span style="color:green;">Dell Wireless 1500 Draft 802.11n Wireless (Intel 4965AGN)</span><br />
* <span style="color:green;">Dell Wireless 350 Bluetooth Module</span><br />
* <span style="color:green;">Dell Wireless 355 Bluetooth Module</span><br />
<br />
=Arch Installation=<br />
There are plenty of resources available to help new users install and configure a basic Arch Linux installation, including the [[Official_Arch_Linux_Install_Guide|Official Installation Guide]] and the [[Beginners_Guide|Beginners Guide]].<br />
<br />
That being said, the following tips are specific to the Dell Inspiron 6400 and may be of some help during installation.<br />
<br />
If an Ethernet (wired land-line) broadband internet connection is available it is highly recommended that Arch be installed with the smaller FTP ISO. If you plan to have a desktop environment (KDE, GNOME, etc) then the majority of the packages you require will come from the internet repositories and <em>not</em> the Arch CD itself. This method will get you up and running in the shortest amount of time. Simply download the FTP ISO, burn it to a CD and restart your computer.<br />
<br />
The following steps assume you are connected to the Internet with a wired Ethernet connection, as opposed to a wireless connection.<br />
<br />
==Boot the Arch Setup CD==<br />
If the laptop does not boot from the CD, reboot and press F12 at the DELL BIOS splash screen to access the boot menu. From there you can choose to boot from the CD/DVD drive.<br />
<br />
==Setup==<br />
For the most part, the default settings should be fine, however the following notes may be of assistance.<br />
<br />
===0 - Configure===<br />
Just follow the prompts, choosing the defaults when asked. Make sure you allow the setup to detect your basic hardware automatically when asked.<br />
<br />
===1 - Prepare Hard Disks===<br />
The following is an example partition table. The example hard drive is 100GB and is configured to run only Arch Linux. Your settings will vary depending on the size of your hard drive and the number of operating systems you plan to run.<br />
<br />
'''sda''' (100GB)<br />
'''sda1''' ext2 100MB /boot ''(the boot loader files and kernel images will be installed here)''<br />
'''sda2''' swap 2.1GB swap ''(this example notebook has 2GB of RAM and we want to leave room for suspend2disk (hibernation) functions)''<br />
'''sda3''' ext3 6GB / ''(root--everything else will go here except for the files in /home and /boot)''<br />
'''sda4''' ext3 90GB /home ''(it's actually less than 90GB because ext3 filesystems reserve space to avoid capacity problems, but you get the point)''<br />
<br />
===2 - Select Packages===<br />
*Choose a mirror<br />
*Choose ''only'' the base packages<br />
*Select ''all'' packages by default<br />
<br />
===3 - Install Packages===<br />
*Answer ''yes'' to cache packages (default)<br />
*Grab a coffee, it's going to take a while to fetch 100MB of packages<br />
<br />
===4 - Configure System===<br />
Choose your preferred editor; either vim or nano. <br />
<br />
A few files can be left alone, but there are some changes worth mentioning:<br />
<br />
====rc.conf====<br />
*Change your locale if necessary, for example Canadians will want to use ''en_CA'':<br />
LOCALE="en_CA.utf8"<br />
*Change the timezone if necessary, for example:<br />
TIMEZONE="Canada/Pacific"<br />
*To get rid of that ever-so-annoying system beep, blacklist the PC speaker modules:<br />
MODULES=(... !pcspkr !snd_pcsp ...)<br />
*Change the hostname if you desire a unique name, for example:<br />
HOSTNAME="dublin"<br />
*If your Internet Service Provider assigns your IP address automatically (and most do), make sure ''eth0'' is set to ''dhcp'':<br />
'''eth0="dhcp"'''<br />
<br />
====hosts====<br />
Add a second line under localhost with your unique hostname (the same hostname you chose in rc.conf) in place of localhost, for example:<br />
127.0.0.1 localhost.localdomain localhost<br />
'''127.0.0.1 dublin.localdomain dublin'''<br />
<br />
====fstab====<br />
No changes should be necessary.<br />
<br />
====mkinitcpio.conf====<br />
No changes should be necessary.<br />
<br />
====modprobe.conf====<br />
No changes should be necessary.<br />
<br />
====resolv.conf====<br />
No changes should be necessary.<br />
<br />
====locale.gen====<br />
Uncomment the languages files you wish to use, including the one you configured under LOCALE in the rc.conf:<br />
#en_BW.UTF-8 UTF-8<br />
#en_BW ISO-8859-1<br />
'''en_CA.UTF-8 UTF-8'''<br />
'''en_CA ISO-8859-1'''<br />
#en_DK.UTF-8 UTF-8<br />
#en_DK ISO-8859-1<br />
<br />
Canadians should probably uncomment ''en_US, en_CA and en_GB''.<br />
<br />
====root password====<br />
Set a root password.<br />
<br />
====pacman mirrors====<br />
You can either use the same mirror you used to install the base packages, or you can choose a different one at this time. The mirror you select at this stage will be your default repository after installation is complete.<br />
<br />
===5 - Install Kernel===<br />
The default choices should be fine.<br />
<br />
===6 - Install Boot Loader===<br />
If you are installing Arch as the sole operating system on the notebook, just go with the default settings. If you are dual-booting with another OS, choose the options carefully to avoid problems with your existing settings.<br />
<br />
* When installing GRUB, you can also append '''vga=791''' to the kernel option to set your terminal (framebuffer) resolution to 1024x768, for example:<br />
kernel /vmlinuz26 root=/dev/sda3 ro '''vga=791'''<br />
<br />
===7 - Exit===<br />
Reboot, eject the CD and log into your new Arch Linux installation.<br />
<br />
==Synchronize Repositories and Update==<br />
When logging into Arch for the first time, it is a good idea to make sure the local package database is synchronized with the Arch software repositories and that all of your software is up to date. From the console, type:<br />
# pacman -Syu<br />
<br />
=Add Users=<br />
At this point you can add a local user account by typing:<br />
# useradd -m johndoe<br />
# passwd johndoe<br />
<br />
''The '''-m''' flag creates the user's /home directory and copies the default configuration files to it (from /etc/skel)''<br />
<br />
Note, you will not be able to use the '''sudo''' command with this account until you [[Sudo|install and configure sudo]].<br />
<br />
=Xorg=<br />
If you plan to install a desktop environment (e.g. GNOME, KDE, etc.) you must install and configure Xorg.<br />
<br />
===Installation===<br />
Install the necessary packages:<br />
# pacman -S xorg xterm hwd<br />
<br />
===Configuration===<br />
The <tt>hwd</tt> program (''Hardware Detect'') will examine your hardware and create a default configuration file for Xorg (''/etc/X11/xorg.conf''):<br />
# hwd -xa<br />
You should now have a working X setup, however the default configuration uses the generic VESA graphics driver. If you want to run your desktop at its native resolution (e.g. 1680x1050) and enable 3D acceleration, you'll need to install the appropriate driver for your video card. See the [[Dell_Inspiron_6400#Video|Video]] section below for detailed instructions.<br />
<br />
=Desktop Environments=<br />
Arch Linux supports a variety of desktop environments and window managers, all of which must be installed manually. Refer to the following list for more information:<br />
<br />
'''Openbox:''' [[Openbox|Openbox Wiki]]<br />
<br />
'''GNOME:''' [[GNOME|GNOME Wiki]]<br />
<br />
'''Xfce:''' [[Xfce|Xfce Wiki]]<br />
<br />
'''KDE:''' [[KDE|KDE Wiki]]<br />
<br />
'''KDEmod:''' Visit the KDEmod website at http://kdemod.ath.cx/ or see the [[KDEmod|KDEmod Wiki]] for more information.<br />
<br />
'''E17:''' [[E17|E17 Wiki]]<br />
<br />
'''Fluxbox:''' [[Fluxbox|Fluxbox Wiki]]<br />
<br />
'''Xmonad:''' [[Xmonad|Xmonad Wiki]]<br />
<br />
'''wmii:''' [[wmii|wmii Wiki]]<br />
<br />
'''dwm:''' [[dwm|dwm Wiki]]<br />
<br />
'''awesome:''' [[awesome|awesome Wiki]]<br />
<br />
=Hardware=<br />
<br />
==Audio==<br />
===Sigmatel/Intel Chipset===<br />
The Sigmatel audio chipset should be detected automatically during installation, requiring no input from the user. For example, the following kernel modules are configured in ''/etc/rc.conf'' by default:<br />
snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-hda-intel soundcore<br />
<br />
====ALSA Audio Drivers====<br />
Refer to the [[ALSA]] wiki for general assistance with volume settings, group permissions, etc.<br />
<br />
====OSS Audio Drivers====<br />
See the [[OSS]] wiki for more information.<br />
<br />
==Video==<br />
===ATI X1300/X1400 Radeon Mobility===<br />
====Proprietary Driver (catalyst/fglrx)====<br />
'''''Note''': ATI has rebranded the fglrx driver to be known as 'catalyst'; at this time '''only the package name has changed'''.''<br />
<br />
The catalyst ATI proprietary driver is available from the standard Arch repositories and is the simplest way to get full 3D acceleration and native resolutions on your notebook:<br />
# pacman -S catalyst<br />
Run the '''aticonfig''' tool to automatically add the appropriate settings to ''/etc/X11/xorg.conf'':<br />
# aticonfig --initial<br />
Lastly, we need to modify ''/etc/rc.conf'' and add the '''fglrx''' kernel driver to the MODULES section, for example:<br />
MODULES=('''fglrx''' b44 mii snd-mixer-oss ...)<br />
Reboot and confirm that the ATI driver is working by typing '''fglrxinfo''' in a terminal. The results should look something like this:<br />
display: :0.0 screen: 0<br />
OpenGL vendor string: ATI Technologies Inc.<br />
OpenGL renderer string: ATI Mobility Radeon X1400<br />
OpenGL version string: 2.1.7059 Release<br />
<br />
Further information can be found at the [[ATI]] wiki.<br />
<br />
====Open Source ATI Driver====<br />
<br />
Please refer to the [[ATI]] wiki for more information.<br />
<br />
===Intel Graphics Media Accelerator 950===<br />
====Open Source Intel Driver====<br />
<br />
Install the driver:<br />
# pacman -S xf86-video-intel<br />
<br />
Use '''''gft''''' to generate the Xorg ''Modeline'' values and then edit ''/etc/X11/xorg.conf'' and add these values to the ''Monitor'' section, for example:<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "unknown"<br />
'''Modeline "800x600" 40.12 800 848 968 1056 600 601 605 628 #60Hz'''<br />
EndSection<br />
<br />
Lastly, add the following to the "Device" section, replacing the existing ''Driver'' value if present:<br />
<br />
VideoRam 229376<br />
Option "CacheLines" "1980"<br />
Driver "intel"<br />
<br />
====Intel 945GM Batch Speed Boost====<br />
<br />
In some cases the 945GMs do not run as fast as possible. To test this first install the mesa pacakge then run:<br />
<br />
glxgears<br />
<br />
And note the average FPS<br />
Next export the variable for INTEL_BATCH<br />
<br />
export INTEL_BATCH=1<br />
<br />
Now rerun glxgears. Do you get more FPS? If so edit your /etc/environment file adding the line<br />
<br />
INTEL_BATCH=1<br />
<br />
Logout then Login.<br />
<br />
===nVidia GeForce Go 7300===<br />
The [[NVIDIA|NVIDIA Driver Wiki]] works fine. A side note: When running Beryl/Compiz-Fusion, while opening multiple instances of FireFox, the entire window went black. Forcing AIGLX solved this.<br />
<br />
==Networking==<br />
<br />
===Broadcom 440x 10/100 Ethernet===<br />
The Broadcom Ethernet card should have out-of-the-box support. No configuration necessary.<br />
<br />
===Dell Wireless 1390===<br />
<br />
==New Native b43 Driver==<br />
<br />
''Works from Kernel 2.6.25''<br />
From [http://linuxwireless.org/en/users/Drivers/b43#fw-b43-new Linux Wireless]<br />
<br />
wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2<br />
tar xjf b43-fwcutter-011.tar.bz2<br />
cd b43-fwcutter-011<br />
make<br />
cd ..<br />
<br />
export FIRMWARE_INSTALL_DIR="/lib/firmware"<br />
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2<br />
tar xjf broadcom-wl-4.150.10.5.tar.bz2<br />
cd broadcom-wl-4.150.10.5/driver<br />
sudo ../../b43-fwcutter-011/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o<br />
<br />
<br />
==Old Lame ndiswrapper Way==<br />
<br />
Dell does not offer native Linux drivers for the 1390 wireless card. Fortunately, '''ndiswrapper''' can be used to install the Windows driver:<br />
# pacman -S ndiswrapper<br />
<br />
Download the 1390 driver from the Dell website:<br />
$ wget http://ftp.us.dell.com/network/R140747.EXE<br />
<br />
Create a temp folder and extract the driver:<br />
$ mkdir ~/Dell1390<br />
$ mv R14070747.EXE ~/Dell1390 <br />
$ cd ~/Dell1390 <br />
$ unzip -a R14070747.EXE<br />
$ cd ~/Dell1390/DRIVER<br />
<br />
Configure ndiswrapper to use the Windows driver (do this as root):<br />
# ndiswrapper -i bcmwl5.inf<br />
# ndiswrapper -l<br />
# ndiswrapper -m<br />
# modprobe ndiswrapper<br />
<br />
Test the new driver by typing '''iwlist scanning''' in a terminal.<br />
<br />
To load the driver automatically at each boot, add '''ndiswrapper''' to the MODULES array in ''/etc/rc.conf'', for example:<br />
MODULES=(fglrx '''ndiswrapper''' b44 mii ...)<br />
<br />
Finally, remove the temp folder used during installation:<br />
$ rm -rf ~/Dell1390<br />
<br />
===Dell Wireless 1500 Draft 802.11n Wireless (Intel 4965AGN)===<br />
Grab the driver packages:<br />
# pacman -S iwlwifi iwlwifi-4965-ucode<br />
Edit ''/etc/rc.conf'' as root and add '''iwl4965''' to the MODULES list:<br />
MODULES=(fglrx '''''iwl4965''''' b44 mii ...)<br />
Add '''wlan0="dhcp"''' to the NETWORKING section:<br />
eth0="dhcp"<br />
'''''wlan0="dhcp"'''''<br />
If '''wlan0''' is listed in the INTERFACES section, make sure it is disabled:<br />
INTERFACES=(lo !eth0 '''''!wlan0''''')<br />
<br />
===Dell Wireless 350 Bluetooth Module===<br />
Install the bluetooth libraries and basic utilties:<br />
# pacman -S bluez-libs bluez-utils<br />
Add '''bluetooth''' to the DAEMONS list in ''/etc/rc.conf'', for example:<br />
DAEMONS=(syslog-ng powersaved '''bluetooth''' ipw3945d ...)<br />
Now, depending on your desktop environment, install the appropriate tools:<br />
<br />
For GNOME: <br />
# pacman -S gnome-bluetooth bluez-gnome<br />
For KDE:<br />
# pacman -S kdebluetooth<br />
<br />
===Dell Wireless 355 Bluetooth Module===<br />
The steps described above for Dell Wireless 350 Bluetooth Module work with Dell Wireless 355 Bluetooth Module too.<br />
<br />
===Intel PRO/Wireless 3945ABG===<br />
With the release of Intel's open source [http://intellinuxwireless.org/ iwlwifi driver], 3945 owners now have two choices for wireless drivers. As the iwlwifi project matures, the ipw3945 driver will become obsolete, however until that time it will remain below as a second alternative.<br />
<br />
Refer to the [[Wireless Setup]] wiki for more information.<br />
<br />
====Method 1: iwlwifi driver====<br />
Grab the driver packages:<br />
# pacman -S iwlwifi-3945-ucode<br />
Edit ''/etc/rc.conf'' as root and add '''iwl3945''' to the MODULES list:<br />
MODULES=(fglrx '''''iwl3945''''' b44 mii ...)<br />
Add '''wlan0="dhcp"''' to the NETWORKING section:<br />
eth0="dhcp"<br />
'''''wlan0="dhcp"'''''<br />
If '''wlan0''' is listed in the INTERFACES section, make sure it is disabled:<br />
INTERFACES=(lo !eth0 '''''!wlan0''''')<br />
<br />
====Method 2: ipw3945 driver====<br />
'''This method is now deprecated. You should be able to use Method 1 without difficulties.'''<br />
<br />
Grab the Intel 3945 driver packages:<br />
# pacman -S ipw3945<br />
Edit ''/etc/rc.conf'' as root and add '''ipw3945''' to the MODULES list:<br />
MODULES=(fglrx '''''ipw3945''''' b44 mii ...)<br />
Add '''eth1="dhcp"''' to the NETWORKING section ''(Note: It is sometimes detected as eth2 instead of eth1, use '''ifconfig''' to verify yours and, if necessary add eth2="dhcp" instead)'':<br />
eth0="dhcp"<br />
'''''eth1="dhcp"'''''<br />
If '''eth1''' (or '''eth2''') is listed in the INTERFACES section, make sure it is disabled:<br />
INTERFACES=(lo !eth0 '''''!eth1''''')<br />
Add '''ipw3945d''' to the DAEMONS list ''before'' the dhcdbd and networkmanager daemons:<br />
DAEMONS=(syslog-ng '''''ipw3945d''''' dhcdbd networkmanager alsa ...)<br />
<br />
==Conexant HDA D110 MDC V.92 modem (winmodem)==<br />
The Conexant modem requires the proprietary '''hsfmodem''' driver.<br />
Dell offers a debian package [http://support.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R155004&SystemID=INSPIRONI6400/E1505&servicetag=&os=UBLN&osl=en&deviceid=8593&devlib=0&typecnt=0&vercnt=1&catid=-1&impid=-1&formatcnt=1&libid=20&fileid=206745 hsfmodem_7.60.00.06oem_i386.deb] at their [http://support.dell.com/ support site] that works at '''full speed''' unlike the trial version from [http://www.linuxant.com/ Linuxant] which works at 14.4kbps.<br />
<br />
The following '''PKGBUILD''' can be used to create an archlinux '''hsfmodem''' package from the debian package:<br />
pkgname=hsfmodem<br />
pkgver=7.60.00.06oem<br />
pkgrel=1<br />
pkgdesc="Conexant modem driver by Dell"<br />
url="http://support.dell.com/"<br />
license=("unknown")<br />
arch=('i686')<br />
source=(${pkgname}_${pkgver}_i386.deb)<br />
md5sums=('80d38fccab347638fa7a2237b458b428')<br />
<br />
build() {<br />
cd $startdir/src/<br />
ar x ${pkgname}_${pkgver}_i386.deb<br />
tar xzf data.tar.gz<br />
cp -a usr etc $startdir/pkg/<br />
}<br />
<br />
#Download and place '''hsfmodem_7.60.00.06oem_i386.deb''' and the '''PKGBUILD''' in a new folder, and run <code>makepkg</code> to create the package. See [[ABS]] for details on building packages.<br />
#Run <code>hsfconfig</code> as root to build the module and initialise the modem. A reboot is required before the modem can be initialised. Run <code>hsfconfig</code> again after reboot.<br />
#The modules are automatically loaded and a <code>/dev/modem</code> symlink is setup for use with the modem. Now use wvdial or other dialer programs to connect to the internet.<br />
<br />
==Ricoh R5C822 SD/SDIO/MMC/MS/MSPro Card Reader==<br />
The Ricoh card reader should work out of the box, as long as '''MOD_AUTOLOAD''' is set to '''yes''' in ''/etc/rc.conf''. Assuming you use a HAL-aware desktop (GNOME, KDE, etc.), when a memory card is inserted, the kernel should automatically load the '''mmc_core/mmc_block''' modules and mount the new filesystem according to your desktop's automount settings. <br />
<br />
This has been confirmed with the following card types:<br />
* SD Card<br />
<br />
==Synaptics Touchpad==<br />
The Synaptics touchpad should provide basic functions out-of-the-box, however if you would like to use the scroll zones and enable other advanced features, please refer to the [[Touchpad_Synaptics | Synaptics Touchpad]] wiki.<br />
<br />
=Power Management=<br />
<br />
==ACPI Hibernation/Suspend with pm-utils==<br />
The powersave scripts have been officially replaced by [http://www.archlinux.org/packages/search/?q=pm-utils pm-utils]. Refer to the [[Pm-utils]] wiki for detailed instructions.<br />
<br />
'''''Note:''''' ATI video card owners might need to add '''vga=0''' to the kernel options in <tt>/boot/grub/menu.lst</tt> in order to resume from suspend2ram. For exmaple:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 root=/dev/sda3 resume=/dev/sda2 ro '''''vga=0'''''<br />
initrd /kernel26.img<br />
<br />
This behavior seems to change from version to version of catalyst, so your mileage may vary. Try it without vga=0 first, and if it doesn't work ''then'' add it.<br />
<br />
==CPU Frequency Scaling with cpufrequtils==<br />
<br />
Refer to the [[Cpufrequtils]] wiki for step-by-step instructions.<br />
<br />
= Multimedia Buttons & Fn Hotkeys =<br />
Unfortunately, configuring multimedia buttons and function keys on your laptop can be complicated process. Factors that must be taken into consideration include your choice of Desktop Environment (or lack thereof) and the actions you wish to bind to the special buttons or keys. For a detailed explanation of what is required, please refer to the [[Hotkeys]] wiki.<br />
<br />
The following tips may offer some assistance in getting started.<br />
<br />
== Multimedia Buttons ==<br />
For the most part, the Volume and Playback buttons should be recognized as an unassigned key by the Linux kernel. In which case, all that is necessary is to bind the button to an action. <br />
<br />
It is also worth noting that the multimedia buttons and equivalent Fn key shortcut (e.g. Fn+PgUp = Vol Up) will produce the same keycode, so if you configure the button, the Fn hotkey combo will execute the same action.<br />
<br />
=== GNOME ===<br />
The GNOME desktop provides an easy method for binding multimedia keys to their appropriate action. <br />
<br />
# Browse to '''System -> Preferences -> Keyboard Shortcuts''' and scroll down to the '''Sound''' section.<br />
# Click on an item (e.g. Mute) and then press the corresponding multimedia button<br />
# Repeat this process for all of the multimedia buttons<br />
<br />
The volume buttons should now work system-wide, and the playback buttons will now work in media players such as Rhythmbox and Exaile.<br />
<br />
=== Openbox and other Window Managers ===<br />
The <tt>xbindkeys</tt> utility is highly recommended for lightweight desktops such as Openbox--refer to the [[Hotkeys]] wiki for information. <br />
<br />
The following is an example ''~/.xbindkeysrc'' config file, making use of the multimedia buttons:<br />
<pre><br />
# vol up<br />
"amixer set Master 2dB+ unmute"<br />
m:0x10 + c:176<br />
# vol dn<br />
"amixer set Master 2dB- unmute"<br />
m:0x10 + c:174<br />
# vol mute<br />
"amixer set Master mute"<br />
m:0x10 + c:160<br />
# play/pause<br />
"audacious -t"<br />
m:0x10 + c:162<br />
# back<br />
"audacious -r"<br />
m:0x10 + c:144<br />
# forward<br />
"audacious -f"<br />
m:0x10 + c:153<br />
# stop<br />
"audacious -s"<br />
m:0x10 + c:164<br />
</pre><br />
<br />
== Function (Fn) Hotkeys ==<br />
Function keys seem to be less standardized than the Volume/Playback buttons, and therefore it can be difficult to get all of them working properly. For example, the Standby shortcut (Fn+ESC) may be recognized while at the same time the Hibernate shortcut (Fn+F1) is not. To make matters more confusing, it appears that some Fn keys such as those that adjust the LCD brightness are controlled by the BIOS, independent of the Operating System. Again, the [[Hotkeys]] wiki is highly recommended reading.<br />
<br />
The following example shows how one can configure the Dell Media Direct button, Eject (Fn+F10) and Hibernate (Fn+F1) hotkeys to execute specific commands:<br />
<br />
First, assign kernel keycodes to the Media Direct button and Fn hotkeys, using the ''/etc/rc.local'' script (which is executed before X loads):<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
setkeycodes e009 122 # e009 eject fn<br />
setkeycodes e012 130 # e012 mediadirect<br />
setkeycodes e00a 123 # e00a hibernate fn<br />
<br />
Then use the <tt>xbindkeys</tt> utility to bind the newly recognized keys to a custom action. Here's an ''~/.xbindkeysrc'' config file:<br />
<br />
# media direct button<br />
"streamtuner"<br />
m:0x10 + c:134<br />
# eject function hotkey<br />
"eject"<br />
m:0x10 + c:210 <br />
# hibernate function hotkey<br />
"sudo /usr/sbin/pm-hibernate"<br />
m:0x10 + c:209<br />
<br />
Finally, execute <tt>xbindkeys</tt> at startup by placing it in your .xinitrc (or appropriate startup file for your environment):<br />
xscreensaver -no-splash &<br />
eval `cat $HOME/.fehbg` &<br />
'''''xbindkeys &'''''<br />
#sleep 3<br />
pypanel &<br />
exec openbox<br />
<br />
As stated previously, it can be a complicated process involving lots of trial & error troubleshooting, but hopefully this will help you get started.<br />
<br />
=Resources=<br />
TuxMobil: [http://tuxmobil.org/mylaptops.html Linux Laptop & Notebook Installation Guides]<br />
<br />
TuxMobil: [http://tuxmobil.org/dell.html DELL Notebooks]<br />
<br />
Gentoo Wiki: [http://gentoo-wiki.com/HARDWARE_Dell_Inspiron_6400 HARDWARE Dell Inspiron 6400]<br />
<br />
Gentoo Wiki: [http://gentoo-wiki.com/HARDWARE_Dell_Inspiron_6400_Fixes_for_common_problems HARDWARE Dell Inspiron 6400 Fixes for common problems]<br />
<br />
<br />
<br />
=Comments=</div>
Peets
https://wiki.archlinux.org/index.php?title=Dell_Latitude_D620&diff=51200
Dell Latitude D620
2008-10-15T15:24:14Z
<p>Peets: /* Recommendations */ mentioned snd_pcsp</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 modules <tt>pcspkr</tt> and <tt>snd_pcsp</tt> aren't loaded during bootup in rc.conf:<br />
<br />
MODULES=(... !pcspkr !snd_pcsp...)<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>
Peets
https://wiki.archlinux.org/index.php?title=Bug_reporting_guidelines&diff=51125
Bug reporting guidelines
2008-10-14T21:23:56Z
<p>Peets: /* Voting and Watching */ "Watching" sentence is now syntactically correct, at least.</p>
<hr />
<div>[[Category:Guidelines (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
=Introduction=<br />
<br />
Opening (and closing) bug reports on [http://bugs.archlinux.org/ Arch's Bug Tracking System] is one of the possible ways to '''help the community'''. However, if this is done badly it can turn out being a pain instead of being useful - when too many bugs are badly reported the community and the developers lose a lot of time asking for questions and closing invalid bug reports.<br />
<br />
This document will '''guide''' anyone wanting to help the community efficiently by '''reporting''' or '''hunting bugs'''.<br />
<br />
=Before Reporting=<br />
<br />
The work done before reporting is probably '''the most useful part of the job'''. Unfortunately few people take the time to do this work, they prefer others to do it for them...<br />
<br />
However, preparing a good bug report is not difficult and can be achieved by anyone (beginner or developer).<br />
The following steps will help you in preparing your bug report or feature request. They should be followed in the order they come in.<br />
<br />
<br />
==Glossary==<br />
*'''Upstream''' : ''Upstream'' is usually referred to as the community which developed a piece of software packaged by Archlinux. It is the team which is responsible for creating, publishing and documenting that software. Archlinux can be referred to as ''upstream'' for all the projects specific to Archlinux : pacman, AUR, initscripts, etc ...<br />
<br />
<br />
==Looking for duplicates==<br />
<br />
If you encounter a problem or would like a new feature, there is a high probability that someone else already had this problem or idea. If so he/she might have already opened a bug report. In this case you do not have much to do and see the [[Reporting_Bug_Guidelines#How_to_help|How to help]] section.<br />
<br />
<br />
Here are a list of places to search for duplicates:<br />
<br />
*[http://bbs.archlinux.org/ Arch's forum]: most of the time you will find your bug and the related solution here.<br />
<br />
*[http://bugs.archlinux.org/ Arch's Bug Tracking System]: It sounds obvious, but the "Reject as duplicate" feature in a bug tracker would not exist if people looked for duplicates before reporting bugs ... Some bugs may have already been reported to the software developers, and even some bugs may have been already fixed recently. That is why it is important to '''[http://bugs.archlinux.org/index.php?string=&project=1&status%5B%5D=closed&closedfrom=-1+week look for recently closed bugs as well as new bugs]'''.<br />
<br />
*[http://www.google.com Google] or your favorite search engine: Search using your software name, version and a relevant part of the error message that you got, if any.<br />
<br />
*'''Upstream''' Forum, Mailing List and Bug Tracker: Look directly at the source of your problem! Some bugs may have already been reported to the software developers, and even some bugs may have been already fixed in the development version. That is why it is important to '''look for closed bugs''' as well as new bugs in ''upstream'' 's bug tracker.<br />
<br />
*'''Other distro forums''': The Free Software community is wide, and people other than archers may have a good idea too! You might have a look at [http://forums.gentoo.org/ Gentoo's forums], [http://forums.fedoraforum.org/ Fedora forums] and [http://ubuntuforums.org/ Ubuntu forums]. If you know some other sources of useful information feel free to add them here.<br />
<br />
==Bug or Feature ?==<br />
<br />
Once you know nobody reported the bug either at Arch or Upstream, you have to ask yourself whether your problem is '''a bug or a feature''' :<br />
<br />
*A '''bug''' is something that should work but does not work as intended by the developer.<br />
*A '''feature''' is something a software does or would do if somebody coded it.<br />
<br />
<br />
==Upstream or Arch ?==<br />
<br />
This is an important question. '''If Arch is not responsible for a bug, the problem will not get solved by reporting the bug to Arch'''.<br />
<br />
By reporting bugs upstream not only you will help archers and Arch developers, but you will also help other people in the Free Software Community.<br />
<br />
Once you have reported a bug upstream or have found other relevant information from upstream, it might be helpful to post them in Arch bug tracker so that both Arch developers and users get aware of it.<br />
<br />
So what is Archlinux responsible for?<br />
<br />
*'''Arch Linux Projects''' : Pacman, AUR, Initscripts, Arch Websites. If you have a doubt about if the project belongs to Arch or not, display the package information (pacman -Qi foobar_package or using the website) and look at the URL.<br />
<br />
*'''Packaging''' : Packaging basically consists of fetching the source code from upstream, compiling it with relevant options, making sure that the package will be installed correctly on an Arch system and the main functionality of a package works. Packaging at Arch does not consist of adding new functionality or patches for existing bugs. This is the job of the upstream developer.<br />
<br />
If a bug/feature is not under Arch's responsibility report it upstream. See also [[Reporting_Bug_Guidelines#Reasons_for_not_being_a_bug|Reasons for not being a bug]].<br />
<br />
==Reasons for not being a bug==<br />
<br />
*Something you would like a piece of software to do, which is not implemented by the upstream developers. In short : '''a new feature'''.<br />
*A bug already reported upstream.<br />
*A bug already fixed upstream but not in Arch because the package is not up-to-date.<br />
*'''A package which is not-up-to-date'''. Use the '''Flag Package Out-of-Date''' feature on [http://archlinux.org/packages/ Arch's packages website].<br />
*A package which does not use Fedora, Ubuntu or some other community patch. '''Patches should be submitted ''upstream'''''.<br />
*A package where '''non essential function''' X or function Y is not activated. This is a feature request.<br />
*A package which does not include a '''.desktop file''' or '''icons''' or other [http://www.freedesktop.org freedesktop] stuff. This is not a bug if such files are not included in the source tarball, and this must be requested as a feature request ''upstream''. If such files are provided by ''upstream'' but not used in the package then this is a bug.<br />
<br />
==Reasons for not being a feature==<br />
<br />
*When it is a bug ...<br />
*When it is not under Arch responsibility to implement the feature, ie an '''upstream feature'''.<br />
*A package is not up-to-date. Use the '''Flag Package Out-of-Date''' feature on [http://archlinux.org/packages/ Arch's packages website].<br />
*A package which does not use Fedora, Ubuntu or some other community patch. '''Patches should be submitted ''upstream'''''.<br />
<br />
<br />
==Gather useful information==<br />
<br />
Here is a list of useful information that should be mentioned in your bug report :<br />
<br />
*'''Version of the package''' being used.<br />
<br />
*Version of the main libraries used by the package (available in the ''depends'' variable in the PKGBUILD), when they are involved in the problem. If you do not know exactly what information to provide then wait for a bug hunter to ask you for it ...<br />
<br />
*Version of the kernel used if you are having hardware related problems.<br />
<br />
*Indicate whether or not '''the functionality worked at one time or not'''. If so indicate since when it stopped working.<br />
<br />
*Indicate your '''hardware brand''' when you are having hardware related problems<br />
<br />
*Add '''relevant log information''' when any is available. This can be obtained in the following places depending on the problem :<br />
**/var/log/messages for kernel and hardware related issues.<br />
**/var/log/Xorg.0.log or /var/log/Xorg.2.log or any Xorg like log files if video related problems (nvidia, ati, xorg ...)<br />
**Run your program in a '''console''' and use '''verbose''' and/or '''debug''' mode if available (see your program documentation), and copy the output in a file. When running an application in a terminal make sure relevant information will be displayed in '''english''' so that many people can understand it. This can be done by using ''export LC_ALL="c"''. Example with a software named ''foobar'' from which you would like to have relevant information at runtime and provided that foobar has a --verbose option :<br />
someone@somecomputer # export LC_ALL="C"<br />
someone@somecomputer # foobar --verbose<br />
This will affect only the current terminal and will stop taking effect when the terminal is closed.<br />
<br />
*'''Indicate how to reproduce the bug'''. This is very important, it will help people test the bug and potential patches on their own computer.<br />
<br />
*'''The stack trace'''. It is a list of calls made by program during its execution, and helps in finding part of program where the bug is located, especially if bug involves the program crashing. You can obtain a stack trace using gdb (The GNU Debugger) by running the program with "gdb name_of_program" and then typing "run" at the gdb prompt. When the program crashes, type "bt" at the gdb prompt to obtain the stack trace and then "quit" to exit gdb.<br />
<br />
=Opening a Bug=<br />
<br />
When you are sure it is a bug or a feature and you gathered all useful information, then you are ready to open a bug report or feature request.<br />
<br />
==Creating an account==<br />
<br />
You have to create an account on [http://bugs.archlinux.org/ Arch's bug tracker system]. This is as easy as creating an account on a wiki or a forum and there is nothing particular to mention here.<br />
Do not be afraid of giving the email address you currently use : it will be hidden and you will receive mails only for bugs you follow.<br />
<br />
<br />
==Projects and Categories==<br />
<br />
Once you have determined your feature or bug is related to Arch and not an upstream issue, you will need to file your problem in the correct place (watch the project name in the drop down list to the left of 'Switch' button in top left corner of bug report creation page.):<br />
<br />
*'''Arch Linux'''- for packages in ''testing'', ''core'', or ''extra''. It is also a place for documentation, websites (except AUR), and security issues.<br />
<br />
*'''Arch User Repository (AUR)'''- for the website and the tools used to manage packages in ''community'' and ''unsupported''. It is not a place for software in ''community'' or ''unsupported''.<br />
<br />
*'''Community Packages'''- for packages in ''community''. It is not a place for packages in ''unsupported''.<br />
<br />
*'''Pacman'''- for ''pacman'' and the official scripts and tools associated with it. This includes things like makepkg and abs; it does not include community-developed packages such as [[yaourt]].<br />
<br />
There is no place for reporting problems with packages in ''unsupported''. AUR provides a way to add comments to a package in ''unsupported''. You should use this to report bugs to the package maintainer.<br />
<br />
==Severity==<br />
<br />
Choosing a ''critical'' severity will not help to solve the bug faster. It will only make truely critical problems less visible and probably make the developer assigned to your bug a bit less open to fixing it.<br />
<br />
Here is a general usage of severities :<br />
<br />
*'''Critical'''- System crash, severe boot failure that is likely to affect more than just you, or an exploitable security issue in either a core or outward-facing service package.<br />
*'''High'''- The main functionality of the application does not work, less critical security issues, etc.<br />
*'''Medium'''- A non-essential functionality does not work, UNIX standards not respected, etc.<br />
*'''Low'''- An optional functionality (plugin or compilation activated) does not work.<br />
*'''Very Low'''- Translation or documentation mistake. Something that really does not matter much but should be noticed for a future release.<br />
<br />
==Including Relevant Information==<br />
<br />
This is maybe one of the most difficult parts of bug reporting.<br />
You have to choose from the chapter [[Reporting_Bug_Guidelines#Gather_useful_information|Gather useful information]] which information you will add to your bug report. This will depend on which your problem is.<br />
If you do not know what the relevant pieces of information are, do not be shy : '''it is better to give more information than needed than not enough'''.<br />
<br />
A good tutorial on reporting bugs can be found at [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html]<br />
<br />
However, developers or bug hunters will ask you for more information if needed.<br />
Fortunately after a few bug reports you will know what information should be given.<br />
<br />
Short information can be inlined in your bug report, whereas '''long information (logs, screenshots ...) should be attached'''.<br />
<br />
=Following up on Bugs=<br />
<br />
'''Do not think the work is done once you have reported a bug'''!<br />
<br />
Developers or other users will probably ask you for more details and give you some potential fixes to try. Without continued feedback, bugs cannot be closed and the end result is both angry users and developers.<br />
<br />
<br />
==Voting and Watching==<br />
<br />
You can '''vote''' for your favorite bugs. The number of votes indicates to the developers how many people are impacted by the bug. However, this is not a very effective way of getting the bug solved. Much more important would be posting any additional information you know about the bug if you were not the original reporter.<br />
<br />
'''Watching''' a bug is important- you will receive an email when new comments are added or the bug status has changed. If you opened a bug verify that the ''"Notify me whenever this task changes"'' checkbox is activated in order to receive such emails.<br />
<br />
==Answering additional information requests==<br />
<br />
People will take the time to look at your bug report and will try to help you. You need to continue to help them resolve your bug. Not answering to their questions will keep your bug unresolved and likely hamper enthusiasm to fix it.<br />
<br />
'''Please take the time to give people more information if requested and try the solutions proposed'''.<br />
<br />
Developers or bug hunters will close your bug if you do not answer questions after a few weeks or a month.<br />
<br />
<br />
==Updating the bug report when a new version of the related software is out==<br />
<br />
Sometimes a bug is related to a given package version and is fixed in a new version. If this is the case then indicate it in the bug report comments and request a closure.<br />
<br />
<br />
==Closing when solved==<br />
<br />
Sometimes people report a bug but do not notify when they have solved it on their own, leaving people searching for a solution that has already been found. Please request a closure if you found a solution and give the solution in the bug report comments.<br />
<br />
<br />
==More about bug status==<br />
<br />
During its life a bug goes through several states :<br />
<br />
* '''Unconfirmed''' : This is the default state. You have just reported it and nobody managed to reproduce the problem or confirmed that it is actually a bug.<br />
<br />
* '''New''' : The bug is confirmed but it has not been assigned to the developer responsible for the related software. It is usually the case when more investigation is needed to determine which software is responsible for the bug.<br />
<br />
* '''Assigned''' : The bug has been assigned to a developer responsible for the software involved in the bug. It does not mean that the developer will be the one who will fix the bug. It does not even mean that the developer will work on a solution. It just mean that the developer will take care of the life cycle of the bug, including reviewing patches if any, releasing a fix and closing the bug when required. There is no point at contacting a developer directly to have a bug fixed more quickly, he/she will certainly not like it ...<br />
<br />
* '''Researching''' : Somebody is looking for a solution. This status is '''rarely used at Arch''' and it is better this way. The ''researching'' status could make people believe they do not need to get interested in the bug report. But usually we need more than one person to fix a bug : having several experienced people on a bug help a lot.<br />
<br />
* '''Waiting on customer''' and '''Requires testing''' : The one who reported a bug is asked to provide more information or to try a proposed solution, but he/she did not give a feedback yet. Those status are '''rarely used at Arch''' and should be used more often. However this is important that you '''watch the bug''' (see the [[Reporting_Bug_Guidelines#Voting_and_Watching|voting and watching section]]) as developers or bug hunters usually ask questions in the comments.<br />
<br />
* '''A task closure has been requested''' : this is not exactly a status, but you may found some bug reports with such a notification. This indicates that somebody requested a closure for the bug. A reason is added to the request most of the time. It is upon the assignee developer to decided whether he/she will accept the closure or not.<br />
<br />
* '''Closed''' : Either this is not a valid bug (see [[Reporting_Bug_Guidelines#Reasons_for_not_being_a_bug|Reasons for not being a bug]]) or a solution has been found and released.<br />
<br />
<br />
Some people (developers, TUs ...) are responsible for dispatching the bugs and change their status.<br />
<br />
=Bug Hunting=<br />
{{stub}}<br />
<br />
==How to help==<br />
<br />
===Where to look at===<br />
===Duplicates===<br />
===Reproducing a bug===<br />
===Asking for more information===<br />
===Reporting upstream===<br />
<br />
==Bug Squashing Day==<br />
[[Bug_Squashing_Day|Bug Squashing Day]]<br />
<br />
=External Links=<br />
<br />
[http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively]</div>
Peets
https://wiki.archlinux.org/index.php?title=Bug_reporting_guidelines&diff=51123
Bug reporting guidelines
2008-10-14T21:12:02Z
<p>Peets: Moved 'stub' status to "Bug Hunting" section; rest of article is quite good!</p>
<hr />
<div>[[Category:Guidelines (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
=Introduction=<br />
<br />
Opening (and closing) bug reports on [http://bugs.archlinux.org/ Arch's Bug Tracking System] is one of the possible ways to '''help the community'''. However, if this is done badly it can turn out being a pain instead of being useful - when too many bugs are badly reported the community and the developers lose a lot of time asking for questions and closing invalid bug reports.<br />
<br />
This document will '''guide''' anyone wanting to help the community efficiently by '''reporting''' or '''hunting bugs'''.<br />
<br />
=Before Reporting=<br />
<br />
The work done before reporting is probably '''the most useful part of the job'''. Unfortunately few people take the time to do this work, they prefer others to do it for them...<br />
<br />
However, preparing a good bug report is not difficult and can be achieved by anyone (beginner or developer).<br />
The following steps will help you in preparing your bug report or feature request. They should be followed in the order they come in.<br />
<br />
<br />
==Glossary==<br />
*'''Upstream''' : ''Upstream'' is usually referred to as the community which developed a piece of software packaged by Archlinux. It is the team which is responsible for creating, publishing and documenting that software. Archlinux can be referred to as ''upstream'' for all the projects specific to Archlinux : pacman, AUR, initscripts, etc ...<br />
<br />
<br />
==Looking for duplicates==<br />
<br />
If you encounter a problem or would like a new feature, there is a high probability that someone else already had this problem or idea. If so he/she might have already opened a bug report. In this case you do not have much to do and see the [[Reporting_Bug_Guidelines#How_to_help|How to help]] section.<br />
<br />
<br />
Here are a list of places to search for duplicates:<br />
<br />
*[http://bbs.archlinux.org/ Arch's forum]: most of the time you will find your bug and the related solution here.<br />
<br />
*[http://bugs.archlinux.org/ Arch's Bug Tracking System]: It sounds obvious, but the "Reject as duplicate" feature in a bug tracker would not exist if people looked for duplicates before reporting bugs ... Some bugs may have already been reported to the software developers, and even some bugs may have been already fixed recently. That is why it is important to '''[http://bugs.archlinux.org/index.php?string=&project=1&status%5B%5D=closed&closedfrom=-1+week look for recently closed bugs as well as new bugs]'''.<br />
<br />
*[http://www.google.com Google] or your favorite search engine: Search using your software name, version and a relevant part of the error message that you got, if any.<br />
<br />
*'''Upstream''' Forum, Mailing List and Bug Tracker: Look directly at the source of your problem! Some bugs may have already been reported to the software developers, and even some bugs may have been already fixed in the development version. That is why it is important to '''look for closed bugs''' as well as new bugs in ''upstream'' 's bug tracker.<br />
<br />
*'''Other distro forums''': The Free Software community is wide, and people other than archers may have a good idea too! You might have a look at [http://forums.gentoo.org/ Gentoo's forums], [http://forums.fedoraforum.org/ Fedora forums] and [http://ubuntuforums.org/ Ubuntu forums]. If you know some other sources of useful information feel free to add them here.<br />
<br />
==Bug or Feature ?==<br />
<br />
Once you know nobody reported the bug either at Arch or Upstream, you have to ask yourself whether your problem is '''a bug or a feature''' :<br />
<br />
*A '''bug''' is something that should work but does not work as intended by the developer.<br />
*A '''feature''' is something a software does or would do if somebody coded it.<br />
<br />
<br />
==Upstream or Arch ?==<br />
<br />
This is an important question. '''If Arch is not responsible for a bug, the problem will not get solved by reporting the bug to Arch'''.<br />
<br />
By reporting bugs upstream not only you will help archers and Arch developers, but you will also help other people in the Free Software Community.<br />
<br />
Once you have reported a bug upstream or have found other relevant information from upstream, it might be helpful to post them in Arch bug tracker so that both Arch developers and users get aware of it.<br />
<br />
So what is Archlinux responsible for?<br />
<br />
*'''Arch Linux Projects''' : Pacman, AUR, Initscripts, Arch Websites. If you have a doubt about if the project belongs to Arch or not, display the package information (pacman -Qi foobar_package or using the website) and look at the URL.<br />
<br />
*'''Packaging''' : Packaging basically consists of fetching the source code from upstream, compiling it with relevant options, making sure that the package will be installed correctly on an Arch system and the main functionality of a package works. Packaging at Arch does not consist of adding new functionality or patches for existing bugs. This is the job of the upstream developer.<br />
<br />
If a bug/feature is not under Arch's responsibility report it upstream. See also [[Reporting_Bug_Guidelines#Reasons_for_not_being_a_bug|Reasons for not being a bug]].<br />
<br />
==Reasons for not being a bug==<br />
<br />
*Something you would like a piece of software to do, which is not implemented by the upstream developers. In short : '''a new feature'''.<br />
*A bug already reported upstream.<br />
*A bug already fixed upstream but not in Arch because the package is not up-to-date.<br />
*'''A package which is not-up-to-date'''. Use the '''Flag Package Out-of-Date''' feature on [http://archlinux.org/packages/ Arch's packages website].<br />
*A package which does not use Fedora, Ubuntu or some other community patch. '''Patches should be submitted ''upstream'''''.<br />
*A package where '''non essential function''' X or function Y is not activated. This is a feature request.<br />
*A package which does not include a '''.desktop file''' or '''icons''' or other [http://www.freedesktop.org freedesktop] stuff. This is not a bug if such files are not included in the source tarball, and this must be requested as a feature request ''upstream''. If such files are provided by ''upstream'' but not used in the package then this is a bug.<br />
<br />
==Reasons for not being a feature==<br />
<br />
*When it is a bug ...<br />
*When it is not under Arch responsibility to implement the feature, ie an '''upstream feature'''.<br />
*A package is not up-to-date. Use the '''Flag Package Out-of-Date''' feature on [http://archlinux.org/packages/ Arch's packages website].<br />
*A package which does not use Fedora, Ubuntu or some other community patch. '''Patches should be submitted ''upstream'''''.<br />
<br />
<br />
==Gather useful information==<br />
<br />
Here is a list of useful information that should be mentioned in your bug report :<br />
<br />
*'''Version of the package''' being used.<br />
<br />
*Version of the main libraries used by the package (available in the ''depends'' variable in the PKGBUILD), when they are involved in the problem. If you do not know exactly what information to provide then wait for a bug hunter to ask you for it ...<br />
<br />
*Version of the kernel used if you are having hardware related problems.<br />
<br />
*Indicate whether or not '''the functionality worked at one time or not'''. If so indicate since when it stopped working.<br />
<br />
*Indicate your '''hardware brand''' when you are having hardware related problems<br />
<br />
*Add '''relevant log information''' when any is available. This can be obtained in the following places depending on the problem :<br />
**/var/log/messages for kernel and hardware related issues.<br />
**/var/log/Xorg.0.log or /var/log/Xorg.2.log or any Xorg like log files if video related problems (nvidia, ati, xorg ...)<br />
**Run your program in a '''console''' and use '''verbose''' and/or '''debug''' mode if available (see your program documentation), and copy the output in a file. When running an application in a terminal make sure relevant information will be displayed in '''english''' so that many people can understand it. This can be done by using ''export LC_ALL="c"''. Example with a software named ''foobar'' from which you would like to have relevant information at runtime and provided that foobar has a --verbose option :<br />
someone@somecomputer # export LC_ALL="C"<br />
someone@somecomputer # foobar --verbose<br />
This will affect only the current terminal and will stop taking effect when the terminal is closed.<br />
<br />
*'''Indicate how to reproduce the bug'''. This is very important, it will help people test the bug and potential patches on their own computer.<br />
<br />
*'''The stack trace'''. It is a list of calls made by program during its execution, and helps in finding part of program where the bug is located, especially if bug involves the program crashing. You can obtain a stack trace using gdb (The GNU Debugger) by running the program with "gdb name_of_program" and then typing "run" at the gdb prompt. When the program crashes, type "bt" at the gdb prompt to obtain the stack trace and then "quit" to exit gdb.<br />
<br />
=Opening a Bug=<br />
<br />
When you are sure it is a bug or a feature and you gathered all useful information, then you are ready to open a bug report or feature request.<br />
<br />
==Creating an account==<br />
<br />
You have to create an account on [http://bugs.archlinux.org/ Arch's bug tracker system]. This is as easy as creating an account on a wiki or a forum and there is nothing particular to mention here.<br />
Do not be afraid of giving the email address you currently use : it will be hidden and you will receive mails only for bugs you follow.<br />
<br />
<br />
==Projects and Categories==<br />
<br />
Once you have determined your feature or bug is related to Arch and not an upstream issue, you will need to file your problem in the correct place (watch the project name in the drop down list to the left of 'Switch' button in top left corner of bug report creation page.):<br />
<br />
*'''Arch Linux'''- for packages in ''testing'', ''core'', or ''extra''. It is also a place for documentation, websites (except AUR), and security issues.<br />
<br />
*'''Arch User Repository (AUR)'''- for the website and the tools used to manage packages in ''community'' and ''unsupported''. It is not a place for software in ''community'' or ''unsupported''.<br />
<br />
*'''Community Packages'''- for packages in ''community''. It is not a place for packages in ''unsupported''.<br />
<br />
*'''Pacman'''- for ''pacman'' and the official scripts and tools associated with it. This includes things like makepkg and abs; it does not include community-developed packages such as [[yaourt]].<br />
<br />
There is no place for reporting problems with packages in ''unsupported''. AUR provides a way to add comments to a package in ''unsupported''. You should use this to report bugs to the package maintainer.<br />
<br />
==Severity==<br />
<br />
Choosing a ''critical'' severity will not help to solve the bug faster. It will only make truely critical problems less visible and probably make the developer assigned to your bug a bit less open to fixing it.<br />
<br />
Here is a general usage of severities :<br />
<br />
*'''Critical'''- System crash, severe boot failure that is likely to affect more than just you, or an exploitable security issue in either a core or outward-facing service package.<br />
*'''High'''- The main functionality of the application does not work, less critical security issues, etc.<br />
*'''Medium'''- A non-essential functionality does not work, UNIX standards not respected, etc.<br />
*'''Low'''- An optional functionality (plugin or compilation activated) does not work.<br />
*'''Very Low'''- Translation or documentation mistake. Something that really does not matter much but should be noticed for a future release.<br />
<br />
==Including Relevant Information==<br />
<br />
This is maybe one of the most difficult parts of bug reporting.<br />
You have to choose from the chapter [[Reporting_Bug_Guidelines#Gather_useful_information|Gather useful information]] which information you will add to your bug report. This will depend on which your problem is.<br />
If you do not know what the relevant pieces of information are, do not be shy : '''it is better to give more information than needed than not enough'''.<br />
<br />
A good tutorial on reporting bugs can be found at [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html]<br />
<br />
However, developers or bug hunters will ask you for more information if needed.<br />
Fortunately after a few bug reports you will know what information should be given.<br />
<br />
Short information can be inlined in your bug report, whereas '''long information (logs, screenshots ...) should be attached'''.<br />
<br />
=Following up on Bugs=<br />
<br />
'''Do not think the work is done once you have reported a bug'''!<br />
<br />
Developers or other users will probably ask you for more details and give you some potential fixes to try. Without continued feedback, bugs cannot be closed and the end result is both angry users and developers.<br />
<br />
<br />
==Voting and Watching==<br />
<br />
You can '''vote''' for your favorite bugs. The number of votes indicates to the developers how many people are impacted by the bug. However, this is not a very effective way of getting the bug solved. Much more important would be posting any additional information you know about the bug if you were not the original reporter.<br />
<br />
'''Watching''' a bug is important- you will receive an email when new comments are added or the bug status has changed. If you opened a bug verify that the watching attribute is set to yes so you will be notified know when people ask you for more information or ask you to try a fix.<br />
<br />
<br />
==Answering additional information requests==<br />
<br />
People will take the time to look at your bug report and will try to help you. You need to continue to help them resolve your bug. Not answering to their questions will keep your bug unresolved and likely hamper enthusiasm to fix it.<br />
<br />
'''Please take the time to give people more information if requested and try the solutions proposed'''.<br />
<br />
Developers or bug hunters will close your bug if you do not answer questions after a few weeks or a month.<br />
<br />
<br />
==Updating the bug report when a new version of the related software is out==<br />
<br />
Sometimes a bug is related to a given package version and is fixed in a new version. If this is the case then indicate it in the bug report comments and request a closure.<br />
<br />
<br />
==Closing when solved==<br />
<br />
Sometimes people report a bug but do not notify when they have solved it on their own, leaving people searching for a solution that has already been found. Please request a closure if you found a solution and give the solution in the bug report comments.<br />
<br />
<br />
==More about bug status==<br />
<br />
During its life a bug goes through several states :<br />
<br />
* '''Unconfirmed''' : This is the default state. You have just reported it and nobody managed to reproduce the problem or confirmed that it is actually a bug.<br />
<br />
* '''New''' : The bug is confirmed but it has not been assigned to the developer responsible for the related software. It is usually the case when more investigation is needed to determine which software is responsible for the bug.<br />
<br />
* '''Assigned''' : The bug has been assigned to a developer responsible for the software involved in the bug. It does not mean that the developer will be the one who will fix the bug. It does not even mean that the developer will work on a solution. It just mean that the developer will take care of the life cycle of the bug, including reviewing patches if any, releasing a fix and closing the bug when required. There is no point at contacting a developer directly to have a bug fixed more quickly, he/she will certainly not like it ...<br />
<br />
* '''Researching''' : Somebody is looking for a solution. This status is '''rarely used at Arch''' and it is better this way. The ''researching'' status could make people believe they do not need to get interested in the bug report. But usually we need more than one person to fix a bug : having several experienced people on a bug help a lot.<br />
<br />
* '''Waiting on customer''' and '''Requires testing''' : The one who reported a bug is asked to provide more information or to try a proposed solution, but he/she did not give a feedback yet. Those status are '''rarely used at Arch''' and should be used more often. However this is important that you '''watch the bug''' (see the [[Reporting_Bug_Guidelines#Voting_and_Watching|voting and watching section]]) as developers or bug hunters usually ask questions in the comments.<br />
<br />
* '''A task closure has been requested''' : this is not exactly a status, but you may found some bug reports with such a notification. This indicates that somebody requested a closure for the bug. A reason is added to the request most of the time. It is upon the assignee developer to decided whether he/she will accept the closure or not.<br />
<br />
* '''Closed''' : Either this is not a valid bug (see [[Reporting_Bug_Guidelines#Reasons_for_not_being_a_bug|Reasons for not being a bug]]) or a solution has been found and released.<br />
<br />
<br />
Some people (developers, TUs ...) are responsible for dispatching the bugs and change their status.<br />
<br />
=Bug Hunting=<br />
{{stub}}<br />
<br />
==How to help==<br />
<br />
===Where to look at===<br />
===Duplicates===<br />
===Reproducing a bug===<br />
===Asking for more information===<br />
===Reporting upstream===<br />
<br />
==Bug Squashing Day==<br />
[[Bug_Squashing_Day|Bug Squashing Day]]<br />
<br />
=External Links=<br />
<br />
[http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively]</div>
Peets
https://wiki.archlinux.org/index.php?title=Vim&diff=39308
Vim
2008-03-28T23:38:17Z
<p>Peets: /* Undo */ mentionned "redo"</p>
<hr />
<div>[[Category:Development (English)]]<br />
[[Category:Utilities (English)]]<br />
[[Category:General (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Vim}}<br />
{{i18n_entry|Italiano|Vim_(Italiano)}}<br />
{{i18n_entry|Русский|Vim_(Русский)}}<br />
{{i18n_links_end}}<br />
<br />
Vim ('''Vi''' I'''M'''Proved), is a text editor derived from Vi. It's notoriously known for its steep learning curve, and user unfriendly interface. However, because of it's efficiently, variety of plugins, and customization options vim is one of the most popular text editors for programmers and *nix users (along with [[Emacs]]*). A graphical version gVim which provides a user with menus is also available.<br />
<br />
<nowiki>*</nowiki>''Note that The Cult of Vi has determined that using emacs may cause dry mouth, blurred vision, drowsiness, dizziness, profuse sweating, tremors, sexual problems, headache, nausea and abdominal pain.''<br />
<br />
==Installation==<br />
* <tt>vim</tt> depends on <tt>vi</tt>, so that must be installed first. However, since vi is part of the base installation most users should already have it.<br />
<br />
<pre><br />
pacman -S vim<br />
</pre><br />
<br />
==Configuration==<br />
vim's configuation file is in a user's home directy (~/) and is named .vimrc. A sample .vimrc can be found in /etc/vimrc.<br />
<br />
<pre><br />
"Sample .vimrc<br />
set nocompatible<br />
set showmatch<br />
set incsearch<br />
set ignorecase <br />
set smartcase<br />
set history=100<br />
set backspace=eol,start,indent<br />
set ruler<br />
set tabstop=4<br />
set shiftwidth=4<br />
set expandtab<br />
set virtualedit=all<br />
set background=dark<br />
set vb t_vg=<br />
set mouse=v<br />
set textwidth=79<br />
set formatoptions=tcrq<br />
</pre><br />
<br />
* To install gvim (Just like vim but with gtk2 interface and listens to /etc/gvimrc and ~/.gvimrc)<br />
<pre><br />
pacman -S gvim<br />
</pre><br />
<br />
* There is also a group of selected popular vim scripts available via pacman<br />
<pre><br />
pacman -S vim-plugins<br />
</pre><br />
<br />
==VIM quick start guide==<br />
<br />
<br />
===How to start vim===<br />
<br />
* to start vim and edit a file (new or existing)<br />
<br />
vim ''filename''<br />
* to start vim and open a new file<br />
vim<br />
<br />
(You may name your file later when you save it.)<br />
<br />
===How to enter text===<br />
<br />
Vim is a mode driven editor. There are many modes, but the basic modes of vim are:<br />
<br />
* Insert mode, in which anything you type (except some special keys) will appear on the screen and become part of your file buffer<br />
<br />
* Command mode (also called normal mode), in which your key strokes are interpreted as commands.<br />
<br />
* So-called "last-line" (or ex) mode, in which you can save your file, open another one, etc.<br />
<br />
* Visual mode, in which you may expediently cut, copy and paste large areas of text with keyboard shortcuts or the <cough> mouse.<br />
<br />
After you start vim, you're in command mode.<br />
<br />
*Switch between modes<br />
<br />
1. From command mode to insert mode, press '''i''', from command mode to last-line mode press ''':'''<br />
<br />
2. from insert mode to command mode, press '''ESC'''<br />
<br />
3. From last-line mode to command mode, press '''ESC'''<br />
<br />
4. From command mode to visual mode, press '''v'''<br />
<br />
===How to move the cursor===<br />
<br />
In both the command mode and the insert mode, the arrow keys function to move the cursor, and with gvim you can mouse click to get to a new position. However, this is not '''''the vim way'''''. The most effective way of moving the cursor is to first enter the command mode by pressing ESC and then use vim's cursor-moving commands to move around. The 4 basic commands are<br />
<br />
* '''j''' move down one line<br />
<br />
* '''k''' move up one line<br />
<br />
* '''h''' move left one character<br />
<br />
* '''l''' move right one character<br />
<br />
Remember: these commands work only in command mode. At first you may feel a bit uncomfortable. After you get familiar using these commands you will stick to them and forget the arrow keys.<br />
<br />
Advanced movement:<br />
<br />
* '''0''' (zero) move to the first character of a line<br />
<br />
* '''$''' move to the last character of a line<br />
<br />
* '''w''' move to the first character of the next word<br />
<br />
* '''e''' move to the last character of the next word<br />
<br />
* '''(''' move to the beginning of the previous sentence<br />
<br />
* ''')''' move to the beginning of the next sentence<br />
<br />
* '''{''' move to the beginning of the current paragraph<br />
<br />
* '''}''' move to the beginning of the next paragraph<br />
<br />
* '''PGUP''' or '''<CTR>F''' move up one page<br />
<br />
* '''PGDOWN''' or '''<CTR>B''' move down one page<br />
<br />
===How to delete text===<br />
<br />
First I will tell you that the DELETE key always works, and the BACKSPACE key works with the newly typed text in the insert mode. However, I suggest you do not use them. Instead, force yourself to use vim's deletion commands.<br />
<br />
1. Make sure you are in command mode by press ESC<br />
<br />
2. move the cursor to the character you want to delete<br />
<br />
3. press '''x''' , this character disappears<br />
<br />
'''x''' is just one of the many powerful deletion commands. Usually you need to move the cursor to the character you want to delete and then press '''x''' to remove it. Remember using the cursor motion commands '''j k h l''' to locate your target, and don't leave the command mode.<br />
<br />
===How to insert text===<br />
<br />
1. In command mode, move the cursor to the desired location<br />
<br />
2. press '''i''', to enter insert mode. This will '''i'''nsert before the current character.<br />
<br />
-or-<br />
<br />
3. press '''a''' to enter insert mode. This will '''a'''ppend text after the current character.<br />
<br />
===How to CUT, COPY and PASTE===<br />
<br />
If you run the GUI version of vim, gvim, you can use mouse and the pull-down menus to do that---the same fashion with other editors. However, that is not the preferred style. You'll feel better off if you can live without a mouse.<br />
<br />
1. Enter the command mode<br />
by pressing ESC<br />
<br />
2. Move the cursor to the line which you want to make a copy, by pressing j or k<br />
<br />
3. press<br />
<br />
yy<br />
<br />
to make a copy of the line, or<br />
<br />
dd<br />
<br />
to cut it and make a copy<br />
<br />
4. now move cursor (by pressing k or j) to the the location where you want to put this copy<br />
<br />
5. press<br />
<br />
p<br />
<br />
to put the buffer after current line, or<br />
<br />
P<br />
<br />
to put the buffer before current line<br />
<br />
If you want to copy or cut several lines, put a number before the yy or dd command, like<br />
<br />
8yy<br />
<br />
to copy 8 lines.<br />
<br />
===CUT, COPY and PASTE with Visual mode===<br />
<br />
*Visual mode is like Command mode, but the movement commands extend a highlighted area. When a non-movement command is used, it is executed for the highlighted area. Cutting, copying and pasting large sections of text is more efficient in visual mode.<br />
<br />
Hit '''v''' to enter visual mode from command mode, then use the cursor to go up or down. As you do, the lines of text will become highlighted. (You may also use the mouse to highlight areas of text)<br />
<br />
To copy the highlighted section or 'yank':<br />
y<br />
To cut the highlighted section or 'delete':<br />
d<br />
To paste or 'put'<br />
p<br />
to place it before, or<br />
P<br />
for after.<br />
<br />
===Undo===<br />
Now that you have learned how to cut and delete, you may need to undo some mistakes<br />
u<br />
will undo the last function. Pressing it repeatedly will undo successive functions.<br />
Likewise, use<br />
Ctrl-R<br />
to redo.<br />
<br />
===How to search for a word===<br />
Suppose you want to find all the words apple in your file<br />
<br />
1. Make sure you are in command mode<br />
by hitting ESC<br />
<br />
2. type<br />
<br />
/apple<br />
<br />
followed by ENTER to find an occurrence of apple. When you type the slash, it and the following characters will be shown on the bottom of the screen. After you press ENTER, the cursor will go to the first occurrence of apple if found, and the target will be highlighted.<br />
<br />
3. after you got the first apple, you can keep typing<br />
<br />
n<br />
<br />
to find other apples<br />
<br />
===How to substitute text===<br />
<br />
First make sure you're in command mode by pressing ESC.<br />
* to replace a single character, move the cursor over the character and hit '''r''' followed by its replacement.<br />
* replace first occurrence of old in current line with new<br />
<br />
:s/old/new/<br />
<br />
* replace all occurrence of old in current line with new<br />
<br />
:s/old/new/g<br />
<br />
* replace the first occurrence of old in each line between line n1 and n2 with new<br />
<br />
:n1,n2s/old/new/<br />
<br />
* replace all occurrence of oldbetween line n1 and n2 with new<br />
<br />
:n1,n2s/old/new/g<br />
<br />
* replace all occurrence of old in the whole buffer with new, prompt for confirmation.<br />
<br />
:1,$s/old/new/gc<br />
<br />
* replace all occurrence of old in the whole buffer with new, prompt for confirmation.<br />
<br />
:%s/old/new/gc<br />
<br />
===How to exit vim===<br />
<br />
* To save and exit: press ESC to enter command mode, then:<br />
<br />
:wq<br />
or<br />
:x<br />
or<br />
ZZ<br />
<br />
* save your file as '''newname''' before you exit: press ESC, then type<br />
<br />
:wq newname<br />
<br />
* Exit without saving, press ESC, then type<br />
<br />
:q<br />
<br />
* Forced quit<br />
<br />
If :q doesn't work, it's probably because you didn't save the change. If you want to save, use :wq. If you don't want to save the changes, type<br />
<br />
:q!<br />
==Vim Tutor==<br />
For more, run: <br />
<pre><br />
vimtutor<br />
</pre><br />
from a shell. Vim will open the tutor file.<br />
<br />
==External links==<br />
* [http://www.vim.org/ The Official website]<br />
* [http://vimdoc.sourceforge.net/ Vim Documentation]</div>
Peets
https://wiki.archlinux.org/index.php?title=Cpufrequtils&diff=31022
Cpufrequtils
2007-10-18T01:05:01Z
<p>Peets: /* Daemon Mode */ Mentionned that min/max_freq values do not need to be set.</p>
<hr />
<div>[[Category:Power management (English)]]<br />
[[Category:CPU (English)]]<br />
[[Category:Daemons and system services (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
= Summary =<br />
<tt>Cpufrequtils</tt> is a set of utilities designed to assist CPU Frequency Scaling, a technology used primarily by notebooks which enables the OS to scale the CPU speed up or down, depending on the current system load and/or power scheme. For instance, CPU frequency scaling can reduce a 2Ghz processor down to 1Ghz when a notebook is on battery power, thereby conversing battery life, reducing heat and lowering fan noise.<br />
<br />
When used in conjunction with [[Pm-utils]], notebook owners are provided with a complete power management suite.<br />
<br />
= Installation =<br />
The <tt>cpufrequtils</tt> package is available from the [http://www.archlinux.org/packages/search/?q=cpufrequtils Extra] repository:<br />
# pacman -S cpufrequtils<br />
<br />
= Configuration =<br />
Configuring CPU scaling is a 3-part process:<br />
# Load appropriate CPU frequency driver<br />
# Load desired scaling governor(s)<br />
# Configure and load frequency scaling daemon (optional)<br />
<br />
== CPU Frequency Driver ==<br />
In order for frequency scaling to work properly, the OS must first know the limits of your CPU(s). To do this, we load a kernel driver that can read and manage the specifications of your CPU(s).<br />
<br />
Most modern notebooks and desktops can simply use the '''<tt>acpi-cpufreq</tt>''' driver, however other options include the ''p4-clockmod, powernow-k6, powernow-k7, powernow-k8,'' and ''speedstep-centrino'' drivers.<br />
<br />
To load the CPU Frequency driver manually:<br />
# modprobe acpi-cpufreq<br />
<br />
To load the driver automatically at startup, add the appropriate driver to the MODULES array within <tt>/etc/rc.conf</tt>. For example:<br />
MODULES=( '''''acpi-cpufreq''''' vboxdrv fuse fglrx iwl3945 ... )<br />
<br />
Once the appropriate cpufreq driver is loaded, you can view detailed information about your CPU(s) by running: <br />
<br />
$ cpufreq-info<br />
<br />
Sample output of <tt>cpufreq-info</tt> (from an Intel Duo Core T2500):<br />
analyzing CPU 0:<br />
driver: acpi-cpufreq<br />
CPUs which need to switch frequency at the same time: 0 1<br />
hardware limits: 1000 MHz - 2.00 GHz<br />
available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz<br />
available cpufreq governors: ondemand, performance<br />
current policy: frequency should be within 1000 MHz and 2.00 GHz.<br />
The governor "performance" may decide which speed to use<br />
within this range.<br />
current CPU frequency is 2.00 GHz.<br />
analyzing CPU 1:<br />
driver: acpi-cpufreq<br />
CPUs which need to switch frequency at the same time: 0 1<br />
hardware limits: 1000 MHz - 2.00 GHz<br />
available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz<br />
available cpufreq governors: ondemand, performance<br />
current policy: frequency should be within 1000 MHz and 2.00 GHz.<br />
The governor "performance" may decide which speed to use<br />
within this range.<br />
current CPU frequency is 2.00 GHz.<br />
<br />
== Scaling Governors (CPU Power Schemes) ==<br />
Governors can be thought of as pre-configured power schemes for the CPU. These governors must be loaded as kernel modules in order to be seen by such programs as kpowersave and gnome-power-manager. You may load as many governors as you like, however only one will be active at any given time.<br />
<br />
Available governors:<br />
*performance '''(default)''' -- The performance governor is built into the kernel and runs the CPU(s) at maximum clock speed<br />
*cpufreq_ondemand ''(recommended)'' -- Dynamically increases/decreases the CPU(s) clock speed based on system load<br />
*cpufreq_conservative -- Similar to ondemand, but more conservative (favours lower clock speeds)<br />
*cpufreq_powersave -- Similar to ondemand, but more conservative (favours lower clock speeds)<br />
*cpufreq_userspace -- Manually configured clock speeds by user<br />
<br />
Add the desired governor(s) to the MODULES array in <tt>/etc/rc.conf</tt>:<br />
MODULES=(acpi-cpufreq '''''cpufreq_ondemand cpufreq_powersave''''' vboxdrv fuse fglrx iwl3945 ... )<br />
<br />
Alternatively, you can manually set the governor by running the <tt>cpufreq-set</tt> command (as root), however this setting will not be saved after a reboot/shutdown. For example:<br />
<br />
# cpufreq-set -g ondemand<br />
<br />
Run '''<tt>cpufreq-set --help</tt>''' or '''<tt>man cpufreq-set</tt>''' for more information.<br />
<br />
== Daemon Mode ==<br />
<tt>cpufrequtils</tt> also installs a daemon which will allow you to set the desired scaling governor and min/max clock speeds at boot-time, without the need for additional tools such as kpowersave. This is a perfect solution for those running a lightweight desktop, such as Openbox.<br />
<br />
Before starting the daemon, edit <tt>/etc/conf.d/cpufreq</tt> as root, selecting the desired governor and setting the min/max speed for your CPU(s), for example:<br />
<br />
#configuration for cpufreq control<br />
# valid governors:<br />
# ondemand, performance, powersave,<br />
# conservative, userspace<br />
governor="ondemand"<br />
<br />
# valid suffixes: Hz, kHz (default), MHz, GHz, THz<br />
min_freq="1GHz"<br />
max_freq="2GHz"<br />
'''''Note:''' The exact min/max values of your CPU(s) can be found running '''cpufreq-info''' after loading the CPU driver from above (e.g. ''modprobe acpi-cpufreq''). However, thesese values are optionnal. You may omit them entirely by deleting or commenting out the min/max_freq lines. Things will work automatically.''<br />
<br />
With the config file taken care of, you may now start the daemon with the following command:<br />
# /etc/rc.d/cpufreq start<br />
<br />
To start the daemon automatically at startup, add <tt>cpufreq</tt> to the DAEMONS array in <tt>/etc/rc.conf</tt>, for example:<br />
DAEMONS=(syslog-ng hal '''''cpufreq''''' dhcdbd networkmanager !network !netfs @alsa @crond @cups @fam @ntpd @sshd)<br />
<br />
= Other Resources =<br />
[[SpeedStep]] - More information on CPU frequency scaling (some of which is obsolete)<br /><br />
[[Pm-utils]] - Hibernate/Suspend framework provided by the OpenSUSE community (Arch Wiki Entry)</div>
Peets
https://wiki.archlinux.org/index.php?title=Newcomers_Guide&diff=31021
Newcomers Guide
2007-10-18T01:00:36Z
<p>Peets: /* Configuring CPU frequency scaling */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Beginners Guide}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_links_end}}<br />
==Preface==<br />
=====Everything you ever wanted to know about installing Arch, but were afraid to ask=====<br />
This document will guide you through the process of installing and configuring [[ArchLinux|Arch Linux]]. While this guide intends to show you how to gain a fully configured Arch Linux system (graphical desktop environment, watching DVDs, browsing the internet, working with emails, listening to music), it is impossible to show (or even anticipate) all possibilities and options. By design, this guide has to focus on some critically useful steps; you may want to dig deeper using the [[Main Page|Arch Linux Wiki]] or the [http://bbs.archlinux.org/ Arch Linux Forums]. You may also be interested in reading [[The Arch Way]], which outlines the underlying principles of the Arch Linux distribution.<br />
<br />
=====DON'T PANIC!=====<br />
Please realize that the Arch Linux installation may be very different from most other distros you have tried, especially if you are a beginner. The Arch Linux system is built '''by the user''', from the installer, to a core system with nothing more than a bash shell (command line interface) and basic system tools. From the command line, you will add packages from the Arch repositories using the [[pacman]] tool via your internet connection, until your system is customized to your requirements. This allows for maximum flexibility, choice, and system resource control. Because '''you''' build it, you will invariably know the nuts and bolts of your system, and become familiar with what is under the hood.<br />
<br />
If you feel that something important is missing or not working, drop me a note at <freigeist [at] elfenbeinturm.cc>. Feel free to include the fix or whatever it was you originally needed (this is the main idea of a wiki :)). There is also an [http://bbs.archlinux.org/viewtopic.php?t=29055 Arch forum thread] devoted to beginners.<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 />
<br />
<br />
Welcome to Arch! Now let's get started.<br />
<br />
==Obtain the latest ISO ==<br />
<br />
You can obtain Arch's latest official snapshot from [http://www.archlinux.org/download/ www.archlinux.org/download/].<br />
<br />
It is strongly recommended to choose the '''core-iso''' for several reasons:<br />
<br />
# It takes less time to download and uses lesser bandwidth. This is good for the<br />
servers too.<br />
# The full version has conflicting packages, and unless you know what you are doing, the installer will not allow you to install with the conflicts in place,<br />
# The core system will likely be easier and quicker to get up-to-date, and<br />
# This guide is geared toward the core system installation process. <br />
<br />
Once the core system is installed, you can then access the internet repositories to continue your setup as needed.<br />
<br />
==Install the core system ==<br />
<br />
As you follow these directions, you may find the [[Official Arch Linux Install Guide]] helpful as well. In addition, [http://www.archlinux.org/static/docs/arch-install-guide.html a printable copy] is available.<br />
<br />
===Boot Arch Linux CD===<br />
<br />
Insert the CD into your CD-ROM drive and boot from it. You may have to <br />
change the boot order in your computer BIOS or press a key (usually F11 or F12) <br />
during the BIOS phase.<br />
<br />
Some useful options when booting off the Arch Linux CD:<br />
* ide-legacy if you have trouble with IDE drives<br />
* noapic acpi=off pci=routeirq nosmp if your system hangs during the boot process<br />
* memtest86+ if you want to check your memory for errors<br />
* lowmem is useful for older machines. It requires only 96MB of system RAM vs 256MB for the normal install<br />
Choose "Arch Linux Installation / Rescue System". If you need to change the boot options press e for editing the boot lines.<br />
The system will now boot and present a welcome text with some explanations when ready.<br />
<br />
===Changing the keymap===<br />
Press enter at the welcome screen. If you have a non-US keyboard layout type<br />
km<br />
at the prompt and choose the appropriate keymap.<br />
<br />
''Example''(norwegian) for illustrative purposes:<br />
<br />
In console keymap screen select<br />
no-latin1<br />
In console font screen select<br />
lat0-16<br />
<br />
Choosing "default8x16.psfu.gz" for console font is a safe choice.<br />
<br />
===Start the Installation===<br />
Enter<br />
/arch/setup <br />
to start the installation. <br />
<br />
====Select an installation source====<br />
You will be prompted for an installation source. Choose CD if you are using a core ISO, or choose FTP if you are using the FTP ISO.<br />
<br />
====Prepare Hard Drive====<br />
Select the first menu entry "Prepare Hard Drive". Beware that "Auto-Prepare" may not be a safe choice because it will erase the entire hard drive.<br />
Here we will manually partition the hard drive. Choose "2. Partition Hard Drives", select the hard drive you want (/dev/sdx), and create some partitions. <br />
<br />
<br />
=====Partitions=====<br />
<br />
<br />
A partition is a section of hard disk space that will appear as a separate disk, and can be added to your Arch Linux file system. Partitions are broken up into "Primary", "Extended", and "Logical". <br />
Primary partitions can be bootable, and are limited to 4. For example, if you are using a PC with a single SATA drive, the first primary partition will be referred to as sda1. The second primary will be referred to as sda2, then sda3, and sda4. Beyond 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. Logical partitions must be contained within this extended partition. When partitioning a disk, one can see this numbering scheme by creating primary partitions sda1-3 followed by creating an extended partition, sda4, and then creating logical partition(s) within the extended partition; sda5, sda6, and so on.)<br />
<br />
<br />
Everyone has a different opinion on how best to partition the disk. What you need at the least is one primary partition which contains the root [http://en.wikipedia.org/wiki/File_system Filesystem] ( / ) and one for swap. Other candidates for separate partitions are /boot (which mainly contains the kernel) and /home (which contains the user data). It is good practice to have / and /home on separate partitions. This makes it possible to reinstall Arch Linux (or even another distro) for any reason, while keeping your data, music, pictures, and desktop environment preferences.<br />
<br />
In this example guide, we will stick with one partition for /, one partition for /home, and a swap partition.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on your hard drive where "virtual ram" resides. If your processes need more RAM than is physically available, Linux can't fulfill the request and an error occurs. A swap partition helps in this situation by supplementing the physical RAM with virtual RAM. Linux uses the space on the hard disk to store the information that won't fit into the physical RAM any more (it's actually a bit more complex because Linux tries to put information into the swap space that isn't frequently used). Because a hard disk is very slow compared to physical RAM, this is only<br />
a makeshift. <br />
<br />
<br />
Ask two people about a swap partition and you will get four different answers. If you have plenty of RAM (more than 1024 MB) it may be possible to not use a swap partition at all. Some people suggest using twice the amount of physical RAM, while others recommend not using more than 1024 MB. I believe keeping the swap size between 512 MB and 1 GB is a good choice. Therefore, we will create a 1 GB swap space in this example.<br />
<br />
Let's start creating the '''primary partition''' that will contain the '''root''' filesystem. Choose New -> Primary and enter the size you want (something between 4 and 8 GB is a good choice for a full-featured Linux system). Put the partition at the beginning of the disk. Select the newly created partition and choose "Bootable" to make this partition bootable. Add another '''partition for your home directory'''. Choose another primary partition and set the size to a value you like. The size really depends on what your users store in their home directories, so I cannot make any suggestions. The size may vary between a few hundred megabytes for some office documents up to hundreds of gigabytes for videos and MP3s. If you <br />
want to use the whole space on your hard disc, use the remaining space minus 512 MB - 1 GB for the size. At last we<br />
create a third '''partition for swap'''. Select a size between 512 MB and 1 GB and change the type to 82 (Linux swap / Solaris).<br />
<br />
This is what your Layout should look like (size may vary depending on your decisions):<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Boot Primary Linux (4096 - 8192)<br />
sda2 Primary Linux (> 100)<br />
sda3 Primary Linux swap / Solaris (512 - 1024)<br />
<br />
Choose Write and type yes. Beware that this operation may destroy data on your disk if you deleted partitions. Choose Quit to leave the partitioner. <br />
Choose Done to leave this menu and continue with "Set Filesystem Mountpoints".<br />
<br />
====Set File system Mountpoints====<br />
<br />
=====A few brief words about '''filesystems''' and "file systems":=====<br />
<br />
Technically, and for accuracy, a '''filesystem''' is a data '''format''', for information throughput, whereas a "file system" (notice the space) is a term referring to the layout of all files and directories on a given system. Therefore, when you are asked if you want to create a '''filesystem''', you are being asked if you want to '''format''' the particular partition... but when you are asked for mount points, you are providing where the given partition will reside in your Arch Linux "file system". Let's begin.<br />
<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). You will be asked what kind of filesystem you want.<br />
<br />
Again, ask two people which filesystem to choose and you will get five different answers. Each one has its advantages and disadvantages. Here is a very brief overview of supported filesystems.<br />
<br />
1. '''ext2''' - Old, reliable GNU/Linux filesystem. Fast, and very stable, but without journaling.<br />
<br />
2. '''ext3''' - Essentially the ext2 system, but with journaling support. ''Slightly'' slower than ext2 and other filesystems. '''Extremely''' stable and the most widely used, supported, and developed.<br />
<br />
3. '''ReiserFS''' - Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput. ReiserFS is very fast, especially when dealing with many small files. ReiserFS is quite well established and stable.<br />
<br />
4. '''JFS''' - IBM's Journaling FS. JFS is quite well established, fast, and stable.<br />
<br />
5. '''XFS''' - is a fast journaling filesystem which is best suited for large files, greater than 1 GB in size. Slower with small files. Quite stable.<br />
<br />
A major difference is [http://en.wikipedia.org/wiki/Journaling_file_system journaling] (something similar to transaction logs in database environments). All filesystems except ext2 use journaling. ext3 is completely compatible with ext2, so you can mount it even with very-old rescue CDs. A safe choice for the root partition is ext3. ReiserFS, XFS, and JFS are also OK to use because GRUB (the boot manager which we will install later) can boot from them too. Create the filesystem (format the partition) by selecting yes. You will now be prompted to add any additional partitions. In our example, only sda2 is remaining. Choose a filesystem type and mount it as /home. Again, create the filesystem and choose Done. Return to main menu.<br />
<br />
===Select Packages===<br />
Now we shall select packages to install in our system. Choose CD as source and select the appropriate CD drive if you have more than one.<br />
Choose the base category (keeping all base packages selected is a safe choice). If you chose the current ISO rather than the core ISO, it is up to you if you want to select more packages, but we will show you later how to install additional, up-to-date software more easily, rather than installing and reinstalling. (Since the install CD you are using has been created, there are no doubt numerous updates available for packages contained therein, and installing additional up-to-date software via pacman will be covered below.) If you are '''sure''' you will not be needing certain packages (for instance, a filesystem type you don't need, ISDN, or PPPoE support), feel free to remove them from the base package selection. <br />
<br />
Step forward to "Install Packages".<br />
<br />
===Install Packages===<br />
This is an easy task because everything happens automatically. Get yourself a cup of coffee (if you're into coffee ;)) and wait until the installation has finished (press continue if needed). Drink quickly, because the Arch Linux base packages install in just a couple of minutes.<br />
<br />
===Configure The System===<br />
You will be asked if you want to choose hwdetect to gather some information for your configuration. This is recommended so you should choose this option. <br />
Now you will be asked if you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, and encrypted volumes. Choose yes if you need it; in our example nothing is needed. Now you will be asked which text editor you want to use; choose [http://en.wikipedia.org/wiki/Nano_%28text_editor%29 nano] if you are not familiar with [http://en.wikipedia.org/wiki/Vim_%28text_editor%29 vi/vim]. You will now get a menu with most important config files for your system. We will do only some minor tweaks at this time. If you want to look up the available options as stated in rc.conf just press Alt+F2 to get a shell, look it up, and switch back to the installer with Alt+F1. <br />
<br />
=====/etc/rc.conf=====<br />
<br />
* Change your LOCALE if needed (e.g. "de_DE.utf8") (This locale must coincide with /etc/locale.gen. '''See below'''.)<br />
* Change your TIMEZONE if needed (e.g. "Europe/Berlin")<br />
* Change your KEYMAP if needed (e.g. "de-latin1-nodeadkeys")<br />
<br />
* Specify MODULES if you know that an important module is missing (hwdetect should have filled in the most important modules)<br />
* Set your HOSTNAME<br />
* Edit your Network settings:<br />
** Don't modify the lo line<br />
** Adjust the IP address, netmask and broadcast address if you are using '''static IP''<br />
** Set eth0="dhcp" if you want to use DHCP<br />
** '''If you are using static IP''', set the gateway address to the one of your router and remove the ! in front of the ROUTES entry. (Leave this entry alone, if using DHCP.)<br />
<br />
=====About DAEMONS=====<br />
You don't 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. 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, 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 />
Use Ctrl+X to leave the editor.<br />
<br />
=====/etc/hosts=====<br />
Add the desired ''hostname'' (the one you set in rc.conf before) so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost ''yourhostname''<br />
This format, '''including the 'localhost' entries''', is required for program compatibility. Errors in this syntax will cause programs to open very slowly. <br />
For most users, simply adding the ''hostname'' to the end of the default line will work, however, some users recommend using the following syntax:<br />
127.0.0.1 ''yourhostname''.domain.org localhost.localdomain localhost ''yourhostname''<br />
If you use a static IP, add another line using the syntax: <static-ip> hostname.domainname.org hostname, <br />
e.g.:<br />
192.168.1.100 yourhostname.domain.org yourhostname<br />
<br />
===== /etc/fstab, mkinitcpio.conf and modprobe.conf=====<br />
We shouldn't need to edit mkinitcpio.conf, or modprobe.conf at this point. mkinitcpio configures the ramdisk (e.g. booting from RAID, encrypted volumes) and modprobe can be used to set some special config options for the modules).<br />
<br />
If you are planning on using the hal daemon to automate the mounting of disks, optical drives, usb drives, etc., you may wish to edit /etc/fstab by commenting out the entries for cdrom, floppy, and dvd.<br />
<br />
=====/etc/resolv.conf (for Static IP)=====<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 />
<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 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 />
Alternatively, add your preferred servers one by one, e.g.:<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.2<br />
<br />
=====/etc/locale.gen=====<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 />
('''Your locale must coincide with the one specified in /etc/rc.conf above.''')<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 a kernel.<br />
<br />
===Install Kernel===<br />
Not many choices here; choose v2.6 and continue. You may want to switch your kernel later. A fallback image will be created, keeping mkinitcpio as it is shown as a safe choice. Continue with installing a bootloader.<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]. The shown GRUB configuration (/boot/grub/menu.lst) should be sufficient. The only thing you may want to alter is the resolution of the console. Add<br />
a vga=<number> to the first kernel line. (A table of resolutions and the corresponding numbers is printed in the menu.lst.) <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 />
The "vga=773" argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Exit the install and type reboot.<br />
<br />
If everything goes well, 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 core system!<br />
<br />
==Configuring the core system ==<br />
Your new Arch Linux core system is now a functional GNU/Linux operating system ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes.<br />
<br />
Let's begin.<br />
-----<br />
Login with your root account. We will configure pacman and update the system as root, then add a normal user. <br />
<br />
<br />
===Configuring the network (if necessary)===<br />
''This section will assist you in configuring most types of networks, if the installation configurations are not working for you.''<br />
If everything went fine, 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".'''<br />
<br />
If, after trying to ping www.google.com, you get an "unknown host" error, you may conclude that your network is not 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<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<br />
where you should see an entry for eth0. 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 />
Check to see if /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.de. If everything is working now, adjust /etc/rc.conf as described in section 2.6 (static IP). 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 in section 2.6 (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 won't 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 package manager of Arch Linux. Pacman is written in C and is fast, simple, and extremely powerful. 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. 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 core system into whatsoever you please.<br />
===Configuring pacman===<br />
=====/etc/pacman.conf=====<br />
pacman will attempt to read pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package repository that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
nano -w /etc/pacman.conf<br />
Example:<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/current/os/i686<br />
Include = /etc/pacman.d/core<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/extra/os/i686<br />
Include = /etc/pacman.d/extra<br />
#[unstable]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/unstable/os/i686<br />
#Include = /etc/pacman.d/unstable<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/community/os/i686<br />
Include = /etc/pacman.d/community<br />
Ensure the [community] repo is enabled (remove the # in front of the "Include = /etc/pacman.d/community" and "[community]" lines). Arch's community repository offers many useful applications. <br />
<br />
The "Server =" lines, if uncommented, will force the specified server to be searched first and foremost. Further configuration for repos are under /etc/pacman.d/<br />
<br />
====/etc/pacman.d/====<br />
Faster mirrors will dramatically improve pacman performance, and your overall Arch Linux experience.<br />
<br />
Use the '''rankmirrors''' script supplied with the latest pacman package, which will rank the mirrors automatically by their speed. For example, to rank the mirrors in the ''core'' repository, you would have to run as root:<br />
rankmirrors /etc/pacman.d/core<br />
Repeat as necessary for all desired repositories.<br />
<br />
Alternatively, you may choose to manually Edit the files in /etc/pacman.d/ (community, core, extra) and move the mirrors which are located nearest to you to the top of the list. (if you use nano, Alt+A starts selecting an area, cursor down marks the lines, Ctrl+K cuts the selected area and Ctrl+U uncuts it). Repeat this for all files in /etc/pacman.d/. You may want to return to these configuration files to experiment with various mirrors. Choose wisely.<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 />
<br />
=====''Take note as to whether a major kernel upgrade is occurring.''=====<br />
<br />
If the kernel undergoes a major upgrade, modules such as nvidia (to be installed later in the guide) will be inoperable, since the new, upgraded versions of such modules will be built against the newer kernel, and your system is currently using an older one. A reboot will be necessary.<br />
<br />
=====The beauty of the rolling release=====<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 />
<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 at least audio and wheel to your additional groups. <br />
Audio allows your user to use the audio card, while wheel allows switching to the root account with su. Other groups to be added, (separated by a comma) include:<br />
<br />
*storage - for managing storage devices<br />
<br />
*video - for video tasks and 3d acceleration<br />
<br />
*optical - for managing tasks pertaining to the optical drive(s)<br />
<br />
*floppy - for access to a floppy if necessary<br />
<br />
*lp - for managing printing tasks<br />
<br />
You may also consider adding optical to your additional groups to enable CD/DVD recording from your user account.<br />
<br />
See the [http://wiki.archlinux.org/index.php/Groups Groups] article to understand what groups you need to be a member of. <br />
You may also add your user to the desired groups like so, (as root):<br />
usermod -aG audio,video,floppy,lp,optical,network,storage,wheel USERNAME<br />
<br />
==Installing and configuring Hardware==<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. 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 />
Your audio card should already be working, but you can't hear anything because it is muted by default. <br />
<br />
Install the alsa-utils package:<br />
pacman -S alsa-utils<br />
and use alsamixer to adjust the channels: <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.) Leave alsamixer by pressing ESC. <br />
<br />
Add alsa to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings on boot-up.<br />
nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond '''alsa''')<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; even a desktop system will benefit from it. Install cpufrequtils with<br />
pacman -S cpufrequtils<br />
and add cpufreq to your daemons in /etc/rc.conf. Edit the config file /etc/conf.d/cpufreq and change <br />
governor="conservative"<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 don't 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 />
===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 acpid <br />
pacman -S acpid<br />
and add it to the daemons in /etc/rc.conf (acpid). Start it with<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 />
==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 Unix-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 />
Now we will install the base Xorg packages using pacman. This is the first step in building a GUI.<br />
<br />
As root, do:<br />
pacman -S xorg-server xorg-xkb-utils xorg-xauth xorg-server-utils xorg-xinit xf86-video-vesa xf86-input-mouse xf86-input-keyboard<br />
(The old xorg group package has been removed. If it reappears, the option to use it will be given here.)<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>). If you need a list of all '''open-source''' video drivers, do: <br />
pacman -Ss xf86-video | less<br />
If you don't know what graphics card you are using, do:<br />
lspci | grep VGA<br />
Here is a list of '''open source''' drivers, and corresponding video chipsets.<br />
*'''xf86-video-apm''' Alliance ProMotion video driver<br />
*'''xf86-video-ark''' ark video driver<br />
*'''xf86-video-ati''' ati 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<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''' 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 below''' under "Using proprietary Graphics Driver (nVIDIA, ATI)"<br />
<br />
Install the appropriate video driver for your video card/onboard video. e.g.:<br />
pacman -S xf86-video-i810<br />
(for the intel 810 chipset 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, 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, say a video projector and an on board LCD of a notebook. <br />
------<br />
By default, you will not have an Xorg config file, and with the newest versions of Xorg, you don't need one ''if'' the autodetection ''works satisfactorily'' and you don't need to turn on features such as aiglx and so on. ''Most people will still find that they need to generate a config file, however.''<br />
<br />
There are several ways of creating /etc/X11/xorg.conf:<br />
<br />
*The Xorg way to make a basic config file is to run<br />
Xorg -configure<br />
which will create /root/xorg.conf. Move the generated config file as appropriate, e.g.<br />
mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
*Another way of making an xorg.conf without getting your hands dirty is Arch Linux's own developer tpowa's tool:<br />
hwd -xa<br />
hwd (to see the various options)<br />
<br />
*The proprietary video drivers also have tools to edit xorg.conf to configure the drivers (see below). These are <br />
aticonfig<br />
and<br />
nvidia-xconfig<br />
<br />
However, you should not be a stranger to editing the config file by hand (as this is usually needed to fix various issues from time to time):<br />
<br />
nano /etc/X11/xorg.conf<br />
<br />
Edit your /etc/X11/xorg.conf to specify your video driver. e.g.:<br />
Section "Device"<br />
Driver "i810"<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, before installing a complete desktop environment, install '''xterm'''. Xterm is a very simple terminal emulator which runs in the X Server environment. Xterm will allow us to effectively test if your video driver and /etc/X11/xorg.conf are properly configured. Alternatively, you may wish to test if the X autodetection works satisfactorily, in the absence of /etc/X11/xorg.conf.<br />
pacman -S xterm<br />
Edit your /home/username/.xinitrc file, '''as normal user''', to dictate which X Server event is called upon with the 'startx' command:<br />
<br />
su yourusername<br />
<br />
nano ~/.xinitrc<br />
<br />
and add (or uncomment)<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 line in your ~/.xinitrc ) If you do not have ~/.xinitrc, simply create one with the above information.<br />
<br />
Start X Server as normal user, with:<br />
<br />
startx<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 />
Now you might want to install a graphical login manager (to avoid having to type startx everytime you start the computer) like [[GDM]] or [[KDM]], but this ''could'' wait, and advanced instructions for Xorg configuration can be found in the [[Xorg]] article.<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 Input 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 />
===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 />
<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 excellent quality, and offer superior 3D performance.<br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has 3 different drivers 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 />
Install the appropriate nvidia driver, e.g.: <br />
pacman -S nvidia <br />
At this point, you have 3 choices as to how to proceed.<br />
<br />
*'''1.''' If you have no xorg.conf at all, or if you have an existing xorg.conf and want to '''generate a completely new one''' with the nVIDIA utility, back up the old one:<br />
mv /etc/X11/xorg.conf /etc/X11/xorg.old<br />
Then create the new /etc/X11/xorg.conf with<br />
nvidia-xconfig<br />
The nvidia-xconfig utility will usually create a very short, streamlined, easy-to-read xorg.conf<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 />
*'''2.''' '''Expert Option:''' If you have an existing xorg.conf and want to keep it, edit your xorg manually as needed, and at the very least, adjust your '''Device''' Section by changing Driver "<olddrivername>" to Driver "nvidia".<br />
Section "Device"<br />
<br />
Driver "nvidia" <br />
*'''3.''' Alternatively, you may choose to keep your existing /etc/X11/xorg.conf, and run:<br />
nvidia-xconfig<br />
which will automatically '''update''' your /etc/X11/xorg.conf for use with the nVIDIA proprietary driver.<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 />
<br />
The nvidia-xconfig utility will automatically place the glx option in your xorg. If you did not use nvidia-xconfig, then you should add this to your module section:<br />
<br />
Load "glx"<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal refresh, vertical refresh, and resolutions are acceptable.<br />
<br />
Logout and login.<br />
<br />
Start X server as normal user, to test your configuration:<br />
startx<br />
<br />
Advanced instructions for nvidia configuration can be found in the [[NVIDIA]] article.<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 fglrx<br />
Use the aticonfig tool to modify the xorg.conf. Note: The proprietary driver does not support [[AIGLX]]. To use [[Compiz]] or [[Beryl]] with this driver you would need to use [[XGL]].<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 />
<br />
Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki]].<br />
<br />
==Installing and configuring a Desktop Environment ==<br />
If you ask two people what the best Desktop Environment or Window Manager is, you will get six different answers. Choose the best environment for your needs.<br />
* If you want something full-featured and similar to Windows and Mac OSX, '''KDE''' is a good choice<br />
* If you want something more minimalist, which follows the K.I.S.S. principle more closely, '''GNOME''' is a good choice<br />
* If you have an older machine or want something lighter, '''xfce4''' is a good choice, still giving you a complete environment<br />
* If you need something even lighter, '''openbox, fluxbox or fvwm2''' may be right (not to mention all other lightweight window managers like '''windowmaker and twm''').<br />
* If you need something completely different, try '''ion, wmii, or dwm'''.<br />
<br />
===Install Fonts===<br />
At this point, you may want to install some good-looking fonts, '''before''' installing a desktop environment/window manager. Dejavu and bitstream-vera are nice font sets. For websites, you may want to have the Microsoft fonts too. Install with:<br />
pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<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 complete GNOME environment with:<br />
pacman -S gnome gnome-extra<br />
It's safe to choose all packages shown. <br />
Alternatively, you may wish to install a more basic, stripped-down GNOME:<br />
pacman -S gnome<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.<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. Install gdm with<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 start 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 in the 'Slackware tradition', leave out gdm.)<br />
<br />
====~/.xinitrc====<br />
<br />
This configuration file controls what occurs when you type 'startx'.<br />
<br />
Edit your /home/username/.xinitrc to utilize GNOME:<br />
<br />
nano ~/.xinitrc<br />
<br />
Uncomment the 'exec gnome-session' line 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 gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
If you do not have a ~/.xinitrc file, simply create it with the above information. Remember, you must have only one uncommented line in your ~/.xinitrc. <br />
<br />
Switch to normal user:<br />
su username<br />
<br />
And test it with:<br />
startx<br />
<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 />
====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 Unix workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of UNIX-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"''': <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 />
To install KDEmod in 5 easy steps, just follow these installation instructions...<br />
Note: Before you start, please remember to read all of the install messages. They are fairly comprehensive and should solve any upcoming questions after the installation. If you cant scroll back to see all messages, just take a look into /var/log/pacman.log<br />
<br />
*1. Add the kdemod repo to your /etc/pacman.conf:<br />
nano /etc/pacman.conf<br />
Add one of these entries at the top of your server list:<br />
[kdemod]<br />
Server = http://kdemod.ath.cx/repo/current/i686<br />
for 32 bit Arch, or<br />
[kdemod]<br />
Server = http://kdemod.ath.cx/repo/current/x86_64<br />
for 64 bit Arch.<br />
<br />
*2. You must also activate the [community] repository in /etc/pacman.conf because KDEmod needs some packages from this repository. Make sure the following lines are uncommented:<br />
[community]<br />
Include = /etc/pacman.d/community<br />
<br />
<br />
*3. Update your package database with pacman -Syu. Now you can choose between two installations:<br />
<br />
pacman -S kdemod ''- installs a light base system''<br />
pacman -S kdemod-complete ''- installs the full KDE desktop''<br />
<br />
If you encounter any errors or conflicts at this step, check pacmans output, and if there are some unsolvable problems, tell us about them at the forums.<br />
*4. Install your localization. Take a look at the list of packages or simply do a pacman -Ss kdemod-kde-i18n to see which of them are already included.<br />
<br />
*5. Install all the extra apps you want. You can check out all available KDEmod packages by entering pacman -Sl kdemod<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, and are installed when you install KDE.<br />
<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to start them on bootup. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng network crond alsa '''hal fam kdm''')<br />
(If you prefer to log into the '''console''' and manually start X in the 'Slackware tradition', leave out kdm.)<br />
<br />
=====~/.xinitrc=====<br />
This configuration file controls what occurs when you type 'startx'.<br />
<br />
Edit your /home/username/.xinitrc to utilize KDE:<br />
nano ~/.xinitrc<br />
Uncomment the 'exec startkde' line so that it looks like this:<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 gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
If you do not have a ~/.xinitrc file, simply create it with the above information. Remember, you must have only '''one''' uncommented line in your ~/.xinitrc.<br />
<br />
Switch to your normal user:<br />
su username<br />
Now try starting your X Server:<br />
startx<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing [[Post Installation Tips]], or the rest of the information below.<br />
Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.<br />
<br />
===Xfce===<br />
====About Xfce====<br />
Xfce is a Desktop Environment, like GNOME or KDE. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit 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.<br />
<br />
====Installation====<br />
Install xfce with<br />
pacman -S xfce4 xfce4-goodies <br />
<br />
If you use kdm or gdm a new xfce session should have appeared. Alternatively, you can use<br />
startxfce4<br />
<br />
Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] 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 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 />
In the file "rc.xml" you can change various settings for Openbox (or you can use OBconf). In "menu.xml" you can change your right-click menu.<br />
<br />
To be able to log into openbox you can either go via graphical login using KDM/GDM or startx, in which case you will need to edit your ~/.xinitrc (as user) and add the following:<br />
<br />
exec openbox<br />
<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Useful 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 and 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 />
==HAL==<br />
Since you have now installed a desktop environment 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 uses 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 />
===evdev===<br />
If you have a modern USB mouse with several thumb buttons and/or functions, you may want to install the evdev mouse driver, which will allow you to exploit the full functionality of your mouse:<br />
<br />
pacman -S xf86-input-evdev<br />
Load the driver:<br />
modprobe evdev<br />
Find your mouse name:<br />
cat /proc/bus/input/devices | egrep "Name"<br />
Using the mouse name, configure your /etc/X11/xorg.conf InputDevice section accordingly, e.g.:<br />
Section "InputDevice"<br />
Identifier "Evdev Mouse"<br />
Driver "evdev"<br />
Option "Name" "Logitech USB-PS/2 Optical Mouse"<br />
Option "CorePointer"<br />
EndSection<br />
You must have only '''one''' "CorePointer" device specified in /etc/X11/xorg.conf, so be sure to comment out any other mouse entries until you feel safe removing the old, unused entries.<br />
<br />
Also edit the ServerLayout section to include Evdev Mouse as the CorePointer, e.g.:<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Screen 0 "Screen0"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
InputDevice "Evdev Mouse" "CorePointer"<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 />
===Internet===<br />
<br />
=====Firefox=====<br />
The ever-popular Firefox web browser is available through pacman. 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 codecs for Quicktime and Realplayer 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 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.<br />
<br />
==Multimedia ==<br />
<br />
<br />
===Video Player===<br />
====VLC====<br />
VLC Player is a multimedia player for Linux. 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 />
====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 isn't.<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.<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 />
Other good audio players are: Banshee, Quodlibet, 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; another good choice is [http://musicpd.org/ mpd].<br />
<br />
Another excellent choice is [http://freshmeat.net/projects/cmus/ cmus].<br />
<br />
====Other X-based====<br />
(TODO) Xmms, audacious, bmpx.<br />
<br />
===Codecs and other multimedia content types===<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.<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 Unix-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 />
<br />
<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 />
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 bunch is supported. Be sure to check at a Hardware Database to be sure (e.g. [http://en.opensuse.org/HCL/TV_Cards]). 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, see [http://linux.bytesex.org/v4l2/drivers.html]) 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 bttv[http://dl.bytesex.org/releases/video4linux/] 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 object 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 />
<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 aren't used by any other installed package:<br />
pacman -Rs package<br />
<br />
To remove all of the package's dependencies now unneeded and do not make any backup of settings:<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 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 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 />
==Polishing & Further information==<br />
If after you have read this you want to do a bit of polishing, head to [[Post Installation Tips]]. For further information and support you can go to the [http://www.archlinux.org homepage], search the wiki, the [http://bbs.archlinux.org forums], the [http://wiki.archlinux.org/index.php/ArchChannel IRC channel], and the [http://www.archlinux.org/mailman/listinfo/ mailing lists].</div>
Peets
https://wiki.archlinux.org/index.php?title=Newcomers_Guide&diff=31020
Newcomers Guide
2007-10-18T00:59:06Z
<p>Peets: /* Configuring CPU frequency scaling */ Mentionned that min_freq and max_freq are not mandatory</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:About Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Beginners Guide}}<br />
{{i18n_entry|Česky|Průvodce začátečníka (Česky)}}<br />
{{i18n_entry|Italiano|Beginners Guide (Italiano)}}<br />
{{i18n_entry|Lietuviškai|Pradedančiųjų gidas (Lietuviškai)}}<br />
{{i18n_links_end}}<br />
==Preface==<br />
=====Everything you ever wanted to know about installing Arch, but were afraid to ask=====<br />
This document will guide you through the process of installing and configuring [[ArchLinux|Arch Linux]]. While this guide intends to show you how to gain a fully configured Arch Linux system (graphical desktop environment, watching DVDs, browsing the internet, working with emails, listening to music), it is impossible to show (or even anticipate) all possibilities and options. By design, this guide has to focus on some critically useful steps; you may want to dig deeper using the [[Main Page|Arch Linux Wiki]] or the [http://bbs.archlinux.org/ Arch Linux Forums]. You may also be interested in reading [[The Arch Way]], which outlines the underlying principles of the Arch Linux distribution.<br />
<br />
=====DON'T PANIC!=====<br />
Please realize that the Arch Linux installation may be very different from most other distros you have tried, especially if you are a beginner. The Arch Linux system is built '''by the user''', from the installer, to a core system with nothing more than a bash shell (command line interface) and basic system tools. From the command line, you will add packages from the Arch repositories using the [[pacman]] tool via your internet connection, until your system is customized to your requirements. This allows for maximum flexibility, choice, and system resource control. Because '''you''' build it, you will invariably know the nuts and bolts of your system, and become familiar with what is under the hood.<br />
<br />
If you feel that something important is missing or not working, drop me a note at <freigeist [at] elfenbeinturm.cc>. Feel free to include the fix or whatever it was you originally needed (this is the main idea of a wiki :)). There is also an [http://bbs.archlinux.org/viewtopic.php?t=29055 Arch forum thread] devoted to beginners.<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 />
<br />
<br />
Welcome to Arch! Now let's get started.<br />
<br />
==Obtain the latest ISO ==<br />
<br />
You can obtain Arch's latest official snapshot from [http://www.archlinux.org/download/ www.archlinux.org/download/].<br />
<br />
It is strongly recommended to choose the '''core-iso''' for several reasons:<br />
<br />
# It takes less time to download and uses lesser bandwidth. This is good for the<br />
servers too.<br />
# The full version has conflicting packages, and unless you know what you are doing, the installer will not allow you to install with the conflicts in place,<br />
# The core system will likely be easier and quicker to get up-to-date, and<br />
# This guide is geared toward the core system installation process. <br />
<br />
Once the core system is installed, you can then access the internet repositories to continue your setup as needed.<br />
<br />
==Install the core system ==<br />
<br />
As you follow these directions, you may find the [[Official Arch Linux Install Guide]] helpful as well. In addition, [http://www.archlinux.org/static/docs/arch-install-guide.html a printable copy] is available.<br />
<br />
===Boot Arch Linux CD===<br />
<br />
Insert the CD into your CD-ROM drive and boot from it. You may have to <br />
change the boot order in your computer BIOS or press a key (usually F11 or F12) <br />
during the BIOS phase.<br />
<br />
Some useful options when booting off the Arch Linux CD:<br />
* ide-legacy if you have trouble with IDE drives<br />
* noapic acpi=off pci=routeirq nosmp if your system hangs during the boot process<br />
* memtest86+ if you want to check your memory for errors<br />
* lowmem is useful for older machines. It requires only 96MB of system RAM vs 256MB for the normal install<br />
Choose "Arch Linux Installation / Rescue System". If you need to change the boot options press e for editing the boot lines.<br />
The system will now boot and present a welcome text with some explanations when ready.<br />
<br />
===Changing the keymap===<br />
Press enter at the welcome screen. If you have a non-US keyboard layout type<br />
km<br />
at the prompt and choose the appropriate keymap.<br />
<br />
''Example''(norwegian) for illustrative purposes:<br />
<br />
In console keymap screen select<br />
no-latin1<br />
In console font screen select<br />
lat0-16<br />
<br />
Choosing "default8x16.psfu.gz" for console font is a safe choice.<br />
<br />
===Start the Installation===<br />
Enter<br />
/arch/setup <br />
to start the installation. <br />
<br />
====Select an installation source====<br />
You will be prompted for an installation source. Choose CD if you are using a core ISO, or choose FTP if you are using the FTP ISO.<br />
<br />
====Prepare Hard Drive====<br />
Select the first menu entry "Prepare Hard Drive". Beware that "Auto-Prepare" may not be a safe choice because it will erase the entire hard drive.<br />
Here we will manually partition the hard drive. Choose "2. Partition Hard Drives", select the hard drive you want (/dev/sdx), and create some partitions. <br />
<br />
<br />
=====Partitions=====<br />
<br />
<br />
A partition is a section of hard disk space that will appear as a separate disk, and can be added to your Arch Linux file system. Partitions are broken up into "Primary", "Extended", and "Logical". <br />
Primary partitions can be bootable, and are limited to 4. For example, if you are using a PC with a single SATA drive, the first primary partition will be referred to as sda1. The second primary will be referred to as sda2, then sda3, and sda4. Beyond 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. Logical partitions must be contained within this extended partition. When partitioning a disk, one can see this numbering scheme by creating primary partitions sda1-3 followed by creating an extended partition, sda4, and then creating logical partition(s) within the extended partition; sda5, sda6, and so on.)<br />
<br />
<br />
Everyone has a different opinion on how best to partition the disk. What you need at the least is one primary partition which contains the root [http://en.wikipedia.org/wiki/File_system Filesystem] ( / ) and one for swap. Other candidates for separate partitions are /boot (which mainly contains the kernel) and /home (which contains the user data). It is good practice to have / and /home on separate partitions. This makes it possible to reinstall Arch Linux (or even another distro) for any reason, while keeping your data, music, pictures, and desktop environment preferences.<br />
<br />
In this example guide, we will stick with one partition for /, one partition for /home, and a swap partition.<br />
<br />
=====Swap Partition=====<br />
A swap partition is a place on your hard drive where "virtual ram" resides. If your processes need more RAM than is physically available, Linux can't fulfill the request and an error occurs. A swap partition helps in this situation by supplementing the physical RAM with virtual RAM. Linux uses the space on the hard disk to store the information that won't fit into the physical RAM any more (it's actually a bit more complex because Linux tries to put information into the swap space that isn't frequently used). Because a hard disk is very slow compared to physical RAM, this is only<br />
a makeshift. <br />
<br />
<br />
Ask two people about a swap partition and you will get four different answers. If you have plenty of RAM (more than 1024 MB) it may be possible to not use a swap partition at all. Some people suggest using twice the amount of physical RAM, while others recommend not using more than 1024 MB. I believe keeping the swap size between 512 MB and 1 GB is a good choice. Therefore, we will create a 1 GB swap space in this example.<br />
<br />
Let's start creating the '''primary partition''' that will contain the '''root''' filesystem. Choose New -> Primary and enter the size you want (something between 4 and 8 GB is a good choice for a full-featured Linux system). Put the partition at the beginning of the disk. Select the newly created partition and choose "Bootable" to make this partition bootable. Add another '''partition for your home directory'''. Choose another primary partition and set the size to a value you like. The size really depends on what your users store in their home directories, so I cannot make any suggestions. The size may vary between a few hundred megabytes for some office documents up to hundreds of gigabytes for videos and MP3s. If you <br />
want to use the whole space on your hard disc, use the remaining space minus 512 MB - 1 GB for the size. At last we<br />
create a third '''partition for swap'''. Select a size between 512 MB and 1 GB and change the type to 82 (Linux swap / Solaris).<br />
<br />
This is what your Layout should look like (size may vary depending on your decisions):<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-------------------------------------------------------------------------<br />
sda1 Boot Primary Linux (4096 - 8192)<br />
sda2 Primary Linux (> 100)<br />
sda3 Primary Linux swap / Solaris (512 - 1024)<br />
<br />
Choose Write and type yes. Beware that this operation may destroy data on your disk if you deleted partitions. Choose Quit to leave the partitioner. <br />
Choose Done to leave this menu and continue with "Set Filesystem Mountpoints".<br />
<br />
====Set File system Mountpoints====<br />
<br />
=====A few brief words about '''filesystems''' and "file systems":=====<br />
<br />
Technically, and for accuracy, a '''filesystem''' is a data '''format''', for information throughput, whereas a "file system" (notice the space) is a term referring to the layout of all files and directories on a given system. Therefore, when you are asked if you want to create a '''filesystem''', you are being asked if you want to '''format''' the particular partition... but when you are asked for mount points, you are providing where the given partition will reside in your Arch Linux "file system". Let's begin.<br />
<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). You will be asked what kind of filesystem you want.<br />
<br />
Again, ask two people which filesystem to choose and you will get five different answers. Each one has its advantages and disadvantages. Here is a very brief overview of supported filesystems.<br />
<br />
1. '''ext2''' - Old, reliable GNU/Linux filesystem. Fast, and very stable, but without journaling.<br />
<br />
2. '''ext3''' - Essentially the ext2 system, but with journaling support. ''Slightly'' slower than ext2 and other filesystems. '''Extremely''' stable and the most widely used, supported, and developed.<br />
<br />
3. '''ReiserFS''' - Hans Reiser's high-performance journaling FS uses a very interesting method of data throughput. ReiserFS is very fast, especially when dealing with many small files. ReiserFS is quite well established and stable.<br />
<br />
4. '''JFS''' - IBM's Journaling FS. JFS is quite well established, fast, and stable.<br />
<br />
5. '''XFS''' - is a fast journaling filesystem which is best suited for large files, greater than 1 GB in size. Slower with small files. Quite stable.<br />
<br />
A major difference is [http://en.wikipedia.org/wiki/Journaling_file_system journaling] (something similar to transaction logs in database environments). All filesystems except ext2 use journaling. ext3 is completely compatible with ext2, so you can mount it even with very-old rescue CDs. A safe choice for the root partition is ext3. ReiserFS, XFS, and JFS are also OK to use because GRUB (the boot manager which we will install later) can boot from them too. Create the filesystem (format the partition) by selecting yes. You will now be prompted to add any additional partitions. In our example, only sda2 is remaining. Choose a filesystem type and mount it as /home. Again, create the filesystem and choose Done. Return to main menu.<br />
<br />
===Select Packages===<br />
Now we shall select packages to install in our system. Choose CD as source and select the appropriate CD drive if you have more than one.<br />
Choose the base category (keeping all base packages selected is a safe choice). If you chose the current ISO rather than the core ISO, it is up to you if you want to select more packages, but we will show you later how to install additional, up-to-date software more easily, rather than installing and reinstalling. (Since the install CD you are using has been created, there are no doubt numerous updates available for packages contained therein, and installing additional up-to-date software via pacman will be covered below.) If you are '''sure''' you will not be needing certain packages (for instance, a filesystem type you don't need, ISDN, or PPPoE support), feel free to remove them from the base package selection. <br />
<br />
Step forward to "Install Packages".<br />
<br />
===Install Packages===<br />
This is an easy task because everything happens automatically. Get yourself a cup of coffee (if you're into coffee ;)) and wait until the installation has finished (press continue if needed). Drink quickly, because the Arch Linux base packages install in just a couple of minutes.<br />
<br />
===Configure The System===<br />
You will be asked if you want to choose hwdetect to gather some information for your configuration. This is recommended so you should choose this option. <br />
Now you will be asked if you need support for booting from USB devices, FireWire devices, PCMCIA devices, NFS shares, software RAID arrays, LVM2 volumes, and encrypted volumes. Choose yes if you need it; in our example nothing is needed. Now you will be asked which text editor you want to use; choose [http://en.wikipedia.org/wiki/Nano_%28text_editor%29 nano] if you are not familiar with [http://en.wikipedia.org/wiki/Vim_%28text_editor%29 vi/vim]. You will now get a menu with most important config files for your system. We will do only some minor tweaks at this time. If you want to look up the available options as stated in rc.conf just press Alt+F2 to get a shell, look it up, and switch back to the installer with Alt+F1. <br />
<br />
=====/etc/rc.conf=====<br />
<br />
* Change your LOCALE if needed (e.g. "de_DE.utf8") (This locale must coincide with /etc/locale.gen. '''See below'''.)<br />
* Change your TIMEZONE if needed (e.g. "Europe/Berlin")<br />
* Change your KEYMAP if needed (e.g. "de-latin1-nodeadkeys")<br />
<br />
* Specify MODULES if you know that an important module is missing (hwdetect should have filled in the most important modules)<br />
* Set your HOSTNAME<br />
* Edit your Network settings:<br />
** Don't modify the lo line<br />
** Adjust the IP address, netmask and broadcast address if you are using '''static IP''<br />
** Set eth0="dhcp" if you want to use DHCP<br />
** '''If you are using static IP''', set the gateway address to the one of your router and remove the ! in front of the ROUTES entry. (Leave this entry alone, if using DHCP.)<br />
<br />
=====About DAEMONS=====<br />
You don't 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. 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, 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 />
Use Ctrl+X to leave the editor.<br />
<br />
=====/etc/hosts=====<br />
Add the desired ''hostname'' (the one you set in rc.conf before) so that it looks like this:<br />
127.0.0.1 localhost.localdomain localhost ''yourhostname''<br />
This format, '''including the 'localhost' entries''', is required for program compatibility. Errors in this syntax will cause programs to open very slowly. <br />
For most users, simply adding the ''hostname'' to the end of the default line will work, however, some users recommend using the following syntax:<br />
127.0.0.1 ''yourhostname''.domain.org localhost.localdomain localhost ''yourhostname''<br />
If you use a static IP, add another line using the syntax: <static-ip> hostname.domainname.org hostname, <br />
e.g.:<br />
192.168.1.100 yourhostname.domain.org yourhostname<br />
<br />
===== /etc/fstab, mkinitcpio.conf and modprobe.conf=====<br />
We shouldn't need to edit mkinitcpio.conf, or modprobe.conf at this point. mkinitcpio configures the ramdisk (e.g. booting from RAID, encrypted volumes) and modprobe can be used to set some special config options for the modules).<br />
<br />
If you are planning on using the hal daemon to automate the mounting of disks, optical drives, usb drives, etc., you may wish to edit /etc/fstab by commenting out the entries for cdrom, floppy, and dvd.<br />
<br />
=====/etc/resolv.conf (for Static IP)=====<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 />
<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 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 />
Alternatively, add your preferred servers one by one, e.g.:<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.2<br />
<br />
=====/etc/locale.gen=====<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 />
('''Your locale must coincide with the one specified in /etc/rc.conf above.''')<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 a kernel.<br />
<br />
===Install Kernel===<br />
Not many choices here; choose v2.6 and continue. You may want to switch your kernel later. A fallback image will be created, keeping mkinitcpio as it is shown as a safe choice. Continue with installing a bootloader.<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]. The shown GRUB configuration (/boot/grub/menu.lst) should be sufficient. The only thing you may want to alter is the resolution of the console. Add<br />
a vga=<number> to the first kernel line. (A table of resolutions and the corresponding numbers is printed in the menu.lst.) <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 />
The "vga=773" argument will give a 1024x768 framebuffer with 256 color depth.<br />
<br />
Exit the install and type reboot.<br />
<br />
If everything goes well, 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 core system!<br />
<br />
==Configuring the core system ==<br />
Your new Arch Linux core system is now a functional GNU/Linux operating system ready for customization. From here, you may build this elegant set of tools into whatever you wish or require for your purposes.<br />
<br />
Let's begin.<br />
-----<br />
Login with your root account. We will configure pacman and update the system as root, then add a normal user. <br />
<br />
<br />
===Configuring the network (if necessary)===<br />
''This section will assist you in configuring most types of networks, if the installation configurations are not working for you.''<br />
If everything went fine, 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".'''<br />
<br />
If, after trying to ping www.google.com, you get an "unknown host" error, you may conclude that your network is not 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<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<br />
where you should see an entry for eth0. 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 />
Check to see if /etc/resolv.conf contains your DNS server and add it if it is missing. <br />
Check your network again with ping www.google.de. If everything is working now, adjust /etc/rc.conf as described in section 2.6 (static IP). 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 in section 2.6 (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 won't 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 package manager of Arch Linux. Pacman is written in C and is fast, simple, and extremely powerful. 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. 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 core system into whatsoever you please.<br />
===Configuring pacman===<br />
=====/etc/pacman.conf=====<br />
pacman will attempt to read pacman.conf each time it is invoked. This configuration file is divided into sections, or repositories. Each section defines a package repository that pacman can use when searching for packages. The exception to this is the options section, which defines global options.<br />
nano -w /etc/pacman.conf<br />
Example:<br />
[core]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/current/os/i686<br />
Include = /etc/pacman.d/core<br />
[extra]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/extra/os/i686<br />
Include = /etc/pacman.d/extra<br />
#[unstable]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/unstable/os/i686<br />
#Include = /etc/pacman.d/unstable<br />
[community]<br />
# Add your preferred servers here, they will be used first<br />
#Server = http://mirrors.easynews.com/linux/archlinux/community/os/i686<br />
Include = /etc/pacman.d/community<br />
Ensure the [community] repo is enabled (remove the # in front of the "Include = /etc/pacman.d/community" and "[community]" lines). Arch's community repository offers many useful applications. <br />
<br />
The "Server =" lines, if uncommented, will force the specified server to be searched first and foremost. Further configuration for repos are under /etc/pacman.d/<br />
<br />
====/etc/pacman.d/====<br />
Faster mirrors will dramatically improve pacman performance, and your overall Arch Linux experience.<br />
<br />
Use the '''rankmirrors''' script supplied with the latest pacman package, which will rank the mirrors automatically by their speed. For example, to rank the mirrors in the ''core'' repository, you would have to run as root:<br />
rankmirrors /etc/pacman.d/core<br />
Repeat as necessary for all desired repositories.<br />
<br />
Alternatively, you may choose to manually Edit the files in /etc/pacman.d/ (community, core, extra) and move the mirrors which are located nearest to you to the top of the list. (if you use nano, Alt+A starts selecting an area, cursor down marks the lines, Ctrl+K cuts the selected area and Ctrl+U uncuts it). Repeat this for all files in /etc/pacman.d/. You may want to return to these configuration files to experiment with various mirrors. Choose wisely.<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 />
<br />
=====''Take note as to whether a major kernel upgrade is occurring.''=====<br />
<br />
If the kernel undergoes a major upgrade, modules such as nvidia (to be installed later in the guide) will be inoperable, since the new, upgraded versions of such modules will be built against the newer kernel, and your system is currently using an older one. A reboot will be necessary.<br />
<br />
=====The beauty of the rolling release=====<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 />
<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 at least audio and wheel to your additional groups. <br />
Audio allows your user to use the audio card, while wheel allows switching to the root account with su. Other groups to be added, (separated by a comma) include:<br />
<br />
*storage - for managing storage devices<br />
<br />
*video - for video tasks and 3d acceleration<br />
<br />
*optical - for managing tasks pertaining to the optical drive(s)<br />
<br />
*floppy - for access to a floppy if necessary<br />
<br />
*lp - for managing printing tasks<br />
<br />
You may also consider adding optical to your additional groups to enable CD/DVD recording from your user account.<br />
<br />
See the [http://wiki.archlinux.org/index.php/Groups Groups] article to understand what groups you need to be a member of. <br />
You may also add your user to the desired groups like so, (as root):<br />
usermod -aG audio,video,floppy,lp,optical,network,storage,wheel USERNAME<br />
<br />
==Installing and configuring Hardware==<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. 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 />
Your audio card should already be working, but you can't hear anything because it is muted by default. <br />
<br />
Install the alsa-utils package:<br />
pacman -S alsa-utils<br />
and use alsamixer to adjust the channels: <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.) Leave alsamixer by pressing ESC. <br />
<br />
Add alsa to your DAEMONS section in /etc/rc.conf to automatically restore the mixer settings on boot-up.<br />
nano /etc/rc.conf<br />
<br />
DAEMONS=(syslog-ng network crond '''alsa''')<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; even a desktop system will benefit from it. Install cpufrequtils with<br />
pacman -S cpufrequtils<br />
and add cpufreq to your daemons in /etc/rc.conf. Edit the config file /etc/conf.d/cpufreq and change <br />
governor="conservative"<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 don't know the frequencies, run ''cpufreq-info'' after loading one of the frequency scaling modules. You can also comment out the min_freq and max_freq lines: these values are discovered 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 />
===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 acpid <br />
pacman -S acpid<br />
and add it to the daemons in /etc/rc.conf (acpid). Start it with<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 />
==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 Unix-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 />
Now we will install the base Xorg packages using pacman. This is the first step in building a GUI.<br />
<br />
As root, do:<br />
pacman -S xorg-server xorg-xkb-utils xorg-xauth xorg-server-utils xorg-xinit xf86-video-vesa xf86-input-mouse xf86-input-keyboard<br />
(The old xorg group package has been removed. If it reappears, the option to use it will be given here.)<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>). If you need a list of all '''open-source''' video drivers, do: <br />
pacman -Ss xf86-video | less<br />
If you don't know what graphics card you are using, do:<br />
lspci | grep VGA<br />
Here is a list of '''open source''' drivers, and corresponding video chipsets.<br />
*'''xf86-video-apm''' Alliance ProMotion video driver<br />
*'''xf86-video-ark''' ark video driver<br />
*'''xf86-video-ati''' ati 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<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''' 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 below''' under "Using proprietary Graphics Driver (nVIDIA, ATI)"<br />
<br />
Install the appropriate video driver for your video card/onboard video. e.g.:<br />
pacman -S xf86-video-i810<br />
(for the intel 810 chipset 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, 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, say a video projector and an on board LCD of a notebook. <br />
------<br />
By default, you will not have an Xorg config file, and with the newest versions of Xorg, you don't need one ''if'' the autodetection ''works satisfactorily'' and you don't need to turn on features such as aiglx and so on. ''Most people will still find that they need to generate a config file, however.''<br />
<br />
There are several ways of creating /etc/X11/xorg.conf:<br />
<br />
*The Xorg way to make a basic config file is to run<br />
Xorg -configure<br />
which will create /root/xorg.conf. Move the generated config file as appropriate, e.g.<br />
mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
*Another way of making an xorg.conf without getting your hands dirty is Arch Linux's own developer tpowa's tool:<br />
hwd -xa<br />
hwd (to see the various options)<br />
<br />
*The proprietary video drivers also have tools to edit xorg.conf to configure the drivers (see below). These are <br />
aticonfig<br />
and<br />
nvidia-xconfig<br />
<br />
However, you should not be a stranger to editing the config file by hand (as this is usually needed to fix various issues from time to time):<br />
<br />
nano /etc/X11/xorg.conf<br />
<br />
Edit your /etc/X11/xorg.conf to specify your video driver. e.g.:<br />
Section "Device"<br />
Driver "i810"<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, before installing a complete desktop environment, install '''xterm'''. Xterm is a very simple terminal emulator which runs in the X Server environment. Xterm will allow us to effectively test if your video driver and /etc/X11/xorg.conf are properly configured. Alternatively, you may wish to test if the X autodetection works satisfactorily, in the absence of /etc/X11/xorg.conf.<br />
pacman -S xterm<br />
Edit your /home/username/.xinitrc file, '''as normal user''', to dictate which X Server event is called upon with the 'startx' command:<br />
<br />
su yourusername<br />
<br />
nano ~/.xinitrc<br />
<br />
and add (or uncomment)<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 line in your ~/.xinitrc ) If you do not have ~/.xinitrc, simply create one with the above information.<br />
<br />
Start X Server as normal user, with:<br />
<br />
startx<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 />
Now you might want to install a graphical login manager (to avoid having to type startx everytime you start the computer) like [[GDM]] or [[KDM]], but this ''could'' wait, and advanced instructions for Xorg configuration can be found in the [[Xorg]] article.<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 Input 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 />
===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 />
<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 excellent quality, and offer superior 3D performance.<br />
<br />
Before you configure your Graphics Card you will need to know which driver fits. Arch currently has 3 different drivers 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 />
Install the appropriate nvidia driver, e.g.: <br />
pacman -S nvidia <br />
At this point, you have 3 choices as to how to proceed.<br />
<br />
*'''1.''' If you have no xorg.conf at all, or if you have an existing xorg.conf and want to '''generate a completely new one''' with the nVIDIA utility, back up the old one:<br />
mv /etc/X11/xorg.conf /etc/X11/xorg.old<br />
Then create the new /etc/X11/xorg.conf with<br />
nvidia-xconfig<br />
The nvidia-xconfig utility will usually create a very short, streamlined, easy-to-read xorg.conf<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 />
*'''2.''' '''Expert Option:''' If you have an existing xorg.conf and want to keep it, edit your xorg manually as needed, and at the very least, adjust your '''Device''' Section by changing Driver "<olddrivername>" to Driver "nvidia".<br />
Section "Device"<br />
<br />
Driver "nvidia" <br />
*'''3.''' Alternatively, you may choose to keep your existing /etc/X11/xorg.conf, and run:<br />
nvidia-xconfig<br />
which will automatically '''update''' your /etc/X11/xorg.conf for use with the nVIDIA proprietary driver.<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 />
<br />
The nvidia-xconfig utility will automatically place the glx option in your xorg. If you did not use nvidia-xconfig, then you should add this to your module section:<br />
<br />
Load "glx"<br />
Double check your /etc/X11/xorg.conf to make sure your default depth, horizontal refresh, vertical refresh, and resolutions are acceptable.<br />
<br />
Logout and login.<br />
<br />
Start X server as normal user, to test your configuration:<br />
startx<br />
<br />
Advanced instructions for nvidia configuration can be found in the [[NVIDIA]] article.<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 fglrx<br />
Use the aticonfig tool to modify the xorg.conf. Note: The proprietary driver does not support [[AIGLX]]. To use [[Compiz]] or [[Beryl]] with this driver you would need to use [[XGL]].<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 />
<br />
Advanced instructions for ATI configuration can be found in the [[ATI | ATI wiki]].<br />
<br />
==Installing and configuring a Desktop Environment ==<br />
If you ask two people what the best Desktop Environment or Window Manager is, you will get six different answers. Choose the best environment for your needs.<br />
* If you want something full-featured and similar to Windows and Mac OSX, '''KDE''' is a good choice<br />
* If you want something more minimalist, which follows the K.I.S.S. principle more closely, '''GNOME''' is a good choice<br />
* If you have an older machine or want something lighter, '''xfce4''' is a good choice, still giving you a complete environment<br />
* If you need something even lighter, '''openbox, fluxbox or fvwm2''' may be right (not to mention all other lightweight window managers like '''windowmaker and twm''').<br />
* If you need something completely different, try '''ion, wmii, or dwm'''.<br />
<br />
===Install Fonts===<br />
At this point, you may want to install some good-looking fonts, '''before''' installing a desktop environment/window manager. Dejavu and bitstream-vera are nice font sets. For websites, you may want to have the Microsoft fonts too. Install with:<br />
pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera<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 complete GNOME environment with:<br />
pacman -S gnome gnome-extra<br />
It's safe to choose all packages shown. <br />
Alternatively, you may wish to install a more basic, stripped-down GNOME:<br />
pacman -S gnome<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.<br />
<br />
You may want to install a graphical login manager. For GNOME, the '''gdm''' daemon is a good choice. Install gdm with<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 start 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 in the 'Slackware tradition', leave out gdm.)<br />
<br />
====~/.xinitrc====<br />
<br />
This configuration file controls what occurs when you type 'startx'.<br />
<br />
Edit your /home/username/.xinitrc to utilize GNOME:<br />
<br />
nano ~/.xinitrc<br />
<br />
Uncomment the 'exec gnome-session' line 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 gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
<br />
If you do not have a ~/.xinitrc file, simply create it with the above information. Remember, you must have only one uncommented line in your ~/.xinitrc. <br />
<br />
Switch to normal user:<br />
su username<br />
<br />
And test it with:<br />
startx<br />
<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 />
====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 Unix workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of UNIX-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"''': <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 />
To install KDEmod in 5 easy steps, just follow these installation instructions...<br />
Note: Before you start, please remember to read all of the install messages. They are fairly comprehensive and should solve any upcoming questions after the installation. If you cant scroll back to see all messages, just take a look into /var/log/pacman.log<br />
<br />
*1. Add the kdemod repo to your /etc/pacman.conf:<br />
nano /etc/pacman.conf<br />
Add one of these entries at the top of your server list:<br />
[kdemod]<br />
Server = http://kdemod.ath.cx/repo/current/i686<br />
for 32 bit Arch, or<br />
[kdemod]<br />
Server = http://kdemod.ath.cx/repo/current/x86_64<br />
for 64 bit Arch.<br />
<br />
*2. You must also activate the [community] repository in /etc/pacman.conf because KDEmod needs some packages from this repository. Make sure the following lines are uncommented:<br />
[community]<br />
Include = /etc/pacman.d/community<br />
<br />
<br />
*3. Update your package database with pacman -Syu. Now you can choose between two installations:<br />
<br />
pacman -S kdemod ''- installs a light base system''<br />
pacman -S kdemod-complete ''- installs the full KDE desktop''<br />
<br />
If you encounter any errors or conflicts at this step, check pacmans output, and if there are some unsolvable problems, tell us about them at the forums.<br />
*4. Install your localization. Take a look at the list of packages or simply do a pacman -Ss kdemod-kde-i18n to see which of them are already included.<br />
<br />
*5. Install all the extra apps you want. You can check out all available KDEmod packages by entering pacman -Sl kdemod<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, and are installed when you install KDE.<br />
<br />
Start hal and fam:<br />
<br />
/etc/rc.d/hal start<br />
<br />
/etc/rc.d/fam start<br />
<br />
Edit your DAEMONS section in /etc/rc.conf:<br />
nano /etc/rc.conf<br />
Add '''hal''' and '''fam''' to your DAEMONS section, to start them on bootup. If you prefer a graphical login, add '''kdm''' as well: <br />
DAEMONS=(syslog-ng network crond alsa '''hal fam kdm''')<br />
(If you prefer to log into the '''console''' and manually start X in the 'Slackware tradition', leave out kdm.)<br />
<br />
=====~/.xinitrc=====<br />
This configuration file controls what occurs when you type 'startx'.<br />
<br />
Edit your /home/username/.xinitrc to utilize KDE:<br />
nano ~/.xinitrc<br />
Uncomment the 'exec startkde' line so that it looks like this:<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 gnome-session<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
If you do not have a ~/.xinitrc file, simply create it with the above information. Remember, you must have only '''one''' uncommented line in your ~/.xinitrc.<br />
<br />
Switch to your normal user:<br />
su username<br />
Now try starting your X Server:<br />
startx<br />
<br />
Congratulations! Welcome to your KDE desktop environment on your new Arch Linux system! You may wish to continue by viewing [[Post Installation Tips]], or the rest of the information below.<br />
Advanced instructions for installing and configuring KDE can be found in the [[KDE]] article.<br />
<br />
===Xfce===<br />
====About Xfce====<br />
Xfce is a Desktop Environment, like GNOME or KDE. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit 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.<br />
<br />
====Installation====<br />
Install xfce with<br />
pacman -S xfce4 xfce4-goodies <br />
<br />
If you use kdm or gdm a new xfce session should have appeared. Alternatively, you can use<br />
startxfce4<br />
<br />
Advanced instructions for installing and configuring Xfce can be found in the [[Xfce]] 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 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 />
In the file "rc.xml" you can change various settings for Openbox (or you can use OBconf). In "menu.xml" you can change your right-click menu.<br />
<br />
To be able to log into openbox you can either go via graphical login using KDM/GDM or startx, in which case you will need to edit your ~/.xinitrc (as user) and add the following:<br />
<br />
exec openbox<br />
<br />
For KDM there is nothing left to do; openbox is listed in the sessions menu in KDM.<br />
<br />
Useful 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 and 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 />
==HAL==<br />
Since you have now installed a desktop environment 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 uses 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 />
===evdev===<br />
If you have a modern USB mouse with several thumb buttons and/or functions, you may want to install the evdev mouse driver, which will allow you to exploit the full functionality of your mouse:<br />
<br />
pacman -S xf86-input-evdev<br />
Load the driver:<br />
modprobe evdev<br />
Find your mouse name:<br />
cat /proc/bus/input/devices | egrep "Name"<br />
Using the mouse name, configure your /etc/X11/xorg.conf InputDevice section accordingly, e.g.:<br />
Section "InputDevice"<br />
Identifier "Evdev Mouse"<br />
Driver "evdev"<br />
Option "Name" "Logitech USB-PS/2 Optical Mouse"<br />
Option "CorePointer"<br />
EndSection<br />
You must have only '''one''' "CorePointer" device specified in /etc/X11/xorg.conf, so be sure to comment out any other mouse entries until you feel safe removing the old, unused entries.<br />
<br />
Also edit the ServerLayout section to include Evdev Mouse as the CorePointer, e.g.:<br />
Section "ServerLayout"<br />
Identifier "Layout0"<br />
Screen 0 "Screen0"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
InputDevice "Evdev Mouse" "CorePointer"<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 />
===Internet===<br />
<br />
=====Firefox=====<br />
The ever-popular Firefox web browser is available through pacman. 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 codecs for Quicktime and Realplayer 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 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.<br />
<br />
==Multimedia ==<br />
<br />
<br />
===Video Player===<br />
====VLC====<br />
VLC Player is a multimedia player for Linux. 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 />
====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 isn't.<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.<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 />
Other good audio players are: Banshee, Quodlibet, 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; another good choice is [http://musicpd.org/ mpd].<br />
<br />
Another excellent choice is [http://freshmeat.net/projects/cmus/ cmus].<br />
<br />
====Other X-based====<br />
(TODO) Xmms, audacious, bmpx.<br />
<br />
===Codecs and other multimedia content types===<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.<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 Unix-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 />
<br />
<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 />
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 bunch is supported. Be sure to check at a Hardware Database to be sure (e.g. [http://en.opensuse.org/HCL/TV_Cards]). 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, see [http://linux.bytesex.org/v4l2/drivers.html]) 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 bttv[http://dl.bytesex.org/releases/video4linux/] 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 object 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 />
<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 aren't used by any other installed package:<br />
pacman -Rs package<br />
<br />
To remove all of the package's dependencies now unneeded and do not make any backup of settings:<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 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 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 />
==Polishing & Further information==<br />
If after you have read this you want to do a bit of polishing, head to [[Post Installation Tips]]. For further information and support you can go to the [http://www.archlinux.org homepage], search the wiki, the [http://bbs.archlinux.org forums], the [http://wiki.archlinux.org/index.php/ArchChannel IRC channel], and the [http://www.archlinux.org/mailman/listinfo/ mailing lists].</div>
Peets