https://wiki.archlinux.org/api.php?action=feedcontributions&user=EVRAMP&feedformat=atomArchWiki - User contributions [en]2024-03-28T19:14:44ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=DAViCal&diff=162478DAViCal2011-09-26T13:38:43Z<p>EVRAMP: missing root role in postgresql</p>
<hr />
<div>[[Category:Networking (English)]]<br />
{{Stub}}<br />
<br />
==DAViCal==<br />
[http://www.davical.org/ DAViCal] is a server implementing the CalDAV and CardDAV protocol. It's solely a server, with minimal direct user interaction, instead relying on using CalDav clients, such as Apple's iCal.app, iOS (iPhone, iPad, iPod), Thunderbird with Sunbird, or Evolution.<br />
<br />
==Installation==<br />
===Installing pre-requisites===<br />
DAViCal is written in [[PHP]] and uses the [[PostgreSQL]] database as it's backend to store the calendar information. Currently it only supports PostgreSQL, but there is work to support other databases as well.<br />
<br />
It is available in the AUR: {{Package AUR|davical}}.<br />
<br />
Install [[PHP]] and [[PostgreSQL]], along with the PHP bindings for PostgreSQL, with pacman:<br />
<br />
# pacman -S postgresql php php-pgsql<br />
<br />
DAViCal is a web application, and therefore you need a web server set up as well. For this page, [[Nginx]] will be assumed, but DAViCal can run on nearly any web server. (Some may stop processing requests when they see the CalDAV HTTP headers, and therefore DAViCal will not be able to see them.)<br />
<br />
===Preparing PostgreSQL===<br />
DAViCal requires two independent accounts to be set up, one for accessing the database from the web application, which will be limited in power, and another that will be used for administrating the DAViCal related tables.<br />
<br />
In order to do so, you will need to edit the pg_hba.conf file, found in /var/lib/postgresql/data/, by default. If the data subdirectory doesn't exist, you need to start PostgreSQL so it will run through the initialization of the data files. (This is done automatically when you first start PostgreSQL via the rc.d script. You can start it and immediately stop the daemon if you want.)<br />
<br />
Add the following lines to the configuration file (pg_hba.conf):<br />
<br />
local davical davical_app trust<br />
local davical davical_dba trust<br />
<br />
<br />
Prepare database by running create-database.sh script as root:<br />
<br />
# /srv/http/davical/dba/create-database.sh<br />
<br />
If all goes fine you are done.<br />
Else if it fails, you are probably missing 'root' role in your PostgreSQL database. Create 'root' role in PostgreSQL database if it not exist: Became postgres user as described on [[PostgreSQL]] page and create 'root' role.<br />
<br />
$ createuser -s -U postgres<br />
$ Enter name of role to add: root<br />
Then run createdb as root:<br />
# createdb</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Network_configuration/Wireless&diff=118790Network configuration/Wireless2010-10-07T13:31:31Z<p>EVRAMP: /* Other Notes */ - modprobe reads only *.conf files</p>
<hr />
<div>[[Category:Communication and network (English)]]<br />
[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Wireless_Setup}}<br />
Configuring wireless is a two-part process; the first part is to identify and ensure the correct driver for your wireless device is installed, (they are available on the installation media, so make sure you install them) and to configure the interface. The second is choosing a method of managing wireless connections. This article covers both parts, and provides additional links to wireless management tools.<br />
<br />
'''About new Arch systems:''' The wireless drivers and tools are available during Arch set-up under the ''base-devel'' category. Be sure to install the proper driver for your card. Udev will usually load the appropriate module, thereby creating the wireless interface, in the initial live system of the installer, as well as the newly installed system on your hard drive. If you are configuring your wireless functionality after, and not during, Arch installation, simply ensure the required packages are installed with pacman, (driver, firmware if needed, wireless_tools, wpa_supplicant, etc.) and follow the guidelines below.<br />
<br />
== Part I: Identify Card/Install Driver ==<br />
<br />
=== Identify and Discover if Supported ===<br />
<br />
First you will need to check and see if the Linux kernel has support for your card or if a user-space driver is available for it.<br />
<br />
; Identify your card<br />
<br />
:* You can find your card type by running <br />
lspci | grep -i net<br />
from the command line.<br />
:* Or, if you have a USB device, run<br />
lsusb<br />
<br />
{{Note| The internal wifi card in some laptops can actually be usb device, so make sure you check both commands.}}<br />
<br />
; Discover if card is supported<br />
<br />
:* The [https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported Ubuntu Wiki] has a good list of wireless cards and whether or not they are supported either in the Linux kernel or by a user-space driver (includes driver name).<br />
:* [http://linux-wless.passys.nl/ Linux Wireless Support] and The Linux Questions' [http://www.linuxquestions.org/hcl/index.php?cat=10 Hardware Compatibility List] (HCL) also have a good database of kernel-friendly hardware. <br />
:* The [http://wireless.kernel.org/en/users/Devices kernel page] additionaly has a matrix of supported hardware.<br />
<br />
; If your card isn't listed<br />
<br />
:* If your wireless hardware isn't listed above, likely it is supported only under Windows (some Broadcom, 3com, etc). For these you will need to use [http://ndiswrapper.sourceforge.net/wiki/index.php/List ndiswrapper]. Ndiswrapper is a wrapper script that allows you to use some Windows drivers in Linux. See the compatibility list [http://ndiswrapper.sourceforge.net/mediawiki/index.php/List here]. You will need the {{Filename|.inf}} and {{Filename|.sys}} files from your Windows install. If you have a newer card, or more exotic card, you might want to look up your exact model name and 'linux' and search the internet before doing this step.<br />
<br />
===How it works===<br />
The default Arch kernel is ''modular'', meaning many of the drivers for machine hardware reside on the hard drive and are available as ''modules''. At boot, udev takes an inventory of your hardware. Udev will load appropriate modules (drivers) for your corresponding hardware, and the driver, in turn, will allow creation of a kernel ''interface''. <br />
<br />
The interface name for different drivers and chipsets will vary. Some examples are wlan0, eth1, and ath0.<br />
<br />
*Note: Udev is not perfect. If the proper module is not loaded by udev on boot, simply modprobe it and add the module name to etc/rc.conf on the '''MODULES=''' line. Note also that udev may occasionally load more than one driver for a device, and the resulting conflict will prevent successful configuration. Be sure to blacklist the unwanted module on the '''MODULES=''' line by prefixing it with a bang (!).<br />
<br />
===Installation===<br />
<br />
====If you have wired internet available====<br />
If you have wired ethernet available, and are simply adding wireless functionality to an existing system, and did not include wireless_tools during initial installation, use pacman to install:<br />
# pacman -S wireless_tools<br />
The drivers' corresponding package names are all highlighted in '''bold''' on this page. The packages can be installed during initial package selection on the Arch installation media and can also be installed later with pacman, e.g.:<br />
# pacman -S madwifi<br />
<br />
====If you have only wireless internet available====<br />
The '''wireless_tools''' package is now available as part of the base system and is also on the live installation media (CD/USB stick image) under the '''base-devel''' category. <br />
<br />
You cannot initialize wireless hardware without these user-space tools, so ensure they are installed from the installer media, (during package selection), especially if you have no means of networking other than wirelessly. Otherwise, you will be stuck in a recursion when you reboot your newly installed Arch system; you will need wireless_tools and drivers, but in order to get them, you will need wireless_tools and drivers.<br />
<br />
===Drivers and firmware===<br />
Methods and procedures for installing drivers for various chip-sets are covered below. In addition, certain chip-sets require the installation of corresponding ''firmware'' (also covered below).<br />
<br />
====wlan-ng (obsolete)====<br />
<br />
Packages: '''wlan-ng26-utils'''<br />
<br />
This driver supports PRISM based cards, which are hard to find now. The PRISM card is an IEEE 802.11 compliant 2.4 GHz DSSS WLAN network interface card that uses the Intersil PRISM chip-set for its radio functions and the AMD PCNet-Mobile chip (AM79C930) for its Media Access Controller (MAC) function. The supported adapters can be found from here: http://www.linux-wlan.org/docs/wlan_adapters.html.gz<br />
<br />
For wlan-ng you do not need the wireless_tools package as mentioned above. Instead you will need to learn the tools in the wlan-ng26-utils package: '''wlancfg and wlanctl-ng'''.<br />
<br />
See http://www.linux-wlan.org/<br />
<br />
====rt2860 and rt2870====<br />
In kernel since 2.6.29 and requires no extra packages. It can be configured using the standard wpa_supplicant and iwconfig tools. Unfortunately this does not go for Arch. In order to get it to work, disabling the following modules has proven to be successful:<br />
<br />
rt2800pci rt61pci rt2x00pci rt2800usb rt2800lib rt2x00usb rt2x00lib<br />
<br />
It has a wide range of options that can be configured with iwpriv. These are documented in the [http://www.ralinktech.com/ralink/Home/Support/Linux.html source tarballs] available from Ralink<br />
<br />
For rt2870sta, also see [[Rt2870]]<br />
<br />
====w322u====<br />
Treat this Tenda card as an rt2870sta. See: [[Rt2870]]<br />
<br />
====rtl8180====<br />
Realtek rtl8180 PCI/Cardbus 802.11b now fully supported in the kernel. It can be configured using the standard wpa_supplicant and iwconfig tools.<br />
<br />
====rtl8192e====<br />
<br />
The driver is part of the current kernel package. It can be configured using the standard wpa_supplicant and iwconfig tools.<br />
<br />
====rt2x00====<br />
Unified driver for Ralink chip-sets (replaces rt2500,rt61,rt73 etc). In kernel since 2.6.24, some devices require extra firmware. It can be configured using the standard wpa_supplicant and iwconfig tools.<br />
<br />
Some chips require a firmware file, which can be installed as follows, depending on the chip-set:<br />
<pre>pacman -S linux-firmware</pre><br />
<br />
See: [[Using the new rt2x00 beta driver]]<br />
<br />
====rt2500, rt61, rt73 (obsolete)====<br />
For Ralink <br />
* PCI/PCMCIA based rt2500 series chip-sets.<br />
* PCI/PCMCIA based rt61 series chip-sets<br />
* USB based rt73 series chip-sets. <br />
<br />
Drivers are now '''obsolete''' and '''unsupported'''. The rt2x00 driver family is stable and to be used instead.<br />
<br />
Support standard iwconfig tools for unencrypted and WEP connections, although it can be quite sensitive to the order of commands.<br />
The driver does support WPA (using hardware encryption), but in a non-standard way. wpa_supplicant appears to include special support for this driver, and it is also possible to negotiate a WPA connection manually using iwpriv commands.<br />
See [http://rt2400.cvs.sourceforge.net/*checkout*/rt2400/source/rt2500/Module/iwpriv_usage.txt these instructions] for details.<br />
<br />
====madwifi-ng====<br />
Package: '''madwifi''' (and optionaly '''madwifi-utils''')<br />
<br />
The module is called <tt>ath_pci</tt>.<br />
<br />
Note there are newer modules maintained by the MadWifi team:<br />
* [[#ath5k|ath5k]] will eventually phase out ath_pci. Currently a better choice for some chipsets.<br />
* [[#ath9k|ath9k]] is the new, official, superior driver for newer Atheros hardware (see below).<br />
<br />
modprobe ath_pci<br />
for the older driver, or:<br />
modprobe ath5k<br />
for the development version. Note that not all cards work with ath5k yet.<br />
<br />
If using ath_pci, you may need to blacklist ath5k by adding it to the MODULES=array in /etc/rc.conf, and subsequently prefixing it with a bang (!):<br />
MODULES=(!ath5k forcedeth snd_intel8x0 ... ...)<br />
<br />
Some users '''may need''' to use the 'countrycode' option when loading the MadWifi driver in order to use channels and transmit power settings that are legal in their country/region. In the Netherlands, for example, you would load the module like this:<br />
<br />
modprobe ath_pci countrycode=528<br />
<br />
You can verify the settings with the <tt>iwlist</tt> command. See <tt>man iwlist</tt> and the [http://madwifi-project.org/wiki/UserDocs/CountryCode CountryCode page on the MadWifi wiki]. To have this setting automatically applied during boot, add the following to <tt>/etc/modprobe.d/modprobe.conf</tt>:<br />
<br />
{{Note| The new module-init-tools 3.8 package changes the location of the configuration file: /etc/modprobe.conf is no longer read, instead /etc/modprobe.d/modprobe.conf is used. [http://www.archlinux.org/news/450/ link]}}<br />
<br />
options ath_pci countrycode=528<br />
<br />
{{Note|A user had to remove the countrycode option completely or else the ath0 device was not created (kernel 2.6.21).}}<br />
<br />
====ath5k====<br />
ath5k is the preferred driver for AR5xxx chipsets including those which are already working with madwifi-ng and for some chipsets older than AR5xxx. <br />
<br />
If ath5k is conflicting with ath_pci on your system, blacklist (and unload using rmmod or reboot) the following drivers...<br />
MODULES=(<br />
...<br />
!ath_hal !ath_pci !ath_rate_amrr !ath_rate_onoe !ath_rate_sample !wlan !wlan_acl !wlan_ccmp !wlan_scan_ap !wlan_scan_sta !wlan_tkip !wlan_wep !wlan_xauth<br />
...<br />
)<br />
<br />
then modprobe ath5k manualy or reboot. wlan0 (or wlanX) in sta mode should spawn and become ready to use.<br />
<br />
Info:<br />
* http://wireless.kernel.org/en/users/Drivers/ath5k<br />
* http://wiki.debian.org/ath5k<br />
<br />
====ath9k====<br />
ath9k is Atheros' officially supported driver for the newer 11n chip-sets. All of the chips with 11n capabilities are supported, with a maximum throughput around 180 Mbps. To see a complete list of supported hardware, check this [http://wireless.kernel.org/en/users/Drivers/ath9k page].<br />
<br />
Working modes: Station, AP and Adhoc.<br />
<br />
ath9k has been part of the kernel as of 2.6.27. Support seems acceptable as of 2.6.32 (see [http://linuxwireless.org/en/users/Drivers/ath9k/bugs#Minimal_kernel_requirements details on linuxwireless.org]). (In the unlikely event that you have stability issues that trouble you, you could try using the [http://wireless.kernel.org/en/users/Download compat-wireless] package.<br />
An [https://lists.ath9k.org/mailman/listinfo/ath9k-devel ath9k mailing list] exists for support and development related discussions.)<br />
<br />
Info:<br />
* http://wireless.kernel.org/en/users/Drivers/ath9k<br />
* http://wiki.debian.org/ath9k<br />
<br />
====ath9k_htc====<br />
ath9k_htc is Atheros' officially supported driver for 11n USB devices. Station and Ad-Hoc modes are supported. The driver has been merged in Linus' kernel tree and will be part of 2.6.35 once it is released. To use the driver now, use a recent compat-wireless packege. Firmware is needed for the functioning of the driver, for more information on this see http://wireless.kernel.org/en/users/Drivers/ath9k_htc .<br />
<br />
====ipw2100 and ipw2200====<br />
Fully supported in the kernel, but requires additional firmware. It can be configured using the standard wpa_supplicant and iwconfig tools.<br />
<br />
Depending on which of the chips you have, use either:<br />
<br />
'''ipw2100-fw'''<br />
pacman -S ipw2100-fw<br />
<br />
or:<br />
<br />
'''ipw2200-fw'''<br />
pacman -S ipw2200-fw<br />
<br />
If installing after initial Arch installation, the module may need to be reloaded for the firmware to be loaded; run the following as root:<br />
<br />
rmmod ipw2200<br />
modprobe ipw2200<br />
<br />
=====Enabling the radiotap interface=====<br />
Launch the following (as root):<br />
<br />
rmmod ipw2200<br />
modprobe ipw2200 rtap_iface=1<br />
<br />
=====Enabling the LED=====<br />
Most laptops will have a front LED to indicate when the wireless is connected (or not). Run the following (as root) to enable this feature:<br />
<br />
echo "options ipw2200 led=1" >> /etc/modprobe.d/ipw2200.conf<br />
<br />
or if using sudo:<br />
<br />
echo "options ipw2200 led=1" | sudo tee -a /etc/modprobe.d/ipw2200.conf<br />
<br />
====iwl3945, iwl4965 and iwl5000-series====<br />
'''I'''ntel's open source '''W'''iFi drivers for '''L'''inux (See [http://intellinuxwireless.org iwlwifi]) will work for both the 3945 and 4965 chipsets since kernel v2.6.24. And iwl5000-series chipsets (including 5100BG, 5100ABG, 5100AGN, 5300AGN and 5350AGN) module has been supported since '''kernel 2.6.27''', by the intree driver '''iwlagn'''.<br />
<br />
=====Installing Firmware (Microcode)=====<br />
'''Important:''' Installing these firmware packages is not required since the 2.6.34 kernel<br />
update, when the firmware files were moved to the linux-firmware package:<br />
<br />
# pacman -S linux-firmware<br />
<br />
If you need wireless connectivity to access pacman's repositories, the firmware files are also available direct from Intel. See [http://intellinuxwireless.org/?n=downloads this ] page, select and download the archive.<br />
$ wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-XXXX-ucode-XXX.XX.X.XX.tgz<br />
<br />
After downloading, you must extract and copy the *.ucode file to the firmware directory, commonly /lib/firmware<br />
# tar zxvf iwlwifi-XXXX-ucode-XXX.XX.X.XX.tgz<br />
# cd iwlwifi-XXXX-ucode-XXX.XX.X.XX/<br />
# cp iwlwifi-XXXX-X.ucode /lib/firmware/<br />
<br />
=====Loading the Driver=====<br />
If MOD_AUTOLOAD is set to yes in /etc/rc.conf (it is by default) that should be all that is required. Simply check for the presence of the drivers by running '''ifconfig -a''' from a terminal. There should be a listing for wlan0.<br />
<br />
Do this ONLY if MOD_AUTOLOAD is not set: to manually load the driver at startup, edit <tt>/etc/rc.conf</tt> as root and add '''iwl3945''' or '''iwl4965''' respectively to the MODULES array. For example:<br />
<br />
MODULES=( ... b44 mii '''iwl3945''' snd-mixer-oss ...)<br />
<br />
The drivers should now load after a reboot, and running '''ifconfig -a''' from a terminal should report '''wlan0''' as a new network interface.<br />
<br />
=====Disabling LED blink=====<br />
<br />
The default settings on the module are to have the LED blink on activity. Some people like myself find this extremely annoying. To have the LED on solid when wifi is active:<br />
<br />
# echo "options iwlcore led_mode=1" >> /etc/modprobe.d/modprobe.conf<br />
# rmmod iwlagn<br />
# rmmod iwlcore<br />
# modprobe iwlcore<br />
# modprobe iwlagn<br />
<br />
=====Other Notes=====<br />
* The windows NETw4x32 driver can be used with ndiswrapper as an alternative to the iwl3945 and ipw3945 drivers<br />
* In some cases (specifically a [[Dell Latitude D620]] with Arch 2008.06, though it could happen elsewhere) after installation you may have both iwl3945 and ipw3945 in your <tt>MODULES=()</tt> section of rc.conf. The card will not work with both modules loaded, so you will have to ! out the ipw3945 module and then reboot or remove the module manually before you can use your wireless card.<br />
* By default iwl3945 is configured to only work with networks on channels 1-11. Higher ranges are not allowed in some parts of the world (US). In the EU however channels 12 and 13 are used quite common. To make iwl3945 scan for all channels, add "options cfg80211 ieee80211_regdom=EU" to /etc/modprobe.d/modprobe.conf. With "iwlist f" you can check which channels are allowed.<br />
* If you want to enable more channels on Intel Wifi 5100 (and quite possible other cards too) you can do that with the crda package. After install, edit /etc/conf.d/wireless-regdom and uncomment the line where your country code is found. Add wireless-regdom to your DAEMONS in rc.conf and restart (which is the easiest thing to do). You should now, when writing sudo iwlist wlan0 channel, have access to more channels (depending on your location).<br />
* The wifi power management can be enabled by adding:<br />
iwconfig wlan0(change as appropriate) power on<br />
to /etc/rc.local.<br />
<br />
====ipw3945 (obsolete)====<br />
{{Note| ''The ipw3945 driver is no longer actively developed, and the iwlwifi driver (described above) should work perfectly, but may conflict with the former one. Therefore only one of them should be installed. If you choose to use the iwlwifi driver, the '''ipw3945-ucode''' package is still required.''}}<br />
# pacman -S ipw3945 ipw3945-ucode ipw3945d<br />
To initialize the driver on startup, edit <tt>/etc/rc.conf</tt> as root and add '''ipw3945''' to the MODULES array and '''ipw3945d''' to the DAEMONS array. For example:<br />
<br />
MODULES=(... mii '''ipw3945''' snd-mixer-oss ...)<br />
<br />
DAEMONS=(syslog-ng '''ipw3945d''' network ...)<br />
<br />
'''Note:''' The '''ipw3945d''' daemon ''must'' be inserted BEFORE all other network daemons in the array.<br />
<br />
====orinoco====<br />
This should be part of the kernel package and be installed already.<br />
<br />
Note: Some orinoco chipsets are Hermes I/II. You can use http://aur.archlinux.org/packages.php?ID=9637 to replace the orinoco driver and gain WPA support. See http://ubuntuforums.org/showthread.php?p=2154534#post2154534 for more information.<br />
<br />
To use the driver, blacklist orinoco_cs in rc.conf (!orinoco_cs in the MODULES array) and add wlags49_h1_cs. Example:<br />
MODULES=(!snd_pcsp !eepro100 ''!orinoco_cs'' '''wlags49_h1_cs''')<br />
<br />
====ndiswrapper====<br />
Ndiswrapper is not a real driver, but you can use it when there are no native Linux kernel drivers for your wireless chips. So it is very useful in some situations. To use it you need the *.inf file from your Windows driver (the *.sys file must also be present in the same directory). Be sure to use drivers appropriate to your architecture (i.e. 32/64bit). If you need to extract these files from an *.exe file, you can use either cabextract or wine. Ndiswrapper is included on the Arch Linux installation CD.<br />
<br />
Follow these steps to configure ndiswrapper.<br />
<pre><br />
#Install the driver to /etc/ndiswrapper/*<br />
ndiswrapper -i filename.inf<br />
#List all installed driver for ndiswrapper<br />
ndiswrapper -l<br />
#Write configuration file in /etc/modprobe.d/ndiswrapper.conf<br />
ndiswrapper -m<br />
depmod -a</pre><br />
<br />
Now the ndiswrapper install is almost finished; you just have to update /etc/rc.conf to load the module at boot (below is a sample of my config; yours might look slightly different):<br />
<br />
<pre>MODULES=(ndiswrapper snd-intel8x0 !usbserial)</pre><br />
<br />
The important part is making sure that ndiswrapper exists on this line, so just add it alongside the other modules. It would be best to test that ndiswrapper will load now, so:<br />
<br />
<pre>modprobe ndiswrapper<br />
iwconfig</pre><br />
<br />
and wlan0 should exist. Check this page if you're having problems:<br />
[http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,installation/ Ndiswrapper installation wiki].<br />
<br />
====prism54====<br />
Download the firmware driver for your appropriate card from [http://www.prism54.org/ this site]. Rename the firmware file to 'isl3890'.<br />
If nonexistent, create the directory /lib/firmware and place the file 'isl3890' in it. This should do the trick. [http://bbs.archlinux.org/viewtopic.php?t=16569&start=0&postdays=0&postorder=asc&highlight=siocsifflags+such+file++directory]<br />
<br />
If that did not work, try this:<br />
<br />
*Reload the prism module (modprobe p54usb or modprobe p54pci, depending on your hardware)<br />
alternatively remove your wifi card and then reconnect it<br />
*Use the "dmesg" command, and look at the end of the output it prints out.<br />
Look for a section looking like this: <br />
firmware: requesting '''isl3887usb_bare'''<br />
p54: LM86 firmware<br />
p54: FW rev 2.5.8.0 - Softmac protocol 3.0<br />
and try renaming the firmware file to the name corresponding to the part bolded here.<br />
<br />
====ACX100/111====<br />
packages: tiacx tiacx-firmware<br />
<br />
The driver should tell you which firmware it needs; check /var/log/messages.log or use the dmesg command.<br />
<br />
Link the appropriate firmware to '/lib/firmware':<br />
ln -s /usr/share/tiacx/acx111_2.3.1.31/tiacx111c16 /lib/firmware<br />
<br />
For another way to determine which firmware revision number to use, see the [http://acx100.sourceforge.net/wiki/Firmware "Which firmware" section] of the acx100.sourceforge wiki. For ACX100, you can follow the links provided there, to a table of card model number vs. "firmware files known to work"; you can figure out the rev. number you need, by looking at the suffix there. E.g. a dlink_dwl650+ uses "1.9.8.b", in which case you'd do this:<br />
ln -s /usr/share/tiacx/acx100_1.9.8.b/* /lib/firmware<br />
<br />
If you find that the driver is spamming your kernel log, for example because you're running Kismet with channel-hopping, you could put this in /etc/modprobe.d/modprobe.conf:<br />
options acx debug=0<br />
<br />
{{Note|The open-source acx driver does not support WPA/RSN encryption. Ndiswrapper will have to be used with the windows driver to enable the enhanced encryption. See ndiswrapper, this page, for more details.}}<br />
<br />
==== b43 ====<br />
<br />
This driver is the successor to the bcm43xx driver, and is included in kernel from 2.6.24 on.<br />
<br />
If you haven't discovered you card make yet, run:<br />
<br />
lspci | grep Network<br />
<br />
To see if your Broadcom card is supported and to identify the proper module, look [http://wireless.kernel.org/en/users/Drivers/b43#Known_PCI_devices here]. For known card models in various computers, look [http://linuxwireless.org/en/users/Drivers/b43/devices here]. Define the module to use in {{Filename|/etc/rc.conf}} and blacklist the other module to prevent possible problems or confusion.:<br />
<br />
MODULES=(... !b43legacy b43) # or<br />
MODULES=(... !b43 b43legacy)<br />
<br />
Install the corresponding Broadcom 43xx firmware package for your hardware. The packages are on the [[AUR]]:<br />
<br />
b43-firmware <br />
b43-firmware-legacy # for older cards<br />
<br />
Restart, and configure your device as normal. For more detailed information and installation manuals of b43 driver see [http://wireless.kernel.org/en/users/Drivers/b43 b43 homepage]<br />
<br />
Create a new folder to your home (wifi or any other name)<br />
<br />
sudo pacman -S b43-fwcutter<br />
export FIRMWARE_INSTALL_DIR="/lib/firmware"<br />
wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2<br />
tar xjf broadcom-wl-4.178.10.4.tar.bz2<br />
cd broadcom-wl-4.178.10.4/linux<br />
sudo b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o<br />
<br />
reboot your computer<br />
<br />
Note: those steps were taken from<br />
<br />
[http://wireless.kernel.org/en/users/Drivers/b43/ b43]<br />
<br />
====broadcom-wl====<br />
Some recent Broadcom 43xx cards not supported by bcm43xx or b43. Not just for some 43XX cards. See the [[Broadcom_BCM43XX|Broadcom 43XX wiki page]]. It is available in [http://aur.archlinux.org/packages.php?ID=19514 AUR]. These chipsets are used in most Dell laptops, among others.<br />
<br />
====rtl8187====<br />
See: [[Rtl8187_wireless|rtl8187]]<br />
<br />
====zd1211rw====<br />
[http://zd1211.wiki.sourceforge.net/ zd1211rw] is a driver for the ZyDAS ZD1211 802.11b/g USB WLAN chipset and it is included in recent versions of the Linux kernel. See [http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices] for a list of supported devices. You only need to install the firmware for the device: <pre>pacman -S zd1211-firmware</pre><br />
<br />
===Test installation===<br />
After loading your driver run<br />
iwconfig<br />
to ensure a wireless interface (wlan''x'', eth''x'', ath''x'') is created.<br />
<br />
If no such interface is visible, modprobing it might work. To start your driver, use the '''rmmod''' and '''modprobe''' commands (if rmmod fails, continue with modprobe).<br />
<br />
Example: if your driver is called "driverXXX", you would run the following commands:<br />
# rmmod driverXXX<br />
# modprobe driverXXX<br />
<br />
Bring the interface up with <code>ifconfig <interface> up</code>. e.g. assuming the interface is <code>wlan0</code>:<br />
# ifconfig wlan0 up<br />
If you get this error message: <code>SIOCSIFFLAGS: No such file or directory</code> it most certainly means your wireless chipset requires a firmware to function, which you need to install as explained above.<br />
<br />
==Part II: Wireless management==<br />
Assuming that your drivers are installed and working properly, you will need to choose a method for managing your wireless connections. The following subsections will help you decide the best way to do just that.<br />
<br />
Procedure and tools required will depend on several factors:<br />
* The desired nature of configuration management; from a completely manual command line setup procedure repeated at each boot to a software-managed, automated solution<br />
* The encryption type (or lack thereof) which protects the wireless network<br />
* The need for network profiles, if the computer will frequently change networks (such as a laptop)<br />
<br />
===Management methods===<br />
This table shows the different methods that can be used to activate and manage a wireless network connection, depending on the encryption and management types, and the various tools that are required. Although there may be other possibilities, these are the most frequently used:<br />
{| border="1"<br />
! Management || No encryption/WEP || WPA/WPA2 PSK<br />
|-<br />
| Manual, need to repeat at each computer reboot || <code>ifconfig + iwconfig + dhcpcd/ifconfig</code> || <code>ifconfig + iwconfig + wpa_supplicant + dhcpcd/ifconfig</code><br />
|-<br />
| Automatically managed, centralized without network profile support || define interface in <code>/etc/rc.conf</code> || not covered<br />
|-<br />
| Automatically managed, with network profiles support || colspan="2" align="center" | <code>Netcfg, newlan (AUR), wicd, NetworkManager, etc…</code><br />
|}<br />
<br />
More choice guide: <br />
<br />
{| border="1"<br />
! - || Netcfg+Newlan(AUR) || Wicd ||NetworkManager+network-manager-applet<br />
|-<br />
| auto connect at boot || with net-profiles daemon config in rc.conf || yes || yes<br />
|-<br />
| auto connect if dropped <br>or changed location || with net-auto-wireless daemon config in rc.conf || yes || yes<br />
|-<br />
| support 3G Modem || || || yes<br />
|-<br />
| GUI (proposes to manage and connect/disconnect<br> profiles from a systray icon. <br>Automatic wireless detection is also availabl) || with ArchAssitant || yes || yes<br />
|-<br />
| console tools || with wifi-select (AUR) || wicd-curses(part of wicd package) || cnetworkmanager (AUR)<br />
|-<br />
| connect speed || slow || || fast<br />
|}<br />
<br />
Whatever your choice, you should try to connect using the manual method first. This will help you understand the different steps that are required and debug them in case a problem arose. Another tip: if possible (e.g. if you manage your wifi access point), try connecting with no encryption, to check everything works. Then try using encryption, either WEP (simpler to configure -- but crackable in a matter of minutes, so it's hardly more secure than an unencrypted connection) or WPA.<br />
<br />
When it comes to easy of use, NetworkManager (with Gnome network-manager-applet) and wicd have good GUIs and can provide a list of available networks to connect, they prompt for passwords, which is straightforward and highly recommended. (Note Gnome network-manager-applet also works under xfce4 if you install xfce4-xfapplet-plugin first, also there are applet available for KDE.) <br />
<br />
====Manual setup====<br />
The programs provided by the package '''wireless_tools''' are the basic set of tools to set up a wireless network. Moreover, if you use WPA/WPA2 encryption, you will need the package '''wpa_supplicant'''. These powerful userspace console tools work extremely well and allow complete, manual control from the shell.<br />
<br />
These examples assume your wireless device is <code>wlan0</code>. Replace <code>wlan0</code> with the appropriate device name.<br />
{{Note| Depending on your hardware and encryption type, some of these steps may not be necessary. Some cards are known to require interface activation and/or access point scanning before being associated to an access point and being given an IP address. Some experimentation may be required. For instance, WPA/WPA2 users may directly try to activate their wireless network from step 3.}}<br />
<br />
1. ''(Optional, may be required)'' Some cards require that the kernel interface be activated before you can use the wireless_tools:<br />
# ifconfig wlan0 up<br />
<br />
2. See what access points are available:<br />
# iwlist wlan0 scan<br />
<br />
{{Note| If it displays "''Interface does not support scanning''" then you probably forgot to install the firmware. You can also try bringing up the interface first as shown in point 1.}}<br />
<br />
3. Depending on the encryption, you need to associate your wireless device with the access point to use and pass the encryption key.<br />
<br />
Assuming you want to use the ESSID named <code>MyEssid</code>:<br />
* ''No encryption''<br />
# iwconfig wlan0 essid "MyEssid"<br />
* ''WEP''<br />
using an hexadecimal key:<br />
# iwconfig wlan0 essid "MyEssid" key 1234567890<br />
using an ascii key:<br />
# iwconfig wlan0 essid "MyEssid" key s:asciikey<br />
* ''WPA/WPA2''<br />
<br />
You need to edit the <code>/etc/wpa_supplicant.conf</code> file as described in [[WPA_Supplicant]]. Then, issue this command:<br />
# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf<br />
<br />
This is assuming your device uses the <code>wext</code> driver. If this does not work, you may need to adjust these options. Check [[WPA_Supplicant]] for more information and troubleshooting.<br />
<br />
Regardless of the method used, you can check if you have associated successfully as follows:<br />
# iwconfig wlan0<br />
<br />
4. Finally, provide an IP address to the network interface. Simple examples are:<br />
# dhcpcd wlan0<br />
for DHCP, or<br />
# ifconfig wlan0 192.168.0.2<br />
# route add default gw 192.168.0.1<br />
for static IP.<br />
<br />
Note: If you get an timeout error due to a ''waiting for carrier'' problem then you might have to set channel mode to auto for the specific device.<br />
<br />
# iwconfig wlan0 channel auto <br />
<br />
{{Note| Although the manual configuration method will help troubleshoot wireless problems, you will have to retype every command each time you reboot.}}<br />
<br />
====Automatic setup====<br />
There are many solutions to choose from, but remember that all of them are mutually exclusive; you should not run two daemons simultaneously.<br />
<br />
=====Standard network daemon=====<br />
{{Note| This method and configuration examples are only valid for unencrypted or WEP-encrypted networks, which are particularly unsecure. To use WPA/WPA2, you will need to use other solutions such as such as '''[[netcfg]]''' or '''[[wicd]]'''. Also, avoid mixing these methods as they may create a conflict and prevent the wireless card from functioning.}}<br />
<br />
* The '''/etc/rc.conf''' file is sourced by the network script. Therefore, you may define and configure a simple wireless setup within /etc/rc.conf for a centralized approach with '''wlan_<interface>="<interface> essid <essid>"''' and '''INTERFACES=(<interface1> <interface2>)'''. The name of the network goes in place of '''MyEssid'''.<br />
<br />
For example:<br />
# /etc/rc.conf<br />
eth0="dhcp"<br />
wlan0="dhcp"<br />
wlan_wlan0="wlan0 essid MyEssid" # Unencrypted<br />
#wlan_wlan0="wlan0 essid MyEssid key 1234567890" # hex WEP key<br />
#wlan_wlan0="wlan0 essid MyEssid key s:asciikey" # ascii WEP key<br />
INTERFACES=(eth0 wlan0)<br />
<br />
Not all wireless cards are <code>wlan0</code>. Determine your wireless interface with ifconfig -a. <br />
Atheros-based cards, for example, are typically <code>ath0</code>, so change <code>wlan_wlan0</code> to:<br />
wlan_ath0="ath0 essid MyEssid key 12345678" <br />
Also define ath0 in the INTERFACES=line.)<br />
<br />
* Alternatively, you may define wlan_<interface> within /etc/conf.d/wireless, (which is also sourced by the network script), for a de-centralized approach:<br />
# /etc/conf.d/wireless<br />
wlan_wlan0="wlan0 essid MyEssid"<br />
<br />
These solutions are limited for a laptop which is always on the move. It would be good to have multiple [[Network Profiles]] and be able to easily switch from one to another. That is the aim of network managers, such as netcfg.<br />
<br />
=====Netcfg=====<br />
'''netcfg''' provides a ''versatile, robust and fast'' solution to networking on Arch.<br />
<br />
It uses a profile based setup and is capable of detection and connection to a wide range of network types. This is no harder than using graphical tools. Following the directions above, you can get a list of wireless networks. Then, as with graphical tools, you will need a password.<br />
<br />
See: [[Network Profiles]], and [[Network Profiles development]]<br />
<br />
=====Netcfg Easy Wireless LAN (newlan)=====<br />
newlan is a mono console application that starts a user-friendly wizard to create netcfg profiles, it supports also wired connections.<br />
<br />
Install from [[AUR]]: http://aur.archlinux.org/packages.php?ID=33649<br />
<br />
Or use the [[AUR]] helper of your choice.<br />
<br />
newlan must be run with root privileges:<br />
# sudo newlan -n mynewprofile<br />
<br />
=====Autowifi=====<br />
<br />
{{Box|Autowifi is deprecated|Autowifi has been deprecated in favor of [[netcfg]]'s [[Netcfg#net-auto-wireless|net-auto-wireless]] mode|#DF0000|#FFDFDF}}<br />
<br />
Autowifi is a daemon that configures your wireless network automatically depending on the ESSID. Once configured, no user interaction is necessary and no GUI tools are required.<br />
<br />
See: [[Autowifi]]<br />
<br />
=====Wicd=====<br />
Wicd is a network manager that can handle both wireless and wired connections. It is written in Python and Gtk with fewer dependencies than NetworkManager, making it an ideal solution for lightweight desktop users. Wicd is now available in the extra repository for both i686 and x86_64.<br />
<br />
See: [[Wicd]]<br />
<br />
=====NetworkManager=====<br />
NetworkManager is an advanced network management tool that is enabled by default in most popular GNU/Linux distributions. In addition to managing wired connections, NetworkManager provides worry-free wireless roaming with an easy-to-use GUI program for selecting your desired network. <br />
<br />
See: [[NetworkManager]]<br />
<br />
=====Wifi Radar=====<br />
WiFi Radar is Python/PyGTK2 utility for managing wireless profiles (and ''only'' wireless). It enables you to scan for available networks and create profiles for your preferred networks.<br />
<br />
See: [[Wifi Radar]]<br />
<br />
=====Wlassistant=====<br />
Wlassistant is a very intuitive and straightforward GUI application for managing your wireless connections. <br />
<br />
Install from AUR: http://aur.archlinux.org/packages.php?ID=1726<br />
<br />
Wlassistant must be run with root privileges:<br />
# sudo wlassistant<br />
One method of using wlassistant is to configure your wireless card within /etc/rc.conf, specifying the access point you use most often. On startup, your card will automatically be configured for this ESSID, but if other wireless networks are needed/available, wlassistant can then be invoked to access them. Background the network daemon in /etc/rc.conf, by prefixing it with a @, to avoid boot delays.<br />
<br />
==See also==<br />
*[[Sharing ppp connection with wlan interface]]<br />
<br />
==External links==<br />
*[http://www.gnome.org/projects/NetworkManager/ NetworkManager] -- The official website for NetworkManager<br />
*[http://wicd.sourceforge.net/ WICD] -- The official website for WICD<br />
*[https://lists.anl.gov/mailman/listinfo/wifi-radar Wifi Radar] -- Wifi Radar information page<br />
*[http://madwifi.org/wiki/UserDocs/FirstTimeHowTo The madwifi project's method of installing] -- Recommended if you are having trouble after reading this article</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Gitweb&diff=118480Gitweb2010-10-01T12:26:04Z<p>EVRAMP: /* Git daemon */ phrase changed</p>
<hr />
<div>Gitweb is the default web interface provided with git itself and is the basis for other git scripts like cgit, gitosis and others.<br />
=Installation=<br />
To install gitweb you fitst have to install git and a webserver. For this example we use apache but you can also use others:<br />
pacman -S git apache<br />
<br />
Next you need to copy the current gitweb default to your webserver location. In this example i use the default folder locations:<br />
cp -R /usr/share/gitweb/ /srv/http/<br />
<br />
That's it for the "installation". Next is the configuration.<br />
<br />
=Configuration=<br />
Add the following to the end of you /etc/httpd/conf/httpd.conf<br />
<Directory "/srv/http/gitweb"><br />
DirectoryIndex gitweb.cgi<br />
Allow from all<br />
AllowOverride all<br />
Order allow,deny<br />
Options ExecCGI<br />
<Files gitweb.cgi><br />
SetHandler cgi-script<br />
</Files><br />
SetEnv GITWEB_CONFIG /etc/conf.d/gitweb.conf<br />
</Directory><br />
<br />
You can put the configuration in it's own config file in /etc/httpd/conf/extra/ but that's up to you to decide.<br />
<br />
Next we need to make a gitweb config file. Open (or create if not existing) the file /etc/conf.d/gitweb.conf and place this in it:<br />
$projectroot = "/path/to/your/repositories";<br />
$git_temp = "/tmp";<br />
$projects_list = $projectroot;<br />
<br />
Be sure to change the "/path/to/your/repositories" to the path you want your repositories in.<br />
<br />
Now the the configuration is done, please restart apache by executing:<br />
/etc/rc.d/httpd restart<br />
<br />
=Adding repositories=<br />
To add a repository go to your repository folder. There make your repository like so:<br />
mkdir my_repository.git<br />
git init --bare my_repository.git/<br />
cd my_repository.git/<br />
touch git-daemon-export-ok<br />
echo "Short project's description" > description<br />
<br />
Next open the "config" file and add this:<br />
[gitweb]<br />
owner = Your Name<br />
<br />
This will fill in the "Owner" field in gitweb. It's not required.<br />
<br />
I assumed that you want to have this repository as "central" repository storage where you push your commits to so the git-daemon-export-ok and --bare are here to have minimal overhead and to allow the git daemon to be used on it.<br />
<br />
That is all for making a repository. You can now see it on your http://localhost/gitweb (assuming everything went fine). You don't need to restart apache for new repositories since the gitweb cgi script simply reads your repository folder.<br />
<br />
=Git daemon=<br />
This will allow url's like "git clone git://localhost/my_repository.git".<br />
Do know that this git:// protocol is read only!<br />
<br />
Edit configuration file for git-dameon /etc/conf.d/git-daemon.conf (GIT_REPO is a place with your git projects), then start git-daemon with root privileges:<br />
/etc/rc.d/git-daemon start<br />
<br />
To run the git-daemon every time at boot, just append git-deamon to DAEMONS line in /etc/rc.conf file.<br />
<br />
Clients can now simply use:<br />
git clone git://localhost/my_repository.git<br />
<br />
=Thanx to...=<br />
This howto was mainly based on the awesome howto from howtoforge: http://www.howtoforge.com/how-to-install-a-public-git-repository-on-a-debian-server I only picked the parts that are needed to get it working and left the additional things out.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Gitweb&diff=118055Gitweb2010-09-25T13:32:40Z<p>EVRAMP: /* Git daemon */ rewritten to use git-daemon rc.d script</p>
<hr />
<div>Gitweb is the default web interface provided with git itself and is the basis for other git scripts like cgit, gitosis and others.<br />
=Installation=<br />
To install gitweb you fitst have to install git and a webserver. For this example we use apache but you can also use others:<br />
pacman -S git apache<br />
<br />
Next you need to copy the current gitweb default to your webserver location. In this example i use the default folder locations:<br />
cp -R /usr/share/gitweb/ /srv/http/<br />
<br />
That's it for the "installation". Next is the configuration.<br />
<br />
=Configuration=<br />
Add the following to the end of you /etc/httpd/conf/httpd.conf<br />
<Directory "/srv/http/gitweb"><br />
DirectoryIndex gitweb.cgi<br />
Allow from all<br />
AllowOverride all<br />
Order allow,deny<br />
Options ExecCGI<br />
<Files gitweb.cgi><br />
SetHandler cgi-script<br />
</Files><br />
SetEnv GITWEB_CONFIG /etc/conf.d/gitweb.conf<br />
</Directory><br />
<br />
You can put the configuration in it's own config file in /etc/httpd/conf/extra/ but that's up to you to decide.<br />
<br />
Next we need to make a gitweb config file. Open (or create if not existing) the file /etc/conf.d/gitweb.conf and place this in it:<br />
$projectroot = "/path/to/your/repositories";<br />
$git_temp = "/tmp";<br />
$projects_list = $projectroot;<br />
<br />
Be sure to change the "/path/to/your/repositories" to the path you want your repositories in.<br />
<br />
Now the the configuration is done, please restart apache by executing:<br />
/etc/rc.d/httpd restart<br />
<br />
=Adding repositories=<br />
To add a repository go to your repository folder. There make your repository like so:<br />
mkdir my_repository.git<br />
git init --bare my_repository.git/<br />
cd my_repository.git/<br />
touch git-daemon-export-ok<br />
echo "Short project's description" > description<br />
<br />
Next open the "config" file and add this:<br />
[gitweb]<br />
owner = Your Name<br />
<br />
This will fill in the "Owner" field in gitweb. It's not required.<br />
<br />
I assumed that you want to have this repository as "central" repository storage where you push your commits to so the git-daemon-export-ok and --bare are here to have minimal overhead and to allow the git daemon to be used on it.<br />
<br />
That is all for making a repository. You can now see it on your http://localhost/gitweb (assuming everything went fine). You don't need to restart apache for new repositories since the gitweb cgi script simply reads your repository folder.<br />
<br />
=Git daemon=<br />
This will allow url's like "git clone git://localhost/my_repository.git".<br />
Do know that this git:// protocol is read only!<br />
<br />
Edit configuration file for git-dameon /etc/conf.d/git-daemon.conf (GIT_REPO is a place with your git projects), then start git-daemon with root privileges:<br />
/etc/rc.d/git-daemon start<br />
<br />
To run the git-daemon every time at boot, just append git-deamon to DAEMONS line in /etc/rc.conf file.<br />
<br />
Now you can simply use:<br />
git clone git://localhost/my_repository.git<br />
<br />
=Thanx to...=<br />
This howto was mainly based on the awesome howto from howtoforge: http://www.howtoforge.com/how-to-install-a-public-git-repository-on-a-debian-server I only picked the parts that are needed to get it working and left the additional things out.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Gitweb&diff=117802Gitweb2010-09-21T08:40:57Z<p>EVRAMP: typo fixed</p>
<hr />
<div>Gitweb is the default web interface provided with git itself and is the basis for other git scripts like cgit, gitosis and others.<br />
=Installation=<br />
To install gitweb you fitst have to install git and a webserver. For this example we use apache but you can also use others:<br />
pacman -S git apache<br />
<br />
Next you need to copy the current gitweb default to your webserver location. In this example i use the default folder locations:<br />
cp -R /usr/share/gitweb/ /srv/http/<br />
<br />
That's it for the "installation". Next is the configuration.<br />
<br />
=Configuration=<br />
Add the following to the end of you /etc/httpd/conf/httpd.conf<br />
<Directory "/srv/http/gitweb"><br />
DirectoryIndex gitweb.cgi<br />
Allow from all<br />
AllowOverride all<br />
Order allow,deny<br />
Options ExecCGI<br />
<Files gitweb.cgi><br />
SetHandler cgi-script<br />
</Files><br />
SetEnv GITWEB_CONFIG /etc/conf.d/gitweb.conf<br />
</Directory><br />
<br />
You can put the configuration in it's own config file in /etc/httpd/conf/extra/ but that's up to you to decide.<br />
<br />
Next we need to make a gitweb config file. Open (or create if not existing) the file /etc/conf.d/gitweb.conf and place this in it:<br />
$projectroot = "/path/to/your/repositories";<br />
$git_temp = "/tmp";<br />
$projects_list = $projectroot;<br />
<br />
Be sure to change the "/path/to/your/repositories" to the path you want your repositories in.<br />
<br />
Now the the configuration is done, please restart apache by executing:<br />
/etc/rc.d/httpd restart<br />
<br />
=Adding repositories=<br />
To add a repository go to your repository folder. There make your repository like so:<br />
mkdir my_repository.git<br />
git init --bare my_repository.git/<br />
cd my_repository.git/<br />
touch git-daemon-export-ok<br />
echo "Short project's description" > description<br />
<br />
Next open the "config" file and add this:<br />
[gitweb]<br />
owner = Your Name<br />
<br />
This will fill in the "Owner" field in gitweb. It's not required.<br />
<br />
I assumed that you want to have this repository as "central" repository storage where you push your commits to so the git-daemon-export-ok and --bare are here to have minimal overhead and to allow the git daemon to be used on it.<br />
<br />
That is all for making a repository. You can now see it on your http://localhost/gitweb (assuming everything went fine). You don't need to restart apache for new repositories since the gitweb cgi script simply reads your repository folder.<br />
<br />
=Git daemon=<br />
This will allow url's like "git clone git://localhost/my_repository.git".<br />
Do know that this git:// protocol is read only!<br />
Execute this line:<br />
git daemon --base-path=/path/to/your/repositories --detach --syslog --export-all<br />
<br />
Again be sure to change the "/path/to/your/repositories" to what you used.<br />
<br />
To run the command every time at boot, just add the line to your /etc/rc.local.<br />
<br />
Now you can simply use:<br />
git clone git://localhost/my_repository.git<br />
<br />
=Thanx to...=<br />
This howto was mainly based on the awesome howto from howtoforge: http://www.howtoforge.com/how-to-install-a-public-git-repository-on-a-debian-server I only picked the parts that are needed to get it working and left the additional things out.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Gitweb&diff=117801Gitweb2010-09-21T08:22:48Z<p>EVRAMP: typo fixed</p>
<hr />
<div>Gitweb is the default web interface provided with git itself and is the basis for other git scripts like cgit, gitosis and others.<br />
=Installation=<br />
To install gitweb you fitst have to install git and a webserver. For this example we use apache but you can also use others:<br />
pacman -S git apache<br />
<br />
Next you need to copy the current gitweb default to your webserver location. In this example i use the default folder locations:<br />
cp -R /usr/share/gitweb/ /srv/http/<br />
<br />
That's it for the "installation". Next is the configuration.<br />
<br />
=Configuration=<br />
Add the following to the end of you /etc/httpd/conf/httpd.conf<br />
<Directory "/src/http/gitweb"><br />
DirectoryIndex gitweb.cgi<br />
Allow from all<br />
AllowOverride all<br />
Order allow,deny<br />
Options ExecCGI<br />
<Files gitweb.cgi><br />
SetHandler cgi-script<br />
</Files><br />
SetEnv GITWEB_CONFIG /etc/conf.d/gitweb.conf<br />
</Directory><br />
<br />
You can put the configuration in it's own config file in /etc/httpd/conf/extra/ but that's up to you to decide.<br />
<br />
Next we need to make a gitweb config file. Open (or create if not existing) the file /etc/conf.d/gitweb.conf and place this in it:<br />
$projectroot = "/path/to/your/repositories";<br />
$git_temp = "/tmp";<br />
$projects_list = $projectroot;<br />
<br />
Be sure to change the "/path/to/your/repositories" to the path you want your repositories in.<br />
<br />
Now the the configuration is done, please restart apache by executing:<br />
/etc/rc.d/httpd restart<br />
<br />
=Adding repositories=<br />
To add a repository go to your repository folder. There make your repository like so:<br />
mkdir my_repository.git<br />
git init --bare my_repository.git/<br />
cd my_repository.git/<br />
touch git-daemon-export-ok<br />
echo "Short project's description" > description<br />
<br />
Next open the "config" file and add this:<br />
[gitweb]<br />
owner = Your Name<br />
<br />
This will fill in the "Owner" field in gitweb. It's not required.<br />
<br />
I assumed that you want to have this repository as "central" repository storage where you push your commits to so the git-daemon-export-ok and --bare are here to have minimal overhead and to allow the git daemon to be used on it.<br />
<br />
That is all for making a repository. You can now see it on your http://localhost/gitweb (assuming everything went fine). You don't need to restart apache for new repositories since the gitweb cgi script simply reads your repository folder.<br />
<br />
=Git daemon=<br />
This will allow url's like "git clone git://localhost/my_repository.git".<br />
Do know that this git:// protocol is read only!<br />
Execute this line:<br />
git daemon --base-path=/path/to/your/repositories --detach --syslog --export-all<br />
<br />
Again be sure to change the "/path/to/your/repositories" to what you used.<br />
<br />
To run the command every time at boot, just add the line to your /etc/rc.local.<br />
<br />
Now you can simply use:<br />
git clone git://localhost/my_repository.git<br />
<br />
=Thanx to...=<br />
This howto was mainly based on the awesome howto from howtoforge: http://www.howtoforge.com/how-to-install-a-public-git-repository-on-a-debian-server I only picked the parts that are needed to get it working and left the additional things out.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server&diff=114531Apache HTTP Server2010-08-21T11:27:41Z<p>EVRAMP: /* Advanced Options */ AllowOverride info added</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
[[Category:Web Server (English)]]<br />
{{i18n|LAMP}}<br />
[[de:LAMP Installation]]<br />
<br />
This article describes how to set up the Apache web server on an Arch Linux system. It also tells how to optionally install PHP and MySQL and integrate these in the Apache server. This combination is commonly referred to as '''LAMP''' (Linux Apache MySQL PHP).<br />
<br />
If you only need a web server for development and testing, [[Xampp]] might be a better and easier option.<br />
<br />
==Installation==<br />
# pacman -S apache php php-apache mysql<br />
<br />
This document assumes you will install Apache, PHP and MySQL together. If desired however, you may install Apache, PHP, and MySQL separately and simply refer to the relevant sections below.<br />
<br />
{{Note|New default user and group: Instead of group "nobody", apache now runs as user/group "http" by default. You might want to adjust your httpd.conf according to this change, though you may still run httpd as nobody.}}<br />
<br />
==Configuration==<br />
<br />
===Apache===<br />
For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to the UID/GID specified in {{filename|/etc/httpd/conf/httpd.conf}}<br />
<br />
* Check for the existence of the http user by looking for ''http'' in the output of the following command:<br />
# grep http /etc/passwd<br />
<br />
* Create the system user http if it does not exist already:<br />
# useradd -d /srv/http -r -s /bin/false -U http http<br />
:This creates the http user with home directory {{filename|/srv/http/}}, as a system account (-r), with a bogus shell (-s {{filename|/bin/false}}) and creates a group with the same name (-U).<br />
<br />
* Add this line to {{Filename|/etc/hosts}} (If the file does not exist, create it.):<br />
127.0.0.1 localhost.localdomain localhost<br />
:If you want a different hostname, append it to the end:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Edit {{Filename|/etc/[[rc.conf]]}}: If you set a hostname, the {{Codeline|HOSTNAME}} variable should be the same; otherwise, use {{Codeline|"localhost"}}:<br />
#<br />
# Networking<br />
#<br />
HOSTNAME="localhost"<br />
<br />
* Make sure the hostname appears in /etc/hosts or apache will fail to start. Alternatively, you can<br />
edit {{Filename|/etc/httpd/conf/httpd.conf}} and comment the following module:<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
* Run the following in a terminal to start the HTTP server:<br />
# /etc/rc.d/httpd start<br />
<br />
:Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple Apache test page. If you receive a 403 Error, comment out the following line in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
* To start Apache automatically at boot, edit {{Filename|/etc/rc.conf}} and add the '''httpd''' daemon:<br />
DAEMONS=(... '''httpd''' ...)<br />
:Or add this line to {{Filename|/etc/rc.local}}:<br />
/etc/rc.d/httpd start<br />
<br />
* If you want to use user directories (e.g., {{Filename|~/public_html}} on the machine is accessed as http://localhost/~user/) to be available on the web, uncomment the following lines in {{Filename|/etc/httpd/conf/extra/httpd-userdir.conf}}:<br />
UserDir public_html<br />
and<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
* You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{Filename|~/public_html/}} must be executable for others ("rest of the world"). This seems to be enough:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
There may be some other, more-secure ways of setting the permissions by creating a special group and allowing only Apache and you to enter there.<br />
<br />
====SSL====<br />
Create self-signed certificate (you can change key size and days of validity)<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -des3 -out server.key 2048<br />
# openssl req -new -key server.key -out server.csr<br />
# cp server.key server.key.org<br />
# openssl rsa -in server.key.org -out server.key<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
In {{Filename|/etc/httpd/conf/http.conf}} uncomment line<br />
Include conf/extra/httpd-ssl.conf<br />
Restart apache<br />
# /etc/rc.d/httpd restart<br />
<br />
====Virtual Hosts====<br />
If you want to have more than one host, get sure, you have<br />
<pre><br />
# Virtual hosts<br />
Include conf/extra/httpd-vhosts.conf<br />
</pre><br />
commented out in {{Filename|/etc/httpd/conf/httpd.conf}}.<br />
<br />
In {{Filename|/etc/httpd/conf/extra/httpd-vhosts.conf}} set your virtual hosts according the example, e.g.:<br />
<pre><br />
NameVirtualHost 127.0.0.1<br />
<br />
<VirtualHost 127.0.0.1><br />
ServerAdmin your@domainname1.dom<br />
DocumentRoot "/home/username/yoursites/domainname1.dom/www"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
<Directory /home/username/yoursites/domainname1.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost 127.0.0.1><br />
ServerAdmin your@domainname2.dom<br />
DocumentRoot "/home/username/yoursites/domainname2.dom/www"<br />
ServerName domainname2.dom<br />
ServerAlias domainname2.dom<br />
<Directory /home/username/yoursites/domainname2.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
</Directory><br />
</VirtualHost><br />
</pre><br />
<br />
Add your virtual host names to your {{Filename|/etc/hosts}} file:<br />
<pre>127.0.0.1 domainname1.dom<br />
127.0.0.1 domainname2.dom</pre><br />
<br />
Restart Apache:<br />
<pre>sudo /etc/rc.d/httpd restart</pre><br />
<br />
If you setup your virtual hosts to be in your user directory, sometimes it interferes with Apaches 'Userdir' settings. To avoid problems disable 'Userdir' by commenting it out:<br />
<pre><br />
# User home directories<br />
#Include conf/extra/httpd-userdir.conf</pre><br />
<br />
As said above, take care, you have the proper permissions:<br />
<pre>sudo chmod 0775 /home/yourusername/</pre><br />
<br />
If you have a huge amount of virtual hosts you easily want to dis- and enable, its recommended to create one config file per virtualhost and store them all in one folder, eg: {{Filename|/etc/httpd/conf/vhosts}}.<br />
<br />
First create the folder:<br />
<pre>sudo mkdir /etc/httpd/conf/vhosts</pre><br />
<br />
Then place the single config files in them:<br />
<pre>sudo nano /etc/httpd/conf/vhosts/domainname1.dom<br />
sudo nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...</pre><br />
<br />
In the last step, "Include" the single configs in your {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
<pre>#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
#Include conf/vhosts/domainname1.dom</pre><br />
<br />
You can enable and disable single virtual hosts by commenting them out or uncommenting them.<br />
<br />
====Advanced Options====<br />
These options in {{Filename|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
# Listen 80<br />
This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
If you setup Apache for local development you may want it to be only accessable from your computer. So change this line to:<br />
# Listen 127.0.0.1:80<br />
<br />
# ServerAdmin sample@sample.com<br />
This is the admin's email-address which can be found on error-pages e.g.<br />
<br />
# DocumentRoot "/srv/http"<br />
This is the directory where you should put your web pages. Change it, if you want to, but do not forget to change the<br />
<br />
<Directory "/srv/http"><br />
to whatever you changed your DocumentRoot to, or you will likely get a 403 error (lack of privileges) when you try to access the new document root. Do not forget to change the Deny from all line, otherwise you will get 403 error too.<br />
<br />
# AllowOverride None<br />
This directive in <Directory> sections causes apache to completely ignore .htaccess files. If you intend to use rewrite mod or other settings in .htaccess files, you can allow which directives declared in that file can override server configuration. For more info refer to http://httpd.apache.org/docs/current/mod/core.html#allowoverride<br />
<br />
{{Note|If you have issues with your configuration you can have apache check the configuration with:<br />
{{Codeline|apachectl configtest}}}}<br />
<br />
===PHP===<br />
* Install the "php-apache" package from extra using pacman.<br />
<br />
* Add these lines in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
:Place this in the "LoadModule" list anywhere after {{Codeline|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
:Place this at the end of the "Include" list:<br />
Include conf/extra/php5_module.conf<br />
<br />
{{Note|If you do not see {{Filename|libphp.so}} in the Apache modules directory, you may have forgotten to install the ''php-apache'' package.}}<br />
<br />
* If your {{Codeline|DocumentRoot}} is not {{Codeline|/srv/http}}, add it to {{Codeline|open_basedir}} in {{Filename|/etc/php/php.ini}} as such:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:/path/to/documentroot<br />
<br />
* Restart the Apache service to make changes take effect:<br />
# /etc/rc.d/httpd restart<br />
<br />
* A test file for PHP is included by default and can be found in {{Codeline|/srv/http}}<br />
<br />
* Remember to copy this file to <tt>~/public_html</tt> if you permitted such a configuration.<!-- Also, remember to make it executable ({{Codeline|chmod o+x test.php}}).--><br />
<br />
* Test PHP: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
* If this file does not exist, just place the following in /srv/http/test.php:<br />
<?php phpinfo(); ?><br />
<br />
:If the PHP instruction is not executed (you see : <html>...</html>), check that you have added "Includes" to the "Options" line for your root directory.<br />
<br />
====Advanced options====<br />
* Remember to add a file handler for .phtml if you need it in {{Filename|/etc/httpd/conf/extra/php5_module.conf}}:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* If you want the libGD module, install php-gd package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
{{Note|php-gd requires libpng, libjpeg, and freetype2}}<br />
;extension=gd.so<br />
to<br />
extension=gd.so<br />
<br />
:Pay attention to which extension you uncomment, as this extension is sometimes mentioned in an explanatory comment before the actual line you want to uncomment.<br />
<br />
<br />
* If you want to display errors to debug your php code, change this line of {{Filename|/etc/php/php.ini}}:<br />
display_errors=Off<br />
to<br />
display_errors=On<br />
<br />
* If you want the mcrypt module, install php-mcrypt package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
;extension=mcrypt.so<br />
:to<br />
extension=mcrypt.so<br />
{{Warning|If you get error like:<br />
<pre><br />
[XXX Debug] PHP Notice: in file /index.php on line 86: date(): It is not safe to rely on the system'XXXX<br />
[XXX Debug] PHP Notice: in file /index.php on line 86: getdate(): It is not safe to rely on the system's timezone settings.XXXX</pre><br />
}}<br />
change this line of {{Filename|/etc/php/php.ini}} <br />
;date.timezone = <br />
to <br />
date.timezone = Europe/Berlin<br />
{{note| more infos about [http://php.net/manual/en/datetime.configuration.php#ini.date.timezone Time Zone in PHP] }}<br />
restart httpd with <br />
# /etc/rc.d/httpd restart<br />
<br />
===MySQL===<br />
* Configure MySQL as described in [[MySQL]].<br />
<br />
* Edit {{Filename|/etc/php/php.ini}} (this is in {{Filename|/usr/etc}} on older systems) to uncomment the following line (''By removing {{Codeline|;}}''):<br />
;extension=mysql.so<br />
<br />
:'''Caution:'''Some users have reported typos on this line. Please make sure that it reads {{Codeline|;extension&#61;mysql.so}} and not {{Codeline|;extension&#61;msql.so}}.<br />
<br />
* You can add minor privileged users for your web scripts by editing the tables found in the <tt>mysql</tt> database. You have to restart MySQL for changes to take effect. Do not forget to check the {{Codeline|mysql/users}} table. If there is a second entry for root and your hostname is left with no password set, everybody from your host probably could gain full access. Perhaps see next section for these jobs.<br />
<br />
* Run in terminal:<br />
# /etc/rc.d/mysqld start<br />
<br />
* You may also need to restart Apache. Run in terminal:<br />
# /etc/rc.d/httpd restart<br />
<br />
* MySQL should now be running. Set the root password and test it by running:<br />
# mysqladmin -u root password ''password''<br />
# mysql -u root -p<br />
<br />
:Type ''exit'' to exit from the CLI MySQL client<br />
<br />
* Edit {{Filename|/etc/rc.conf}} (to start MySQL at boot):<br />
DAEMONS=(... '''mysqld''' ...)<br />
Or add this line to {{Filename|rc.local}}:<br />
/etc/rc.d/mysqld start<br />
<br />
* You can get the {{Codeline|"error no. 2013: Lost Connection to mysql server during query"}} message instantly whenever you try to connect to the MySQL daemon by TCP/IP. This is the TCP wrappers system (tcpd), which uses the <tt>hosts_access(5)</tt> system to allow or disallow connections.<br />
<br />
* If you are running into this problem, be sure to add this to your {{Filename|/etc/hosts.allow}} file:<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
:Note: The examples above are the simplest case, telling tcpd to allow connections from anywhere. You may wish to use a more-appropriate choice of permissible sources instead of 'ALL'. Just make sure that localhost and the IP address (numeric or DNS) of the interface by which you connect are specified.<br />
<br />
* For example, a line like the following would overcome the "2013: Lost Connection" errors:<br />
# mysqld : 127.0.0.1 : ALLOW<br />
<br />
* You might also need to edit {{Filename|/etc/mysql/my.cnf}} and comment out the {{Codeline|skip-networking}} line as such:<br />
skip-networking<br />
to<br />
#skip-networking<br />
<br />
{{Tip|You may want to install [[PhpMyAdmin|phpmyadmin]] to work with your databases.}}<br />
<br />
==See also==<br />
* [[MySQL]] - Article for MySQL<br />
* [[Xampp]] - Self contained web-server that supports PHP, Perl, and MySQL<br />
<br />
==External links==<br />
* http://www.apache.org/<br />
* http://www.php.net/<br />
* http://www.mysql.com/</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server&diff=113311Apache HTTP Server2010-08-04T12:21:08Z<p>EVRAMP: removed duplicate</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
[[Category:Web Server (English)]]<br />
{{i18n|LAMP}}<br />
[[de:LAMP Installation]]<br />
<br />
This article describes how to set up the Apache web server on an Arch Linux system. It also tells how to optionally install PHP and MySQL and integrate these in the Apache server. This combination is commonly referred to as '''LAMP''' (Linux Apache MySQL PHP).<br />
<br />
If you only need a web server for development and testing, [[Xampp]] might be a better and easier option.<br />
<br />
==Installation==<br />
# pacman -S apache php php-apache mysql<br />
<br />
This document assumes you will install Apache, PHP and MySQL together. If desired however, you may install Apache, PHP, and MySQL separately and simply refer to the relevant sections below.<br />
<br />
{{Note|New default user and group: Instead of group "nobody", apache now runs as user/group "http" by default. You might want to adjust your httpd.conf according to this change, though you may still run httpd as nobody.}}<br />
<br />
==Configuration==<br />
<br />
===Apache===<br />
For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to the UID/GID specified in {{filename|/etc/httpd/conf/httpd.conf}}<br />
<br />
* Check for the existence of the http user by looking for ''http'' in the output of the following command:<br />
# grep http /etc/passwd<br />
<br />
* Create the system user http if it does not exist already:<br />
# useradd -d /srv/http -r -s /bin/false -U http http<br />
:This creates the http user with home directory {{filename|/srv/http/}}, as a system account (-r), with a bogus shell (-s {{filename|/bin/false}}) and creates a group with the same name (-U).<br />
<br />
* Add this line to {{Filename|/etc/hosts}} (If the file does not exist, create it.):<br />
127.0.0.1 localhost.localdomain localhost<br />
:If you want a different hostname, append it to the end:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Edit {{Filename|/etc/[[rc.conf]]}}: If you set a hostname, the {{Codeline|HOSTNAME}} variable should be the same; otherwise, use {{Codeline|"localhost"}}:<br />
#<br />
# Networking<br />
#<br />
HOSTNAME="localhost"<br />
<br />
* Make sure the hostname appears in /etc/hosts or apache will fail to start. Alternatively, you can<br />
edit {{Filename|/etc/httpd/conf/httpd.conf}} and comment the following module:<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
* Run the following in a terminal to start the HTTP server:<br />
# /etc/rc.d/httpd start<br />
<br />
:Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple Apache test page. If you receive a 403 Error, comment out the following line in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
* To start Apache automatically at boot, edit {{Filename|/etc/rc.conf}} and add the '''httpd''' daemon:<br />
DAEMONS=(... '''httpd''' ...)<br />
:Or add this line to {{Filename|/etc/rc.local}}:<br />
/etc/rc.d/httpd start<br />
<br />
* If you want to use user directories (e.g., {{Filename|~/public_html}} on the machine is accessed as http://localhost/~user/) to be available on the web, uncomment the following lines in {{Filename|/etc/httpd/conf/extra/httpd-userdir.conf}}:<br />
UserDir public_html<br />
and<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
* You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{Filename|~/public_html/}} must be executable for others ("rest of the world"). This seems to be enough:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
There may be some other, more-secure ways of setting the permissions by creating a special group and allowing only Apache and you to enter there.<br />
<br />
====Advanced Options====<br />
These options in {{Filename|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
# Listen 80<br />
This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
# ServerAdmin sample@sample.com<br />
This is the admin's email-address which can be found on error-pages e.g.<br />
<br />
# DocumentRoot "/srv/http"<br />
This is the directory where you should put your web pages. Change it, if you want to, but do not forget to change the<br />
<br />
<Directory "/srv/http"><br />
to whatever you changed your DocumentRoot to, or you will likely get a 403 error (lack of privileges) when you try to access the new document root. Do not forget to change the Deny from all line, otherwise you will get 403 error too.<br />
<br />
{{Note|If you have issues with your configuration you can have apache check the configuration with:<br />
{{Codeline|apachectl configtest}}}}<br />
<br />
===PHP===<br />
* Install the "php-apache" package from extra using pacman.<br />
<br />
* Add these lines in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
:Place this in the "LoadModule" list anywhere after {{Codeline|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
:Place this at the end of the "Include" list:<br />
Include conf/extra/php5_module.conf<br />
<br />
{{Note|If you do not see {{Filename|libphp.so}} in the Apache modules directory, you may have forgotten to install the ''php-apache'' package.}}<br />
<br />
* If your {{Codeline|DocumentRoot}} is not {{Codeline|/srv/http}}, add it to {{Codeline|open_basedir}} in {{Filename|/etc/php/php.ini}} as such:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:/path/to/documentroot<br />
<br />
* Restart the Apache service to make changes take effect:<br />
# /etc/rc.d/httpd restart<br />
<br />
* A test file for PHP is included by default and can be found in {{Codeline|/srv/http}}<br />
<br />
* Remember to copy this file to <tt>~/public_html</tt> if you permitted such a configuration.<!-- Also, remember to make it executable ({{Codeline|chmod o+x test.php}}).--><br />
<br />
* Test PHP: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
* If this file does not exist, just place the following in /srv/http/test.php:<br />
<?php phpinfo(); ?><br />
<br />
:If the PHP instruction is not executed (you see : <html>...</html>), check that you have added "Includes" to the "Options" line for your root directory.<br />
<br />
====Advanced options====<br />
* Remember to add a file handler for .phtml if you need it in {{Filename|/etc/httpd/conf/extra/php5_module.conf}}:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* If you want the libGD module, install php-gd package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
{{Note|php-gd requires libpng, libjpeg, and freetype2}}<br />
;extension=gd.so<br />
to<br />
extension=gd.so<br />
<br />
:Pay attention to which extension you uncomment, as this extension is sometimes mentioned in an explanatory comment before the actual line you want to uncomment.<br />
<br />
<br />
* If you want to display errors to debug your php code, change this line of {{Filename|/etc/php/php.ini}}:<br />
display_errors=Off<br />
to<br />
display_errors=On<br />
<br />
* If you want the mcrypt module, install php-mcrypt package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
;extension=mcrypt.so<br />
:to<br />
extension=mcrypt.so<br />
{{Warning|If you get error like:<br />
<pre><br />
[XXX Debug] PHP Notice: in file /index.php on line 86: date(): It is not safe to rely on the system'XXXX<br />
[XXX Debug] PHP Notice: in file /index.php on line 86: getdate(): It is not safe to rely on the system's timezone settings.XXXX</pre><br />
}}<br />
change this line of {{Filename|/etc/php/php.ini}} <br />
;date.timezone = <br />
to <br />
date.timezone = Europe/Berlin<br />
{{note| more infos about [http://php.net/manual/en/datetime.configuration.php#ini.date.timezone Time Zone in PHP] }}<br />
restart httpd with <br />
# /etc/rc.d/httpd restart<br />
<br />
===MySQL===<br />
* Configure MySQL as described in [[MySQL]].<br />
<br />
* Edit {{Filename|/etc/php/php.ini}} (this is in {{Filename|/usr/etc}} on older systems) to uncomment the following line (''By removing {{Codeline|;}}''):<br />
;extension=mysql.so<br />
<br />
:'''Caution:'''Some users have reported typos on this line. Please make sure that it reads {{Codeline|;extension&#61;mysql.so}} and not {{Codeline|;extension&#61;msql.so}}.<br />
<br />
* You can add minor privileged users for your web scripts by editing the tables found in the <tt>mysql</tt> database. You have to restart MySQL for changes to take effect. Do not forget to check the {{Codeline|mysql/users}} table. If there is a second entry for root and your hostname is left with no password set, everybody from your host probably could gain full access. Perhaps see next section for these jobs.<br />
<br />
* Run in terminal:<br />
# /etc/rc.d/mysqld start<br />
<br />
* You may also need to restart Apache. Run in terminal:<br />
# /etc/rc.d/httpd restart<br />
<br />
* MySQL should now be running. Set the root password and test it by running:<br />
# mysqladmin -u root password ''password''<br />
# mysql -u root -p<br />
<br />
:Type ''exit'' to exit from the CLI MySQL client<br />
<br />
* Edit {{Filename|/etc/rc.conf}} (to start MySQL at boot):<br />
DAEMONS=(... '''mysqld''' ...)<br />
Or add this line to {{Filename|rc.local}}:<br />
/etc/rc.d/mysqld start<br />
<br />
* You can get the {{Codeline|"error no. 2013: Lost Connection to mysql server during query"}} message instantly whenever you try to connect to the MySQL daemon by TCP/IP. This is the TCP wrappers system (tcpd), which uses the <tt>hosts_access(5)</tt> system to allow or disallow connections.<br />
<br />
* If you are running into this problem, be sure to add this to your {{Filename|/etc/hosts.allow}} file:<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
:Note: The examples above are the simplest case, telling tcpd to allow connections from anywhere. You may wish to use a more-appropriate choice of permissible sources instead of 'ALL'. Just make sure that localhost and the IP address (numeric or DNS) of the interface by which you connect are specified.<br />
<br />
* For example, a line like the following would overcome the "2013: Lost Connection" errors:<br />
# mysqld : 127.0.0.1 : ALLOW<br />
<br />
* You might also need to edit {{Filename|/etc/mysql/my.cnf}} and comment out the {{Codeline|skip-networking}} line as such:<br />
skip-networking<br />
to<br />
#skip-networking<br />
<br />
{{Tip|You may want to install [[PhpMyAdmin|phpmyadmin]] to work with your databases.}}<br />
<br />
==See also==<br />
* [[MySQL]] - Article for MySQL<br />
* [[Xampp]] - Self contained web-server that supports PHP, Perl, and MySQL<br />
<br />
==External links==<br />
* http://www.apache.org/<br />
* http://www.php.net/<br />
* http://www.mysql.com/</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server&diff=113163Apache HTTP Server2010-08-02T09:58:19Z<p>EVRAMP: apachectl configtest scans whole configuration of the server</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
[[Category:Web Server (English)]]<br />
{{i18n|LAMP}}<br />
[[de:LAMP Installation]]<br />
<br />
This article describes how to set up the Apache web server on an Arch Linux system. It also tells how to optionally install PHP and MySQL and integrate these in the Apache server. This combination is commonly referred to as '''LAMP''' (Linux Apache MySQL PHP).<br />
<br />
If you only need a web server for development and testing, [[Xampp]] might be a better and easier option.<br />
<br />
==Installation==<br />
# pacman -S apache php php-apache mysql<br />
<br />
This document assumes you will install Apache, PHP and MySQL together. If desired however, you may install Apache, PHP, and MySQL separately and simply refer to the relevant sections below.<br />
<br />
{{Note|New default user and group: Instead of group "nobody", apache now runs as user/group "http" by default. You might want to adjust your httpd.conf according to this change, though you may still run httpd as nobody.}}<br />
<br />
==Configuration==<br />
<br />
===Apache===<br />
For security reasons, as soon as Apache is started by the root user (directly or via startup scripts) it switches to the UID/GID specified in {{filename|/etc/httpd/conf/httpd.conf}}<br />
<br />
* Check for the existence of the http user by looking for ''http'' in the output of the following command:<br />
# cat /etc/passwd | grep http<br />
<br />
* Create the system user http if it does not exist already:<br />
# useradd -d /srv/http -r -s /bin/false -U http http<br />
:This creates the http user with home directory {{filename|/srv/http/}}, as a system account (-r), with a bogus shell (-s {{filename|/bin/false}}) and creates a group with the same name (-U).<br />
<br />
* Add this line to {{Filename|/etc/hosts}} (If the file does not exist, create it.):<br />
127.0.0.1 localhost.localdomain localhost<br />
:If you want a different hostname, append it to the end:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Edit {{Filename|/etc/[[rc.conf]]}}: If you set a hostname, the {{Codeline|HOSTNAME}} variable should be the same; otherwise, use {{Codeline|"localhost"}}:<br />
#<br />
# Networking<br />
#<br />
HOSTNAME="localhost"<br />
<br />
* Make sure the hostname appears in /etc/hosts or apache will fail to start. Alternatively, you can<br />
edit {{Filename|/etc/httpd/conf/httpd.conf}} and comment the following module:<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
* Run the following in a terminal to start the HTTP server:<br />
# /etc/rc.d/httpd start<br />
<br />
:Apache should now be running. Test by visiting http://localhost/ in a web browser. It should display a simple Apache test page. If you receive a 403 Error, comment out the following line in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
* To start Apache automatically at boot, edit {{Filename|/etc/rc.conf}} and add the '''httpd''' daemon:<br />
DAEMONS=(... '''httpd''' ...)<br />
:Or add this line to {{Filename|/etc/rc.local}}:<br />
/etc/rc.d/httpd start<br />
<br />
* If you want to use user directories (e.g., {{Filename|~/public_html}} on the machine is accessed as http://localhost/~user/) to be available on the web, uncomment the following lines in {{Filename|/etc/httpd/conf/extra/httpd-userdir.conf}}:<br />
UserDir public_html<br />
and<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
* You must make sure that your home directory permissions are set properly so that Apache can get there. Your home directory and {{Filename|~/public_html/}} must be executable for others ("rest of the world"). This seems to be enough:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
There may be some other, more-secure ways of setting the permissions by creating a special group and allowing only Apache and you to enter there.<br />
<br />
====Advanced Options====<br />
These options in {{Filename|/etc/httpd/conf/httpd.conf}} might be interesting for you:<br />
<br />
# Listen 80<br />
This is the port Apache will listen to. For Internet-access with router, you have to forward the port.<br />
<br />
# ServerAdmin sample@sample.com<br />
This is the admin's email-address which can be found on error-pages e.g.<br />
<br />
# DocumentRoot "/srv/http"<br />
This is the directory where you should put your web pages. Change it, if you want to, but do not forget to change the<br />
<br />
<Directory "/srv/http"><br />
to whatever you changed your DocumentRoot to, or you will likely get a 403 error (lack of privileges) when you try to access the new document root. Do not forget to change the Deny from all line, otherwise you will get 403 error too.<br />
<br />
{{Note|If you have issues with your configuration you can have apache check the configuration with:<br />
{{Codeline|apachectl configtest}}}}<br />
<br />
===PHP===<br />
* Install the "php-apache" package from extra using pacman.<br />
<br />
* Add these lines in {{Filename|/etc/httpd/conf/httpd.conf}}:<br />
:Place this in the "LoadModule" list anywhere after {{Codeline|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
:Place this at the end of the "Include" list:<br />
Include conf/extra/php5_module.conf<br />
<br />
{{Note|If you do not see {{Filename|libphp.so}} in the Apache modules directory, you may have forgotten to install the ''php-apache'' package.}}<br />
<br />
* If your {{Codeline|DocumentRoot}} is not {{Codeline|/srv/http}}, add it to {{Codeline|open_basedir}} in {{Filename|/etc/php/php.ini}} as such:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:/path/to/documentroot<br />
<br />
* Restart the Apache service to make changes take effect:<br />
# /etc/rc.d/httpd restart<br />
<br />
* A test file for PHP is included by default and can be found in {{Codeline|/srv/http}}<br />
<br />
* Remember to copy this file to <tt>~/public_html</tt> if you permitted such a configuration.<!-- Also, remember to make it executable ({{Codeline|chmod o+x test.php}}).--><br />
<br />
* Test PHP: http://localhost/test.php or http://localhost/~myname/test.php<br />
<br />
* If this file does not exist, just place the following in /srv/http/test.php:<br />
<?php phpinfo(); ?><br />
<br />
:If the PHP instruction is not executed (you see : <html>...</html>), check that you have added "Includes" to the "Options" line for your root directory.<br />
<br />
====Advanced options====<br />
* Remember to add a file handler for .phtml if you need it in {{Filename|/etc/httpd/conf/extra/php5_module.conf}}:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* If you want the libGD module, install php-gd package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
{{Note|php-gd requires libpng, libjpeg, and freetype2}}<br />
;extension=gd.so<br />
to<br />
extension=gd.so<br />
<br />
:Pay attention to which extension you uncomment, as this extension is sometimes mentioned in an explanatory comment before the actual line you want to uncomment.<br />
<br />
<br />
* If you want to display errors to debug your php code, change this line of {{Filename|/etc/php/php.ini}}:<br />
display_errors=Off<br />
to<br />
display_errors=On<br />
<br />
* If you want the mcrypt module, install php-mcrypt package and uncomment in {{Filename|/etc/php/php.ini}}:<br />
;extension=mcrypt.so<br />
:to<br />
extension=mcrypt.so<br />
{{Warning|If you get error like:<br />
<pre><br />
[XXX Debug] PHP Notice: in file /index.php on line 86: date(): It is not safe to rely on the system'XXXX<br />
[XXX Debug] PHP Notice: in file /index.php on line 86: getdate(): It is not safe to rely on the system's timezone settings.XXXX</pre><br />
}}<br />
change this line of {{Filename|/etc/php/php.ini}} <br />
;date.timezone = <br />
to <br />
date.timezone = Europe/Berlin<br />
{{note| more infos about [http://php.net/manual/en/datetime.configuration.php#ini.date.timezone Time Zone in PHP] }}<br />
restart httpd with <br />
# /etc/rc.d/httpd restart<br />
<br />
===MySQL===<br />
* Configure MySQL as described in [[MySQL]].<br />
<br />
* Edit {{Filename|/etc/php/php.ini}} (this is in {{Filename|/usr/etc}} on older systems) to uncomment the following line (''By removing {{Codeline|;}}''):<br />
;extension=mysql.so<br />
<br />
:'''Caution:'''Some users have reported typos on this line. Please make sure that it reads {{Codeline|;extension&#61;mysql.so}} and not {{Codeline|;extension&#61;msql.so}}.<br />
<br />
* You can add minor privileged users for your web scripts by editing the tables found in the <tt>mysql</tt> database. You have to restart MySQL for changes to take effect. Do not forget to check the {{Codeline|mysql/users}} table. If there is a second entry for root and your hostname is left with no password set, everybody from your host probably could gain full access. Perhaps see next section for these jobs.<br />
<br />
* Run in terminal:<br />
# /etc/rc.d/mysqld start<br />
<br />
* You may also need to restart Apache. Run in terminal:<br />
# /etc/rc.d/httpd restart<br />
<br />
* MySQL should now be running. Set the root password and test it by running:<br />
# mysqladmin -u root password ''password''<br />
# mysql -u root -p<br />
<br />
:Type ''exit'' to exit from the CLI MySQL client<br />
<br />
* Edit {{Filename|/etc/rc.conf}} (to start MySQL at boot):<br />
DAEMONS=(... '''mysqld''' ...)<br />
Or add this line to {{Filename|rc.local}}:<br />
/etc/rc.d/mysqld start<br />
<br />
* You can get the {{Codeline|"error no. 2013: Lost Connection to mysql server during query"}} message instantly whenever you try to connect to the MySQL daemon by TCP/IP. This is the TCP wrappers system (tcpd), which uses the <tt>hosts_access(5)</tt> system to allow or disallow connections.<br />
<br />
* If you are running into this problem, be sure to add this to your {{Filename|/etc/hosts.allow}} file:<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
* For example, a line like the following would overcome the "2013: Lost Connection" errors:<br />
# mysqld : 127.0.0.1 : ALLOW<br />
<br />
:Note: The examples above are the simplest case, telling tcpd to allow connections from anywhere. You may wish to use a more-appropriate choice of permissible sources instead of 'ALL'. Just make sure that localhost and the IP address (numeric or DNS) of the interface by which you connect are specified.<br />
<br />
* For example, a line like the following would overcome the "2013: Lost Connection" errors:<br />
# mysqld : 127.0.0.1 : ALLOW<br />
<br />
* You might also need to edit {{Filename|/etc/mysql/my.cnf}} and comment out the {{Codeline|skip-networking}} line as such:<br />
skip-networking<br />
to<br />
#skip-networking<br />
<br />
{{Tip|You may want to install [[PhpMyAdmin|phpmyadmin]] to work with your databases.}}<br />
<br />
==See also==<br />
* [[MySQL]] - Article for MySQL<br />
* [[Xampp]] - Self contained web-server that supports PHP, Perl, and MySQL<br />
<br />
==External links==<br />
* http://www.apache.org/<br />
* http://www.php.net/<br />
* http://www.mysql.com/</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Creating_packages&diff=112283Creating packages2010-07-20T09:18:24Z<p>EVRAMP: no need to use || return 1 since pacman 3.4.0</p>
<hr />
<div>[[Category:About Arch (English)]]<br />
[[Category:Package development (English)]]<br />
[[Category:Guidelines (English)]]<br />
{{i18n|Creating Packages}}<br />
{{Article summary start}}<br />
{{Article summary text|A detailed description of the package building process. Covers package creation, testing, and submission to the [[AUR]].}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Arch Build System}}<br />
{{Article summary wiki|Arch User Repository}}<br />
{{Article summary wiki|Arch Packaging Standards}}<br />
{{Article summary wiki|makepkg}}<br />
{{Article summary wiki|pacman}}<br />
{{Article summary wiki|PKGBUILD}}<br />
{{Article summary wiki|PKGBUILD Tricks}}<br />
{{Article summary wiki|VCS PKGBUILD Guidelines}}<br />
{{Article summary end}}<br />
<br />
This article aims to assist users creating their own packages using the Arch Linux "ports-like" build system. It covers creation of a [[PKGBUILD]] &ndash; a package build description file sourced by {{Codeline|makepkg}} to create a binary package from source. If already in possession of a {{Filename|PKGBUILD}}, see [[makepkg]].<br />
<br />
== Overview == <br />
<br />
Packages in Arch Linux are built using the [[makepkg]] utility and the information stored in a [[PKGBUILD]] file. When {{Codeline|makepkg}} is run, it searches for a {{Filename|PKGBUILD}} in the current directory and follows the instructions therein to either compile or otherwise acquire the required files to be packaged within a package file ({{Filename|pkgname.pkg.tar.xz}}). The resulting package contains binary files and installation instructions; readily installed with [[pacman]].<br />
<br />
An Arch package is no more than a tar archive compressed using xz, or 'tarball', which contains:<br />
<br />
* The binary files to install<br />
<br />
* {{Filename|.PKGINFO}}: contains all the metadata needed by pacman to deal with packages, dependencies, etc.<br />
<br />
* {{Filename|.INSTALL}}: an optional file used to execute commands after the install/upgrade/remove stage. (This file is present only if specified in the {{Filename|PKGBUILD}}.)<br />
<br />
* {{Filename|.Changelog}}: an optional file kept by the package maintainer documenting the changes of the package. (It is not present in all packages.)<br />
<br />
== Preparation ==<br />
<br />
===Prerequisite software===<br />
<br />
First ensure that the necessary tools are installed. The package group "base-devel" should be sufficient; it includes ''make'' and additional tools needed for compiling from source.<br />
<br />
# pacman -S base-devel<br />
<br />
One of the key tools for building packages is [[makepkg]] (provided by {{Package Official|pacman}}) which does the following:<br />
#Checks if package dependencies are installed.<br />
#Downloads the source file(s) from the specified server(s).<br />
#Unpacks the source file(s).<br />
#Compiles the software and installs it under a fakeroot environment.<br />
#Strips symbols from binaries and libraries.<br />
#Generates the package meta file which is included with each package.<br />
#Compress the fakeroot environment into a package file.<br />
#Stores the package file in the configured destination directory, which is the present working directory by default.<br />
<br />
=== Download and test the installation ===<br />
<br />
Download the source tarball of the software you want to package, extract it, and follow the author's steps to install the program. Make a note of all commands and/or steps needed to compile and install it. You will be repeating those same commands in the ''PKGBUILD'' file.<br />
<br />
Most software authors stick to the 3-step build cycle:<br />
<br />
./configure<br />
make<br />
make install<br />
<br />
This is a good time to make sure the program is working correctly.<br />
<br />
== Creating a PKGBUILD ==<br />
<br />
When you run {{Codeline|makepkg}}, it will look for a {{Filename|PKGBUILD}} file in the present working directory. If a {{Filename|PKGBUILD}} file is found it will download the software's source code and compile it according to the instructions specified in the {{Filename|PKGBUILD}} file. The instructions must be fully interpretable by the [[Wikipedia:Bash|Bash]] shell. After successful completion, the resulting binaries and metadata of the package, i.e. package version and dependencies, are packed in a {{Filename|pkgname.pkg.tar.xz}} package file that can be installed with {{Codeline|pacman -U [package file]}}.<br />
<br />
To begin with a new package, you should first create an empty working directory, (preferably {{Filename|~/abs/'''pkgname'''}}), change into that directory, and create a {{Filename|PKGBUILD}} file. You can either copy the prototype PKGBUILD {{Filename|/usr/share/pacman/PKGBUILD.proto}} to your working directory or copy a {{Filename|PKGBUILD}} from a similar package. The latter may be useful if you only need to change a few options.<br />
<br />
=== Defining PKGBUILD variables ===<br />
<br />
The {{Filename|PKGBUILD}} file contains metadata about a package. It is a plain text file. The following is a prototype {{Filename|PKGBUILD}}. It can be found in {{Filename|/usr/share/pacman}} along with other templates.<br />
<br />
{{File<br />
|name=/usr/share/pacman/PKGBUILD.proto<br />
|content=<nowiki><br />
# This is an example PKGBUILD file. Use this as a start to creating your own,<br />
# and remove these comments. For more information, see 'man PKGBUILD'.<br />
# NOTE: Please fill out the license field for your package! If it is unknown,<br />
# then please put 'unknown'.<br />
<br />
# Maintainer: Your Name <youremail@domain.com><br />
pkgname=NAME<br />
pkgver=VERSION<br />
pkgrel=1<br />
pkgdesc=""<br />
arch=()<br />
url=""<br />
license=('GPL')<br />
groups=()<br />
depends=()<br />
makedepends=()<br />
optdepends=()<br />
provides=()<br />
conflicts=()<br />
replaces=()<br />
backup=()<br />
options=()<br />
install=<br />
changelog=<br />
source=($pkgname-$pkgver.tar.gz)<br />
noextract=()<br />
md5sums=() #generate with 'makepkg -g'<br />
<br />
build() {<br />
cd "$srcdir/$pkgname-$pkgver"<br />
<br />
./configure --prefix=/usr<br />
make<br />
}<br />
<br />
package() {<br />
cd "$srcdir/$pkgname-$pkgver"<br />
<br />
make DESTDIR="$pkgdir/" install<br />
}<br />
</nowiki>}}<br />
<br />
An explanation of possible {{Filename|PKGBUILD}} variables can be found in the [[PKGBUILD]] article.<br />
<br />
=== The {{Codeline|build()}} function ===<br />
<br />
Now you need to implement the {{Codeline|build()}} function in the {{Filename|PKGBUILD}} file. This function uses common shell commands in [http://en.wikipedia.org/wiki/Bash Bash] syntax to automatically compile software and create a {{Filename|pkg}} directory to install the software to. This allows ''makepkg'' to package files without having to sift through your filesystem.<br />
<br />
The first step in the {{Codeline|build()}} function is to change into the directory created by uncompressing the source tarball. In most common cases the first command will look like this:<br />
<br />
cd $srcdir/$pkgname-$pkgver<br />
<br />
Now, you need to list the same commands you used when you manually compiled the software. The {{Codeline|build()}} function in essence automates everything you did by hand and compiles the software in the fakeroot build environment. If the software you are packaging uses a configure script, it is good practice to use {{Codeline|1=--prefix=/usr}} when building packages for ''pacman''. A lot of software installs files relative to the {{Filename|/usr/local}} directory, which should only be done if you are manually building from source. All Arch Linux packages should use the {{Filename|/usr}} directory. As seen in the {{Filename|/usr/share/pacman/PKGBUILD.proto}} file, the next two lines often look like this:<br />
<br />
./configure --prefix=/usr<br />
make<br />
<br />
The final step in the {{Codeline|build()}} function is to put the compiled files in a directory where ''makepkg'' can retrieve them to create a package. This by default is the {{Filename|pkg}} directory - a simple fakeroot environment. The {{Filename|pkg}} directory replicates the hierarchy of the root file system of the software's installation paths. If you have to manually place files under the root of your filesystem, you should install them in the {{Filename|pkg}} directory under the same directory structure. For example, if you want to install a file to {{Filename|/usr/bin}}, it should instead be placed under {{Filename|$pkgdir/usr/bin}}. Very few install procedures require the user to copy dozens of files manually. Instead, for most software, calling {{Codeline|make install}} will do so. The final line should look like the following in order to correctly install the software in the {{Filename|pkg}} directory:<br />
<br />
make DESTDIR=$pkgdir install<br />
<br />
{{Note|It is sometimes the case where {{Codeline|DESTDIR}} is not used in the {{Filename|Makefile}}; you may need to use {{Codeline|prefix}} instead. If the package is built with ''autoconf''/''automake'', use {{Codeline|DESTDIR}}; this is what is [http://sources.redhat.com/automake/automake.html#Install documented] in the manuals. If {{Codeline|DESTDIR}} does not work, try building with {{Codeline|1=make prefix="$pkgdir/usr/" install}}. If that does not work, you'll have to look further into the install commands that are executed by "{{Codeline|make <...> install}}".}}<br />
<br />
In some odd cases, the software expects to be run from a single directory. In such cases, it is wise to simply copy these to {{Filename|$pkgdir/opt}}.<br />
<br />
More often than not, the installation process of the software will create any subdirectories below the {{Filename|pkg}} directory. If it does not, however, ''makepkg'' will generate a lot of errors and you will need to manually create subdirectories by adding the appropriate {{Codeline|mkdir -p}} commands in the {{Codeline|build()}} function before the installation procedure is run.<br />
<br />
Also, ''makepkg'' defines three variables that you should use as part of the build and install process:<br />
; {{Codeline|startdir}}: This contains the absolute path to the directory where the {{Filename|PKGBUILD}} file is located. This variable used to be used in combination with {{Filename|/src}} or {{Filename|/pkg}} postfixes, but the use of {{Codeline|srcdir}} and {{Codeline|pkgdir}} variables is the modern method. {{Codeline|$startdir/src}} is '''not''' guaranteed to be the same as {{Codeline|$srcdir}}, and likewise for {{Codeline|$pkgdir}}. Use of this variable is deprecated and strongly discouraged.<br />
; {{Codeline|srcdir}}: This points to the directory where ''makepkg'' extracts or copies all source files.<br />
; {{Codeline|pkgdir}}: This points to the directory where ''makepkg'' bundles the installed package, which becomes the root directory of your built package.<br />
<br />
{{Note|''makepkg'', and thus the {{Codeline|build()}} function, is intended to be non-interactive. Interactive utilities or scripts called in the {{Codeline|build()}} function may break ''makepkg'', particularly if it is invoked with build-logging enabled ({{Codeline|-l}}). (See [http://bugs.archlinux.org/task/13214 Arch Linux Bug #13214].)}}<br />
<br />
=== Additional guidelines ===<br />
<br />
Please read [[Arch Packaging Standards]] thoroughly for best practices and additional considerations.<br />
<br />
== Testing the PKGBUILD and package ==<br />
<br />
As you are writing the {{Codeline|build()}} function, you will want to test your changes frequently to ensure there are no bugs. You can do this using the {{Codeline|makepkg}} command in the directory containing the {{Filename|PKGBUILD}} file. With a properly formatted {{Filename|PKGBUILD}}, makepkg will create a package; with a broken or unfinished {{Filename|PKGBUILD}}, it will raise an error.<br />
<br />
If makepkg finishes successfully, it will place a file named {{Filename|pkgname-pkgver.pkg.tar.xz}} in your working directory. This package can be installed with the {{Codeline|pacman -U}} command. However, just because a package file was built does not imply that it is fully functional. It might conceivably contain only the directory and no files whatsoever if, for example, a prefix was specified improperly. You can use pacman's query functions to display a list of files contained in the package and the dependencies it requires with {{Codeline|pacman -Qlp [package file]}} and {{Codeline|pacman -Qip [package file]}} respectively.<br />
<br />
If the package looks sane, then you are done! However, if you plan on releasing the {{Filename|PKGBUILD}} file, it is imperative that you check and double-check the contents of the {{Codeline|depends}} array. <br />
<br />
Also ensure that the package binaries actually ''run'' flawlessly! It is annoying to release a package that contains all necessary files, but crashes because of some obscure configuration option that doesn't quite work well with the rest of the system. If you're only going to compile packages for your own system, though, you don't need to worry too much about this quality assurance step, as you're the only person suffering from mistakes, after all.<br />
<br />
=== {{Codeline|ldd}} and {{Codeline|namcap}} ===<br />
<br />
Dependencies are the most common packaging error. There are two excellent tools you can use to check dependencies. The first one is ''ldd'', which will show you the shared library dependencies of dynamic executables:<br />
$ ldd gcc<br />
linux-gate.so.1 => (0xb7f33000)<br />
libc.so.6 => /lib/libc.so.6 (0xb7de0000)<br />
/lib/ld-linux.so.2 (0xb7f34000)<br />
<br />
The other tool is [[namcap]], which not only checks for dependencies but the overall sanity of your package. Please read the [[namcap]] article for a detailed description.<br />
<br />
== Submitting packages to the AUR ==<br />
<br />
Please read [[AUR User Guidelines#Submitting Packages to UNSUPPORTED]] for a detailed description of the submission process.<br />
<br />
== Summary ==<br />
<br />
#Download the source tarball of the software you want to package.<br />
#Try compiling the package and installing it into an arbitrary directory.<br />
#Copy over the prototype {{Filename|/usr/share/pacman/PKGBUILD.proto}} and rename it to {{Filename|PKGBUILD}} in a temporary working directory -- preferably {{Filename|~/abs/}}.<br />
#Edit the {{Filename|PKGBUILD}} according to the needs of your package.<br />
#Run {{Codeline|makepkg}} and see whether the resulting package is built correctly.<br />
#If not, repeat the last two steps.<br />
<br />
=== Warnings ===<br />
<br />
* Before you can automate the package building process, you should have done it manually at least once unless you know ''exactly'' what you're doing ''in advance'', in which case you would not be reading this in the first place. Unfortunately, although a good bunch of program authors stick to the 3-step build cycle of "{{Codeline|./configure}}; {{Codeline|make}}; {{Codeline|make install}}", this is not always the case, and things can get real ugly if you have to apply patches to make everything work at all. Rule of thumb: If you can't get the program to compile from the source tarball, and make it install itself to a defined, temporary subdirectory, you don't even need to try packaging it. There isn't any magic pixie dust in {{Codeline|makepkg}} that makes source problems go away.<br />
* In a few cases, the packages are not even available as source and you have to use something like {{Codeline|sh installer.run}} to get it to work. You will have to do quite a bit of research (read READMEs, INSTALL instructions, man pages, perhaps ebuilds from Gentoo or other package installers, possibly even the MAKEFILEs or source code) to get it working. In some really bad cases, you have to edit the source files to get it to work at all. However, {{Codeline|makepkg}} needs to be completely autonomous, with no user input. Therefore if you need to edit the makefiles, you may have to bundle a custom patch with the {{Filename|PKGBUILD}} and install it from inside the {{Codeline|build()}} function, or you might have to issue some {{Codeline|sed}} commands from inside the {{Codeline|build()}} function.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Intel_graphics&diff=106802Intel graphics2010-05-21T13:34:28Z<p>EVRAMP: removed info about intel-legacy - no longer exists in repo</p>
<hr />
<div>{{i18n|Intel}}<br />
{{Article summary start| Summary}}<br />
{{Article summary text|Information on Intel Graphics Cards/Chipsets}}<br />
{{Article summary end}}<br />
<br />
[[Category: Graphics (English)]][[Category: X Server (English)]][[Category: HOWTOs (English)]]<br />
<br />
''For use within the console without [[X]], see [[Uvesafb]].''<br />
<br />
== Introduction ==<br />
Since Intel provides and supports open source drivers, Intel graphics are now essentially plug-and-play.<br />
<br />
=== Models ===<br />
It is a popular mistake to think of "Intel 945G" and "Intel GMA 945" as being the same graphics chip with different names. As a matter of fact, the latter does not exist. Intel uses "GMA" to indicate the graphics core, or the GPU. Anything other than that is actually the model of the '''motherboard chipset''', like "915G", "945GM", "G965" or "G45".<br />
<br />
The more common GPUs and their corresponding motherboard chipsets are:<br />
<br />
* Intel GMA 900 (910, 915)<br />
* Intel GMA 950 (945)<br />
<br />
The "i810" chipset (again, motherboard; not GPU) is actually really old and was manufactured long before the 9xx product line with which the GMA onboard-graphics branding began. Similarly, alternative names for the 910, 915 and 945 chips may include the ''i'' prefix.<br />
<br />
See [http://en.wikipedia.org/wiki/Intel_GMA#Table_of_GMA_graphics_cores_and_chipsets this] for a list.<br />
<br />
=== Driver ===<br />
* xf86-video-intel<br />
<br />
== Installation ==<br />
Prerequisite: [[Xorg]]<br />
<br />
# pacman -S xf86-video-intel<br />
<br />
== Configuration ==<br />
<br />
There is no need for any kind of configuration ever since HAL has taken over. See [[Xorg_input_hotplugging|Xorg input hotplugging]] for more information.<br />
<br />
One thing that you should have already done from the start (not a configuration step per se) is to add your user to the relevant group:<br />
<br />
# gpasswd -a username video<br />
<br />
== KMS (Kernel Mode Setting) ==<br />
<br />
[[KMS]] is supported by Intel chipsets that use the i915 DRM driver and is now enabled by default as of kernel v2.6.32. Since xf86-video-intel 2.10, using KMS is [http://www.archlinux.org/news/484/ mandatory]. KMS is typically initialized after the kernel is bootstrapped. It is possible however to enable KMS during bootstrap itself, allowing the entire boot process to run at native resolution.<br />
<br />
{{Note|When using KMS, you ''must'' remove any references to "vga" or "video" from the kernel line in /boot/grub/menu.lst}}<br />
<br />
Add the {{Codeline|intel_agp}} and {{Codeline|i915}} modules to the MODULES line in /etc/mkinitcpio.conf:<br />
MODULES="'''intel_agp i915'''"<br />
<br />
Now, regenerate the initramfs:<br />
# mkinitcpio -p kernel26<br />
<br />
If you ever want to disable KMS, you can change the {{Codeline|i915.modeset}} option to 0 in [[GRUB]]'s {{Filename|/boot/grub/menu.lst}}, without rebuilding anything:<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /boot/vmlinuz26 root=/dev/... '''i915.modeset=0'''<br />
initrd /boot/kernel26.img<br />
<br />
For disabling it without having to edit {{Filename|menu.lst}}, turn on the machine and when you see GRUB's screen, hit a key to disable the timeout. Select the kernel you want to boot (probably the one already selected) and hit "e" for "edit". Now select the line starting with "kernel" and hit again "e" for editing. You can now add the {{Codeline|i915.modeset}} option and disable KMS by setting it to 0. Press enter and then "b" to boot. Note that this will be temporary, so it will be enabled again upon rebooting.<br />
<br />
{{Note|Downgrade to kernel 2.6.31.6-1 or disable modesetting with kernel boot parameter if you get a blank screen during boot process with Intel GMA 950}}<br />
<br />
=== See also ===<br />
* [[KMS]] - Arch wiki article on kernel mode setting<br />
* Arch Linux forums: [http://bbs.archlinux.org/viewtopic.php?id=69083 HOWTO: Enable KMS with the stock 2.6.29-ARCH kernel]<br />
* Arch Linux forums: [http://bbs.archlinux.org/viewtopic.php?pid=522665#p522665 Intel 945GM, Xorg, Kernel - performance]<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting scaling mode ===<br />
<br />
This can be useful for some full screen applications.<br />
xrandr --output LVDS1 --set PANEL_FITTING param<br />
where <tt>param</tt> can be<br />
* <tt>center</tt>: resolution will be kept exactly as defined, no scaling will be made,<br />
* <tt>full</tt>: scale the resolution so it uses the entire screen or<br />
* <tt>full_aspect</tt>: scale the resolution to the maximum possible but keep the aspect ratio.<br />
If it does not work, you can try<br />
xrandr --output LVDS1 --set "scaling mode" param<br />
where <tt>param</tt> is one of <tt>"Full"</tt>, <tt>"Center"</tt> or <tt>"Full aspect"</tt>.<br />
<br />
=== Workaround for bug with opening laptop lid ===<br />
==== Solution #1 ====<br />
On laptops with Intel video chip you can face the issue with not working X display after you close lid to make the machine suspend and than open it back. See bug https://bugs.freedesktop.org/show_bug.cgi?id=24970 for more details. <br />
<br />
Here is a way to work it around. The recipe is based on similar one from Fedora "Common bugs" page: https://fedoraproject.org/wiki/Common_F12_bugs#Display_cannot_be_reactivated_if_it_enters_sleep_mode_with_laptop_lid_closed<br />
<br />
{{Note|This workaround will work only in single-user system, you can make it work for multiple users by adding procedure of checking which user put machine to suspend state.}} <br />
Install acpid:<br />
<br />
{{Codeline|pacman -S acpid}}<br />
<br />
After that place acpid before hal in DAEMONS section of your {{Filename|/etc/rc.conf}} file. <br />
<br />
Than create a file {{Filename|/etc/acpi/actions/reset-display.sh}} with the following contents: <br />
<br />
#!/bin/bash<br />
PATH="/bin:/usr/bin:/sbin:/usr/sbin"<br />
export DISPLAY=:0.0<br />
sleep 10 <br />
if grep open /proc/acpi/button/lid/LID/state<br />
then<br />
su "$(getent passwd $UID | cut -d: -f1)" -c "xrandr --output LVDS1 --off" <br />
su "$(getent passwd $UID | cut -d: -f1)" -c "xrandr --output LVDS1 --auto" <br />
fi<br />
<br />
<br />
where <tt>$UID</tt> is UID of the user who put laptop to suspend mode (you). The main difference from original Fedora method is <tt>sleep</tt> operator usage. Without it the lid button state will not be updated by the moment it checking by {{Filename|reset-display.sh}} script, in some cases smaller delay (for example 3 seconds) will work when running on AC power and will not work with battery power, 10 seconds works always. Do not forget to make the script executable: <br />
<br />
#chmod +x /etc/acpi/actions/reset-display.sh<br />
<br />
Than we need to assign the action to LID switch event. Add the following line to {{Filename|/etc/acpi/handler.sh}} file under <tt>button/lid)</tt> code:<br />
<br />
/etc/acpi/actions/reset-display.sh<br />
<br />
Now you can reboot your laptop or just restart daemons in the following order:<br />
<br />
#/etc/rc.d/hal stop<br />
#/etc/rc.d/acpid start<br />
#/etc/rc.d/hal start<br />
<br />
==== Solution #2 ====<br />
<br />
An easier, less reliable workaround is to simply re-suspend the computer and wake it again. This will often correct the glitch and return the X desktop to a working state.<br />
<br />
=== KMS Issue: console is limited to small area ===<br />
<br />
One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen.<br />
To fix, explicitly disable the port with an i915 module setting. For example, add the following to the end of the kernel line in /boot/grub/menu.lst:<br />
<br />
video=SVIDEO-1:d<br />
<br />
If that doesn't work, you may also try disabling TV1 or VGA1 instead of SVIDEO-1.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=NetworkManager&diff=78020NetworkManager2009-10-16T14:07:48Z<p>EVRAMP: removed deprecated loopback interface</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Deutsch|:Networkmanager (Deutsch)}}<br />
{{i18n_entry|English|:NetworkManager}}<br />
{{i18n_entry|Italiano|:NetworkManager (Italiano)}}<br />
{{i18n_entry|Español|:NetworkManager (Español)}}<br />
{{i18n_entry|Português do Brasil|:NetworkManager (Português)}}<br />
{{i18n_entry|简体中文|:网络管理器}}<br />
{{i18n_entry|Türkçe|:Network Yöneticisi}}<br />
{{i18n_entry|Русский|Networkmanager_(Русский)}}<br />
{{i18n_links_end}}<br />
<br />
=Introduction=<br />
Network Manager is a set of co-operative tools that make networking simple and straightforward. Whether wireless or wired, Network Manager allows you to quickly move from one network to another: once a network has been configured and joined once, it can be detected and re-joined automatically at a later date.<br />
<br />
Network Manager 0.7 is a major overhaul of the NetworkManager program.<br />
<br />
Some of the new features include:<br />
* Support for cellular data cards<br />
* Multiple Active Devices<br />
* System-wide Configuration<br />
* wpa_supplicant dbus Control Interface<br />
* More Wireless/Wired Authentication Methods<br />
<br />
=Step 1: Installation=<br />
NetworkManager is available in the extra repository so:<br />
# pacman -S networkmanager<br />
<br />
=Step 2: GUIs=<br />
==Gnome==<br />
network-manager-applet (formerly gnome-network-manager) is available in the extra repository:<br />
# pacman -S network-manager-applet<br />
<br />
==KDE==<br />
{{Note|if you can't make any of the below stuff work, ''network-manager-applet'' is an option.}}<br />
<br />
===KDE4===<br />
There is a plasmoid in the [[AUR]] for NetworkManager called '''networkmanager-plasmoid-svn'''. Note that it still is in development.<br />
<br />
===KDE3===<br />
You can try to use knetworkmanager which is '''no longer maintained in any Arch official repositories''' in binary form. You can get it from the [[AUR]].<br />
<br />
==Xfce==<br />
Xfce uses the same package as GNOME:<br />
# pacman -S network-manager-applet <br />
<br />
You can also install xfapplet plugin, which allows GNOME applets to be displayed within the xfce4 panel:<br />
# pacman -S xfce4-xfapplet-plugin<br />
<br />
If after installation you get four or more instances of nm-applet running when automatically starting gnome services and you're not using a session manager; consider doing the following:<br />
#Kill all nm-applet processes<br />
#Add {{Codeline|nm-applet --sm-disable}} to the autostarted applications.<br />
#Log out of Xfce.<br />
#Delete the XFCE session file (in ~/.cache/sessions/)<br />
#Log into Xfce and all is good.<br />
<br />
==Fluxbox and Other WM's==<br />
You will need the hicolor theme to be able to run nm-applet:<br />
# pacman -S gnome-network-manager hicolor-icon-theme<br />
<br />
After configuring your system for use with NetworkManager, to autostart the NetworkManager applet, go to ''Settings &rarr; Autostarted Applications'' then add, {{Codeline|"nm-applet --sm-disable &"}}, This should start up the network manager applet on startup, the {{Codeline|"--sm-disable"}} option is used to prevent multiple instances of the nm-applet, you should only need it if multiple instances are running when you startup.<br />
<br />
*NetworkManager seems to have trouble loading on various box-environments and compiz. By using the '''ck-launch-session''' pre-fix, nm-applet seems to work correctly.<br />
Ex.<br />
exec ck-launch-session startlxde<br />
<br />
=Step 3: Configuration=<br />
==Disable the interfaces==<br />
If you want to use NetworkManager on an interface you will have to '''disable''' it in {{Filename|/etc/[[rc.conf]]}}. You can do this by placing a {{Codeline|"!"}} in front of the interface of your choice, for example:<br />
INTERFACES=(!eth0 !ath0)<br />
<br />
{{Note |I had to enable (i.e, remove the {{Codeline|"!"}}) eth0 again afterwards for my card to work, although YMMV. Confirmed with ath_pci madwifi module &ndash; I also had to re-enable my cards for them to work.}}<br />
<br />
NetworkManager parses your {{Filename|/etc/rc.conf}} to see if you want to have a static or dynamic IP on your interfaces.<br />
<br />
So just put your preferred config into it.<br />
<br />
Example for static IP:<br />
eth0="eth0 172.19.3.18 netmask 255.255.255.0 broadcast 172.19.3.255"<br />
<br />
Example for dynamic IP:<br />
eth0="dhcp"<br />
<br />
==Set hostname==<br />
{{Note | This procedure broke hostname on my system. }}<br />
By default NetworkManager 0.7 will do a reverse lookup of your IP to determine your hostname. Most times this will result in "localhost".<br />
<br />
The solution is to create the file {{Filename|/etc/NetworkManager/nm-system-settings.conf}}, and add the following.<br />
<br />
[main]<br />
plugins = keyfile<br />
<br />
[keyfile]<br />
hostname = <your hostname><br />
<br />
==Edit daemons==<br />
You must disable the default ''network'' daemon and add the ''hal'' and ''networkmanager'' daemons '''in this order''':<br />
DAEMONS=( ... !network '''hal networkmanager''' ... )<br />
{{Note|If you happen to specify the ''fam'' daemon in your array, it '''must''' appear '''after''' networkmanager. The same also applies to '''portmap''' if specified.}}<br />
<br />
==Get in the network group==<br />
Add yourself to the network group, replacing {{Codeline|USERNAME}} with the appropriate user name:<br />
# gpasswd -a USERNAME network<br />
<br />
==Configure network services==<br />
There are quite a few network services that you will not want running until NetworkManager brings up an interface. Good examples are '''ntpd''' and network filesystem mounts of various types. NetworkManager can start these services when you bring an interface up, and stop them when you bring it down.<br />
<br />
To use this feature just add scripts to '''/etc/NetworkManager/dispatcher.d''' and make them executable for all users; for security, make them owned by '''root:root''' and writable only by the owner. The scripts will be run in alphabetical order at interface up time, and in reverse alphabetical order at interface down time. To ensure what order they come up in, simply add an alphabetical character and an underscore at the front of the script name; for example, '''a_portmap''' and '''b_netfs''' (which ensures that the portmapper is up before NFS mounts are attempted).<br />
<br />
I found this naming trick useful for the following items: '''a_portmap b_netfs c_ntpdate d_ntpd e_cups f_clamav''' I run a local NTP server, and do not connect my laptop to foreign wireless networks. I also make NFS mounts. There's no point in cups if you're not on the network. Clamav's '''freshclam''' signature updater requires networking to connect. I may hack on it some to separate the freshclam service from the clamav on-access scanner so I can keep the on-access scanner running all the time but only run freshclam when the networking is up.<br />
<br />
{{Warning|if you connect to foreign or public networks, be aware of what services you are starting and what servers you expect to be available for them to connect to. You could make a security hole by starting the wrong services while connected to a public network.}}<br />
<br />
==Proxy settings==<br />
Network Manager doesn't directly handle proxy settings.<br />
<br />
''See [[Proxy settings]] for more informations.''<br />
<br />
==PolicyKit issues==<br />
Because many Display Managers (including KDM) do not natively support policykit at login, you will run into some permission issues with D-Bus and NetworkManager.<br />
<br />
There are several options to resolve this issue ('''Choose only one''').<br />
<br />
* Install Consolekit and add the following line to {{Filename|/etc/pam.d/kde}}:<br />
session optional pam_ck_connector.so<br />
{{Warning|This may cause the malfunction of KDE PowerDevil.}}<br />
<br />
* Add the following lines to {{Filename|/etc/dbus-1/system.d/NetworkManager.conf}}:<br />
<policy group="users"><br />
<allow send_destination="org.freedesktop.NetworkManager"/><br />
<allow send_interface="org.freedesktop.NetworkManager"/><br />
</policy><br />
''If this does not work, check if there are any policy errors by starting NetworkManager manually:''<br />
# kill `pidof NetworkManager`<br />
# NetworkManager --no-daemon<br />
<br />
* Put the following script in ~/.kde4/Autostart or similar for other WMs or DEs:<br />
#!/bin/bash<br />
ck-launch-session<br />
<br />
* If none of those work, refer to this forum: http://bbs.archlinux.org/viewtopic.php?id=63576<br />
<br />
=Troubleshooting=<br />
==DHCP problems==<br />
If you have problems with getting an IP via DHCP try to add the following to your {{Filename|/etc/dhclient.conf}}:<br />
interface "eth0" {<br />
send dhcp-client-identifier 01:aa:bb:cc:dd:ee:ff;<br />
}<br />
Where {{Codeline|aa:bb:cc:dd:ee:ff}} is the MAC-adress of this nic.<br />
<br />
=Tips & tricks=<br />
<br />
==Checking Whether Networking Is Up In A Cron Job Or Script==<br />
Some cron jobs require networking to be up to succeed. You may wish to avoid running these jobs when the network is down. To accomplish this, add an '''if''' test for networking that queries NetworkManager's '''nm-tool''' and checks the state of networking. The test shown here succeeds if any interface is up, and fails if they are all down. This is convenient for laptops that might be hardwired, might be on wireless, or might be off the network. <br />
if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then<br />
#Whatever you want to do if the network is online<br />
else<br />
#Whatever you want to do if the network is offline - note, this and the else above are optional<br />
fi<br />
<br />
I find this useful for a cron.hourly script that runs '''fpupdate''' for the F-Prot virus scanner signature update, as an example. Another way it might be useful, with a little modification, is to differentiate between networks using various parts of the output from '''nm-tool'''; for example, since the active wireless network is denoted with an asterisk, you could grep for the network name and then grep for a literal asterisk.<br />
<br />
==Automatically unlock keyring after login==<br />
This will prevent nm-applet from asking for your keyring password.<br />
<br />
In {{Filename|/etc/pam.d/gdm}} (or your corresponding daemon in /etc/pam.d), add these lines at the end of the "auth" and "session" blocks if they don't exist already: <br />
auth optional pam_gnome_keyring.so<br />
session optional pam_gnome_keyring.so auto_start<br />
<br />
In {{Filename|/etc/pam.d/passwd}}, use this line for the 'password' block:<br />
password optional pam_gnome_keyring.so<br />
<br />
Next time you log in, you should be asked if you want the password to be unlocked automatically on login.<br />
<br />
See http://live.gnome.org/GnomeKeyring/Pam for reference.<br />
<br />
If you're using kde / kdm you can use pam-keyring-tool from AUR.<br />
Put a script like the following in ~/.kde4/Autostart<br />
$!/bin/sh<br />
echo PASSWORD | /usr/bin/pam-keyring-tool --unlock --keyring=default -s<br />
<br />
Similar should work with openbox, lxde, etc<br />
<br />
==Automatically connect on boot ==<br />
Since version 0.7 the NetworkManager is able to connect on boot, before a user has logged in and unlocked the keyring.<br />
<br />
First make sure that the keyfile plugin is loaded<br />
{{Filename|/etc/NetworkManager/nm-system-settings.conf}} should look like this:<br />
[main]<br />
plugins=keyfile<br />
<br />
If this wasn't in the file before, you have to restart '''nm-system-settings'''<br />
# killall -TERM nm-system-settings<br />
or simply reboot.<br />
<br />
Now grant your user the right to modify system-connections with<br />
$ sudo polkit-auth --grant org.freedesktop.network-manager-settings.system.modify --user "YOURUSERNAME"<br />
<br />
And finally in the connection-editor check the '''Available to all users''' box.<br />
<br />
The connection is now saved in '''/etc/NetworkManager/system-connections/"CONNECTION NAME"'''.<br />
<br />
On reboot, NetworkManager will try to connect to it, when in range.<br />
<br />
==Ignore specific devices==<br />
Sometimes it is desired, that network manager ignores some devices and don't try to get an IP.<br />
First you have to find out the Hal UDI (e.g. with lshal):<br />
...<br />
info.product = 'Networking Interface' (string)<br />
info.subsystem = 'net' (string)<br />
info.udi = '/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55' (string)<br />
linux.hotplug_type = 2 (0x2) (int)<br />
linux.subsystem = 'net' (string)<br />
...<br />
<br />
Add the udi to /etc/NetworkManager/nm-system-settings.conf:<br />
[keyfile]<br />
unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55<br />
<br />
Multiple devices can be specified, delimited by a semicolon:<br />
<br />
[keyfile]<br />
unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55;/org/freedesktop/Hal/devices/net_00_2c_6d_e2_08_af<br />
<br />
No need of restarting networkmanager.<br />
<br />
=Additional Resources=<br />
*[[Wireless Setup]]<br />
*[http://www.gnome.org/projects/NetworkManager/ The official NetworkManager's website]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Opera&diff=77448Opera2009-10-09T16:03:42Z<p>EVRAMP: typo</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
<br />
{{i18n_entry|Česky|Opera (Česky)}}<br />
{{i18n_entry|English|Opera}}<br />
{{i18n_entry|简体中文|Opera(简体中文)}}<br />
{{i18n_entry|Español|Opera (Español)}}<br />
{{i18n_entry|Italian|Opera_(Italiano)}}<br />
<br />
{{i18n_links_end}}<br />
<br />
Opera is a web browser and internet suite developed by Opera Software. <br />
:The browser handles common Internet-related tasks such as displaying websites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent, and reading web feeds. Opera is offered free of charge for personal computers and mobile phones, but for other devices it must be paid for. <br />
:[[Wikipedia:Opera_(web_browser)|Wikipedia]]<br />
<br />
==Installation==<br />
<br />
Opera has been moved to the [[AUR]] due to licensing issues. You can find it [http://aur.archlinux.org/packages.php?ID=10333 here].<br />
<br />
To install the latest stable Opera with [[yaourt]]:<br />
$ yaourt -S opera<br />
{{Note| This will install Qt4 shared build on i686 and x86_64}}<br />
<br />
===Static build===<br />
<br />
Opera is also available statically linked against the Qt libraries, removing them as dependencies.<br/><br />
It is available for i686 as [http://aur.archlinux.org/packages.php?ID=26034 opera-static] (''Obsolete:'' not updated to Opera 10 as of Thu Sep 24 19:50:49 VET 2009) in the AUR.<br />
<br />
==Optional tweaks==<br />
<br />
* To remove the tray icon, launch Opera with the ''-notrayicon'' option.<br />
* To make the menus look nice, install your preferred Qt4 theme and apply it by using '''qtconfig''' (/usr/bin/qtconfig, installed as a dependency for the non static opera package).<br />
* To make Opera use KDE/qtconfig icons, download a native skin such as [http://my.opera.com/community/customize/skins/info/?id=8908 fixed_window_skin].<br />
* To improve (flash) plugin performance in opera, just issue this command before starting opera or add it to ~/.bash_profile (or /etc/profile to make the change system-wide):<br />
export OPERAPLUGINWRAPPER_PRIORITY=0<br />
<br />
===Microsoft fonts and Opera===<br />
<br />
If ttf-ms-fonts has been installed before running Opera for the first time, Opera will use those fonts by default, regardless of what's specified by local GTK options, Gnome or KDE font management, etc.<br />
<br />
To make Opera use options set by your font manager:<br />
# Close Opera<br />
# Remove ttf-ms-fonts<br />
# rm -rf ~/.opera '''Warning''': this is inteded for ''new'' installations of Opera, since removing this dir and all of it's contents will reset Opera's settings, erase cache, bookmarks, etc.)<br />
# Finally, run Opera again. You can reinstall ttf-ms-fonts after doing this.<br />
<br />
{{Note|All fonts are configurable at ''Tools -> Preferences -> Advanced -> Fonts'', and that fonts specified by qtconfig take precedence over Gnome managed fonts.}}<br />
<br />
==Troubleshooting==<br />
<br />
=== Java on Arch64 ===<br />
<br />
1. Install a java environment:<br />
<br />
# pacman -S openjdk<br />
For the open source version, or:<br />
# pacman -S jre<br />
For Sun's proprietary version.<br />
<br />
2. Add to ~/.bash_profile (or /etc/profile to make this setting affect all logins):<br />
# openjdk<br />
export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/amd64/server/<br />
# jre<br />
export LD_LIBRARY_PATH=/opt/java/jre/lib/amd64/server/<br />
<br />
Alternatively, create a symlink to libjvm.so:<br />
# openjdk<br />
cd /usr/lib/jvm/java-1.6.0-openjdk/jre/lib/amd64<br />
ln -s server/libjvm.so .<br />
# jre<br />
cd /opt/java/jre/lib/amd64<br />
ln -s server/libjvm.so .<br />
<br />
3. Edit the path to java in Opera: ''Menu -> Tools -> Preferences -> Advanced -> Content -> Java Options''.<br />
#openjdk<br />
/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/amd64/<br />
#jre<br />
/opt/java/jre/lib/amd64/<br />
<br />
=== Fonts seem too big ===<br />
<br />
You can force Opera to use an specific DPI setting (not needed since Opera 10).<br />
<br />
Simply type:<br />
opera:config<br />
In the address bar and search for DPI. Set your desired DPI in the "Force DPI" field and click on "Save" to store your settings.<br />
<br />
=== Slow scrolling on nVidia cards ===<br />
<br />
Try running the following command:<br />
<br />
nvidia-settings -a InitialPixmapPlacement=2<br />
<br />
For testing you can use http://helion.pl, which, on some computers, works extremely slow without this hack.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=NFSv3&diff=72875NFSv32009-07-28T17:32:47Z<p>EVRAMP: /* Daemons */ obsolete commands moved to 2nd place</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Nfs}}<br />
{{i18n_entry|Italiano|Nfs (Italiano)}}<br />
{{i18n_entry|Русский|Nfs_(Russian)}}<br />
{{i18n_entry|Česky|Nfs_(Česky)}}<br />
{{i18n_entry|简体中文|Nfs (简体中文)}}<br />
{{i18n_links_end}}<br />
<br />
{{merge|NFSv4}}<br />
<br />
==Goal==<br />
The goal of this article is to assist in setting up an nfs-server for sharing files over a network. <br />
<br />
'''Note: for NFSv4, see [[NFSv4]]'''<br />
<br />
==Required packages==<br />
Required packages for both the server and the client are minimal.<br><br />
You'll only need to install:<br />
*core/rpcbind (or core/portmap which was replaced)<br />
*core/nfs-utils <br />
<br />
As the packages are in the [core] repository, they will be included by default in new Arch installations.<br />
<br />
==Setting up the server==<br />
You can now edit your configuration and start the daemons. You need to be root to execute the following commands.<br />
<br />
===Files===<br />
====/etc/exports====<br />
This file (/etc/exports) defines the various shares on the nfs server, and their permissions.<br><br />
A few examples:<br />
<pre><br />
/files *(ro,sync) ; Read-only access to anyone<br />
/files 192.168.0.100(rw,sync) ; Read-write access to a client on 192.168.0.100<br />
/files 192.168.1.1/24(rw,sync) ; Read-write access to all clients from 192.168.1.1 to 192.168.1.255<br />
</pre><br />
If you make changes to /etc/exports after starting the daemons, you can make them effective by issuing the following command:<br />
<pre><br />
exportfs -r<br />
</pre><br />
<br />
If you decide to make your NFS share public and writable, you can use the all_squash option in combination with anonuid and the anongid option.<br />
For example, to set the privileges for the user nobody in the group nobody, you can do the following:<br />
<pre><br />
; Read-write access to a client on 192.168.0.100, with rw access for the user 99 with gid 99<br />
/files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))<br />
</pre><br />
<br />
This also means, that if you want write access to this directory, nobody.nobody must be the owner of the share directory:<br />
<pre><br />
chown -R nobody.nobody /files<br />
</pre><br />
<br />
Full details on the exports file are provided by the exports man page.<br />
<br />
====/etc/conf.d/nfs====<br />
Edit this file to pass appropriate run-time options to nfsd, mountd, statd, and sm-notify. The default Arch NFS init scripts require the --no-notify option for statd, as follows:<br />
STATD_OPTS="--no-notify"<br />
Others may be left at the provided defaults, or changed according to your requirements. Please refer to the relevant man pages for full details.<br />
<br />
====/etc/hosts.allow====<br />
To allow network access to the nfs server you should edit /etc/hosts.allow.<br><br />
The following example opens these services to anyone:<br />
<pre><br />
nfsd: ALL<br />
portmap: ALL<br />
mountd:ALL<br />
</pre><br />
This is a very insecure way of allowing host access. To get better control over who is allowed to access the daemons hosts.deny should be everyone, and hosts.allow should specifically allow certain people.<br />
In this example, 192.168.0.101 should be the IP address of the person(s) allowed to access it. The numbers after the '/' is not a netmask!<br />
<pre><br />
nfsd: 192.168.0.101/255.255.255.255<br />
portmap: 192.168.0.101/255.255.255.255<br />
mountd: 192.168.0.101/255.255.255.255<br />
</pre><br />
<br />
This examples enables access for anyone on that network<br />
<pre><br />
nfsd: 192.168.0.0/255.255.255.0<br />
portmap: 192.168.0.0/255.255.255.0<br />
mountd: 192.168.0.0/255.255.255.0<br />
</pre><br />
For finer control, read the hosts_access(5) man page.<br />
<br />
===Daemons===<br />
You can now start the server with the following commands:<br />
<pre><br />
/etc/rc.d/rpcbind start (or: /etc/rc.d/portmap start)<br />
/etc/rc.d/nfs-common start (or: /etc/rc.d/nfslock start)<br />
/etc/rc.d/nfs-server start (or: /etc/rc.d/nfsd start)<br />
</pre><br />
Please note that they must be started in that order.<br><br />
To start the server at boot time, add these daemons to the DAEMONS array in /etc/rc.conf.<br />
<br />
==Setting up the client==<br />
===Files===<br />
====/etc/conf.d/nfs====<br />
Edit this file to pass appropriate run-time options to statd - the remaining options are for server use only. Do NOT use the --no-notify option on the client side, unless you are fully aware of the consequences of doing so.<br />
<br />
Please refer to the statd man page for full details.<br />
<br />
===Daemons===<br />
Start the portmap and nfslock daemons:<br />
/etc/rc.d/rpcbind start (or: /etc/rc.d/portmap start)<br />
/etc/rc.d/nfs-common start (or: /etc/rc.d/nfslock start)<br />
Please note that they must be started in that order.<br><br />
To start the daemons at boot time, add them to the DAEMONS array in /etc/rc.conf.<br />
<br />
Then just mount as normal:<br />
mount server:/files /files<br />
<br />
===Auto-mount on boot===<br />
If you want to mount on boot, make sure network, rpcbind (portmap), nfs-common (nfslock) and netfs are in the DAEMONS array in /etc/rc.conf. Make sure the order is this one. It's better not to put any '@' in front of them (although you could safely use @netfs). For instance :<br />
DAEMONS=(... network rpcbind nfs-common @netfs ...)<br />
or<br />
DAEMONS=(... network portmap nfslock @netfs ...)<br />
<br />
Add an appropriate line in '''/etc/fstab''', for example:<br />
server:/files /files nfs defaults 0 0<br />
<br />
If you wish to specify a packet size for read and write packets, specify them in your fstab entry. The values listed below are the defaults if none are specified:<br />
<br />
server:/files /files nfs rsize=32768,wsize=32768 0 0<br />
<br />
Read the nfs man page for further information, including all available mount options.<br />
<br />
==Troubleshooting==<br />
===Unreliable performance, slow data transfer, and/or high load when using NFS and gigabit===<br />
This is a result of the default packetsize used by NFS, which causes significant fragmentation on gigabit networks. You can modify this behavior by the rsize and wsize mount parameters. Using rsize=32768,wsize=32768 should suffice. Please note that this problem does not occur on 100Mb networks, due to the lower packet transfer speed.<br />
<br />
Note: Default value for NFS4 is 32768. Maximum is 65536. Increase from default in increments of 1024 until maximum transfer rate is achieved.<br />
<br />
===Portmap daemon fails to start at boot===<br />
Make sure you place portmap BEFORE netfs in the daemons array in /etc/rc.conf .<br />
<br />
===Nfsd fails to start with "nfssvc: No such device"===<br />
Make sure the nfs and nfsd modules are loaded in the kernel.<br />
<br />
===Nfsd seems to work, but I can't connect from MacOS X clients===<br />
When trying to connect from a MacOS X client, you'll see that everything is ok at logs, but MacOS X refuses to mount your NFS share. You have to add <tt>insecure</tt> option to your share and re-run <tt>exportfs -r</tt>.<br />
<br />
==Links & References==<br />
* See also [[Avahi]], a Zeroconf implementation which allows automatic discovery of NFS shares.<br />
* HOWTO: [[Diskless network boot NFS root]]<br />
* [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm Very helpful]<br />
* If you are setting up the Archlinux NFS server for use by Windows clients through Microsoft's SFU, you will save a lot of time and hair-scratching by looking at [http://bbs.archlinux.org/viewtopic.php?pid=523934#p523934 this forum post] first !</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Official_Installation_Guide_(%C4%8Cesky)&diff=72451Official Installation Guide (Česky)2009-07-20T10:29:10Z<p>EVRAMP: /* Před instalací */ updated to reflect the english version</p>
<hr />
<div>[[Category:Getting and installing Arch (Česky)]]<br />
[[Category:Tutorials (Česky)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Obecná instalační dokumentace pro distribuci Arch Linux.}}<br />
{{Article summary heading|Dostupné jazyky}}<br />
{{i18n_entry|English|Official Arch Linux Install Guide}}<br />
{{i18n_entry|简体中文|Arch Linux 官方安装指南}}<br />
{{i18n_entry|正體中文|Arch Linux 官方安裝指南}}<br />
{{i18n_entry|Česky|Oficiální instalační příručka (Česky)}}<br />
{{i18n_entry|Русский|Руководство по установке}}<br />
{{i18n_entry|Español|Guía oficial de Instalación}}<br />
{{i18n_entry|Italiano|Official Arch Linux Install Guide (Italiano)}}<br />
{{Article summary heading|Související články}}<br />
{{Article summary wiki|Průvodce začátečníka (Česky)}} (Pokud s Arch Linuxem začínáte)<br />
{{Article summary end}}<br />
<br />
==Úvod==<br />
<br />
===Co je Arch Linux?===<br />
<br />
Arch Linux je linuxová distribuce, založená na myšlenkách linuxové distribuce CRUX. Arch je rychlý, odlehčený, flexibilní a jednoduchý. To nejsou moc přitažlivá hesla, ale jsou všechna pravdivá. Arch je optimalizován pro i686 procesory, díky čemuž lépe využívá nové procesory. Je odlehčený ve srovnání<br />
s Red Hatem apod. Jednoduchý návrh dělá Arch rozšiřitelným a upravitelným do podoby, jaká Vám vyhovuje.<br />
<br />
Arch se opírá o jednoduchý binární balíčkovací systém, který umožňuje aktualizovat celý systém jedním příkazem. Používá svůj vlastní systém pro tvorbu balíčků ([[ABS - The Arch Build System (česky)|Arch Build System - ABS]]) umožňující jejich jednoduché vytváření. Všechno je děláno jednoduše a průhledně.<br />
<br />
Arch Linux usiluje o udržování posledních stabilních verzí softwaru, který obsahuje. V současnosti jsou podporovány základní balíčky s rostoucí kolekcí extra balíčků vytvořených uživateli a vývojáři.<br />
<br />
Cílem je být jednoduchá a odlehčená distribuce, proto bylo upuštěno od relativně nepotřebných částí linuxového systému. Jedná se především o dokumentaci v podobě /usr/doc a info stránek. Pokud je potřeba, mohou být tyto informace vyhledány na internetu. Dokumentaci hledejte v manuálových stránkách.<br />
<br />
Arch Linux také usiluje o to, aby uživatelé mohli využívat nejnovější vlastnosti, které jsou dostupné pro linuxové uživatele, Arch Linux 0.8 (Voodoo) používá verzi 2.6 linuxového kernelu a udev. Obsahuje podporu pro ext3/ReiserFS/XFS/JFS, RAID/LVM a šifrované souborové systémy.<br />
<br />
===Licence===<br />
<br />
Arch Linux, pacman, dokumentace a skripty jsou chráněny autorským právem<br />
&copy; 2002-2007 Judda Vineta a jsou licencovány pod [http://www.gnu.org/copyleft/gpl.html GNU Public License].<br />
<br />
===Přispěvatelé a zpětná vazba (Feedback)===<br />
<br />
Tento je dokument je silně založen na práci Judda Vineta <judd@archlinux.org>. Vedlejší korekce, modifikace a rozšíření provedl Dennis Herbrich <dennis@archlinux.org> a Tobias Powalowski <tpowa@archlinux.org>. Nespočet lidí přispívá a bude přispívat k oficiální dokumentaci Arch Linuxu posíláním oprav a návrhů. Nicméně, pokud přispíváte, potom víte kdo jste. Bez Vaší pomoci by nebylo možné udržovat a vylepšovat dokumentaci. Děkujeme Vám!<br />
<br />
==Předmluva k instalaci Arch Linuxu==<br />
<br />
===Před instalací===<br />
<br />
Arch Linux je optimalizovaný pro procesory i686, a proto nebude fungovat na nižší nebo nekompatibilní generaci x86 procesorů (i386,i486,i586). Pokud máte procesor Pentium II, AMD K6-2 nebo novější, nemusíte se obávat, a Arch Linux můžete nainstalovat. Oficiálně je také podporována 64-bitová architektura x86_64.<br />
<br />
Existuje také komunitou řízený projekt, který poskytuje balíčky pro i586 a ppc. Pro více informací se podívejte sem.<br />
<br />
Před instalací Arch Linuxu byste se měli rozhodnout, kterou instalační metodu použijete. Arch Linux k instalaci nabízí ISO a USB obrazy disku se zavaděčem GRUB<br />
ISO obrazy fungují na většině počítačů s CD-ROM mechanikou a USB obrazy na systémech s možností bootování z USB disku. Pro ty z Vás, kteří mají problém s naběhnutím instalačního disku, jsou připraveny ISO obrazy se zavaděčem ISOLINUX. Existují dvě varianty každého instalačního obrazu, které se liší pouze ve způsobu získání balíčků.<br />
* Tzv. "core" obrazy obsahují všechny balíčky z core repozitáře. Tyto obrazy se hodí lidem, kteří mají připojení k internetu, které je pomalejší nebo obtížně nastavitelné.<br />
* Tzv. "ftp" obrazy neobsahují téměř žádné balíčky a jsou tedy použitelné pouze pro instalaci z FTP serveru. Pokud máte rychlejší připojení k internetu, představuje tato varianta nejrychlejší způsob, jak nainstalovat Arch Linux. Navíc budete mít ihned po instalaci plně aktuální systém.<br />
<br />
Instalovat z FTP můžete s jakýmkoliv instalačním médiem. Všechny ISO obrazy mohou být použity i jako obnovovací CD.<br />
<br />
Dalším krokem je vytvoření instalačního CD. Stáhněte tedy jedno z instalačních CD a vypalte jej ve vašem oblíbeném programu. Pokud instalujete ze staršího ISO obrazu, nemusíte mít žádné obavy, aktualizaci můžete provést ihned po instalaci základního systému.<br />
<br />
Použití dialup připojení k přístupu na internet během instalačního procesu je JIŽ PODPOROVÁNO: ppp utilities, rp-pppoe a ISDN utility jsou zahrnuty na instalačním médiu.<br />
<br />
===Požadavky na instalaci===<br />
<br />
* znalost práce v Linuxu a vašeho systému, hlavně vašeho hardware<br />
* instalační médium (instalační CD)<br />
* i686 nebo x86-64 procesor (PPro, Pentium 2 nebo vyšší, Athlon/Duron atd. AMD K6, Transmeta Crusoe, CyrixIII a VIA-C3 nejsou podporovány.)<br />
* 96 MB RAM<br />
* nějaký volný čas<br />
<br />
===Získání Arch Linuxu===<br />
<br />
Arch Linux můžete stahovat z některého z níže uvedených zdrojů.<br />
<br />
Severní Afrika<br />
<br />
ftp://ftp.archlinux.org<br />
ftp://ftp.nethat.com/pub/linux/archlinux<br />
ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/archlinux<br />
ftp://mirror.cs.vt.edu/pub/ArchLinux<br />
ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux<br />
http://www2.cddc.vt.edu/linux/distributions/archlinux<br />
<br />
Rakousko<br />
<br />
ftp://gd.tuwien.ac.at/opsys/linux/archlinux<br />
<br />
Belgie<br />
<br />
ftp://ftp.belnet.be/packages/archlinux<br />
<br />
Česká republika<br />
<br />
ftp://ftp.sh.cvut.cz/MIRRORS/arch<br />
<br />
Estonsko<br />
<br />
ftp://ftp.estpak.ee/pub/archlinux<br />
<br />
Francie<br />
<br />
ftp://ftp.rez-gif.supelec.fr/pub/Linux/distrib/archlinux<br />
ftp://mir1.archlinuxfr.org/archlinux<br />
ftp://mir2.archlinuxfr.org/archlinux<br />
ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux<br />
http://mirrors.jakimowicz.com/archlinux<br />
<br />
Německo<br />
<br />
ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux<br />
ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org<br />
<br />
Velká Británie<br />
<br />
http://ftp.parrswood.manchester.sch.uk/Mirrors/ftp.archlinux.org<br />
<br />
Řecko<br />
<br />
ftp://ftp.ntua.gr/pub/linux/archlinux<br />
<br />
Irsko<br />
<br />
ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org<br />
<br />
Itálie<br />
<br />
ftp://mi.mirror.garr.it/mirrors/archlinux<br />
<br />
Holandsko<br />
<br />
ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux<br />
ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux<br />
<br />
Norsko<br />
<br />
ftp://mirror.djzradio.net/archlinux<br />
<br />
Polsko<br />
<br />
ftp://sunsite.icm.edu.pl/site/linux-sunsite/distributions/archlinux<br />
ftp://mirror.icis.pcz.pl/archlinux<br />
<br />
Portugalsko<br />
<br />
ftp://gul.est.ips.pt/repos/archlinux<br />
ftp://cesium.di.uminho.pt/pub/archlinux<br />
http://darkstar.ist.utl.pt/archlinux<br />
<br />
Rumunsko<br />
<br />
ftp://ftp.iasi.roedu.net/mirrors/archlinux.org<br />
<br />
Švédsko<br />
<br />
ftp://ftp.ds.hj.se/pub/linux/distributions/archlinux<br />
ftp://ftp.gigabit.nu<br />
<br />
Švýcarsko<br />
<br />
ftp://archlinux.puzzle.ch<br />
<br />
Ukrajina<br />
<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux<br />
<br />
Austrálie<br />
<br />
ftp://mirror.pacific.net.au/linux/archlinux<br />
<br />
Asie<br />
<br />
ftp://cle.linux.org.tw/pub/ArchLinux<br />
http://mirror.vxmatrix.net/ArchLinux<br />
http://dxmirror.vxmatrix.net/ArchLinux<br />
http://cncmirror.vxmatrix.net/ArchLinux<br />
<br />
==Příprava instalačního média==<br />
<br />
===Stažení a vypálení CD===<br />
<br />
1. Stáhněte 0.8/iso/<vaše architektura>/arch-0.8.iso (přesná cesta záleží na vybraném mirroru)<br />
2. Stáhněte 0.8/iso/<vaše architektura>/arch-0.8.md5sum<br />
3. Ověřte integritu staženého .iso obrazu použitím md5sum:<br />
<br />
md5sum --check arch-0.8.md5sum<br />
<br />
arch-0.8.iso: OK<br />
<br />
4. Vypalte .iso obraz na prázdné CD-R<br />
5. Zapište si vaše síťová nastavení (hlavně pokud jste zvolili síťovou instalaci):<br />
+ IP Adresa<br />
+ Maska podsítě<br />
+ Brána<br />
+ Modul pro vaši síťovou kartu (např.: eepro100)<br />
<br />
===Použití CD-ROM===<br />
<br />
Spusťte váš počítač s instalačním CD Arch Linuxu v mechanice. Ujistěte se, že váš BIOS je nastavený na bootování z CD-ROM. Pokud nevíte jak toho docílit, přečtěte si manuál vaší základní desky. Když je CD nabootováno, uvidíte příkazový řádek. Ve většině případů stačí prostě stisknout ENTER a pokračovat bez jakýchkoliv parametrů.<br />
<br />
==Instalace Arch Linuxu==<br />
<br />
1. Načtení mapy kláves<br />
2. Spuštění instalace<br />
3. Konfigurace sítě (pouze pro FTP instalaci)<br />
4. Příprava pevného disku<br />
1. Automatické<br />
2. Vytvoření oddílů<br />
3. Nastavení přípojných bodů<br />
5. Výběr balíčků<br />
6. Instalace balíčků<br />
7. Konfigurace systému<br />
8. Instalace jádra<br />
9. Instalace zavaděče<br />
10. Konec instalace<br />
<br />
===Načtení mapy kláves===<br />
<br />
Pokud potřebujete načíst mapu kláves (ne anglickou), můžete použít utilitu km. Jednoduše napište km v příkazové řádce a šipkou vyberte mapu kláves dle vaší potřeby, popřípadě font.<br />
<br />
===Spuštění instalace===<br />
<br />
Nyní můžete spustit /arch/setup. Po zobrazení úvodní zprávy budete dotázáni na typ instalace. Pokud máte rychlé připojení k internetu, můžete vybrat FTP instalaci. Tím budete instalovat nejaktuálnější balíčky oproti instalaci z CD, na kterém mouhou být již zastaralé. Pokud nemůžete použít CD můžete ho v tomto bodě instalace připojit (namountovat).<br />
<br />
Po zvolení jedné ze dvou alternativ vás uvítá instalační nabídka. Je rozdělena na několik kroků a každý z nich musí být potvrzen tlačítkem DONE. K již provedeným krokům je možné se vracet. K navigaci se používají standardně klávesové šipky.<br />
<br />
V jakémkoliv bodě instalace se můžete přepnout na 5. konzoli pomocí ALT+F5 pro zobrazení výstupu probíhající instalace. Kombinace kláves ALT+F1 vás opět vrátí zpět do instalační nabídky.<br />
<br />
===Konfigurace sítě (pouze pro FTP instalaci)===<br />
<br />
Nastavení sítě umožní instalovat a konfigurovat vaše síťové zařízení.<br />
<br />
Je vám zobrazen seznam všech dostupných síťových zařízení. Pokud ještě žádné síťové zařízení není dostupné, můžete přepnout na další terminál použitím kláves ALT-F2 a načíst potřebný modul manuálně. Popřípadě se můžete řídit instrukcemi a stisknout OK a prozkoumat dostupné moduly v následující obrazovce. Pokud instalátor selže v hledání vhodného modulu, ujistěte se, že běh příkazu byl korektní jestliže používáte diskety. Pokud bootujete z CD-ROM tento postup není nutný. Pokud vaše síťová karta nebyla stále nalezena, ujistěte se, že je fyzicky správně zapojena a podporována linuxovým jádrem. Někdy je nezbytné použít proprietární ovladač od výrobce toho zařízení a načíst ho manuálně. <br />
<br />
Když je načten správný modul a vaše síťová karta pracuje, můžete zvolit "Select the ethernet device". Jestliže používáte připojení přez DHCP server, zvolte YES. Pokud zvolíte NO, budete dotázáni na informace potřebné ke konfiguraci sítě. Funkčnost sítě můžete otestovat jednoduše příkazem ping.<br />
<br />
===Příprava pevného disku===<br />
<br />
Příprava pevného disku je rozdělena na dvě alternativní podnabídky.<br />
<br />
====Automatická příprava disku====<br />
<br />
První volba je Auto-Prepare, která automaticky rozdělí váš disk na /boot, swap, root oddíl a vytvoří na nich souborové systémy. Tyto oddíly budou automaticky připojeny na správné místo. Pro úplnost tato volba vytvoří:<br />
<br />
* 32 MB ext2 /boot oddíl<br />
<br />
* 256 MB swap oddíl<br />
<br />
* root a /home oddíly ze zbývajícího místa<br />
<br />
Uvedené hodnoty se mohou trochu lišit v závislosti na geometrii disku. Tuto volbu zvolte, jestliže o svém disku a diskových oddílech toho moc nevíte, avšak buďte opatrní:<br />
<br />
AUTOMATICKÁ PŘÍPRAVA SMAŽE VŠECHNY DATA NA VYBRANÉM DISKU!<br />
Čtěte varování uvedené v instalátoru velice pečlivě a ujistěte se, že bude použit správný disk!<br />
<br />
Způsob ověření vašeho výběru správného disku k rozdělení je spustit další terminál (ALT+F2, Enter) a napsat<br />
<br />
<br />
* cfdisk -P s <název zařízení><br />
<br />
<br />
takto si zobrazíte současnou tabulku oddílů vybraného disku.<br />
<br />
Pokud není název disku zobrazen ("[nothing] will be COMPLETELY ERASED! ..."), a instalátor napíše po zvolení YES chybu "Device not valid", ujistěte se, že jste načetli všechny potřebné moduly, např. SCSI, RAID, atd. Stále můžete moduly jednoduše načíst přepnutím na jiný terminál.<br />
<br />
Pokud dáváte přednost manuálnímu rozdělování, použijte následující 2 volby "Partition Hard Drives" a "Set Filesystem Mountpoints" k přípravě cílového disku podle vašich vlastních potřeb. Po provedení všech potřebných změn vyberte "Return to Main Menu".<br />
<br />
Pokud jste použili volbu "Auto-prepare", můžete klidně přeskočit následující odstavce popisující ruční rozdělení disku až na kapitolu [[Výběr balíčků]]<br />
<br />
====Ruční rozdělení disků====<br />
<br />
Rozdělení pevných disků bude automaticky přeskočeno pokud jste použili Auto-Prepare.<br />
<br />
Jinak můžete vybrat disk(y) k rozdělení. Tím dojde k přepnutí do programu cfdisk, ve kterém můžete provést potřebnou modifikaci. Pro pokračování instalace potřebujete přinejmenším oddíl root.<br />
<br />
Nastavení přípojných bodů (Set Filesystem Mountpoints)<br />
<br />
První otázka je, jaký oddíl použít jako swap (odkládací oddíl). Vyberte odpovídající oddíl ze seznamu a potvrďte. Pokud nechcete používat swapovací oddíl, zvolte NONE. Použití swapovacího oddílu není instalátorem podporováno. Raději zvolte NONE a dokončete asociaci přípojných bodů a aktivaci swapu příkazem swapon.<br />
<br />
Po nastavení swap oddílu budete dotázáni na specifikaci root oddílu. Tento krok je nutné provést!<br />
<br />
Celý proces se dokola opakuje, dokud nezvolíte z nabídky DONE, nejlépe poté, až budete mít všechny oddíly asociované s jejich přípojnými body. <br />
<br />
Pokaždé když zvolíte oddíl pro připojení, budete dotázáni, jestli chcete vytvořit systém souborů. Vyberete-li YES, instalátor se vás zeptá na určení jeho typu (obecně se pro oddíly doporučuje použít Ext3), tím bude jednotka přeformátována do vybraného systému souborů. Samozřejmě tím přijdete o uložená data. Pokud zvolíte NO, existující data budou na oddílu zachována.<br />
<br />
Jestliže chcete ochránit na oddílu stávající data, silně doporučujeme si je nejprve zálohovat. Pak neříkejte, že jste nebyli varováni.<br />
<br />
Budete dotázáni, zda vytvořit systém souborů na swapovacím oddílu. Vždycky odpovězte YES.<br />
<br />
Pokud chcete připojit nějaké další oddíly (pro příklad samostatný /boot nebo /home), neměl by v tom být žádný problém. Prostě jen:<br />
* vyberte oddíl pro připojení<br />
* vyberte systém souborů<br />
* zadejte specifický bod připojení<br />
Opakujte tyto kroky, dokud nebudete spokojeni a zvolte DONE pro vytvoření.<br />
<br />
===Výběr balíčků===<br />
<br />
Položka "Select Packages" vám umožní vybrat balíčky, které chcete nainstalovat z CD nebo FTP zrcadla.<br />
<br />
Pokud jste zvolili instalaci z CD-ROM, musíte sdělit instalátoru, ve které jednotce má hledat instalační CD. Vyberte volbu, která vám vyhovuje. Za normálních okolností budete chtít vybrat CD. Stačí tedy jen vybrat zařízení ze seznamu detekovaných.<br />
<br />
Pokud vaše jednotka CD-ROM není v seznamu zobrazena, ujistěte se, že jste načetli všechny potřebné moduly jako SCSI nebo USB. Pokud tomu tak není, přepněte se do dalšího terminálu a moduly zaveďte.<br />
<br />
Pokud jste zvolili FTP instalaci, budete dotázáni na to, jaké FTP zrcadlo se má zvolit. Jednoduchým výběrem ze seznamu si vyberte to, které vám vyhovuje nebo zvolte volbu "Custom" a zadejte adresu svého vlastního (kompletní doménové jméno nebo IP adresu).<br />
<br />
Ať zvolíte jakýkoliv zdroj, dojde k načtení balíčků a zobrazí se vám obrazovka, ve které jsou balíčky rozděleny do jednotlivých kategorií.<br />
<br />
Pokud se vám během načítání databáze balíčků zobrazí chybové hlášení, zkuste zvolit jiné FTP zrcadlo. Ujistěte se ještě, že vaše síťové připojení funguje správně.<br />
<br />
Nyní je třeba se rozhodnout, jaké kategorie balíčků zvolit. Pokud chcete nainstalovat pouze minimální systém, ve kterém budou jen základní nástroje, vyberte pouze BASE. Můžete si balíčky v této kategorii prohlédnout a udělat ještě změny dle vašich potřeb. Otázka "Select all packages by default?" se vás ptá, zda vybrat všechny balíčky obsažené v kategorii nebo ne. Pokud zvolíte NO, můžete provést výše uvedené úpravy a vybrat jen to, co budete potřebovat.<br />
<br />
Obecně je doporučeno vybrat jen základní (BASE) balíčky a nic jiného. Nedělejte si starosti, veškerý další software si snadno doinstalujete po dokončení instalace.<br />
<br />
Jediný důvod pro vybírání balíčků z dalších kategorií je, že se jedná o software nezbytný pro fungování vašeho připojení k internetu, např.:<br />
<br />
<br />
dhcpcd (base)<br />
<br />
Přidejte tehdy, když váš počítač je DHCP klient.<br />
<br />
<br />
isdn4k-utils (network)<br />
<br />
Přidejte tehdy, když používáte ISDN.<br />
<br />
<br />
ppp (base)<br />
<br />
Přidejte tehdy, když používáte analogový modem.<br />
<br />
<br />
wvdial (network)<br />
<br />
Přidejte tehdy, když chcete snadno nastavit analogový modem.<br />
<br />
<br />
rp-pppoe (base)<br />
<br />
Přidejte tehdy, když používáte DSL pro pseudo-dialup.<br />
<br />
<br />
Stažené "base" CD neobsahuje nic jiného než základní systém (BASE kategorii). Pokud chcete mít přístup k více balíčkům, je možné stáhnout plné CD. Na něm již naleznete potřebné balíčky pro zprovoznění např. ISDN.<br />
<br />
Nyní po úspěšném výběru balíčků je třeba pokračovat dalším krokem a tím je instalace balíčků.<br />
<br />
===Instalace balíčků===<br />
<br />
Volba "Install Packages" provede instalaci balíčků vybraných v předchozím kroce. Nebuďte překvapeni, pokud se instaluje mnoho balíčků. Všechno závisí na množství, kolik jste jich vybrali, a instalátor se explicitně neptá na povolení pro instalaci dalších na vyřešení závislostí. Prostě je automaticky nainstaluje. <br />
<br />
Instalátor také neověřuje množství volného místa na disku! Pokud ho nemáte dostatek, instalace skončí s chybovým hlášením. Jestliže nemáte jistotu, můžete si volné místo ověřit ručně příkazem df -h.<br />
<br />
Chybové hlášky a ladící výstup si můžete zobrazit v 5. terminálu (ALT+F5). Když jsou balíčky nainstalovány, pokračujte dalším krokem a tím je konfigurace systému.<br />
<br />
===Konfigurace systému===<br />
<br />
Konfigurace systému vám umožní editovat nastavení důležitých věcí vašeho nového systému. Nejprve budete dotázáni, zda chcete spustit hwdetect, což je skript, který provede detekci vašeho hardwaru a automaticky nakonfiguruje některé základní věci. Obecně je doporučeno zvolit YES. Odpovězte na následující otázky, zda používáte RAID, LVM a šifrované jednotky.<br />
<br />
Po dokončení této automatické předkonfigurační procedury budete dotázáni, zda chcete na následnou editaci používat editor Nano (jednoduchý) nebo Vim (složitější). Pokud si nejste jisti, jednoduše zvolte Nano.<br />
<br />
Nyní můžete upravit jednotlivé soubory nebo tento krok přeskočit a nechat si ho na později. Editace a podrobnější popis těchto konfiguračních souborů je dobře popsán v kategorii [[Konfigurační soubory]]<br />
<br />
===Instalace jádra===<br />
<br />
Instalace jádra se vás zeptá, jakou verzi chcete na váš pevný disk nainstalovat.<br />
<br />
2.6<br />
<br />
Instaluje verzi 2.6 s podporou SCSI/SATA/IDE. Co přesně bude podporováno jádrem záleží na tom, jak jste nakonfigurovali váš ramdisk, ale obecně se dá říci, že podporuje prakticky všechny SCSI, SATA, a IDE systémy. Podívejte se na nový initramfs pro více informací.<br />
<br />
Toto CD-ROM obsahuje verzi jádra 2.6.20.1. Pokud provádíte instalaci z FTP, je velice pravděpodobné, že budete instalovat novější verzi než tu, která je zde uvedena. Způsob je však stejný.<br />
<br />
===Instalace zavaděče===<br />
<br />
Volba "Install Bootloader" nainstaluje na váš pevný disk zavaděč systému. Jedná se buď o GRUB (doporučeno) nebo LILO. Co vyberete záleží jen na vás.<br />
<br />
Pokud si zvolíte instalovat LILO, zavaděč bude automaticky nainstalován podle vašeho nastavení v konfiguračním souboru, kdežto GRUB požaduje výběr oddílu, kam má být zavaděč nainstalován. Zde byste si měli rozmyslet, jak nastavíte volbu LILA boot, která je obvykle údaj pojmenovaný [...]/disc, což ukazuje na master boot record příslušného pevného disku. Jestliže bylo něco špatně lze zkontrolovat u detailnějších chybových hlášek, které se obvykle nachází na VT5 (virtuální terminál 5).<br />
<br />
Pokud si plánujete nastavit multiboot systém a chcete umístit do master boot record některý jiný zavaděč, bylo by nejlepší nastavit tuto volbu (boot) na váš root nebo /boot oddíl.<br />
<br />
Instalace zavaděče do MBR neúprosně přepíše kterýkoli existující zavaděč! Ujistěte se, že rozumíte tomuto důsledku, pokud spouštíte multiboot systém, nebo chcete zachovat nainstalovaný zavaděč z jiného OS!<br />
<br />
===Konec instalace===<br />
<br />
Po zvolení Exit Install vyjměte CD z mechaniky, v příkazové řádce napište reboot a držte si palce!<br />
<br />
Když váš systém nabootuje, můžete se přihlásit jako root bez hesla, proto vašimi prvními kroky po přihlášení jsou nastavit heslo pro uživatele root pomocí příkazu passwd, přidat uživatele jak je nastíněno v sekci správa uživatelů a nastavit vaše internetové připojení.<br />
<br />
Gratulujeme! Nyní se můžete ponořit do útrob konfigurace důležitých částí vašeho systému.<br />
<br />
==Konfigurace systému==<br />
<br />
Toto jsou hlavní konfigurační soubory pro Arch Linux. Jelikož zde není žádná GUI aplikace, která by vám s nimi pomohla, budete muset tyto soubory upravovat ručně, pomocí textového editoru. Vypsány jsou zde pouze nejzákladnější konfigurační soubory. Pokud potřebujete nakonfigurovat nějakou specifickou službu, přečtěte si prosím příslušné manuálové stránky nebo online dokumentaci.<br />
<br />
Arch Linux nepoužívá k administraci vašeho systému žádnou abstraktní vrstvu. Následkem toho byste se měli obvykle držet instrukcí uveřejněných autorem softwaru, nebo čehokoli co najdete ve vašich oblíbených vyhledávačích. Vše bude probíhat bez zásahu systému, protože váš systém se o to prostě nestará. <br />
<br />
===Konfigurační soubory===<br />
<br />
Před pokusem nabootovat váš nově nainstalovaný systém byste měli přinejmenším zběžně projít tyto soubory a ujistit se, že nejsou až tak vzdálené od skutečnosti.<br />
<br />
Seznam konfiguračních souborů:<br />
<br />
<br />
1. /etc/rc.conf<br />
<br />
2. /boot/grub/menu.lst<br />
<br />
3. /etc/lilo.conf<br />
<br />
4. /etc/hosts<br />
<br />
5. /etc/fstab<br />
<br />
6. /etc/modprobe.conf<br />
<br />
7. /etc/modules.conf<br />
<br />
8. /etc/resolv.conf<br />
<br />
9. /etc/conf.d/*<br />
<br />
10. /etc/profile<br />
<br />
<br />
=====/etc/rc.conf=====<br />
<br />
Toto je hlavní konfigurační soubor pro Arch Linux. Umožňuje vám nastavit vaši klávesnici, časovou zónu, jméno počítače (hostname), síť, spouštěné démony a moduly zaváděné při bootu, profily, a další. Měli byste si pročíst všechna tato nastavení a přesvědčit se, že jim rozumíte:<br />
<br />
HARDWARECLOCK<br />
<br />
Buď UTC, pokud jsou vaše hodiny v BIOSu nastavené na čas UTC nebo GMT, nebo localtime, jestliže jsou vaše hodiny BIOSu nastavené na váš lokální čas. Pokud máte nainstalovaný OS, který neudržuje UTC časy BIOSu správně (jako Windows), zvolte localtime. Jinak preferujte UTC, který bezproblémově mění letní čas a má ještě několik dalších pozitivních aspektů. <br />
<br />
TIMEZONE<br />
<br />
Upřesněte vaši časovou zónu. Možné časové zóny jsou relativní cestou k souborům zoneinfo (informační soubory zón) začínající v adresáři /usr/share/zoneinfo. Například, německá časová zóna by měla být Europe/Berlin, což odpovídá souboru /usr/share/zoneinfo/Europe/Berlin. Pokud neznáte přesné jméno vaší časové zóny, pohrajte si s tím později. <br />
<br />
KEYMAP<br />
<br />
Definuje keymapu (rozložení kláves), která bude zavedena při bootu pomocí programu loadkeys. Platné keymapy se nachází v /usr/share/kbd/keymaps. Poznamenávám, že toto nastavení je platné pouze pro vaše TTY, ne pro žádný grafický okenní manažer nebo Xka.<br />
<br />
CONSOLEFONT<br />
<br />
Definuje písmo v konzoli, které bude nastaveno při bootu pomocí programu setfont. Platné fonty (písma) se nachází v /usr/share/kbd/consolefonts. <br />
<br />
USECOLOR<br />
<br />
Povolí (nebo zakáže) barevné stavové zprávy při bootování. <br />
<br />
USELVM<br />
<br />
Nastavte "YES" pro spouštění vgchange při systémové inicializaci (sysinit). Takto se aktivují jakékoliv skupiny LVM. Pokud nevíte co to znamená, nevšímejte si toho.<br />
<br />
HOSTNAME<br />
<br />
Tímto se nastaví jméno počítače (hostname) bez doménové části. Toto je naprosto vaše volba, pokud používáte písmena, číslice a pár obvyklých speciálních znaků jako je čárka. Nebuďte příliš kreativní. <br />
<br />
MODULES<br />
<br />
V této části můžete sepsat jména modulů, která chcete zavést při bootu bez potřeby je svázat s hardwarovým zařízení jako v modprobe.conf (nebo modules.conf, pokud je použito jádro řady 2.4.x). Jednoduše zde přidejte název modulu a jakékoliv volby (pokud jsou potřeba) umístěte do modprobe.conf. Modul s vykřičníkem ('!') v předponě nebude při bootu zaveden. <br />
<br />
INTERFACES<br />
<br />
Zde definujete nastavení pro vaše síťové rozhraní. Implicitní řádky a přiložené komentáře vysvětlují nastavení celkem dobře. Jestliže nepoužíváte ke konfiguraci zařízení DHCP, mějte na paměti, že hodnota proměnné (jejíž název musí být ekvivalentní názvu zařízení, které se předpokládá nakonfigurovat) odpovídá řádku, který by byl připojen k příkazu ifconfig, pokud byste chtěli nakonfigurovat zařízení manuálně v shellu. <br />
<br />
ROUTES<br />
<br />
Své vlastní statické síťové trasy můžete definovat libovolnými jmény zde. Pro představu se podívejte na příklad implicitní brány (gateway). Nastavená část je zpracovávána obyčejným způsobem stejně jako byste ji předali příkazu route add. Proto, pokud nevíte jak má vypadat zápis, je doporučeno si přečíst man route. <br />
<br />
DAEMONS<br />
<br />
Tato část obsahuje názvy skriptů obsažených v /etc/rc.d/, které se mají spustit při bootování. Pokud má název skriptu předponu s vykřičníkem (!), tak není spouštěn. Obvykle není potřeba měnit implicitní nastavení, abyste spustili systém, ale upravujte toto pole, jakmile si například nainstalujete systémové služby jako sshd. <br />
<br />
=====/boot/grub/menu.lst=====<br />
<br />
GRUB je implicitní zavaděč pro Arch Linux. Pokud ho chcete použít, měli byste zkontrolovat a upravit tento soubor pro vaše bootovací nastavení, jinak si přečtěte o konfiguraci zavaděče LILO.<br />
<br />
Konfigurace GRUBu je celkem jednoduchá, největší překážka je, že používá jiné jmenné schéma zařízení, odlišné od DevFS a /dev; vaše pevné disky jsou označovány jako (hd0), (hd1), atd., postupně číslovány v pořadí výskytu na IDE/SCSI sběrnici, přesně jako podadresáře disc0, disc1, atd. v DevFS. Oddíly disku jsou označovány (hd0,0), (hd0,1) a tak dále, kde 0 značí první oddíl. Pár převodních příkladů pro lepší pochopení se nachází v originálním souboru menu.lst.<br />
<br />
Jakmile chápete koncept pojmenovávání zařízení, vše co potřebujete udělat, je vybrat vhodný titulek pro vaší bootovací sekci(e), doplnit správný oddíl zařízení jako parametr u volby root, který bude při startu připojen jako / a vytvořit řádek kernel, který zahrnuje oddíl a cestu, kde se nachází jádro, včetně jakýchkoli bootovacích parametrů. Měli byste být spokojeni s implicitními hodnotami, pouze zkontrolujte zda souhlasí nastavení oddílu na řádcích root a kernel.<br />
<br />
<u>Poznámka překladatele</u>: Následující příklad ukazuje konfiguraci s odděleným oddílem boot (předchozí odstavec mi to napoprvé moc nevysvětlil). U volby root je nastaven oddíl boot (/dev/hda5) a na řádku kernel je vyplněna cesta k jádru přímo na tomto oddílu. Parametr root na řádku kernel udává cestu k opravdovému rootu, který bude připojen při bootování. Přípojný bod /boot se však připojí až teprve při bootování, když se připojují ostatní oddíly z /etc/fstab.<br />
<br />
# (0) Arch Linux<br />
title Arch Linux [/boot/vmlinuz26]<br />
root (hd0,4)<br />
kernel /vmlinuz26 devfs=nomount root=/dev/hda6 ro<br />
initrd /initrd26.img<br />
<br />
Pro vytvoření bootovací možnosti, která zavádí bootsektor jiného OS, může pomoci tento příklad. S tímto postupem budete pravděpodobně úspěšní při startování jakéhokoliv operačního systému společnosti Microsoft. Jednoduše přidejte tento blok do souboru za ostatní sekce a upravte oddíly zařízení tak, aby ukazovali na oddíly obsahující bootsektory OS, do kterého chcete bootovat.<br />
<br />
# (1) Další OS<br />
title Můj další OS<br />
rootnoverify (hd0,1)<br />
makeactive<br />
chainloader +1<br />
<br />
Pro pokročilejší konfiguraci dalších OS, prosím prozkoumejte online GRUB manual.<br />
<br />
=====/etc/lilo.conf=====<br />
<br />
Toto je konfigurační soubor pro zavaděč LILO. Pokud chcete k zavedení systému používat LILO, tak se ujistěte, že jste tento soubor nastavili správně. Pro podrobnější informace viz dokumentace k LILU.<br />
<br />
Věci, které byste měli zkontrolovat, jsou řádky root= v sekcích obrazů (image) a řádek boot= v začátku souboru. Řádek root určuje zařízení, které by mělo být při bootu připojené jako kořenový souborový systém. Pokud nevíte co by zde mělo být, změňte na jiný terminál a napište mount, kde uvidíte seznam aktuálně připojených jednotek a hledejte řádek, který zobrazuje název zařízení připojený na /mnt typu [...]. Cesta zařízení na začátku tohoto řádku by měla být zadána na řádcích root vašeho souboru lilo.conf. Pokud je to tedy nutné, tak je změňte.<br />
<br />
Řádek boot by měl být ve většině případech implicitně v pořádku. Pokud nechcete podivně nastavit boot manažer s úmyslem zavádět více OS, zařízení uvedené zde by mělo mít stejné označení disku jako mají vaše řádky root, ale nekončit part1 nebo něčím podobným, ale pouze disc. Takto uvedený disk jako celek, ne jen jeden z jeho oddílů, nařizuje LILU zapisovat do Master Boot Record, který je obvykle jaký chcete. Pokud ne, můžete opravit přepsaný boot sektor jiného OS později.<br />
K předejití některých vážných neštěstí, byste se měli přesvědčit, že víte jak obnovit bootsektor vašich ostatních OS, například s Windowsovými nástroji FIXBOOT/FIXMBR.<br />
<br />
Z bezpečnějšího hlediska byste měli zachovat volbu lba32 hned pod řádkem prompt. Toto pomůže předejít některým problémům vycházejícím z geometrie disku.<br />
<br />
V některých případech, v závislosti na vašem BIOSu, LILO nespouští bootování a vypisuje donekonečna chybové kódy. Ve většině případech jste buď odstranili volbu lba32, nebo máte speciální hardwarové nastavení, čímž je myšleno, že možná je vaše CD-ROM mechanika zapojena jako primary master a pevný disk jako secondary slave. Toto může velice dobře dráždit váš BIOS a zabránit bootování. Preventivně to můžete zkusit a zapojit disk na vaší sběrnici IDE jako primary master. Jestliže máte smíšený systém s IDE i SCSI a problém přetrvává, budete pravděpodobně muset trochu experimentovat s volbami LILA disk a BIOSu a zajistit pracující mapování. Diskové jednotky ve vašem systému jsou číslovány postupně dle vašeho BIOSu, počínaje 0x80. Když máte štěstí, váš SCSI řadič vám řekne, který disk má které BIOS ID, ale obvykle to tak nebývá. Jak jsou disky skutečně očíslovány závisí na vašem BIOSu, takže v nejhorším případě můžete pouze odhadovat, dokud to nebude pracovat. Typický řádek s diskem by mohl vypadat jako tento:<br />
<br />
boot=/dev/discs0/disc0/disc<br />
disk=/dev/discs0/disc0/disc bios=0x80<br />
<br />
Volba disk mapuje BIOS ID na diskové zařízení známé pro Linux. Nutno podotknout, že toto je stále bez garance, takže někomu to může fungovat, ačkoli jiným ne. Tudíž nezoufejte, pokud všechny vaše pokusy ztroskotají, ale raději zkuste přeuspořádat váš hardware způsobem, který není zase až tak zastaralý. V této oblasti toho může být příliš mnoho, co může selhat a pro vysvětlení zde, je potřeba speciální obsluhy. Ve většině případů bude beztak postačovat volba lba32. Staré pevné disky budou obvykle potřebovat o trošku více zvláštní péče, pokud budou dělat co bylo řečeno.<br />
Při čtení této sekce nebuďte nervózní. Já (Dennis) jsem se třeba zarazil u tohoto problému pouze když jsem experimentoval s dosti starým systémem a tak mě napadlo, že by byl dobrý nápad se zde o tomto trháku a práce kolem zmínit. Vy pravděpodobně nebudete cítit potřebu něco takového zkusit a pokud ano, použijete GRUB. ;)<br />
<br />
Jak obnovit LILO boot sektor pouze se záchranným diskem je vysvětleno později v tomto dokumentu.<br />
<br />
=====/etc/hosts=====<br />
<br />
Toto je soubor, kde udržujete hostname/IP páry ostatních počítačů ve vaší síti. Pokud není hostname součástí DNS, můžete to přidat zde. Obvykle zde není potřeba nic měnit, ale mohli byste chtít do tohoto souboru přidat hostname a hostname+doména stroje, rozdělující IP vašeho síťového rozhraní. Pokud nevíte co děláte, nechte tento soubor být, dokud si nepřečtete man hosts.<br />
<br />
=====/etc/fstab=====<br />
<br />
Vaše nastavení souborových systémů a přípojných bodů jsou nastavovány zde. Instalační program by měl pro vás vytvořit nezbytné položky, ale i tak byste měli překontrolovat, zda jsou správné.<br />
<br />
=====/etc/modprobe.conf=====<br />
<br />
Tento soubor je používán pouze s jádry řady 2.6.x.<br />
<br />
Říká jádru, které moduly je potřeba zavést pro systémová zařízení. Například, když má jádro zavést síťový modul Realtek 8139 pokud se startuje síť (např. při pokusu nastavit eth0), použijte tento řádek:<br />
<br />
alias eth0 8139too<br />
<br />
Syntaxe tohoto souboru je téměř identická starému schématu modules.conf, ledaže používáte některé více exotické volby jako post-install. Pak byste měli investovat trošku času do čtení man modprobe.conf.<br />
<br />
=====/etc/modules.conf=====<br />
<br />
Tento soubor je používán pouze s jádry řady 2.4.x.<br />
<br />
Říká jádru, které moduly je potřeba zavést pro systémová zařízení. Například, když má jádro zavést síťový modul Realtek 8139 pokud se startuje síť (např. při pokusu nastavit eth0), použijte tento řádek:<br />
<br />
alias eth0 8139too<br />
<br />
=====/etc/resolv.conf=====<br />
<br />
Použijte tento soubor pro nastavení vašeho nameserveru(ů), který budete používat. Základním způsobem by to mělo vypadat takto:<br />
<br />
search domain.tld<br />
nameserver 192.168.0.1<br />
nameserver 192.168.0.2<br />
<br />
Nahraďte domain.tld a IP adresy vaším nastavením. Volaná doména za search určuje implicitní doménu, která je automaticky přidána k neúplným hostname. Tímto nastavením se příkaz ping myhost ve skutečnosti změní na příkaz ping myhost.domain.tld s hodnotami uvedenými výše. Tato nastavení obvykle nejsou zase až tak důležité a většina lidí pro teď možná ponechá jejich nastavení být. Pokud používáte DHCP, bude tento soubor automaticky naplněn správnými hodnotami když nastartuje síť, což pro vás znamená, že můžete tento soubor naprosto ignorovat.<br />
<br />
=====/etc/conf.d/*=====<br />
<br />
Během nastavování jsou tyto soubory naprosto nedůležité. Toto považujte pouze za zmínku pro ty, co to zajímá.<br />
<br />
Některé skripty démonů budou mít odpovídající konfigurační soubor v tomto adresáři, jenž obsahuje některé víceméně užitečné implicitní hodnoty. Pokud je démon spuštěn, bude první zdroj nastavení jeho konfiguračním souboru v tomto adresáři a poté soubor /etc/rc.conf. To znamená, že můžete jednoduše soustředit všechny vaše konfigurační volby démona jednoduchým nastavením potřebných hodnot v rc.conf, nebo pokud vám toto nevyhovuje, rozdělit konfiguraci do více souborů. Není život nádherný, když je všechno jen jednoduché skriptování?<br />
<br />
=====/etc/profile=====<br />
<br />
Tento skript k inicializaci systému je spuštěn při každém uživatelském přihlášení. Pod Arch Linuxem je udržován velice jednoduše (jako většina věcí). Můžete si ho pro vaše potřeby upravit jak se hodí.<br />
<br />
Když chcete změnit nastavení jazyka (implicitní je angličtina), stačí, když upravíte řádek v /etc/profile<br />
<br />
export LANG=mé_locale<br />
<br />
K získání seznamu možných nastavení locale v systému se zaměřte na výstup příkazu <code>locale -a</code>. Vyberte jedno, které vám vyhovuje nejvíce, a nastavte jím hodnotu proměnné LANG. Více na stránce [[Nastavení locales]].<br />
<br />
Popravdě řečeno: jazyková nastavení by se měla provádět v souboru [[rc.conf]], v případě jednotlivých uživatelů pak v jejich souborech .bashrc.<br />
<br />
===Bootovací skripty===<br />
<br />
Arch Linux používá zcela jednoduché bootovací sekvence dosti podobné těm z *BSD. První spouštěný bootovací skript je /etc/rc.sysinit. Když skončí, bude zavolán (při normálním bootování) /etc/rc.multi. Poslední spouštěný skript bude /etc/rc.local. Pokud se startuje do runlevelu 1 (jednouživateský mód), je spuštěn místo /etc/rc.multi skript /etc/rc.single. Nehledejte ustavičnou kolekci symbolický odkazů v adresáři /etc/rc?.d/, které slouží jako bootovací sekvence pro každý runlevel. Ve skutečnosti kvůli tomuto přístupu má Arch opravdu pouze tři runlevely, pokud do tohoto případu počítáte i startování X v runlevelu 5. Bootovací skripty používají proměnné a definice nalezené v souboru /etc/rc.conf a také nastavení obecných funkcí definovaných ve skriptu /etc/rc.d/functions. Pokud si plánujete napsat svého vlastního démona, měli byste vzít v úvahu prozkoumání tohoto souboru i již existujících démonů.<br />
<br />
===Přehled bootovacích skriptů===<br />
<br />
1. /etc/rc.sysinit<br />
2. /etc/rc.single<br />
3. /etc/rc.multi<br />
4. /etc/rc.local<br />
5. /etc/rc.shutdown<br />
6. /etc/rc.local.shutdown<br />
7. /etc/rc.d/*<br />
<br />
=====/etc/rc.sysinit=====<br />
<br />
Hlavní systémový bootovací skript. Provádí při bootu zásadní věci jako připojování souborových systémů, spouštění devfsd, aktivaci swap, zavádění modulů, nastavení lokalizačních parametrů, atd. Pravděpodobně nebude nikdy potřeba tento soubor upravovat!<br />
<br />
=====/etc/rc.single=====<br />
<br />
Jednouživatelský režim. Není použit při normálním bootu. Pokud je systém nastartován v jednouživatelském režimu, například s parametrem jádra 1 před bootováním nebo při normálních víceuživatelských operacích s příkazem init 1, tento skript zajišťuje, že nebude spuštěn žádný démon s výjimkou naprostého minima; syslogd, klogd a devfsd. Jednouživatelský režim je užitečný, pokud potřebujete provést nějaké změny v systému a být si jisti, že žádný vzdálený uživatel nemůže udělat cokoli, co by mohlo způsobit poškození nebo ztrátu dat.<br />
<br />
Pro desktopové uživatele je tento prostý režim obvykle neužitečný. Pravděpodobně nebudete nikdy potřebovat tento soubor upravit.<br />
<br />
=====/etc/rc.multi=====<br />
<br />
Víceuživatelský startovací skript. Startuje všechny démony, které jste nakonfigurovali v seznamu DAEMONS (nastavte v /etc/rc.conf) po kterých zavolá /etc/rc.local. Neměli byste cítit potřebu upravovat tento soubor.<br />
<br />
=====/etc/rc.local=====<br />
<br />
Lokální víceuživatelský startovací skript. Je vhodným místem pro umístění posledních příkazů, které chcete, aby systém spustil u konce bootovacího procesu. Toto je nakonec jediný skript, který byste měli upravit, pokud je to potřeba a máte naprostou svobodu v tom, co do něj přidat.<br />
<br />
Většina společných konfiguračních úloh systému, jako zavádění modulů, změna písma v konzoli, nebo nastavení zařízení, mají obvykle patřičně vyhrazené místo. K zabránění nepořádku byste se měli ujistit, že vše, co máte v úmyslu přidat do vašeho rc.local, by nemělo spíše patřit do /etc/profile.d/ nebo na jiné již existující místo.<br />
<br />
=====/etc/rc.shutdown=====<br />
<br />
Skript pro ukončení systému. Zastavuje démony, odpojuje souborové systémy, deaktivuje swap, atd. Toho si nevšímejte.<br />
<br />
=====/etc/rc.d/*=====<br />
<br />
Tento adresář obsahuje skripty démonů volané ze seznamu DAEMONS v rc.conf. Kromě toho, že jsou spouštěny při bootu, můžete tyto skripty použít při spuštěném systému k ovládání systémových služeb. Například příkaz<br />
<br />
/etc/rc.d/postfix stop<br />
<br />
zastaví démon postfix. Samozřejmě tento skript existuje pouze tehdy, pokud je nainstalován příslušný balíček (v tomto případě postfix). Se základní instalací systému zde moc skriptů nemáte, ale buďte ujištěni, že všechny důležité skripty démonů končí zde. Tento adresář je velice podobný adresářům /etc/rc3.d/ nebo /etc/init.d/ z jiných distribucí, bez všech symbolických odkazů.<br />
<br />
===Správa uživatelů===<br />
<br />
Uživatelé a skupiny mohou být přidávány a mazány se standardními příkazy obsažené v balíčku util-linux: useradd, userdel, groupadd, groupdel, passwd a gpasswd. Typický způsob přidání uživatele je podobný této proceduře:<br />
<br />
<br />
useradd -m -s /bin/bash johndoe<br />
passwd johndoe<br />
<br />
<br />
První příkaz do systému přidá uživatele nazvaného johndoe a vytvoří pro něj domovský adresář v /home/johndoe, do kterého umístí nějaké implicitní přihlašovací soubory. Také bude nastaven jeho přihlašovací shell na /bin/bash. Druhý příkaz se Vás zeptá na heslo pro uživatele johndoe. Heslo je potřeba k aktivování účtu.<br />
<br />
Jako alternativa k příkazu useradd je možno také použít dostupný skript adduser k interaktivnímu vytvoření nových uživatelů ve vašem systému jednoduchým zodpovězením otázek.<br />
<br />
Pro více informací o zbývajících příkazech si pročtěte příslušné manuálové stránky. Je dobrý nápad, vytvořit jeden nebo více normálních uživatelů pro každodenní práci k plnému využití dostupných bezpečnostních vlastností a minimalizovaní potenciálních škod, které mohou být důsledkem používání uživatele root pro cokoli jiného, než pouze administrační úlohy systému.<br />
<br />
===Zpřístupnění internetu===<br />
<br />
Kvůli nedostatku vývojářů pro dial-up problematiku, je pro připojení Archu k internetu pomocí dial-up linky potřeba mnoho manuálních nastavení. Jestliže je to vůbec možné, nastavte si vyhrazený router, který pak můžete použít jako implicitní bránu pro Arch PC.<br />
<br />
Pár hezkých dokumentů příbuzného tématu naleznete na Arch Linux Wiki<br />
<br />
===Analogový modem===<br />
<br />
Pro použití kompatibilního, externího, analogového modemu potřebujete přinejmenším mít nainstalován balíček ppp. Upravte soubor /etc/ppp/options pro vaše potřeby a podle man pppd. Dále budete potřebovat nadefinovat chat skript pro vyslání uživatelského jména a hesla vašemu ISP po prvním potvrzeném spojení. Manuálové stránky pro pppd a chat obsahují příklady, které by měly postačovat pro navázání spojení a provozu, ať už jste zkušení či tvrdohlaví. V DevFS, jsou vaše sériové porty obvykle /dev/cua0 a /dev/cua1.<br />
<br />
Náhradou za vybojování slavné bitvy s prostým pppd, můžete zvolit instalaci wvdial nebo podobného nástroje k podstatně jednoduššímu procesu nastavení.<br />
<br />
V případě, že používáte WinModem, jež je zásuvná PCI karta pracující jako interní analogový modem, měli byste využít rozsáhlých informací, které naleznete na domovské stránce LinModem.<br />
<br />
===ISDN===<br />
<br />
Nastavení ISDN se provádí ve třech krocích:<br />
<br />
<br />
1. Instalace a konfigurace hardwaru<br />
<br />
2. Instalace a konfigurace nástrojů ISDN<br />
<br />
3. Přidání nastavení pro vašeho ISP<br />
<br />
<br />
Současná kmenová jádra Archu obsahují nezbytné ISDN moduly, takže není potřeba překompilovávat vaše jádro, pokud ovšem nepoužíváte poměrně odlišný ISDN hardware. Po fyzickém nainstalování vaší ISDN karty do vašeho stroje, nebo po připojení ISDN-Boxu na váš USB port, můžete zkusit zavést moduly pomocí modprobe. Téměř všechny pasivní ISDN PCI karty jsou ovládány modulem hisax, který potřebuje dva parametry; type a protocol. Pokud váš kraj používá standard 1TR6, musíte nastavit protocol na '1'. Jestliže používá EuroISDN (EDSS1) nastavte '2'. Když využíváte pronajatou linku bez D-kanálu nastavte '3' a pro US NI1 použijte nastavení '4'.<br />
<br />
Podrobnosti o všech těchto nastaveních a jak je nastavit jsou zahrnuty v dokumentaci jádra, dále typicky v podadresáři isdn, nebo jsou k dispozici online. Parametr type závisí na vaší kartě. Seznam všech možných typů je k nalezení v dokumentaci jádra v souboru README.HiSax. Zvolte si vaši kartu a zaveďte modul s patřičnými volbami jako třeba tyto:<br />
<br />
modprobe hisax type=18 protocol=2<br />
<br />
Toto zavede modul hisax pro můj ELSA Quickstep 1000PCI, používaný v Německu s protokolem EDSS1. Užitečný ladící výstup byste měli nalézt ve vašem souboru /var/log/debug, ve kterém můžete vidět, jestli je vaše karta připravena pro činnost. Uvědomte si, že před tím, než můžete pracovat s externím USB ISDN adaptérem, budete pravděpodobně potřebovat zavést některé usb moduly.<br />
<br />
Jakmile si budete jisti, že vaše karta s určitým nastavením pracuje, můžete přidat volby modulu do vašeho souboru /etc/modprobe.conf (nebo /etc/modules.conf pokud používáte jádro řady 2.4.x):<br />
<br />
alias ippp0 hisax<br />
options hisax type=18 protocol=2<br />
<br />
Eventuelně zde můžete pouze přidat řádek options a přidat hisax k vašemu seznamu MODULES v rc.conf. Je to jen vaše volba, ale tento příklad má tu výhodu, že modul nebude zaveden dokud nebude opravdu potřeba.<br />
<br />
Pokud jste použili tento postup, měl by podporovaný hardware pracovat. Nyní potřebujete pro skutečné použití některé základní nástroje!<br />
<br />
Začněte instalací balíčku isdn4k-utils a pročtením manuálové stránky k isdnctrl. Níže v manuálové stránce najdete vysvětlení jak vytvořit konfigurační soubor, který může analyzovat isdnctrl, stejně tak jako užitečné příklady nastavení.<br />
Nezapomeňte, že pokud používáte US NI1, musíte přidat váš SPID do vašeho nastavení MSN oddělením dvojtečkou.<br />
<br />
Poté co jste nakonfigurovali vaší ISDN kartu pomocí nástroje isdnctrl, byste sice měli být schopni vytočit specifický cíl díky parametru PHONE_OUT, ale selže ověření uživatelského jména a hesla. Aby to fungovalo, přidejte vaše uživatelské jméno a heslo do /etc/ppp/pap-secrets nebo /etc/ppp/chap-secrets, jako kdybyste konfigurovali normální analogovou linku PPP, v závislosti na protokolu, který používá váš ISP pro ověřování. Pokud máte pochybnosti, umístěte vaše údaje do obou souborů.<br />
<br />
Pokud jste vše nastavili správně, měli byste být nyní schopni pomocí isdnctrl dial ippp0 jako root vytvořit dial-up spojení. Pokud jste narazili na nějaký problém, nezapomeňte zkontrolovat logovací soubory!<br />
<br />
===DSL (PPPeE)===<br />
<br />
Tyto instrukce se Vás týkají pouze, pokud má přímo vaše PC řídit připojení k vašemu ISP. Pokud to nepotřebujete, nedělejte nic, pouze správně nadefinujte implicitní bránu, jestliže používáte oddělený router.<br />
<br />
Předtím, než budete moci použít vaše DSL připojení, budete muset fyzicky nainstalovat síťovou kartu, která bude určená pro připojení k DSL-Modemu. Po přidání vaší nově nainstalované síťové karty do modules.conf/modprobe.conf nebo seznamu MODULES, byste měli nainstalovat balíček rp-pppoe a spustit skript adsl-setup pro konfiguraci vašeho připojení. Poté co máte zadané všechny údaje, můžete připojovat a odpojovat vaší linku pomocí<br />
<br />
/etc/rc.d/adsl start<br />
<br />
respektive<br />
<br />
/etc/rc.d/adsl stop<br />
<br />
Nastavení je obvykle poměrně snadné a přímé, ale pro dobrý pocit je dobré si přečíst manuálové stránky. Pokud chcete provést vytáčení automaticky při bootu, přidejte adsl do vašeho seznamu DAEMONS.<br />
<br />
===Správa balíčků===<br />
<br />
====Pacman====<br />
<br />
Pacman je správce balíčků, který sleduje všechen software instalovaný do vašeho systému. Má jednoduchou podporu závislostí a pro všechny balíčky používá standardní formát archivu tar-gz. Některé obecné úlohy jsou vysvětleny níže s příslušnými příkazy v dlouhé i krátké formě voleb. Pro aktuální výklad voleb pacmana si přečtěte man pacman. Tento přehled je pouze takové polechtání na povrchu skutečných schopností programu pacman.<br />
<br />
Typické úlohy:<br />
<br />
1. Přidání nového balíčku z balíčkového souboru<br />
<br />
2. Aktualizace balíčku z balíčkového souboru<br />
<br />
3. Odstranění balíčků<br />
<br />
4. Obnovení seznamu balíčků<br />
<br />
5. Aktualizace systému<br />
<br />
6. Přidání/Aktualizace balíčku z repozitářů<br />
<br />
7. Výpis nainstalovaných balíčků<br />
<br />
8. Kontrola, jestli je určitý balíček nainstalován<br />
<br />
9. Zobrazení informací o balíčku<br />
<br />
10. Zobrazení seznamu souborů obsažených v balíčku<br />
<br />
11. Zjištění, kterému balíčku náleží určitý soubor<br />
<br />
<br />
=====Přidání nového balíčku z balíčkového souboru=====<br />
<br />
pacman --add foo.pkg.tar.gz<br />
pacman -A foo.pkg.tar.gz<br />
<br />
Nainstaluje do systému balíček foo.pkg.tar.gz. Jestliže chybí některé závislosti, pacman skončí s chybou a hlášením o chybějících závislostech, přičemž se nepokouší vyřešit závislosti automaticky. Jestliže očekáváte tuto funkčnost, podívejte se na volbu --sync.<br />
<br />
=====Aktualizace balíčku z balíčkového souboru=====<br />
<br />
pacman --upgrade foo.pkg.tar.gz<br />
pacman -U foo.pkg.tar.gz<br />
<br />
Tato volba dělá v podstatě to samé jako operace --add, ale navíc ještě aktualizuje již nainstalovaný balíček. Já osobně si neumím představit případ, kde byste měli preferovat --add před funkcí --upgrade.<br />
<br />
=====Odstranění balíčků=====<br />
<br />
pacman --remove foo<br />
pacman -R foo<br />
<br />
Odstraní všechny soubory příslušející balíčku jménem foo, s výjimkou konfiguračních souborů, které byly upraveny. Tomuto příkazu se předává pouze jméno balíčku bez přípony pkg.tar.gz.<br />
<br />
Pro odstranění naprosto všech stop po balíčku, přidejte k výše uvedenému příkazu volbu --nosave.<br />
<br />
=====Obnovení seznamu balíčků=====<br />
<br />
pacman --sync --refresh<br />
pacman -Sy<br />
<br />
Tato volba získá hlavní a čerstvý seznam balíčků z repozitářů definovaných v souboru /etc/pacman.conf a rozbalí ho do databáze. Před použitím volby --sysupgrade byste měli použít právě toto, abyste si byli jistí, že dostanete opravdu nejnovější balíčky. V závislosti na vašem nastavení v pacman.conf může tento příkaz vyžadovat funkční připojení k internetu, pro přístup k FTP-repozitářům. Tato volba je dost podobná příkazu z Debianu apt-get update.<br />
<br />
=====Aktualizace systému=====<br />
<br />
pacman --sync --sysupgrade<br />
pacman -Su<br />
<br />
Tento příkaz aktualizuje všechny balíčky v systému, které jsou zastaralé porovnáním lokální verze balíčků s verzemi v hlavním seznamu, který byl získán díky příkazu --refresh. Pro zachování aktuálního systému je toto dobré občas spouštět. Dejte si pozor na to, že tento příkaz implicitně NEOBNOVUJE hlavní seznam balíčků, takže je obvykle dobrý nápad zkombinovat oba příkazy do jednoho:<br />
<br />
pacman --sync --refresh --sysupgrade<br />
pacman -Syu<br />
<br />
S těmito volbami pacman automaticky získá hlavní aktuální seznam balíčků a provede úplnou aktualizaci systému nejnovějšími balíčky s automatickým vyřešením všech závislostí. Hodně často budete asi spouštět spíše toto.<br />
<br />
=====Přidání/Aktualizace balíčku z repozitářů=====<br />
<br />
pacman --sync foo<br />
pacman -S foo<br />
<br />
Získá a nainstaluje balíček foo, kompletně se všemi závislostmi, které vyžaduje. Před použitím kterékoliv volby sync se ujistěte, že jste obnovili seznam balíčků, nebo přidejte --refresh či -y k volbám, pro obnovení ještě před pokusem o instalaci. Na rozdíl od --add, volba --sync nerozlišuje mezi instalací a aktualizací balíčků. V závislosti na vašem nastavení v pacman.conf může tato funkce vyžadovat funkční internetový přístup.<br />
<br />
=====Výpis nainstalovaných balíčků=====<br />
<br />
pacman --query<br />
pacman -Q<br />
<br />
Zobrazí seznam všech nainstalovaných balíčků v systému.<br />
<br />
=====Kontrola, jestli je určitý balíček nainstalován=====<br />
<br />
pacman --query foo<br />
pacman -Q foo<br />
<br />
Namísto "grepování" (od příkazu grep) celého seznamu jedním názvem, můžete přidat jméno balíčku, který hledáte za příkaz query. Tento příkaz zobrazí jméno a verzi balíčku foo, pokud je nainstalován, jinak nevypíše nic.<br />
<br />
=====Zobrazení informací o balíčku=====<br />
<br />
pacman --query --info foo<br />
pacman -Qi foo<br />
<br />
Zobrazí informace o nainstalovaném balíčku foo (velikost, datum instalace, datum sestavení, závislosti, konflikty, atd.). Pro zobrazení těchto informací u balíčku, který není nainstalován, přidejte volbu --file nebo respektive -p:<br />
<br />
pacman --query --info --file foo.pkg.tar.gz<br />
pacman -Qip foo.pkg.tar.gz<br />
<br />
=====Zobrazení seznamu souborů obsažených v balíčku=====<br />
<br />
pacman --query --list foo<br />
pacman -Ql foo<br />
<br />
Vypíše všechny soubory obsažené v balíčku foo.<br />
<br />
=====Zjištění, kterému balíčku náleží určitý soubor=====<br />
<br />
pacman --query --owns /cesta/k/souboru<br />
pacman -Qo /cesta/k/souboru<br />
<br />
Tento dotaz zobrazí jméno a verzi balíčku, který obsahuje soubor předaný s jeho plnou cestou jako parametr.<br />
<br />
===Arch Build System (ABS)===<br />
<br />
Binárka versus zdroják<br />
<br />
Kde je pacman zodpovědný za binární stranu světa balíčků, ABS je zodpovědný za zdrojovou stranu: Pomáhá vám sestavit vaše vlastní balíčky ze zdrojových kódů, ale také Vás nechat přestavět balíčky Arch Linuxu podle vašich vlastních představ. Procedura obvykle vypadá následovně:<br />
<br />
<br />
1. Synchronizace vašeho ABS stromu se serverem (spustit abs jako root).<br />
<br />
2. Vytvořit nový adresář v /var/abs/local/ pojmenovaný po balíčku, který budete vytvářet.<br />
<br />
3. Překopírovat prototyp PKGBUILD.proto z /var/abs/ do vašeho nově vytvořeného adresáře, odstranit příponu proto a upravit ho pro nový balíček.<br />
<br />
4. Spustit makepkg v pracovním adresáři se souborem PKGBUILD.<br />
<br />
5. Nainstalovat nově sestavený balíček pomocí pacman.<br />
<br />
6. Poslat balíček vašim přátelům a zaslouženě se pochlubit (nebo ho poslat Archerům, aby ho mohli umístit v hlavním ABS stromu).<br />
<br />
===Synchronizace vašeho ABS stromu===<br />
<br />
Všechny soubory PKGBUILD ve /var/abs můžete synchronizovat spuštěním skriptu abs jako root. Pro tuto práci je potřeba balíček cvsup, takže jestli ho nemáte nainstalován, bude si stěžovat. Použití CVS jako přenosové médium umožňuje sledovat rozdílné verze stromů s ABS - toto může být nastaveno v /etc/abs/supfile.arch. Například, implicitní supsoubor je nastaven pro sledování stromu balíčků current, který je vypilovaný a je doporučený jako zdroj pro sledování. Můžete také sledovat specifické verze. Pro více informací si prohlédněte komentáře v supsouborech (supfiles).<br />
<br />
ABS podporuje vícenásobné repozitáře, které mohou být povoleny nebo zakázány v /etc/abs/abs.conf. Implicitně abs sleduje repozitáře current a extra, ale ne unstable.<br />
<br />
Také prozkoumejte soubor /etc/abs/supfile.extra. Ten vám dává přístup ke všem neoficiálním sestaveným skriptům, které nebyly zahrnuty v hlavním repozitáři ABS. Pokud nechcete tento repozitář používat, můžete soubor smazat, ale obvykle dává větší smysl raději adekvátně upravit abs.conf.<br />
<br />
===Jak sestavit balíček===<br />
<br />
Konstrukční proces je důkladně vysvětlen v manuálové stránce makepkg. Pro instrukce ke konstrukci vašich vlastních balíčků si ji prohlédněte. Pokud vám to nepomohlo, směřujte váš pohled na tutoriály na Wiki, nebo požádejte o pomoc na fóru či IRC.<br />
<br />
====Směrnice pro balíčky====<br />
<br />
Při konstrukci balíčku pro Arch Linux byste měli dodržovat '''směrnice pro balíčky''' (viz níže) zvláště tehdy, když byste chtěli přispět vaším novým balíčkem do Arch Linuxu.<br />
<br />
'''Pojmenování balíčků'''<br />
<br />
Jména balíčků by měly obsahovat pouze alfanumerické znaky; všechna písmena by měla být malá.<br />
<br />
Verze balíčků by měly být stejné jako verze uvolněné autorem. Verze mohou zahrnovat písmena, pokud bude potřeba (např. verze programu nmap je 2.54BETA32). Značení verzí nesmí obsahovat pomlčky! Pouze písmena, čísla a tečky.<br />
<br />
Uvolňované balíčky jsou pro Arch Linux specifické. Toto umožňuje uživateli rozlišovat mezi novějšími a staršími konstrukcemi balíčků. Pokud je verze nového balíčku uvolněna poprvé, počítadlo uvolnění začíná na 1. Někdy jsou provedeny opravy a optimalizace, balíček je pro veřejnost AL uvolněn znovu a číslo uvolnění narůstá. Když vyjde nová verze, počítadlo uvolnění je opět nastaveno na 1. Pro značení uvolnění balíčků platí stejná omezení pojmenování jako pro značení verzí.<br />
<br />
====Adresáře====<br />
<br />
Konfigurační soubory by měly být umístěny v adresáři /etc. Pokud je zde více než jeden konfigurační soubor, je obvykle použit podadresář, aby se oblast /etc zachovala tak čistá jak je jen možno. Používá se /etc/{pkgname}/, kde {pkgname} je jméno vašeho balíčku (nebo vhodná alternativa, např. apache používá /etc/httpd/).<br />
<br />
Soubory balíčků by se měly držet těchto všeobecných adresářových směrnic:<br />
<br />
/etc Hlavní systémové konfigurační soubory<br />
<br />
/usr/bin Binární soubory aplikací<br />
<br />
/usr/sbin Binární soubory systému<br />
<br />
/usr/lib Knihovny<br />
<br />
/usr/include Hlavičkové soubory<br />
<br />
/usr/lib/{pkg} Moduly, pluginy, atd.<br />
<br />
/usr/man Manuálové stránky<br />
<br />
/usr/share/{pkg} Data aplikací<br />
<br />
/etc/{pkg} Konfigurační soubory pro {pkg}<br />
<br />
/opt Objemné samostatné balíčky jako například KDE, Mozilla, atd.<br />
<br />
====Funkce makepkg====<br />
<br />
Pokud používáte pro konstrukci balíčku makepkg, následující se dělá automaticky:<br />
<br />
<br />
1 Kontrola jestli jsou nainstalovány závislosti balíčku<br />
<br />
2 Stažení zdrojových souborů ze serveru<br />
<br />
3 Rozbalení zdrojových souborů<br />
<br />
4 Provedení nezbytných záplat (patches)<br />
<br />
5 Sestavení softwaru a jeho instalace v předstíraném rootu<br />
<br />
6 Odstranění /usr/doc, /usr/info, /usr/share/doc a /usr/share/info z balíčku<br />
<br />
7 Ořezání symbolů z binárních souborů<br />
<br />
8 Ořezání ladících symbolů z knihoven<br />
<br />
9 Generování meta souboru balíčku, který je obsažený v každém balíčku<br />
<br />
10 Zabalení předstíraného rootu do balíčku<br />
<br />
11 Uložení balíčku v nakonfigurovaném cílovém adresáři (implicitně cwd)<br />
<br />
====Ostatní====<br />
<br />
Pokuste se vyvarovat zavádění nových proměnných do vašeho konstrukčního skriptu PKGBUILD, jelikož by možná mohly být v konfliktu s proměnnými použitými v makepkg.<br />
<br />
Také se vyhněte použití pro cokoliv /usr/libexec/. Místo toho použijte /usr/lib/{pkg}.<br />
<br />
Prostor Packager z meta souboru balíčku může být pozměněn konstruktérem balíčků upravením příslušných voleb v souboru /etc/makepkg.conf, nebo eventuelně exportováním proměnné prostředí PACKAGER před sestavením balíčků pomocí makepkg:<br />
<br />
export PACKAGER="John Doe <váš.email>"<br />
<br />
====Nabízení balíčků====<br />
<br />
'''Před nabídnutím kteréhokoliv balíčku věnujte pozornost následujícím odstavcům:'''<br />
<br />
<br />
1. Prosíme přidejte komentář následujícího formátu na začátek vašeho souboru PKGBUILD:<br />
<br />
Contributor: vaše Jméno <váš.email><br />
<br />
2. Ověřte si závislosti balíčku (např. spuštěním ldd u dynamických souborů, kontrolou nástrojů využívaných ve skriptech, apod.). Také je dobrý nápad, použít utilitu namcap (napsanou Jasonem Chu jason@archlinux.org) k analýze, jestli je váš balíček v pořádku: namcap vám řekne o špatných právech, chybějících závislostech, nepotřebných závislostech, a dalších obvyklých chybách. Balíček namcap si můžete nainstalovat přes pacman.<br />
<br />
3. Všechny balíčky by měly přicházet jako komprimovaný soubor tar obsahující adresář s nově vytvořeným balíčkem, PKGBUILD, filelist a doplňkové soubory (patche, install, ...). Jméno archivu by mělo přinejmenším obsahovat jméno balíčku.<br />
<br />
4. Sledujte oznámení ohledně aktuálně nabízených balíčků, jelikož nová implementace celého postupu bývá současně diskutovaná mezi vývojáři. Pokud si myslíte, že je váš balíček také zajímavý aby počkal, můžete se samozřejmě zeptat spolehlivého uživatele (Trusted User), zda by byl ochotný přijmout váš balíček do zahrnutí v jeho repozitáři.<br />
<br />
==Často kladené otázky (FAQ)==<br />
<br />
Otázky zde uvedené pokrývají jenom některé problémy, kterým se můžete vyhnout při bootování nebo instalaci výchozího systému Arch Linux. Pokud máte otázky ohledně pozdějšího použití systémových utilit, nastavení XFree86, atd. nebo jak nakonfigurovat váš hardware, prosím zamiřte na web Wiki. Jestliže si myslíte, že zde není uveden problém, který by tu měl být, tak prosím upozorněte autora tohoto dokumentu, jehož adresa je k nalezení úplně nahoře v tomto dokumentu.<br />
<br />
<b>Při instalaci balíčku pacman neuspěje, kvůli řešení závislostí balíčku A, protože balíček B není v balíčkové sadě</b><br />
<br />
<i>Pokud není něco velmi poškozené, což by pravděpodobně vedlo k mnohonásobnému nahlášení více lidmi, pravděpodobně jste jen zapomněli připojit správně vaše cílové oddíly. Toto přiměje pacmana rozbalit databázi balíčků do výchozího ramdisku, který se však celkem rychle naplní a nakonec vede k této chybě.<br />
<br />
Ujistěte se, že v menu Filesystem Mountpoints používáte pro potvrzení vašich změn volbu DONE a ne CANCEL. Tato chyba by neměla nastat, jestliže použijete volbu Auto-Prepare; případně to prosím nahlaste jako bug.</i><br />
<br />
<b>Při bootování obdržím zprávu kernel panic: Unable to open initial console</b><br />
<br />
<i>Pravděpodobně jste si zkompilovali své vlastní uživatelské jádro a zapomněli jste zahrnout podporu DevFS. Při konfiguraci vašeho jádra si zajistěte vyžádání pro systémovou podporu souborů /dev (/dev file system support) a Automatické připojování při bootu (Automatically mount at boot). Abyste tyto volby vůbec viděli, budete také potřebovat Výzvu pro vývojáře a/nebo nekompletní kód/ovladače (Prompt for development and/or incomplete code/drivers).</i><br />
<br />
<b>Jak mohu nainstalovat balíčky z instalačního CD pomocí pacman --sync (tak, aby za mě byly vyřešeny závislosti)?</b><br />
<br />
<i>Pokud byste chtěli instalovat balíčky spíše z CD namísto jejich stahování, pak někde připojte instalační CD (např. /mnt/cd) a přidejte následující řádek přímo pod řádek [current] v /etc/pacman.conf:<br />
<br />
Server = file:///mnt/cd<br />
<br />
Nahraďte /mnt/cd přípojným bodem, který jste zvolili. Poté použijte pacman --sync jako obvykle. Nyní by se pro balíčky měl nejprve zkontrolovat adresář /mnt/cd.</i><br />
<br />
<b>Jak mohu vytvořit více oddílů swap během instalace?</b><br />
<br />
<i>Jestliže chcete vytvořit a použít více swap oddílů, tak pochopitelně nebudete moci použít volbu Auto-Prepare. Místo toho vytvořte oddíly manuálně a vytvořte si tolik swap oddílů, kolik si jen vaše srdce žádá. Vraťte se zpět do instalace a při nastavení přípojných bodů si nevšímejte, že jste dotázáni pouze na jeden oddíl swap. Jakmile přejdete přes instalaci a jste u úpravy vašich systémových konfiguračních souborů, můžete upravit soubor fstab a vložit řádek pro každé swap zařízení a při tom i pozměnit již nastavená zařízení. Doplněné swapy budou aktivovány po nabootování, jakmile je inicializačními skripty spuštěn příkaz swapon -a.<br />
<br />
Pokud z nějakého podivného důvodu nemůžete čekat s aktivací více swap oddílů nebo souborů až na konec instalace, budete muset otevřít shell na jednom z virtuálních terminálů a provést swapon <zařízení> pro každou jednotku nebo soubor swap, které jste dříve vytvořili. Poté pokračujte v instalaci jak bylo vysvětleno výše.<br />
<br />
V případě, že upřímně přemýšlíte o nastavení více swap souborů či jednotek byste měli mít na paměti, že jádro, které potřebuje swapovat vlastně ostře požaduje více RAM, ne více swap prostoru. Prosím krmte dobře svého tučňáka. Děkuji.</i><br />
<br />
<b>Jak mohu překonfigurovat LILO ze záchranného režimu?</b><br />
<br />
<i>V prvním kroku jednoduše nabootujte z instalačního CD nebo diskety Archu. Jestliže nejsou vaše oddíly poškozené a nepotřebují kontrolu, měli byste doplnit bootovací parametr jádra root= podle nabízených instrukcí. Toto nabootuje přímo do vašeho systému a vy můžete přeskočit vše, až na poslední krok pro rekonfiguraci a spuštění LILO.<br />
<br />
Pokud nemůžete nabootovat přímo z vašeho starého rootu, nabootujte z CD jako kdybyste chtěli začít instalaci. Jakmile jste v shellu, připojte root oddíl vašeho pevného disku do adresáře /mnt, například takto:<br />
<br />
mount /dev/discs/disc0/part3 /mnt<br />
<br />
Poté připojte kterékoliv další oddíly do jejich náležitých přípojných bodů uvnitř tohoto vašeho rootu, například oddíl /boot:<br />
<br />
mount /dev/discs/disc0/part1 /mnt/boot<br />
<br />
Nyní potřebujete připojit váš adresář DevFS v oblasti /mnt, kde ho bude schopno najít LILO:<br />
<br />
/mnt/bin/mount --bind /dev /mnt/dev<br />
<br />
Jakmile je vše připojeno, udělejte adresář /mnt vaším novým rootem pomocí příkazu chroot /mnt. Spustí se nový shell a umístí vás do adresáře /mnt, který bude od teď považován za váš /.<br />
<br />
Nyní můžete upravit váš /etc/lilo.conf dle vaší chuti a spustit LILO pro opravu čehokoli co bylo potřeba. Pokud chcete opustit tento nový root a vrátit se zpět do originálního souborového stromu, jednoduše napište exit. Nyní můžete použít příkaz reboot a otestovat vaše změny.</i><br />
<br />
<b>Nemohu se přes ssh přihlásit na svůj stroj!</b><br />
<br />
<i>Upravte váš soubor /etc/hosts.deny. Implicitní konfigurace odmítá všechny příchozí spojení.</i><br />
<br />
<b>Jak mohu okamžitě nahrát moduly během bootování?</b><br />
<br />
<i>Jestliže si přejete zavést bezpodmínečně modul bez typických vazeb na zařízení, přidejte jméno modulu do seznamu MODULES vašeho /etc/rc.conf. Pro vyžádané zavedení při přístupu k zařízení ho přidejte jako obykle s příkazem alias do vašeho /etc/modprobe.conf (/etc/modules.conf u jádra řady 2.4). Pokud zavádíte modul prostřednictvím seznamu MODULES a chcete k němu doplnit některé volby, přidejte pouze do souboru /etc/modprobe.conf příslušný řádek options.</i><br />
<br />
<b>Jádro odmítá nabootovat kvůli lost interrupt</b><br />
<br />
<i>Jádro odmítá nabootovat. Zastaví se u:<br />
<br />
IRQ probe failed for hda<br />
hda lost interrupt<br />
<br />
Tato chyba se vyskytuje u některých řadičů HD u jádra řady 2.6.x. Většinou pomáhá přidat k jádru při bootu volbu acpi=off.</i><br />
<br />
<b>Obdržel jsem zprávu access denied při pokusu přehrát zvuk nebo číst disky DVD</b><br />
<br />
<i>Přidejte uživatele do skupin optical a audio. Například:<br />
<br />
gpasswd -a johndoe optical<br />
gpasswd -a johndoe audio<br />
<br />
Změna skupiny se projeví až po odhlášení (logout) a opětovném přihlášení (login) zvoleného uživatele (např. johndoe).<br />
<br />
Pokud máte jednotku DVD, můžete si vytvořit symbolický odkaz /dev/dvd na vaše skutečné DVD zařízení.<br />
<br />
Například, jestliže používáte udev a vaše jednotka DVD je /dev/hdc, proveďte jako root následující:<br />
<br />
cat >>/etc/udev/rules.d/00.rules <<EOF > KERNEL="hdc", NAME="hdc", SYMLINK="dvd" > EOF<br />
/etc/start_udev<br />
mount /dev/pts<br />
mount /dev/shm</i><br />
<br />
<b>Když zkouším instalovat balíčky s pacmanem, obdržím zprávu: error: xorg conflicts with xfree86</b><br />
<br />
<i>Toto je dočasný problém, jelikož provádíme úplný přechod na xorg. V současnosti stále ještě některé balíčky závisí speciálně na xfree86, takže se pacman splete.<br />
<br />
Tento problém můžete vyřešit výslovnou instalací xorg a poté až instalací dalších balíčků.<br />
<br />
pacman -S xorg<br />
pacman -S otherpkg1 otherpkg2 ...<br />
</i></div>EVRAMPhttps://wiki.archlinux.org/index.php?title=GRUB&diff=69591GRUB2009-05-28T15:36:14Z<p>EVRAMP: typo</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers various aspects of the next generation of the GRand Unified Bootloader (GRUB2).}}<br />
<br />
{{Article summary heading|Available in languages}}<br />
{{i18n_entry|English|GRUB2}}<br />
{{i18n_entry|Česky|GRUB2 (Česky)}}<br />
{{i18n_entry|Français|GRUB2 (Français)}}<br />
{{Article summary end}}<br />
<br />
== Introduction ==<br />
{{Warning | The next generation of the GRand Unified Bootloader (GRUB2) is still under development and therefore all usual points apply. GRUB2 may fry your computer, burn your house, make you breakfast or eat your cat. You've been warned! For most people, except those with more exotic configurations, GRUB2 should just work.}}<br />
<br />
Commands &ndash; changes between GRUB and GRUB2. You may want to familiarise yourself with these before proceeding.<br />
E.g.: "find" has been replaced with "search"<br />
<br />
http://grub.enbug.org/CommandList<br />
<br />
== Installing Grub2 package ==<br />
<br />
First install grub2 with pacman:<br />
# pacman -Sy grub2<br />
<br />
Edit the grub2 configuration file with your settings. The 'old' {{Filename|menu.lst}} is replaced by a new file called {{Filename|grub.cfg}}:<br />
# nano /boot/grub/grub.cfg<br />
<br />
{{Note | Use {{Filename|hd[a-z]}} for IDE and {{Filename|sd[a-z]}} for SCSI and SATA.}}<br />
<br />
Here is an example of a simple configuration file:<br />
# Config file for GRUB2 - The GNU GRand Unified Bootloader<br />
# /boot/grub/grub.cfg<br />
<br />
# DEVICE NAME CONVERSIONS<br />
#<br />
# Linux Grub<br />
# -------------------------<br />
# /dev/fd0 (fd0)<br />
# /dev/sda (hd0)<br />
# /dev/sdb2 (hd1,2)<br />
# /dev/sda3 (hd0,3)<br />
#<br />
<br />
# Timeout for menu<br />
set timeout=5<br />
<br />
# Set default boot entry as Entry 0<br />
set default=0<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /vmlinuz26 root=/dev/sda1 ro<br />
initrd /kernel26.img<br />
}<br />
<br />
## (1) Windows<br />
#menuentry "Windows" {<br />
#set root=(hd0,3)<br />
#chainloader +1<br />
#}<br />
<br />
If you do not have a seperate boot-partition, {{Codeline|/boot}} must be added to {{Filename|grub.cfg}}. Example:<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /boot/vmlinuz26 root=/dev/sda1 ro<br />
initrd /boot/kernel26.img<br />
}<br />
<br />
== Installing or Restoring GRUB to the Master Boot Record ==<br />
GRUB may be installed from a live environment, or directly from a running Arch install.<br />
<br />
In most cases, installing grub2 would be as easy as running the '''grub-install''' command as root:<br />
# grub-install /dev/sda<br />
where {{Filename|/dev/sda}} is the destination of the installation (in this case the MBR of the first SATA disc)<br />
<br />
If this fails with the error:<br />
grub-probe: error: Cannot get the real path of `/dev/fd0'<br />
Auto-detection of a filesystem module failed.<br />
Please specify the module with the option `--modules' explicitly.<br />
Try adding {{Codeline|--recheck}} to the arguments as follows:<br />
# grub-install --recheck /dev/sda<br />
<br />
Alternatively, you should be able to install grub2 by booting the system and running the '''grub''' command as root:<br />
# grub<br />
{this section is still incomplete, some steps should be added!!!}<br />
(grub2 doesn't have an interactive prompt)<br />
<br />
== Boot loader configuration ==<br />
The GRUB configuration is done in this file:<br />
/boot/grub/grub.cfg<br />
<br />
Be warned this section is incomplete, feel free to put all missing configuration options here!<br />
<br />
* {{Codeline|(hdn,m)}} is the partition {{Codeline|m}} on disc {{Codeline|n}}, partition numbers starting with 1, disc numbers starting with 0<br />
* {{Codeline|set default&#61;n}} is the default boot entry, that is choosen after timeout for user action<br />
* {{Codeline|set timeout&#61;m}} &ndash; time {{Codeline|m}} to wait in seconds for a user selection, before default is booted<br />
* {{Codeline|menuentry "str"{entry options&#125;}} &ndash; title string {{Codeline|str}} for a boot entry & basic layout<br />
* {{Codeline|set root&#61;(hdn,m)}} &ndash; base partition, where the kernel is stored to<br />
* {{Codeline|linux /path ro root&#61;/dev/device initrd /initrd.img}} &ndash; use the root option, if the kernel not placed in /<br />
* {{Codeline|chainloader +1}} sets {{Codeline|root}} active and gives booting procedure to its boot-loader (for Windows, e.g.)<br />
<br />
For UUID entries:<br />
# blkid<br />
<br />
=== Dual booting===<br />
These are the two most common ways of configuring the {{Filename|grub.cfg}} file. For more complex uses, feel free to add descriptions here.<br />
<br />
====Dual booting with Windows====<br />
Add this at the end of your {{Filename|/boot/grub/grub.cfg}}. This assumes that your Windows partition is {{Filename|[s/h]da3}}.<br />
<br />
# (2) Windows XP<br />
menuentry "Windows XP" {<br />
set root=(hd0,3)<br />
chainloader +1<br />
}<br />
<br />
Note, that although commonly believed to be the case, Windows 2000 and later versions do not need to be on the first partition to boot. If the Windows partition changes number (i.e. if you after install add a partition before the windows partition), you will need to edit the Windows boot.ini file to reflect the change (see [http://vlaurie.com/computers2/Articles/bootini.htm this article] for details on how to do that).<br />
<br />
====Dual booting with other GNU/Linux distros====<br />
This is done exactly the same way that Arch linux is loaded. Here we assume that the other distro is on partition {{Filename|[s/h]da2}}.<br />
menuentry "Other Linux" {<br />
set root=(hd0,2)<br />
linux /boot/vmlinuz (add other options here as required)<br />
initrd /boot/initrd.img (if the other kernel uses/needs one)<br />
}<br />
<br />
==Tips and tricks==<br />
<br />
===Background Image & Bitmap Fonts===<br />
GRUB2 comes with support for background images and bitmap fonts in pf2 format. The unifont font is included in the grub2 package under the filename {{Filename|unicode.pf2}}, or, as only ascii characters under the name {{Filename|ascii.pf2}}. Image formats supported include tga, png and jpeg, providing the correct modules are loaded. The maximum supported resolution depends on your hardware. A configuration sample setting a tga file as background is shown below.<br />
<br />
if loadfont /usr/share/grub/unicode.pf2 ; then<br />
set gfxmode="1024x768x32"<br />
insmod gfxterm<br />
insmod vbe<br />
terminal_output gfxterm<br />
if terminal_output gfxterm; then true ; else<br />
terminal gfxterm<br />
fi<br />
fi<br />
insmod tga<br />
background_image /boot/grub/archlinux.tga<br />
<br />
===Menu Colors===<br />
<br />
To change the colors in GRUB2 you would specify two options in {{Filename|/boot/grub/grub.cfg}}:<br />
<br />
set menu_color_normal=light-blue/black<br />
set menu_color_highlight=light-cyan/blue<br />
<br />
These are the default colors for Arch's release of GRUB-legacy. The available colors are undocumented as of yet, but they probably match GRUB-legacy's colors.<br />
<br />
== Troubleshooting ==<br />
Any troubleshooting should be added here.<br />
<br />
I couldn't figure out how to uninstall grub1, and install grub2 to the MBR, as it isn't being booted by default. It is still booting grub1. So, an easy work-around, is rename {{Filename|menu.lst.pacsave}} or whatever, to {{Filename|menu.lst}} (in /boot/grub/) and for each menu entry that you would like to use grub2, at the end type {{Codeline|"chainloader +1"}}. This will tell grub1 to forward control too grub2. This is an ugly hack though, so I advise setting the {{Filename|menu.lst}}'s timout as 0, otherwise the total timeout would be grub1's time out + grub2's which, for me would equal more than 18 seconds, which is quite a bit.<br />
<br />
P.S. hopefully someone figures out how to pry grub1's dead fingers off of my MBR, and place grub2 on it :) .<br />
<br />
In my case it had to do with my boot partition. Say boot-partition is {{Codeline|(hd0,1)}} and your root is {{Codeline|(hd0,3)}} (grub2 naming). grub-setup searches for {{Filename|(hd0,3)/boot/grub/core.img}}. Just because it's on {{Filename|(hd0,1)/grub/core.img}}, it is unable to find it. So I copied the grub-folder to my root partition and everything worked fine:<br />
<br />
E.g. (as root:)<br />
# mount /boot<br />
# cp -a /boot/grub /<br />
# umount /boot<br />
# mv /grub /boot/<br />
# grub-install /dev/sda<br />
<br />
== More Resources ==<br />
* [http://www.gnu.org/software/grub/ GRUB Homepage]<br />
* [http://grub.enbug.org/ GRUB wiki]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Disable_root_password_and_gain_su_sudo_with_no_password&diff=67478Disable root password and gain su sudo with no password2009-04-24T12:01:13Z<p>EVRAMP: Launching applications with root privilegies using gksudo</p>
<hr />
<div>[[Category:Security (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Disable_root_password_and_gain_su_sudo_with_no_password}}<br />
{{i18n_entry|Français|Disable_root_password_and_gain_su_sudo_with_no_password_(Français)}}<br />
{{i18n_links_end}}<br />
<br />
=Warning=<br />
Arch Linux is not fine tuned to work with a disabled root account. You will most likely run into problems if you don't know exactly what you're doing. Additional, the developers feel that disabling the root account entirely is stupid. <br />
<br />
=Caution=<br />
If your sudo settings break you won't be able to use the root account on your box. When using a remote or headless machine, this can be something of a pain to fix.<br />
<br />
=Why=<br />
# User password strength is equal to root's password, and one must first login to use sudo.<br />
# Root password will be disabled -- anyone trying to log in as root will be denied. Anyone wanting to access the machine must first know the correct username.<br />
# Once local security is compromised the root password is meaningless -- a LiveCD is a perfect backdoor.<br />
<br />
=Requirements=<br />
You'll need "sudo" installed. You can grab it from pacman:<br />
# pacman -S sudo<br />
<br />
=Visudo=<br />
==Opening /etc/sudoers==<br />
You should always use visudo to edit the sudoers file since visudo performs some checks to ensure that the edited file remains valid. Type visudo at a root prompt and edit. The command '''i''' will start edit mode in vi, '''Esc''' will end it, ''':wq''' will save the file and quit, while ''':q!''' will quit without saving.<br />
<br />
If you are uncomfortable with vi, you can use nano instead.<br />
# export EDITOR=nano; visudo<br />
<br />
==Editing /etc/sudoers==<br />
Allow user ziggy sudo from local machine only using HOSTNAME in rc.conf:<br />
ziggy <hostname>=(ALL) ALL<br />
<br />
Allow user arch sudo from anywhere (local/net):<br />
arch ALL=(ALL) ALL<br />
<br />
Allow group wheel sudo access requiring no password:<br />
%wheel ALL=(ALL) NOPASSWD: ALL<br />
<br />
Don't forget to add the desired users to any groups with sudo abilities.<br />
# gpasswd -a ''username'' ''group''<br />
<br />
Note that it is perfectly valid to mix-and-match these options to create a more custom sudo environment. For more complete information on the capabilities of the sudoers file, visit http://www.gratisoft.us/sudo/man/sudoers.html.<br />
<br />
==Extra Security==<br />
To allow wheel users login via local '''only''', add the following line to /etc/security/access.conf:<br />
-:wheel:ALL EXCEPT LOCAL<br />
<br />
=Disabling root=<br />
Test the user's sudo abilities, then disable the root account by removing its password.<br />
# passwd -l root<br />
<br />
A similar command unlocks root.<br />
$ sudo passwd -u root<br />
<br />
That's it. You should have a newly-disabled root.<br />
<br />
==Alternative method of disabling root==<br />
Edit your /etc/shadow.<br />
$ sudo vipw -s<br />
Then replacing root's encrypted password with !.<br />
The full line will look something like:<br />
root:!:12345::::::<br />
<br />
It would let us to run package's installer script that need to add/remove new user/group in our system (gpasswd things) when you use pacman. It impossible to achieve if you lock the root by using 'passwd -u root'.<br />
<br />
To enable root login again:<br />
$ sudo passwd root<br />
<br />
=KDE - kdesu=<br />
kdesu may be used under KDE to launch GUI applications with root privileges. It is possible that by default kdesu will try to use su even if the root account is disabled. Fortunately we can tell kdesu to use sudo instead of su.<br />
<br />
There are two ways to do so:<br />
# Recompile kdebase with '--with-sudo-kdesu-backend' configure switch.<br />
# Create a kdesurc file in '/usr/share/config/' with the following:<br />
[super-user-command]<br />
super-user-command=sudo<br />
<br />
=Launching applications with root privilegies using gksudo=<br />
==GParted==<br />
Open file /usr/share/applications/gparted.desktop in text editor and change the Exec line:<br />
Exec=gksudo /usr/sbin/gparted %f<br />
==GSmartControl==<br />
Open file /usr/bin/gsmartcontrol-root in text editor and add the bold text:<br />
gnome_sus="gnomesu '''gksudo''' gksu kdesu xdg-su sux";<br />
kde_sus="kdesu gnomesu '''gksudo''' gksu xdg-su sux";<br />
...<br />
full_cmd=""<br />
if [ "$found_su" = "sux" ]; then<br />
full_cmd="xterm -e sux -c '$EXEC_BIN $@'"<br />
'''elif [ "$found_su" = "gksudo" ]; then'''<br />
'''full_cmd="$found_su '$EXEC_BIN $@'"'''<br />
elif [ "$found_su" = "gksu" ]; then<br />
full_cmd="$found_su '$EXEC_BIN $@'"<br />
else # gnomesu, kdesu, xdg-su<br />
full_cmd="$found_su -c '$EXEC_BIN $@'"<br />
fi</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Network_configuration_(%C4%8Ce%C5%A1tina)&diff=57591Network configuration (Čeština)2009-01-11T12:27:28Z<p>EVRAMP: /* Statická IP */ updated (loopback is no more needed in rc.conf)</p>
<hr />
<div>[[Category:Network]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Static IP and DHCP}}<br />
{{i18n_entry|Slovensky|Statická IP a DHCP}}<br />
{{i18n_entry|Русский|Статический IP и DHCP}}<br />
{{i18n_entry|Česky|Statická IP a DHCP czech}}<br />
{{i18n_entry|简体中文|网络配置}}<br />
{{i18n_links_end}}<br />
<br />
==Shrnutí==<br />
Jednoduchý průvodce zprovozněním sítě.<br />
<br />
==Nahrání ovladače (modulu) zařízeni==<br />
Jestliže používáte hwdetect, měl by být schopen rozpoznat vaši síťovou kartu a automaticky po startu zavést odpovídající moduly. V opačném případě potřebujete vědět název modulu potřebného pro chod vaší karty. Hledejte na webu výrobce výrobce vaší karty, ve vyhledávačích nebo zkuste některou z Live distribucí a podívejte se jaký modul používa - spusťte příkaz lsmod, který zobrazí všechny aktuálně načtené moduly.<br />
<br />
Nyní předpokládejme, že znáte název potřebného modulu. Můžete ho do jádra zavést následujícím příkazem:<br />
<br />
modprobe jmenomodulu<br />
<br />
Jestliže nechcete nebo nemůžete použít auto-loader jako například hwdetect, můžete přidat názvy potřebných modulů do /etc/rc.conf, potom už nebude potřeba zavádět moduly příkazem modprobe po každém startu počítače. Např. pokud se modul jemenuje tg3:<br />
<br />
MODULES=(!usbserial tg3 snd-cmipci)<br />
<br />
Další běžné moduly jsou 8139too pro karty s čipy od RealTek nebo sis900 pro SiS karty.<br />
<br />
==Nastavení IP adresy==<br />
<br />
===DHCP===<br />
<br />
DCHP je služba, která dokáže dynamicky na požádání přidělovat klientům IP adresu (a nejen ji). Pokud dhcp používáte, upravte [[rc.conf]] následovně:<br />
<br />
eth0="dhcp"<br />
INTERFACES=(eth0)<br />
ROUTES=(!gateway)<br />
<br />
Pokud z nějákého důvodu dchpdc eth0 selhává, nainstalujte dhclienta (pacman -Sy dhclient) a použijte příkaz dhclient eth0 (samozřejmě pokud vaše síťová karta je označena jako eth0).<br />
<br />
===Statická IP===<br />
<br />
Jestliže sdílíte internetové připojeni z windowsovského boxu bez routeru, použijte na statickou IP adresu jinak můžete mít problémy se sítí.<br />
<br />
Pro konfiguraci statické IP potřebujete znát:<br />
<br />
* svou statickou IP<br />
* masku sítě<br />
* adresu broadcastu (poslední možná IP v rozsahu vaší sítě)<br />
* bránu (gateway)<br />
* IP adresy jmenných serverů<br />
* jméno vaší domény<br />
<br />
Pokud pracujete v soukromé síti, je bezpečné používat IP adresy v rozsahu 192.168.*.* , s maskou 255.255.0.0 a adresou všesměrového vysílání (broadcast) 192.168.255.255. Dokud vaše síť nemá router, na adrese brány nezáleží. Upravte [[rc.conf]] následovně, avšak nahraďte IP, masku sítě, broadcast a bránu svými vlastními hodnotami:<br />
<br />
eth0="eth0 192.168.10.1 netmask 255.255.0.0 broadcast 192.168.255.255"<br />
INTERFACES=(eth0)<br />
gateway="default gw 192.168.10.20"<br />
ROUTES=(gateway)<br />
<br />
V souboru /etc/resolv.conf potom nahraďte IP nameserveru a jméno domény vašimi vlastními. Jméno domény pro vzhledávání není vždy podmínkou:<br />
<br />
nameserver 61.23.173.5<br />
nameserver 61.95.849.8<br />
search example.com<br />
<br />
Můžete zadat tolik nameserverů, kolik chcete.<br />
<br />
Pokud používáte DHCP a nechcete, aby se váš DNS server měnil při každém spuštění sítě, přidejte volbu <code>-R</code> do <code>DHCPCD_ARGS</code> v souboru /etc/conf.d/dhcpcd (používaném v /etc/rc.d/network). Tímto se zabrání, aby za každým spuštěním DHCP přepisoval váš /etc/resolv.conf:<br />
<br />
DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"<br />
<br />
==Nastavení jména počítače==<br />
Upravte [[rc.conf]] a nastavte HOSTNAME na vámi požadované jméno počítače:<br />
<br />
HOSTNAME="banana"<br />
<br />
==Nastavení lokálního překladu názvů hostitelů na IP adresy==<br />
<br />
Upravte /etc/hosts a přidejte podobný řádek se stejným HOSTNAME, jaké jste zadali v [[rc.conf]]:<br />
<br />
127.0.0.1 banana.localdomain banana<br />
<br />
Obdobně můžete přidávat i další záznamy.<br />
<br />
== Aktualizace konfigurace ==<br />
K otestování konfigurace nemusíte restartovat počítač, stačí jako root spustit <code>/etc/rc.d/network restart</code>. Nyní zkuste příkazem ping otestovat spojení na vaši bránu, DNS servery, ISP a jiné internetové servery.<br />
<br />
== Některá další nastavení ==<br />
<br />
=== Bezdrátové sítě ===<br />
<br />
Konfigurace bezdrátových sítí je probírána v [[Wireless Setup]].<br />
<br />
=== Firewall ===<br />
<br />
Aby jste se cítily bezpečněji, nainstalujte a nakonfigurujte si [[Firewalls|firewall]].<br />
<br />
=== Ifplugd ===<br />
<br />
Ifplugd je služba, která automaticky konfiguruje vaše síťová rozhraní, když zapojíte kabel a poté i konfiguraci vynuluje, pokud kabel zase odpojíte. To je velmi použitelné na laptopech s integrovanou síťovou kartou, protože se bude síť konfigurovat až opravdu v okamžiku, kdy je připojen kabel.<br />
<br />
Instalace je velmi jednoduchá. Baliček se nachází v [extra]:<br />
<br />
# pacman -S ifplugd<br />
<br />
Ve výchozím stavu je služba nastavena pro spolupráci s eth0. Toto a jiné nastavení se konfiguruje v <code>/etc/ifplugd/ifplugd.conf</code>.<br />
<br />
Ifplugd spusťte příkazem:<br />
<br />
# /etc/rc.d/ifplugd start<br />
<br />
nebo jej přidejte do výčtu DAEMONS v <code>/etc/rc.conf</code>.<br />
<br />
== Troubleshooting ==<br />
<br />
=== TCP Window Scaling ===<br />
<br />
TCP pakety obsahují v jejich hlavičce "window" hodnotu, které říká, jak mnoho dat může druhý počítač poslat nazpět. This value is represented with only 16 bits hence the window size is at most 64Kb. TCP packets are cached for a while (they have to be reordered) and as memory is (or used to be) limited one host could easily run out of it.<br />
<br />
Back in 1992, as more and more memory became available, [http://www.faqs.org/rfcs/rfc1323.html RFC 1323] was written to improve the situation: Window Scaling. The "window" value, provided in all packets will be modified by a Scale Factor defined once, at the very beginning of the connection.<br />
<br />
That 8 bits Scale Factor allows the Window to be up to 32 times higher than the initial 64Kb.<br />
<br />
It appears that some broken routers and firewalls on the Internet are rewriting the Scale Factor to 0 which causes misunderstandings between hosts.<br />
<br />
The Linux kernel 2.6.17 introduced a new calculation scheme generating higher Scale Factors virtually making the aftermaths of the broken routers and firewalls more visible. <br />
<br />
The resulting connection is at best very slow or broken.<br />
<br />
==== How To Diagnose The Problem? ====<br />
<br />
First of all, let's make it clear: this problem is odd. In some cases, you will not be able to use TCP connections (HTTP, FTP, ...) at all and in others, you will be able to communicate with some hosts (very few).<br />
<br />
'''Warning''': <code>dmesg</code>'s output is ok, logs are clean and <code>ifconfig</code> will report normal status &mdash; and actually everything is normal.<br />
<br />
If you can't browse any website, but you can ping some rare hosts, chances are great that you're experiencing this issue: ping uses the ICMP protocol and is not affected by TCP issues.<br />
<br />
You can try to use WireShark. You might see successful UDP and ICMP communications but unsuccessful TCP communications (only to foreign hosts).<br />
<br />
==== How To Fix It? (The bad way) ====<br />
<br />
To fix it the bad way, you can change the tcp_rmem value, on which Scale Factor calculation is based. Although it should work for most hosts, it's not guaranteed, especially for very distant ones.<br />
<br />
echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem<br />
<br />
Or you can try to remove one of your RAM sticks (yes sir).<br />
<br />
==== How To Fix It? (The good way) ====<br />
<br />
Simply disable Window Scaling. Even if Window Scaling is a nice TCP feature, it may be uncomfortable especially if you can't fix the broken router. There are several ways to disable Window Scaling and it seems that the most bullet-proof (which will work with most kernels) is to add the following lines to your <code>/etc/rc.local</code>:<br />
<br />
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling<br />
<br />
==== How To Fix It? (The best way) ====<br />
<br />
This issue is caused by broken routers/firewalls, let's change them. Some users have reported that the broken router was their very own DSL router.<br />
<br />
==== More about it? ====<br />
<br />
This section is based on the LWN article [http://lwn.net/Articles/92727/ TCP window scaling and broken routers] and a Kernel Trap article: [http://kerneltrap.org/node/6723 Window Scaling on the Internet].<br />
<br />
And more recently, some Archers have been hit by this issue:<br />
<br />
* [http://www.archlinux.org/pipermail/arch/2006-June/011250.html Odd network issue]<br />
* [http://www.archlinux.org/pipermail/arch/2006-September/011943.html Kernel 2.6.17 and TCP window scaling] &mdash; The topic which initiated this article<br />
<br />
There are also several relevant threads on the LKML.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Network_configuration_(%C4%8Ce%C5%A1tina)&diff=57590Network configuration (Čeština)2009-01-11T12:26:56Z<p>EVRAMP: /* DHCP */ updated (loopback is no more needed in rc.conf)</p>
<hr />
<div>[[Category:Network]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Static IP and DHCP}}<br />
{{i18n_entry|Slovensky|Statická IP a DHCP}}<br />
{{i18n_entry|Русский|Статический IP и DHCP}}<br />
{{i18n_entry|Česky|Statická IP a DHCP czech}}<br />
{{i18n_entry|简体中文|网络配置}}<br />
{{i18n_links_end}}<br />
<br />
==Shrnutí==<br />
Jednoduchý průvodce zprovozněním sítě.<br />
<br />
==Nahrání ovladače (modulu) zařízeni==<br />
Jestliže používáte hwdetect, měl by být schopen rozpoznat vaši síťovou kartu a automaticky po startu zavést odpovídající moduly. V opačném případě potřebujete vědět název modulu potřebného pro chod vaší karty. Hledejte na webu výrobce výrobce vaší karty, ve vyhledávačích nebo zkuste některou z Live distribucí a podívejte se jaký modul používa - spusťte příkaz lsmod, který zobrazí všechny aktuálně načtené moduly.<br />
<br />
Nyní předpokládejme, že znáte název potřebného modulu. Můžete ho do jádra zavést následujícím příkazem:<br />
<br />
modprobe jmenomodulu<br />
<br />
Jestliže nechcete nebo nemůžete použít auto-loader jako například hwdetect, můžete přidat názvy potřebných modulů do /etc/rc.conf, potom už nebude potřeba zavádět moduly příkazem modprobe po každém startu počítače. Např. pokud se modul jemenuje tg3:<br />
<br />
MODULES=(!usbserial tg3 snd-cmipci)<br />
<br />
Další běžné moduly jsou 8139too pro karty s čipy od RealTek nebo sis900 pro SiS karty.<br />
<br />
==Nastavení IP adresy==<br />
<br />
===DHCP===<br />
<br />
DCHP je služba, která dokáže dynamicky na požádání přidělovat klientům IP adresu (a nejen ji). Pokud dhcp používáte, upravte [[rc.conf]] následovně:<br />
<br />
eth0="dhcp"<br />
INTERFACES=(eth0)<br />
ROUTES=(!gateway)<br />
<br />
Pokud z nějákého důvodu dchpdc eth0 selhává, nainstalujte dhclienta (pacman -Sy dhclient) a použijte příkaz dhclient eth0 (samozřejmě pokud vaše síťová karta je označena jako eth0).<br />
<br />
===Statická IP===<br />
<br />
Jestliže sdílíte internetové připojeni z windowsovského boxu bez routeru, použijte na statickou IP adresu jinak můžete mít problémy se sítí.<br />
<br />
Pro konfiguraci statické IP potřebujete znát:<br />
<br />
* svou statickou IP<br />
* masku sítě<br />
* adresu broadcastu (poslední možná IP v rozsahu vaší sítě)<br />
* bránu (gateway)<br />
* IP adresy jmenných serverů<br />
* jméno vaší domény<br />
<br />
Pokud pracujete v soukromé síti, je bezpečné používat IP adresy v rozsahu 192.168.*.* , s maskou 255.255.0.0 a adresou všesměrového vysílání (broadcast) 192.168.255.255. Dokud vaše síť nemá router, na adrese brány nezáleží. Upravte [[rc.conf]] následovně, avšak nahraďte IP, masku sítě, broadcast a bránu svými vlastními hodnotami:<br />
<br />
lo="lo 127.0.0.1"<br />
eth0="eth0 192.168.10.1 netmask 255.255.0.0 broadcast 192.168.255.255"<br />
INTERFACES=(lo eth0)<br />
gateway="default gw 192.168.10.20"<br />
ROUTES=(gateway)<br />
<br />
V souboru /etc/resolv.conf potom nahraďte IP nameserveru a jméno domény vašimi vlastními. Jméno domény pro vzhledávání není vždy podmínkou:<br />
<br />
nameserver 61.23.173.5<br />
nameserver 61.95.849.8<br />
search example.com<br />
<br />
Můžete zadat tolik nameserverů, kolik chcete.<br />
<br />
Pokud používáte DHCP a nechcete, aby se váš DNS server měnil při každém spuštění sítě, přidejte volbu <code>-R</code> do <code>DHCPCD_ARGS</code> v souboru /etc/conf.d/dhcpcd (používaném v /etc/rc.d/network). Tímto se zabrání, aby za každým spuštěním DHCP přepisoval váš /etc/resolv.conf:<br />
<br />
DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"<br />
<br />
==Nastavení jména počítače==<br />
Upravte [[rc.conf]] a nastavte HOSTNAME na vámi požadované jméno počítače:<br />
<br />
HOSTNAME="banana"<br />
<br />
==Nastavení lokálního překladu názvů hostitelů na IP adresy==<br />
<br />
Upravte /etc/hosts a přidejte podobný řádek se stejným HOSTNAME, jaké jste zadali v [[rc.conf]]:<br />
<br />
127.0.0.1 banana.localdomain banana<br />
<br />
Obdobně můžete přidávat i další záznamy.<br />
<br />
== Aktualizace konfigurace ==<br />
K otestování konfigurace nemusíte restartovat počítač, stačí jako root spustit <code>/etc/rc.d/network restart</code>. Nyní zkuste příkazem ping otestovat spojení na vaši bránu, DNS servery, ISP a jiné internetové servery.<br />
<br />
== Některá další nastavení ==<br />
<br />
=== Bezdrátové sítě ===<br />
<br />
Konfigurace bezdrátových sítí je probírána v [[Wireless Setup]].<br />
<br />
=== Firewall ===<br />
<br />
Aby jste se cítily bezpečněji, nainstalujte a nakonfigurujte si [[Firewalls|firewall]].<br />
<br />
=== Ifplugd ===<br />
<br />
Ifplugd je služba, která automaticky konfiguruje vaše síťová rozhraní, když zapojíte kabel a poté i konfiguraci vynuluje, pokud kabel zase odpojíte. To je velmi použitelné na laptopech s integrovanou síťovou kartou, protože se bude síť konfigurovat až opravdu v okamžiku, kdy je připojen kabel.<br />
<br />
Instalace je velmi jednoduchá. Baliček se nachází v [extra]:<br />
<br />
# pacman -S ifplugd<br />
<br />
Ve výchozím stavu je služba nastavena pro spolupráci s eth0. Toto a jiné nastavení se konfiguruje v <code>/etc/ifplugd/ifplugd.conf</code>.<br />
<br />
Ifplugd spusťte příkazem:<br />
<br />
# /etc/rc.d/ifplugd start<br />
<br />
nebo jej přidejte do výčtu DAEMONS v <code>/etc/rc.conf</code>.<br />
<br />
== Troubleshooting ==<br />
<br />
=== TCP Window Scaling ===<br />
<br />
TCP pakety obsahují v jejich hlavičce "window" hodnotu, které říká, jak mnoho dat může druhý počítač poslat nazpět. This value is represented with only 16 bits hence the window size is at most 64Kb. TCP packets are cached for a while (they have to be reordered) and as memory is (or used to be) limited one host could easily run out of it.<br />
<br />
Back in 1992, as more and more memory became available, [http://www.faqs.org/rfcs/rfc1323.html RFC 1323] was written to improve the situation: Window Scaling. The "window" value, provided in all packets will be modified by a Scale Factor defined once, at the very beginning of the connection.<br />
<br />
That 8 bits Scale Factor allows the Window to be up to 32 times higher than the initial 64Kb.<br />
<br />
It appears that some broken routers and firewalls on the Internet are rewriting the Scale Factor to 0 which causes misunderstandings between hosts.<br />
<br />
The Linux kernel 2.6.17 introduced a new calculation scheme generating higher Scale Factors virtually making the aftermaths of the broken routers and firewalls more visible. <br />
<br />
The resulting connection is at best very slow or broken.<br />
<br />
==== How To Diagnose The Problem? ====<br />
<br />
First of all, let's make it clear: this problem is odd. In some cases, you will not be able to use TCP connections (HTTP, FTP, ...) at all and in others, you will be able to communicate with some hosts (very few).<br />
<br />
'''Warning''': <code>dmesg</code>'s output is ok, logs are clean and <code>ifconfig</code> will report normal status &mdash; and actually everything is normal.<br />
<br />
If you can't browse any website, but you can ping some rare hosts, chances are great that you're experiencing this issue: ping uses the ICMP protocol and is not affected by TCP issues.<br />
<br />
You can try to use WireShark. You might see successful UDP and ICMP communications but unsuccessful TCP communications (only to foreign hosts).<br />
<br />
==== How To Fix It? (The bad way) ====<br />
<br />
To fix it the bad way, you can change the tcp_rmem value, on which Scale Factor calculation is based. Although it should work for most hosts, it's not guaranteed, especially for very distant ones.<br />
<br />
echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem<br />
<br />
Or you can try to remove one of your RAM sticks (yes sir).<br />
<br />
==== How To Fix It? (The good way) ====<br />
<br />
Simply disable Window Scaling. Even if Window Scaling is a nice TCP feature, it may be uncomfortable especially if you can't fix the broken router. There are several ways to disable Window Scaling and it seems that the most bullet-proof (which will work with most kernels) is to add the following lines to your <code>/etc/rc.local</code>:<br />
<br />
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling<br />
<br />
==== How To Fix It? (The best way) ====<br />
<br />
This issue is caused by broken routers/firewalls, let's change them. Some users have reported that the broken router was their very own DSL router.<br />
<br />
==== More about it? ====<br />
<br />
This section is based on the LWN article [http://lwn.net/Articles/92727/ TCP window scaling and broken routers] and a Kernel Trap article: [http://kerneltrap.org/node/6723 Window Scaling on the Internet].<br />
<br />
And more recently, some Archers have been hit by this issue:<br />
<br />
* [http://www.archlinux.org/pipermail/arch/2006-June/011250.html Odd network issue]<br />
* [http://www.archlinux.org/pipermail/arch/2006-September/011943.html Kernel 2.6.17 and TCP window scaling] &mdash; The topic which initiated this article<br />
<br />
There are also several relevant threads on the LKML.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Enlightenment&diff=56316Enlightenment2008-12-27T12:50:25Z<p>EVRAMP: itask replaced engage</p>
<hr />
<div>[[Category: Desktop environments (English)]] [[Category:HOWTOs (English)]]<br />
<br />
== Introduction==<br />
'''Enlightenment''' is a project to provide 'advanced graphic libraries, tools and environments'.<br />
<br />
The Enlightenment project is split into 3 parts:<br />
* Enlightenment DR16, The original release of the enlightenment window manager. <br />
* Enlightenment DR17, The new replacement window manager for DR16.<br />
* Enlightenment Foundation Libraries, An expansion for extra libraries not part of the other two sections.<br />
<br />
== Enlightenment DR16 ==<br />
Enlightenment, Development Release 16 was first released in 2000, and its most recent release was in 2003. It is said to be still under development today.<br />
<br />
=== To install E16 ===<br />
Simply run<br />
# pacman -S enlightenment<br />
<br />
== Enlightenment DR17 ==<br />
* Main article: [[e17]]<br />
<br />
Under Heavy development, constantly changing in SVN. Snapshots have been taken for the Arch Community Repositories, for easy installation and compatibility with the different parts.<br />
<br />
==== Also included in the E17 Section ====<br />
* Entice - Image Viewer.<br />
* Entrance - the Enlightement Desktop Manager.<br />
* Evidence - Enlightened file manager.<br />
* ERSS - For RSS feeds<br />
* Eplayer - The Enlightened media player.<br />
<br />
== Enlightenment Foundation Libraries ==<br />
A set of libraries for expansion on the enlightenment base.<br />
<br />
==== Libraries & What they are for ====<br />
* Imlib(2) - Image rendering and Manipulation LIBrary.<br />
* EDB - E DataBase wrapper<br />
* EET - Distrobution Container Libraries and Tools<br />
* Evas - Canvas Library<br />
* Ecore - For event abstraction and Modular Convenience<br />
* Epeg - For thumbnailing JPEGs<br />
* Epsilon - Freedesktop.org thumbnaiing library<br />
* Etox - Text Layout and Manipulation<br />
* Edje - Interface Abstraction Library & Tools<br />
* Embryo - The embeddable scripting language for E<br />
* EWL - Enlightenment Widget Library<br />
* Emotion - Video smart-object library for Evas<br />
<br />
==== Programs Developed with these libraries ====<br />
* Eclair - Media Player<br />
* Elicit - Colour picker and desktop magnifier<br />
* Embrace - Mail Application<br />
* Itask (formerly Engage) - Mac-like dockbar<br />
* Entice - Image viewer<br />
* Entrance - E17 Login Manager<br />
* Entropy - Engine for file-browsing<br />
* Ephoto - Sophisticated image viewing<br />
* ERSS - For displaying RSS feeds<br />
* Evidence - File Manager<br />
* Exhibit - Yet another image viewer<br />
<br />
== External Links ==<br />
* [http://www.enlightenment.org/ Enlightenment Homepage]<br />
* [http://www.get-e.org/ E17 Portal]<br />
* [http://www3.get-e.org/E17_User_Guide/English/ E17 User Guide]<br />
* [http://www3.get-e.org/EFL_User_Guide/English/ EFL User Guide]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=User:EVRAMP&diff=56178User:EVRAMP2008-12-25T16:01:45Z<p>EVRAMP: </p>
<hr />
<div>Hello!<br />
<br />
If i edited your wiki page, please feel free to remove/change editations you don't like :)<br />
<br />
In such case i just wanted to improve that entry or add useful info that might help.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=User:EVRAMP&diff=56177User:EVRAMP2008-12-25T16:01:19Z<p>EVRAMP: New page: Hello! If i edited your wiki page, please feel free to remove/change editations you don't like :) In such case i just wanted to improve that entry or add useful info that might help.</p>
<hr />
<div>Hello!<br />
If i edited your wiki page, please feel free to remove/change editations you don't like :)<br />
In such case i just wanted to improve that entry or add useful info that might help.</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Groups&diff=56176Groups2008-12-25T15:56:57Z<p>EVRAMP: remove commands</p>
<hr />
<div>[[Category:Security (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Groups}}<br />
{{i18n_entry|Italiano|Groups (Italiano)}}<br />
{{i18n_entry|简体中文|Groups}}<br />
{{i18n_entry|Türkçe|Kullanıcı Grupları}}<br />
{{i18n_links_end}}<br />
Adding a user to a permission group enables that user to perform certain actions or access certain files pertaining to that group. All available groups can be found using the command "cat /etc/group"<br />
<br />
==List of groups==<br />
Below is a list of groups and their function in Arch (sorted alphabetically)<br />
<br />
{| border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show"<br />
<br />
|-<br />
! Group || Affected Files || Purpose<br />
|-<br />
| adm || ||<br />
|-<br />
| audio || /dev/sound/*, /dev/snd/*, /dev/misc/rtc0 || Access to sound hardware.<br />
|-<br />
| avahi || ||<br />
|-<br />
| bin || ||<br />
|-<br />
| camera || || Access to [[Digital Cameras]].<br />
|-<br />
| clamav || /var/lib/clamav/*, /var/log/clamav/* ||<br />
|-<br />
| daemon || ||<br />
|-<br />
| dbus || /var/run/dbus ||<br />
|-<br />
| disk || /dev/sda[1-9], /dev/sdb[1-9], /dev/hda[1-9], etc || Access to block devices not affected by other groups such as optical,floppy,storage.<br />
|-<br />
| floppy || /dev/fd[0-9] || Access to floppy drives.<br />
|-<br />
| ftp || /srv/ftp ||<br />
|-<br />
| games || /var/games || Access to some game software.<br />
|-<br />
| hal || /var/run/hald, /var/cache/hald ||<br />
|-<br />
| http || ||<br />
|-<br />
| kmem || /dev/port, /dev/mem, /dev/kmem ||<br />
|-<br />
| locate || /usr/bin/locate, /var/lib/locate, /var/lib/slocate, /var/lib/mlocate || Right to use updatedb command.<br />
|-<br />
| log || /var/log/* || Access to log files in /var/log,<br />
|-<br />
| lp || /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups || Access to printer hardware<br />
|-<br />
| mem || ||<br />
|-<br />
| mail || /usr/bin/mail ||<br />
|-<br />
| network || || Right to change network settings such as when using a [[Networkmanager]].<br />
|-<br />
| nobody || || Unprivileged group.<br />
|-<br />
| ntp || ||<br />
|-<br />
| optical || /dev/sr[0-9], /dev/sg[0-9] || Access to optical devices such as CD,CD-R,DVD,DVD-R.<br />
|-<br />
| power || || Right to use [[Pm-utils|suspend]] utils.<br />
|-<br />
| root || /* -- ALL FILES! || Complete system administration and control (root, admin)<br />
|-<br />
| scanner || /var/lock/sane || Access to scanner hardware.<br />
|-<br />
| smmsp || ||<br />
|-<br />
| storage || || Access to removable drives such as USB harddrives,flash/jump drives,mp3 players.<br />
|-<br />
| sys || ||<br />
|-<br />
| thinkpad || /dev/misc/nvram || Right for thinkpad users using tools such as [[tpb]].<br />
|-<br />
| tty || /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx ||<br />
|-<br />
| users || || Standard users group.<br />
|-<br />
| uucp || /dev/ttyS[0-9] /dev/tts/[0-9] || Serial & USB devices such as modems,handhelds,RS232/serial ports.<br />
|-<br />
| vboxusers || /dev/vboxdrv || Right to use Virtualbox software.<br />
|-<br />
| video || /dev/fb/0, /dev/misc/agpgart || Access to video capture devices, DRI/3D hardware acceleration.<br />
|-<br />
| vmware || || Right to use VMware software.<br />
|-<br />
| wheel || || Right to use [[sudo]] (setup with visudo), Also affected by PAM<br />
|}<br />
<br />
==Common actions==<br />
====List all groups====<br />
To list all groups currently available on your system.<br />
<br />
cat /etc/group<br />
<br />
====List your current groups====<br />
To find out what groups your user is currently a member of, simply issue the command "groups". You can also use "id" for more verbose output.<br />
<br />
====Finding group ownership====<br />
You can list files owned by a group with this command if needed.. as root<br />
(where [group] is the group name you wish to search for)<br />
<br />
find /* -group [group]<br />
<br />
====Adding user to a group====<br />
You can add a user to a group by using this command as root<br />
(where [group] is the group you want to add and [user] is the user you want to add to the group)<br />
<br />
usermod -aG [group] [user]<br />
or<br />
gpasswd -a [user] [group]<br />
<br />
====Removing user from a group====<br />
You can remove a user from a group by using this command as root<br />
(where [group] is the group you want to remove and [user] is the user you want to remove to the group)<br />
<br />
gpasswd -d [user] [group]<br />
<br />
====Creating and removing a group====<br />
You can create a new group by using the following command as root (where [group] is the name of the group you wish to create)<br />
<br />
groupadd [group]<br />
<br />
For removing a group use<br />
<br />
groupdel [group]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Pacbuilder&diff=55926Pacbuilder2008-12-21T15:11:29Z<p>EVRAMP: description and info about cflags added</p>
<hr />
<div>{{stub}}<br />
<br />
Come on chaps .... I would like to start this, but I don't know enough :D. I have compiled one package, but would like to know some of the finer details<br />
<br />
Pacbuilder is a small but powerful script to automatically recompile the whole system, repos or just a single package (with or without its dependencies). This is quite useful once you have edited /etc/makepkg.conf with some customized CFLAGS.<br />
<br />
See http://wiki.archlinux.org/index.php/Makepkg.conf#MAKEFLAGS for more about specifying CFLAGS.<br />
<br />
To see actual CFLAGS and CXXFLAGS run:<br />
pacbuilder --gccinfo<br />
<br />
<br />
Most used command:<br />
pacbuilder --builddeps --keepdeps --verbose --noconfirm -- install packagename<br />
or<br />
pacbuilder -Sbkvn packagename<br />
<br />
=== Help ===<br />
$ pacbuilder -h<br />
------------------------------- <br />
PacBuilder, by Andrea Cimitan <br />
------------------------------- <br />
<br />
A tool to massively recompile packages from sources <br />
It currently fetches both ABS and AUR <br />
<br />
USAGE:<br />
pacbuilder [options] package|repository<br />
<br />
OPTIONS:<br />
General:<br />
--help print this help<br />
--clean remove previous log<br />
--gccinfo print current compilation flags<br />
--nocolor do not use any color <br />
--notitle do not print the title <br />
--noresume do not resume <br />
Install: <br />
(-S), --install build specified packages<br />
(-S) -b, --builddeps build and install the dependencies<br />
(-S) -e, --edit be verbose and edit PKGBUILD<br />
(-S) -f, --force force install, overwrite conflicting files<br />
(-S) -k, --keepdeps keep makedepends after install<br />
(-S) -s, --search <regex> search for packages matching <regex><br />
(-S) -u, --sysupgrade build the updated packages<br />
(-S) -v, --verbose print makepkg output<br />
Additional parameters:<br />
-p, --pretend print the final list of packages to be installed<br />
-n, --noconfirm do not ask for any confirmation<br />
-m, --match <regex> only install packages matching <regex><br />
-d, --deplist recursively list all dependencies first<br />
--export <dir> copy packages into a dir after build<br />
Type:<br />
--world recompile both deps and explicit<br />
--explicit recompile explicitely installed packages<br />
--devel recompile only installated devel packages<br />
Target repository:<br />
--core recompile packages in core<br />
--extra recompile packages in extra<br />
--testing recompile packages in testing<br />
--community recompile packages in community<br />
--aur recompile packages in aur</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Windows_Network_Share&diff=55406Windows Network Share2008-12-14T11:05:09Z<p>EVRAMP: fusesmb added</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{merge|Search and explore local network shares|Talk:Access a windows share}}<br />
<br />
== Preparation ==<br />
First of all, you need to have <tt>smbclient</tt> installed on the Linux machine. Not to forget, there should also be a working TCP/IP network connection between the Linux and the Windows computers.<br />
<br />
# pacman -S smbclient<br />
<br />
== Mounting a share manually ==<br />
For my example,<br />
* the Windows machine's name is ''limette'', the share is named ''2Share''<br />
* the Linux one is called ''orange''<br />
* both should be part of the workgroup ''zitrusgarden''.<br />
<br />
<br />
1. Find or create the mount point, where the share could be mounted to.<br />
<br />
# mkdir -p /mnt/shares/limette<br />
<br />
2. Mount the share using the <code>smbmount</code> command.<br><br />
<br />
Syntax:<br><br />
smbmount //''server''/''sharename'' ''mountpoint'' -o workgroup=''workgroup'' username=''username'' ip=''serverip''<br><br />
<b>''server''</b> is the name of the Windows computer.<br><br />
<b>''sharename''</b> is the name of the share.<br><br />
<b>''mountpoint''</b> is the directory that you are mounting the share to.<br><br />
<b>-o</b> Options to smbmount.<br><br />
&nbsp;&nbsp;<b>workgroup=</b> used to specify the workgroup. As default the workgroup is "WORKGROUP".<br><br />
&nbsp;&nbsp;<b>username=</b> used if you need to specify a username to mount the share as, commonly used for Windows NT shares.<br><br />
&nbsp;&nbsp;<b>ip=</b> used if the Linux computer can't find the Windows computer by name (dns, wins, hosts entry), ''serverip'' is the IP address of the server.<br><br />
<br />
<b>NOTE:</b> in latest samba, you can also use <b>cifsmount</b> which is preferred cause some win2k and win2k3 won't work with smbmount. Also, if you have problems like unreliable samba shares ("too many open files"), cifs is known to solve problems.<br />
<br />
# smbmount //limette/Folder2Share /mnt/shares/limette -o workgroup=zitrusgarden username=pink_chick ip=192.168.23.132<br />
<br />
<b>NOTE:</b> //limette/Folder2Share<b>/</b> WILL <b>NOT</b> WORK! (so don't type the trailing / )<br />
<br />
3. Use <code>smbumount</code> to quit the share: <br />
<br />
# smbumount ''mountpoint''<br />
<br />
=== Adding the share to /etc/fstab for easy mounting ===<br />
Add the following to /etc/fstab:<br />
<br />
//limette/2Share /mnt/shares/limette cifs noauto,users,noatime,username=<code>guest,password=</code>,workgroup=YOURWORKGROUP 0 0<br />
<br />
Now you should be able to mount and unmount your Samba shares with<br />
<br />
# mount /mnt/shares/limette<br />
# smbumount /mnt/shares/limette<br />
<br />
==== Allowing users to mount Samba shares ====<br />
For users to be allowed to mount and unmount the Samba share, the following two files have to be set UID (which allows users to execute a command with elevated privileges). You must change the permissions on the commands used to mount / unmount, hence:<br />
<br />
if using smb:<br />
# chmod u+s /usr/bin/smbmnt<br />
# chmod u+s /usr/bin/smbumount<br />
<br />
if using cifs: (as in above example fstab line)<br />
# chmod u+s /sbin/mount.cifs<br />
# chmod u+s /sbin/umount.cifs<br />
<br />
Moreover, the user mounting the share needs to have write permssion on the mount point directory. A straighforward way of doing this is using a mount point under the user's home directory; you could also change the ownership of the mountpoint ie:<br />
<br />
# chown YOURUSER:YOURGROUP /mnt/your_mountpoint<br />
<br />
Finally, if using cifs, you should set the "users" option as in the example above.<br />
<br />
(Note that if using cifs, the "users" option allows users to mount / unmount, which (for other filesystem types handled by mount) is usually specified by "user". In cifs (handled by the /sbin/mount.cifs command, see man mount.cifs for reference) "user" is an alias of "username" option, specifying the username used to log into the shared folder. If you're trying to allow a regular user to mount / unmount the share, "users" is what you want.)<br />
<br />
== Mounting shares automatically ==<br />
=== Using smbnetfs ===<br />
1. Install smbnetfs<br />
# pacman -S smbnetfs<br />
<br />
2. Add the following line to /etc/fuse.conf<br />
user_allow_other<br />
<br />
3. Load the FUSE kernel module<br />
# modprobe fuse<br />
<br />
4. Start <tt>smbnetfs</tt><br />
# /etc/rc.d/smbnetfs start<br />
<br />
5. All shares in the network are now automatically mounted under /mnt/smbnet<br />
<br />
6. To be able to keep using the shares after a reboot, add the following to /etc/rc.conf<br />
MODULES=(... '''fuse''' ...)<br />
DAEMONS=(... '''smbnetfs''' ...)<br />
<br />
=== Using fusesmb ===<br />
'''Note''': Smbclient 3.2.x is broken, use older version for mounting shares with fusesmb.<br />
See http://bbs.archlinux.org/viewtopic.php?id=58434 forum topic.<br />
<br />
1. Install fusesmb [http://aur.archlinux.org/packages.php?ID=1790] from AUR<br />
<br />
2. Create a mount point<br />
# mkdir /mnt/fusesmb<br />
<br />
3. Load fuse module<br />
# modprobe fuse<br />
<br />
4. Mount the network<br />
# fusesmb -o allow_other /mnt/fusesmb<br />
<br />
5. For mounting shares while booting, paste above command into /etc/rc.local and add fuse module to /etc/rc.conf<br />
MODULES=(... '''fuse''' ...)<br />
<br />
=== Using AutoFS ===<br />
Alternatively this can be done using [[AutoFS HowTo | AutoFS]]. It seems however to be less stable while mounting SMB shares.<br />
<br />
== Browsing shares with KDE ==<br />
=== KIO Slave ===<br />
You should be able to browse shares with Konqueror using the <tt>remote://</tt> KIO slave.<br />
<br />
=== RC Script for LISA (KDE LAN Browsing Daemon) ===<br />
If the above method doesn't work, you can try using the LISA daemon. It comes with the kdenetwork package. To start it on every boot add <code>lisa</code> to the DAEMONS array in /etc/rc.conf.<br />
<br />
Topic: http://bbs.archlinux.org/viewtopic.php?t=3231</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Opera&diff=52950Opera2008-11-08T23:19:55Z<p>EVRAMP: Note: this will install Qt4 shared build</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|:Opera}}<br />
{{i18n_entry|Español|:Opera (Español)}}<br />
{{i18n_links_end}}<br />
<br />
[http://www.opera.com Opera] is a full-featured web suite by Opera Software ASA, a Norwegian IT company. It is closed-source software, but I prefer to say it is '''"free as parking"'''.<br />
<br />
==Why should I use Opera?==<br />
<br />
* It's fast and lightweight.<br />
* It's standards-compliant.<br />
* It's very much customizable.<br />
* Out-of-the-box provides web browsing with mouse gestures and ad-blocking, mail client, bittorrent client and IRC client all in one! And then some more too...<br />
* It's got a professional touch: '''no software bloat, no memory leaks, no freezes, no crashes'''.<br />
<br />
==Why should I NOT use Opera?==<br />
<br />
* It is not [http://www.gnu.org/philosophy/free-sw.html Free]. It's [http://en.wikipedia.org/wiki/Proprietary_software proprietary software].<br />
* It's a [http://en.wikipedia.org/wiki/Qt_(toolkit) Qt] application, which means it requires loading additional libraries if you're not running [[KDE]].<br />
* Some webpages don't display correctly because they are not following the web standards (Opera sticks to standards).<br />
<br />
==How do I install Opera?==<br />
To install the latest stable Opera:<br />
# pacman -S opera<br />
<br />
Note: this will install Qt4 shared build.<br />
<br />
===Microsoft Fonts and Opera===<br />
<br />
If you have at the time of opera package installation the package ttf-ms-fonts Opera will then use those fonts which kind look bad.<br />
To make opera use by default gnome fonts or whatever is default on your system remove the ttf-ms-fonts package and then install opera.<br />
<br />
Also note that all fonts are configurable at Tools -> Preferences -> Advanced -> Fonts<br />
<br />
===Optional tweaks===<br />
<br />
* To remove the tray icon, launch Opera with the ''-notrayicon'' option.<br />
* To make the menus look nice, do<br />
# pacman -S polymer<br />
then run '''qtconfig''' (it will be located in /opt/qt/bin) and set the ''polymer'' theme for Qt applications.<br />
* To disable "ugly" non anti-aliased fonts, type <tt>opera:config</tt> in the Opera address bar, then search for "core X fonts" and disable them.<br />
* To improve the (flash) plugin performance in opera, just issue this command before starting opera or add it to your /etc/profile:<br />
# export OPERAPLUGINWRAPPER_PRIORITY=0<br />
<br />
===Troubleshooting===<br />
<br />
* If you get the following error:<br />
<br />
/usr/lib/opera/9.27-20080331.6/opera: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory<br />
<br />
create a symlink(as root):<br />
# ln -s /opt/qt/lib/libqt-mt.so.3 /usr/lib/libqt-mt.so.3<br />
That should fix the problem.<br />
* If you sometimes have rendering problems, like duplicated pixel rows, turn of "smooth scrolling" (tools->preferences->advanced->browsing->smooth scrolling)</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Kernel_Patches_and_Patchsets&diff=52929Kernel Patches and Patchsets2008-11-08T15:16:09Z<p>EVRAMP: /* NOTE on compile times - please add to this! */</p>
<hr />
<div>[[Category:Kernel (English)]]<br />
[[Category:Development (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
=== Using popular patches and patchsets - contributions '''greatly''' appreciated!===<br />
<br />
The number of posts on the forums about kernel patches and patchsets has been steadily increasing, prompting the drafting of this document which aims to be a definitive guide. It seems it would also be useful to reduce the need for every wiki to include a kernel patch howto!<br />
<br />
There are lots of reasons to patch your kernel, the major ones are for performance or support for non-mainline features such as reiser4 file system support. Other reasons might include fun and to see how it is done and what the improvements are.<br />
<br />
However, it is important to note that the best way to increase the speed of your system is to first tailor your kernel to your system, especially the architecture and processor type. For this reason using pre-packaged versions of custom kernels with generic architecture settings is not recommended or really worth it. A further benefit is that you can reduce the size of your kernel (and therefore build time) by not including support for things you don't have or use. For example, I always start with the stock kernel config when a new kernel version is released and I remove support for things like bluetooth, video4linux, 1000Mbit ethernet, etc. Stuff '''I''' know I won't use '''before''' i build my next kernel! However, this page is not about customizing your kernel config but I would recommend that as a first step to be combined with a patchset later.<br />
<br />
'''PLEASE NOTE - most patchsets have a disclaimer attached to them - this is for good reason!'''<br />
<br />
This document attempts to cover:<br />
* How to install the patched kernels<br />
* What the patchsets do and where to get them<br />
<br />
==== How to install them====<br />
<br />
This is very easy ''if'' you have used abs and <code>makepkg</code> before, and easiest with the latest kernels. If you haven't built any custom packages yet you may like to leave this till after you have some experience. See also: [[ABS - The Arch Build System]] and [[The Arch package making HOW-TO - with guidelines]]<br />
<br />
If you haven't actually patched or customized a kernel before it is not that hard and there are many PKGBUILDS on the forum for individual patchsets. However, I would advise you to start from scratch with a bit of research on the benefits of each patchset rather than jumping on the nearest bandwagon! This way you'll learn much more about what you are doing rather than just choosing a kernel at startup and wondering what it actually does.<br />
<br />
The following wiki pages have also been written to aid the process of building a kernel with ABS:<br />
<br />
* [[Custom Kernel Compilation with ABS]] - this has been written especially to account for the variables used when patching the latest kernel versions, using the standard kernel versioning variables - a special patch version is also available<br />
<br />
See also:<br />
* [[Kernel Compilation]]<br />
<br />
==== NOTE on compile times - please add to this!====<br />
<br />
You might be wondering how long it takes to build a kernel. As I already said that depends on the size (i.e. what drivers are included) but also on your hardware (CPU, RAM) and (ironically) which kernel you are already running!<br />
<br />
;DibbleTheWrecker<br />
:approx 1h - P3M 1Ghz<br />
;Mith<br />
:approx 20min - AMD AthlonXP2200+<br />
;RedShift<br />
:approx <10 min - AMD Athlon64 3500+/ 1 GB RAM<br />
:approx 50 min - Pentium III 1 Ghz / 512 MB RAM<br />
:approx 30 min - Dual Pentium III 866 Mhz / 1 GB RAM<br />
;Me (iphitus?)<br />
:approx 15 min - AMD AthlonXP2000+ / 512 MB RAM<br />
;hellwoofa<br />
:approx 15 min (1st run) / 6 min (2nd) - AMD AthlonXP3000+ / 512 MB RAM and [[Faster compiling and makepkg with ccache HOWTO|ccache]]<br />
;Bavardage<br />
:approx 30 min - Intel CoreDuo T2050 @ 1.60GHz (with -j 4 makeflags)<br />
;EVRAMP<br />
:45min - Intel Celeron 2.4GHz / 512MB RAM<br />
<br />
=== Major patchsets===<br />
<br />
First of all it is important to note that patchsets are developed by a variety of people. Some of these people are actually involved in the production of the linux kernel and others are hobbyists - this ''should'' be considered to reflect a level of reliability and stability!<br />
<br />
It is also worth noting that some patchsets are built on the back of other patchsets (which may or may not be reflected in the title of the patch). Patchsets (and kernel updates) can be released '''very''' frequently and often it is not worth keeping up with ALL of them so don't go crazy, unless you make it your hobby!<br />
<br />
You can search google for more sets - remember to use quotes <code>"-nitro"</code> for example otherwise google will deliberately '''NOT''' show the results you want!<br />
<br />
Could people please add their experiences and comments about different patchsets below esp. re: stability (crashes), reliability (fixes) and performance.<br />
<br />
NOTE - this section is for '''information only''' - clearly no guarantees of stability or reliability are implied by inclusion on this page.<br />
<br />
==== -beyond====<br />
'''Note''': The beyond patchset development has been discontinued and is therefore not available in any Arch repositories.<br />
<br />
Beyond is a patchset based on the CK patchset. Beyond aims to include a variety of popular features and updates that have not yet made it to the vanilla kernel, while remaining relatively stable. Con Kolivas' CK patchset is the most important part of Beyond, as it provides the great interactivity and responsiveness improvements. <br />
<br />
website: http://iphitus.loudas.com/beyond.html<br />
<br />
==== -ck ====<br />
<br />
'''Note''': The -ck patchset has been discontinued as of Linux 2.6.22-ck1. A replacement is the -rt patchset (see below).<br />
<br />
These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://members.optusnet.com.au/ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.<br />
<br />
The -ck patches can be found at http://ck.kolivas.org/patches/2.6/<br />
<br />
==== -rt ====<br />
<br />
This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads. <br />
<br />
It further incorporates high resolution timers - a patch set, which is independently maintained.<br />
<br />
[as said from the [http://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch Real-Time Linux Wiki]]<br />
<br />
patch at http://www.kernel.org/pub/linux/kernel/projects/rt/<br />
<br />
==== -grsecurity====<br />
<br />
Grsecurity is a security focused patchset. It adds numerous security related features such as Role-Based Access Control and utilizes features of the PaX project. It can be used on a desktop but a public server would receive the greatest benefit. Some applications are incompatible with the additional security measures implemented by this patchset. If this occurs, consider using a lower security level.<br />
<br />
The -grsecurity patches can be found at http://grsecurity.net<br />
<br />
==== -mm====<br />
<br />
A patchset so popular that it even has prebuilt Arch packages in the unstable repository, but that shouldn't stop you from playing with it yourself! This patchset is maintained by [http://www.zip.com.au/~akpm/ Andrew Morton] and aims to increase the stability and performance of the Linux kernel. He aims to introduce bug fixes more quickly than mainline kernel and offers increased speed through a new disk I/O scheduler and realtime computing modifications, plus more.<br />
<br />
The -mm patches can be found at ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/<br />
<br />
==== -nitro====<br />
<br />
Another very popular patchset and one of the most discussed on the Arch forums, but it is not the most reliable or stable. Very popular with some gentoo users but disregarded as amateur by others. This patchset is predominately built on other patchsets. -nitro is maintained by a gentoo user and most frequently discussed on the gentoo forums http://forums.gentoo.org/.<br />
<br />
==== - Tiny-Patches====<br />
"The -tiny tree is a series of patches against the 2.6 mainline Linux kernel to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s"<br />
<br />
and maybe also for ricers ;-)<br />
<br />
http://www.selenic.com/<br />
<br />
==== -fallen====<br />
A newer patchset, aimed at providing most of the patches that -beyond had. It has the -ck patchset, fbsplash, reiser4, suspend2, latest 2.6.x.y patch, ACPI DSDT, squashfs, and Genpatches.<br />
<br />
http://www.fallendusk.org/linux_patches/fallen/<br />
<br />
==== -viper====<br />
"The main goal of this patchset is pretty much to offer the latest features, decrease latencies, decrease overhead, and improve interactivity. The only difference is experimental versions of everything."<br />
<br />
Note that the creator and maintainer of this patchset passed away July 2007: http://forums.gentoo.org/viewtopic-t-572071.html<br />
<br />
=== Individual patches===<br />
<br />
These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset. I have included some common ones for starters.<br />
<br />
==== Reiser4====<br />
<br />
[[Reiser4FShowto]] - http://www.namesys.com<br />
<br />
==== Gensplash/fbsplash====<br />
[[Gensplash]] - http://dev.gentoo.org/~spock/projects/<br />
<br />
----<br />
WikiMigration--[[User:Dlanor|dlanor]] 15:00, 23 Jul 2005 (EDT)</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Enlightenment&diff=51355Enlightenment2008-10-17T15:14:22Z<p>EVRAMP: E17 moved from cvs to svn</p>
<hr />
<div>[[Category: Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
Enlightenment is a project to provide 'advanced graphic libraries, tools and environments'.<br />
<br />
The Enlightenment project is split into 3 parts:<br />
* Enlightenment DR16, The original release of the enlightenment window manager. <br />
* Enlightenment DR17, The new replacement window manager for DR16.<br />
* Enlightenment Foundation Libraries, An expansion for extra libraries not part of the other two sections.<br />
<br />
== Enlightenment DR16 ==<br />
Enlightenment, Development Release 16 was first released in 2000, and its most recent release was in 2003. It is said to be still under development today.<br />
<br />
=== To install E16 ===<br />
Simply run 'pacman -S enlightenment'.<br />
<br />
== Enlightenment DR17 ==<br />
* Main article: [[e17]]<br />
<br />
Under Heavy development, constantly changing in SVN. Snapshots have been taken for the Arch Community Repositories, for easy installation and compatibility with the different parts.<br />
<br />
==== Also included in the E17 Section ====<br />
* Entice - Image Viewer.<br />
* Entrance - the Enlightement Desktop Manager.<br />
* Evidence - Enlightened file manager.<br />
* ERSS - For RSS feeds<br />
* Eplayer - The Enlightened media player.<br />
<br />
== Enlightenment Foundation Libraries ==<br />
A set of libraries for expansion on the enlightenment base.<br />
<br />
==== Libraries & What they are for ====<br />
* Imlib(2) - Image rendering and Manipulation LIBrary.<br />
* EDB - E DataBase wrapper<br />
* EET - Distrobution Container Libraries and Tools<br />
* Evas - Canvas Library<br />
* Ecore - For event abstraction and Modular Convenience<br />
* Epeg - For thumbnailing JPEGs<br />
* Epsilon - Freedesktop.org thumbnaiing library<br />
* Etox - Text Layout and Manipulation<br />
* Edje - Interface Abstraction Library & Tools<br />
* Embryo - The embeddable scripting language for E<br />
* EWL - Enlightenment Widget Library<br />
* Emotion - Video smart-object library for Evas<br />
<br />
==== Programs Developed with these libraries ====<br />
* Eclair - Media Player<br />
* Elicit - Colour picker and desktop magnifier<br />
* Embrace - Mail Application<br />
* Engage - Mac-like dockbar<br />
* Entice - Image viewer<br />
* Entrance - E17 Login Manager<br />
* Entropy - Engine for file-browsing<br />
* Ephoto - Sophisticated image viewing<br />
* ERSS - For displaying RSS feeds<br />
* Evidence - File Manager<br />
* Exhibit - Yet another image viewer<br />
<br />
== External Links ==<br />
[http://www.enlightenment.org/ Enlightenment Homepage]<br />
<br />
[http://www.get-e.org/ E17 Portal]<br />
<br />
[http://www3.get-e.org/E17_User_Guide/English/ E17 User Guide]<br />
<br />
[http://www3.get-e.org/EFL_User_Guide/English/ EFL User Guide]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=Desktop_environment&diff=51354Desktop environment2008-10-17T15:11:52Z<p>EVRAMP: E17 moved from cvs to svn</p>
<hr />
<div>[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Desktop_Environment}}<br />
{{i18n_entry|简体中文|Desktop_Environment (简体中文)}}<br />
{{i18n_links_end}}<br />
A Desktop Environment (DE) is a complete Graphical User Interface (GUI) for a computer.<br />
<br />
Desktop Environments usually include, but are not limited to:<br />
* Widgets<br />
* Toolbars/Panels<br />
* Applets<br />
* Applications<br />
* Icons<br />
* Wallpapers<br />
* A Window Manager<br />
<br />
<br />
== The X server ==<br />
To install/use a DE, you require X(org). If you are accessing this wiki through a graphical browser like Firefox or Konqueror, then you likely already have X and a DE installed. However, if you installed Arch using a base CD and are reading this wiki from the terminal (in a browser like links2), you likely don't have X. To install X, type the following in a console:<br />
pacman -S xorg<br />
<br />
For more information on X, see the [[Xorg]] article.<br />
<br />
== Installing a Desktop Environment ==<br />
There are many DE's available for Linux; here are just a few:<br />
* [[KDE]]<br />
* [[GNOME]]<br />
* [[Xfce]]<br />
* [[Enlightenment]]<br />
<br />
=== Installing KDE in a nutshell ===<br />
You can install KDE by simply typing the following in a root terminal:<br />
pacman -S kde<br />
<br />
This will first ask you if you want to install the whole KDE group of packages. This is about 270MB of downloads <sub>(4-2006 estimate with KDE 3.5.2)</sub>. If you don't want to install all of this, you can type 'n', and it will ask you which KDE packages you want. Below is a list of all the KDE packages and details about them.<br />
<br />
==== KDE Packages ====<br />
* arts - KDE Sound Engine<br />
* gwenview - KDE Image Viewer<br />
* kde-Common - Common KDE packages<br />
* kdeaccessibility - KDE Accessibility<br />
* kdeaddons - Plugins for konq, noatun, etc.<br />
* kdeadmin - Administration packages; includes user manager<br />
* kdeartwork - Artwork (Colors, themes, pictures, splash screens, etc.)<br />
* kdebase - Base of KDE. REQUIRED<br />
* kdebindings - KDE Key bindings<br />
* kdeedu - KDE Educational Applications<br />
* kdegames - Games for KDE<br />
* kdegraphics - Graphic-related Applications<br />
* kdelibs - KDE Libraries. REQUIRED<br />
* kdemultimedia - Includes Multimedia Applications for KDE<br />
* kdenetwork - KDE Network-related package, including kppp, etc.<br />
* kdepim - Personal Information Management; Korganiser, KMail, etc.<br />
* kdesdk - KDE Software Development Kit<br />
* kdetoys - Small Applications and toys for KDE; Eyes, Amusing Misuse of Resources (AMOR)<br />
* kdeutils - Little extra applications; ark, kcalc, etc.<br />
<br />
For more information, see [[KDE]].<br />
<br />
=== Installing GNOME in a nutshell ===<br />
You can install GNOME by simply typing the following in a root terminal:<br />
pacman -S gnome<br />
<br />
Like the KDE one, this will first ask whether you want the whole GNOME group. The total download for installing GNOME is 125.6MB <sub>(As of 12-2006)</sub>. If not, you may select which packages to install. Below is a list of the GNOME packages, and explanations of what they are.<br />
<br />
==== GNOME Packages ====<br />
* gnome-icon-theme - An icon theme for GNOME<br />
* control-center - The GNOME Control Center<br />
* epiphany - GNOME web-browser<br />
* gnome-applets - Panel Applets<br />
* gnome-backgrounds - Desktop Backgrounds<br />
* gnome-common - Common GNOME files<br />
* gnome-desktop - The GNOME Desktop<br />
* gnome-media - GNOME Media Tools<br />
* gnome-mime-data - Mime Data for GNOME<br />
* gnome-panel - GNOME Panel<br />
* gnome-session - GNOME Session handling<br />
* gnome-themes - Themes for GNOME<br />
* gnome2-user-docs - GNOME User Documentation<br />
* metacity - GNOME Window Manager<br />
* nautilus - GNOME File Browser<br />
* vte - GNOME Terminal Widget<br />
* yelp - GNOME Help browser<br />
<br />
For more information, see [[GNOME]].<br />
<br />
=== Installing Xfce in a nutshell ===<br />
You can install Xfce by simply typing the following in a root terminal:<br />
pacman -S xfce4<br />
<br />
As with both the KDE and GNOME installs, it will first ask you if you want to install the whole Xfce group. The total downloads for Xfce is 44.9MB <sub>(As of 4-2006)</sub>. If you choose not to install the whole group, see below for each package and its details.<br />
<br />
==== Xfce packages ====<br />
* gtk-xfce-engine - The Xfce-GTK graphics engine<br />
* libxfce4mcs - Settings management support for Xfce.<br />
* libxfce4util - Non-GUI functions for Xfce<br />
* libxfcegui4 - GTK widgets for Xfce<br />
* orage - Xfce Calendar<br />
* thunar - File manager<br />
* xfce-mcs-manager - Settings manager.<br />
* xfce-mcs-plugins - Plugins for settings manager<br />
* xfce-utils - startxfce4 script, run dialog, etc.<br />
* xfce4-appfinder - Application finder<br />
* xfce4-icon-theme - Icon theme<br />
* xfce4-iconbox - Simple application management, similar to taskbar.<br />
* xfce4-mixer - Volume control plugin for the panel<br />
* xfce4-panel - Xfce Panel<br />
* xfce4-session - Session management<br />
* xfce4-systray - System tray plugin for the panel<br />
* xfce4-toys - Small toys for Xfce<br />
* xfce4-trigger-launcher - Trigger launcher panel plugin<br />
* xfdesktop - Allows desktop wallpaper, icons, and menus<br />
* xfprint - The Xfce Print package<br />
* xfwm4 - Xfce Window Manager<br />
* xfwm4-themes - Themes for Xfce Window Manager<br />
<br />
For more information, see [[Xfce]].<br />
<br />
=== Installing Enlightenment in a nutshell ===<br />
Enlightenment has two versions:<br />
* DR16, the older code, originally released 2000, with most recent release 2003.<br />
* DR17, the newer code, still in pre-alpha (although quite stable).<br />
<br />
==== Enlightenment Development Release 16 ====<br />
You can install Enlightenment DR16 by simply typing the following in a root terminal:<br />
pacman -S enlightenment<br />
<br />
It seems that E16 is only the window manager, and not a whole Desktop Environment; See [[Window_Managers_and_Desktop_Environments_-_What_are_they%3F]] for more info.<br />
<br />
==== Enlightenment Development Release 17 ====<br />
You can install Enlightenment DR17 from the community repository, by typing the following in a root terminal:<br />
pacman -S e17-svn<br />
<br />
Install additional packages with:<br />
pacman -S e17-extra-svn<br />
<br />
Enlightenment DR17 has a similar group of packages to KDE, GNOME and Xfce. Below is a list of packages in the E17 group.<br />
<br />
==== E17 Packages ====<br />
* e - The window manager<br />
* ecore - Event Abstraction and Modular Convenience<br />
* edb-devel - E Database Development package<br />
* edje - Interface Abstraction Library & Tools<br />
* eet - Distribution Container Libraries & Tools<br />
* embryo - Embeddable scripting language for enlightenment<br />
* emotion - Video smart-object library for evas<br />
* entice - An Image Viewer<br />
* entrance - The E Display Manager<br />
* epeg - For thumbnailing JPEGs<br />
* epsilon - Freedesktop.org thumbnailing library<br />
* esmart - A collection of evas smart objects<br />
* etox - Text Layout and Manipulation<br />
* evas - Canvas Library<br />
* ewl - Enlightenment Widget Library<br />
* imlib2-devel - Image Rendering and Manipulation Library<br />
* imlib2_loaders - Loaders for the Image Rendering and Manipulation Library<br />
<br />
For more information, see [[Enlightenment]] and/or [[E17]].<br />
<br />
== Configuring the Desktop Environment ==<br />
<br />
=== Under KDE ===<br />
<br />
After installing kdeadmin, from the konsole, type 'kcontrol' (kde3mod), or go to K Menu --> System Settings (kde 4).<br />
<br />
=== Under GNOME ===<br />
<br />
Use the preferences menu to drop down to whatever you'd like to change.<br />
<br />
=== Under Xfce ===<br />
<br />
Right-click on the desktop and pull down to the settings menu. From there you can open the settings manager.<br />
<br />
=== Under E17 ===<br />
<br />
Navigate from the E17 menu (or left-click the desktop), and go to Configuration --> Configuration Panel.<br />
<br />
== Other ==<br />
<br />
=== Links ===<br />
==== Internal Links ====<br />
* [[Xorg]]<br />
* [[KDE]] | [[KDEmod]]<br />
* [[GNOME]]<br />
* [[Xfce]]<br />
* [[Enlightenment]]<br />
* [[E17]]<br />
<br />
==== External links ====<br />
* [http://en.wikipedia.org/wiki/Desktop_Environment Desktop Environment on Wikipedia]</div>EVRAMPhttps://wiki.archlinux.org/index.php?title=CUPS&diff=45401CUPS2008-07-15T19:35:26Z<p>EVRAMP: /* PDF Virtual Printer */</p>
<hr />
<div>[[Category:Printers (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|CUPS}}<br />
{{i18n_entry|Рolski|CUPS (Polski)}}<br />
{{i18n_links_end}}<br />
=Introduction=<br />
<br />
==What is CUPS?==<br />
<br />
Straight from the CUPS website: "The Common UNIX Printing System ("CUPS") is a cross-platform printing solution for all UNIX environments. It is based on the "Internet Printing Protocol" and provides complete printing services to most Postscript and raster printers. CUPS is provided under the GNU GPL..." Although there are other printing packages such as LPRNG, CUPS is quite popular and relatively easy to use. It is the default printing system on Arch Linux as well as many other Linux distributions.<br />
<br />
==Troubleshooting CUPS & components==<br />
<br />
The best way to get printing working is to set 'LogLevel' in '/etc/cups/cupsd.conf' to:<br />
<pre><br />
LogLevel debug2<br />
</pre><br />
And then viewing the output from '/var/log/cups/error_log' like this:<br />
<pre><br />
# tail -n 100 -f /var/log/cups/error_log<br />
</pre><br />
The characters at the left of the output stands for:<br />
<pre><br />
D = Debug<br />
E = Error<br />
I = Information<br />
etc...<br />
</pre><br />
These files may also prove useful.<br />
<pre><br />
/var/log/cups/page_log 'spits out a new entry each time a print is successful.'<br />
/var/log/cups/access_log 'lists all cupsd http1.1 server activity'<br />
</pre><br />
<br />
Of course it's important to know how CUPS work if you want to solve your problems, this is somewhat correct:<br />
<br />
# An application sends a .ps file (PostScript, a script language that details how the page will look) to CUPS when you select 'print' (99% of apps do).<br />
# CUPS then looks at your printers PPD file (printer description file) and figures out what filters it needs to use to convert the .ps file to a language that the printer understands (like PJL,PCL). Usually it needs ghostscript.<br />
# GhostScript takes the input and figures out which filters it should use, then applies them and converts the .ps file to a format understood by the printer.<br />
# Then it is sent to the backend. For example, if you have your printer connected to a USB port, it uses the USB backend.<br />
<br />
Print a document and watch 'error_log' to get a more detailed and correct image of the printing process.<br />
<br />
=Installing CUPS=<br />
<br />
==Packages==<br />
<br />
You will need CUPS and Ghostscript for sure:<br />
# pacman -S cups ghostscript gsfonts<br />
<br />
* <b>cups</b> - The actual CUPS software<br />
* <b>ghostscript</b> - An interpreter for the Postscript language<br />
* <b>gsfonts</b> - Ghostscript standard Type1 fonts<br />
<br />
<br />
Some of the following driver packages, it depends on the printer you own. If unsure, install gutenprint.<br />
<br />
* <b>gutenprint</b> - A collection of high quality drivers for Canon, Epson, Lexmark, Sony, Olympus, and PCL printers for use with Ghostscript, CUPS, Foomatic, and the Gimp.<br />
* <b>foomatic</b>, <b>foomatic-db</b>, <b>foomatic-db-engine</b>, <b>foomatic-db-ppd</b> and <b>foomatic-filters</b> - Foomatic is a database-driven system for integrating free software printer drivers with common spoolers under Unix<br />
* Installing <b>foomatic-filters</b> should solve your problems if the cups error_log is reporting "stopped with status 22!"<br />
* <b>hplip</b> - HP Linux inkjet driver. Provides support for DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet printer models.<br />
* <b>cups-pdf</b> - A nice package that allows one to setup a virtual PDF Printer that generates a PDF out of anything sent to it.<br />
<br />
<br />
If your system is connected to a networked printer using the samba protocol or if the system is to be a print server for Windows clients:<br />
# pacman -S samba<br />
<br />
==Download Printer PPD==<br />
<br />
Depending on your printer, this step is optional and may not be needed, as the standard CUPS installation already comes with quite a few PPD (Postscript Printer Description) files. Moreover, the <i>foomatic-filters</i>, <i>gimp-print</i> and <i>hplip</i> packages already include quite a few PPD files which will automatically be detected by CUPS.<br />
<br />
<br />
Here's an explanation of what a PPD file is from the Linux Printing website: "For every PostScript printer the manufacturers provide a PPD file which contains all printer-specific information about the particular printer model: Basic printer capabilities as whether the printer is a color printer, fonts, PostScript level, etc., and especially the user-adjustable options, as paper size, resolution, etc."<br />
<br />
<br />
*To get the PPD file for your printer, go to http://www.linuxprinting.org/printer_list.cgi and select the manufacturer and model of your printer.<br />
<br />
<br />
*Now, you will need to copy the file to the cups folder so it can detect the file. If you are in the folder where you downloaded the PPD file, you can use the following command:<br />
<br />
<pre><br />
# cp your_printer.ppd /usr/share/cups/model/<br />
</pre><br />
<br />
<br />
If you cannot find your printer on the website, you may want to try similar models or using generic printer drivers. Just do some googling or ask your manufacturer (good luck with that).<br />
<br />
=Configuring Cups=<br />
<br />
==Options==<br />
<br />
Now that you have cups installed, you have a variety of options on how to setup CUPS. You can always use the tried and true command line. Likewise, various desktop environments such as GNOME and KDE have useful programs that can help you manage your printers. However, in order to make this process easy for the largest amount of users, we will use the web interface provided by CUPS.<br />
<br />
Please note that if you are planning on connecting to a network printer, rather than one that is directly connected to your computer, you may wish to jump to the Printer Sharing section first. Linux to Linux printer sharing is quite easy and involves very little configuration. Windows to Linux and vice-versa requires a little bit more effort, but is relatively easy as well.<br />
<br />
==Kernel Modules==<br />
<br />
Before we can use the CUPS web interface, we must install the appropriate kernel modules. The following are steps that I got from the Gentoo Printing Guide. <br />
===USB printers===<br />
If you want to use a USB printer with a 2.6.x kernel, use the following command:<br />
<br />
<pre><br />
# modprobe usblp<br />
</pre><br />
<br />
If you are using a USB printer and a 2.4.x kernel, use the following command:<br />
<br />
<pre><br />
# modprobe printer<br />
</pre><br />
<br />
Note, this assumes that you are using the stock kernels from Arch Linux. If you custom-rolled your own, you may need to run this first:<br />
<br />
<pre><br />
# modprobe usbcore<br />
</pre><br />
<br />
Once you have the modules installed, you should plug in your printer and check if the kernel detected it by running the following:<br />
<br />
<pre><br />
# tail /var/log/messages.log<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
# dmesg<br />
</pre><br />
<br />
<br />
You should see something like this:<br />
<br />
<pre><br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
</pre><br />
<br />
===Parallel port printers===<br />
If you plan on using a parallel port printer, the configuration is pretty much the same. Kernel 2.6.x users have to first type in:<br />
<br />
<pre><br />
# modprobe lp<br />
</pre><br />
<br />
And then both 2.4.x and 2.6.x kernel users can enter in:<br />
<br />
<pre><br />
# modprobe parport<br />
# modprobe parport_pc<br />
</pre><br />
<br />
Once again, you can check your setup by running:<br />
# tail /var/log/messages.log<br />
You should see something like this:<br />
<br />
<pre><br />
lp0: using parport0 (polling).<br />
</pre><br />
<br />
<br />
Note: Installing my Brother HL 1250 I found that permissions for the device won't let CUPS write on the device, so it doesn't print. To fix it:<br />
<br />
<pre><br />
[root@mihal ~]# ls /dev/usb/<br />
lp0<br />
[root@mihal ~]# chgrp lp /dev/usb/lp0<br />
<br />
</pre><br />
<br />
===Auto-loading===<br />
You may also want to have the system automatically load the kernel module every time the computer starts up. To do this use your favorite text editor to open up <code>/etc/rc.conf</code> and add the appropriate module to the <i>MODULES=()</i> line. Here's a portion of the text from my <code>rc.conf</code> file:<br />
<br />
<pre><br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss lp parport parport_pc ide-scsi)<br />
</pre><br />
<br />
==CUPS Daemon==<br />
<br />
With the kernel modules installed, you are now ready to start the actual CUPS daemon. To do this, simply run this command:<br />
<br />
<pre><br />
# /etc/rc.d/cups start<br />
</pre><br />
<br />
If you want to have cups start up automatically every time you start your computer, then you need to add it to your DAEMONS=() line in the <code>/etc/rc.conf</code> file. For example:<br />
<br />
<pre><br />
DAEMONS=(pcmcia syslogd klogd !fam esd mono network autofs cups crond gdm)<br />
</pre><br />
<br />
==Web Interface and tool kit.==<br />
<br />
Once the daemon is running, if a web interface is available. Open up your browser and go to:<br />
<br />
<i>http://localhost:631</i><br />
<br />
(You may need to replace ''localhost'' with your hostname found in <code>/etc/hosts</code>)<br />
<br />
'''or''' install "GNOME CUPS Manager" GUI frontend (see Appendix: A.1 [http://wiki.archlinux.org/index.php/CUPS_Setup#Alternative_CUPS_Interfaces Alternative CUPS Interfaces])<br />
<br />
From here, all you have to do is follow the various wizards to add your printer. To setup my Samsung ML-1250 printer, I started out by clicking on <i>Manage Printers</i>, and then <i>Add Printer</i>. I was then prompted for a username and password. I just logged in as root. I entered in ml1250 for my printer name, My Room for location and then Peter's Samsung ML-1250 Laster Printer for description. Next you will select the device. Since my printer is a USB device, I just selected <i>USB Printer #1</i>. The name of my printer also showed up next to the label <i>USB Printer #1</i>, so look for that. Next, I simply chose the appropriate drivers and the installation was complete.<br />
<br />
Once the installation is complete, you can test your configuration by pressing the Print Test Page button.<br />
<br />
=Printer Sharing=<br />
<br />
==Linux to Linux==<br />
<br />
Once you have CUPS setup on your Linux print server, sharing the printer with another Linux box is relatively easy. There are several ways to configure such a scenario -- here we will describe the manual setup. On the server computer (the one managing and connecting to the printer) simply open up <code>/etc/cups/cupsd.conf</code> and allow access to the server by modifying the location lines. For instance:<br />
<br />
<pre><br />
<Location /><br />
Order Deny,Allow<br />
Deny From All<br />
Allow From 127.0.0.1<br />
Allow From 10.0.0.*<br />
</Location><br />
</pre><br />
<br />
You will also need to make sure the server is listening on the IP address your client will be addressing. Add the following line after "Listen localhost:631":<br />
<br />
<pre><br />
Listen 10.0.0.1:631<br />
</pre><br />
<br />
using your server's IP address instead of 10.0.0.1.<br />
<br />
Add the IP address of the client computer by doing Allow From client_ip_address. After you make your modifications, you will want to restart CUPS by doing:<br />
<br />
<pre><br />
# /etc/rc.d/cups restart<br />
</pre><br />
<br />
On the client side, open up <code>/etc/cups/client.conf</code> and edit the ServerName option to match the IP address or the name of your server. For instance, I named my server beast and have an entry in my hosts file to point to it. So in my <code>client.conf</code> file, I just edited this line:<br />
<br />
<pre><br />
ServerName beast<br />
</pre><br />
<br />
Next, run the following command to update the client computer:<br />
<br />
<pre><br />
# lpq<br />
</pre><br />
<br />
You should see something like this:<br />
<br />
<pre><br />
ml1250 is ready<br />
no entries<br />
</pre><br />
<br />
There are more configuration possibilities including an automatic configuration which are described in detail on http://localhost:631/sam.html#CLIENT_SETUP (this link works on your printer server).<br />
<br />
When prompted for username and password, use root to access.<br />
Then follow the instructions from here<br />
http://www.digitalhermit.com/linux/printing/<br />
if it's a TCP/IP printer, use JetDirect.<br />
<br />
That's it for Linux to Linux printer sharing.<br />
<br />
==Linux to Windows==<br />
<br />
If you are connected to a Windows print server (or any other Samba capable print server), you can skip the section about kernel modules and such. All you have to do is start the CUPS daemon and complete the web interface as specified in section 3.3 and 3.4. Before this, you need to activate the Samba CUPS backend. You can do this by entering the following command:<br />
<br />
<pre><br />
# ln -s `which smbspool` /usr/lib/cups/backend/smb<br />
</pre><br />
<br />
Note that the symbol before is ` (underneath the ~ on a standard US keyboard) and not '. After this, you will have to restart CUPS using the command specified in the previous section. Next, simply log in on the CUPS web interface and choose to add a new printer. For device, there should be an option that says something to the effect of "Windows Printer Via Samba" near the button of the device list. For the device location, enter:<br />
<br />
<pre><br />
smb://username:password@hostname/printer_name<br />
</pre><br />
<br />
Or without a password:<br />
<br />
<pre><br />
smb://username@hostname/printer_name<br />
</pre><br />
<br />
Make sure that the user actually has access to the printer on the Windows computer. Select the appropriate drivers and that's about it. If the computer is located on a domain, make sure the username includes the domain: <br />
<pre><br />
smb://username:password@domain/hostname/printer_name<br />
</pre><br />
<br />
Note: If your network contains many printers, use "lpoptions -d your_desired_default_printer_name" to set your preferred printer<br />
<br />
Note: I, thepizzaking, was having 'NT_STATUS_ACCESS_DENIED' errors and to fix them I needed to use a slightly different syntax:<br />
<pre><br />
smb://workgroup/username:password@hostname/printer_name<br />
</pre><br />
<br />
==Windows to Linux==<br />
<br />
Sometimes you might want to allow a Windows computer to connect to your Linux server. There are a few ways to do this, and the one I am most familiar with is using Samba. In order to do this, you will have to edit your <code>/etc/samba/smb.conf</code> file to allow access to your printers. Your <code>smb.conf</code> can look something like this:<br />
<br />
<pre><br />
[global]<br />
workgroup = Heroes<br />
server string = Arch Linux Print Server<br />
security = user<br />
<br />
[printers]<br />
comment = All Printers<br />
path = /var/spool/samba<br />
browseable = yes<br />
# to allow user 'guest account' to print.<br />
guest ok = no<br />
writable = no<br />
printable = yes<br />
create mode = 0700<br />
write list = @adm root neocephas<br />
</pre><br />
<br />
That should be enough to share your printer, but you just might want to add an individual printer entry:<br />
<br />
<pre><br />
[ML1250]<br />
comment = Samsung ML-1250 Laser Printer<br />
printer=ml1250<br />
path = /var/spool/samba<br />
printing = cups<br />
printable = yes<br />
printer admin = @admin root neocephas<br />
user client driver = yes<br />
# to allow user 'guest account' to print.<br />
guest ok = no<br />
writable = no<br />
write list = @adm root neocephas<br />
valid users = @adm root neocephas<br />
</pre><br />
<br />
Please note that in my configuration I made it so that users must have a valid account to access the printer. To have a public printer, set ''guest ok'' to ''yes'', and remove the ''valid users'' line. To add accounts, you must set up a regular Linux account and then set up a Samba password on the server. For instance:<br />
<br />
<pre><br />
# useradd neocephas<br />
# smbpasswd -a neocephas<br />
</pre><br />
<br />
After setting up any user accounts that you need, you will also need to set up the samba spool directory:<br />
<br />
<pre><br />
# mkdir /var/spool/samba<br />
# chmod 777 /var/spool/samba<br />
</pre><br />
<br />
The next items that need changing are <code>/etc/cups/mime.convs</code> and <code>/etc/cups/mime.types</code>:<br />
<br />
<code>mime.convs</code>:<br />
<pre><br />
# The following line is found at near the end of the file. Uncomment it.<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
</pre><br />
<br />
<code>mime.types</code>:<br />
<pre><br />
# Again near the end of the file.<br />
application/octet-stream<br />
</pre><br />
<br />
The changes to <code>mime.convs</code> and <code>mime.types</code> are needed to make CUPS print Microsoft Office document files. Many people seem to need that.<br />
<br />
After this, restart your Samba daemon:<br />
<br />
<pre><br />
# /etc/rc.d/samba restart<br />
</pre><br />
<br />
Obviously there are a lot of tweaks and customizations that can be done with setting up a Samba print server, so I advise you to look at the Samba and CUPS documentation for more help. The <code>smb.conf.example</code> file also has some good samples to that you might want to look at.<br />
<br />
==Windows 2000 and Windows XP to Linux==<br />
<br />
For the most modern flavors of Windows, an alternative way of connecting to your Linux printer server is to use the CUPS protocol directly. The Windows client will need to be using Windows 2000 or Windows XP. Make sure you allow the clients to access the print server by editing the location settings as specified in section 4.1.<br />
<br />
On the Windows computer, go to the printer control panel and choose to Add a New Printer. Next, choose to give a URL. For the URL, type in the location of your printer:<br />
<br />
<i>http://host_ip_address:631/printers/printer_name</i><br />
<br />
where host_ip_address is the Linux server's IP address and printer_name is the name of the printer you are connecting to. After this, install the printer drivers for the Windows computer. If you setup the CUPS server to use its own printer drivers, then you can just select a generic postscript printer for the Windows client. You can then test your print setup by printing a test page.<br />
<br />
==Others to Linux, Linux to others==<br />
<br />
More information on interfacing CUPS with other printing systems can be found in the CUPS manual, e.g. on http://localhost:631/sam.html#PRINTING_OTHER<br />
<br />
=Appendix=<br />
<br />
==Alternative CUPS Interfaces==<br />
<br />
If you are a GNOME user, you can manage and configure your printer by using the gnome-cups-manager.<br />
<br />
Update: this package is now available through pacman if you have the "community" repository uncommented in <code>/etc/pacman.conf</code><br />
<br />
<pre><br />
# pacman -S gnome-cups-manager<br />
</pre><br />
<br />
The package is also still available from the [http://aur.archlinux.org/packages.php?do_Details=1&ID=66&O=0&L=0&C=0&K=cups&SB=&SO=&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd AUR].<br />
<br />
KDE users can modify their printers from the Control Center. Both should refer to those desktop environments' documentation for more information on how to use the interfaces.<br />
<br />
There is also gtklp. It is in the "extra" repository.<br />
<br />
<pre><br />
# pacman -S gtklp<br />
</pre><br />
<br />
==PDF Virtual Printer==<br />
<br />
A nice little package that I submitted is CUPS-PDF. This package allows one to setup a virtual printer that will generate a PDF from anything sent to it. For example, I wrote this document in AbiWord and then printed it to the Virtual Printer which generated a PDF in my <code>/var/spool/cups-pdf/neocephas</code> directory. Obviously this package is not necessary, but it can be quite useful.<br />
This package can be installed by the following comamnd:<br />
<pre><br />
# pacman -S cups-pdf<br />
</pre><br />
After installing the package, you can set it up as you would for any other printer in the web interface. Select Virtual PDF Printer as the device and choose Postscript -> Postscript Color Printer for the drivers. When selecting Make/Manufacturer for CUPS-PDF provide PPD file from this link: [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd].<br />
<br />
==Online Resources==<br />
<br />
Here is a listing of web sites that may be of use to you:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Specialized Cases==<br />
<br />
This section is dedicated to specific problems and their solutions. If you managed to get some unusual printer working, please put the solution here.<br />
<br />
===Printing does not work/aborts with the HP Deskjet 700 Series Printers.===<br />
<br />
*The solution is to install <b>pnm2ppa</b> printer filter for the HP Deskjet 700 series. Without this the print jobs will be aborted by the system. A [[ABS - The Arch Build System | PKGBUILD]] for pnm2ppa can be found in [http://aur.archlinux.org/packages.php?do_Details=1&ID=696&O=0&L=0&C=0&K=pnm&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0 AUR].<br />
<br />
===Getting HP LaserJet 1010 to work===<br />
I had to compile ghostscript myself because ESP gs in rep was 7.07 and had not fixed some bugs like ESP 8.15.1 had. I never downloaded 'foomatic' in rep. I think that is an old package. <br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
I also had to set LogLevel in <code>/etc/cups/cupsd.conf</code> to debug2 before i saw that I missed some "Nimbus" fonts. Then I had to rename and put them where the log told me to. Some fancy google searching had to be applied, e.g., http://www.google.com/search?q=n019003l+filetype%3Apfb since the fonts turned out to be proprietary (I'm sure Windows comes with these by default). Nevertheless, after downloading them (about 7 fonts) and putting them in the correct directory, printing started working.<br />
<br />
Before, I was getting all the errors said here: http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 'Unsupport PCL' etc...<br />
<br />
I'm sure it could have worked with ESP gs 7.07 too (in rep) if I were smart enough to turn on DebugLevel2 sooner :/ UPDATE: yeah it did... maybe this info is useful for someone else though... sorry for the inconvenience.<br />
<br />
===Getting HP LaserJet 1020 to work===<br />
After a lot of tries with hplib and gutenprint, I finally found the solution to get my printer HP LaserJet 1020 printing. <br />
<br />
First of all, you only need to install cups and ghostscript. Then follow the link on http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 to the http://foo2zjs.rkkda.com/ printer driver page and follow the install instructions. Log in as root. After you've downloaded the package and extracted the archive, change into the foo2zjs directory. Now you can follow the original installation instructions with a minor modification to change the userid for printing:<br /><br />
<br />
$ make<br />
$ ./getweb 1020<br />
<br />
Open the ''Makefile''<br />
$ nano Makefile<br />
and search for the line<br />
# LPuid=-olp<br />
and modify it to<br />
# LPuid=-oroot<br />
then continue with the script<br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
<br />
Or you can use the package foo2zjs from AUR and modify the PKGBUILD. Change the line:<br />
<br />
./getweb all<br />
<br />
to<br />
<br />
./getweb 1020<br />
<br />
(or if you're setting another printer, change this line to what you need).<br />
<br />
As a last step, add and configure the printer in the CUPS manager. The printer should be recognized automatically. It works fine for root and all users. When booting the operating system, the printer is initialized and indicates it's working.<br />
<br />
=== Printer connected to an Airport Express Station ===<br />
The first thing to do is to scan the airport express station. It<br />
seems that there are different addresses depending on the model.<br />
<pre><br />
[root@somostation somos]# nmap 192.168.0.4<br />
<br />
Starting Nmap 4.20 ( http://insecure.org ) at 2007-06-26 00:50 CEST<br />
Interesting ports on 192.168.0.4:<br />
Not shown: 1694 closed ports<br />
PORT STATE SERVICE<br />
5000/tcp open UPnP<br />
9100/tcp open jetdirect<br />
10000/tcp open snet-sensor-mgmt<br />
MAC Address: 00:14:51:70:D5:66 (Apple Computer)<br />
<br />
Nmap finished: 1 IP address (1 host up) scanned in 25.815 seconds<br />
</pre><br />
With my station, the port is 9100. The airport station is accessed like<br />
an HP JetDirect printer.<br />
Afterwards, you can edit your <code>printer.conf</code> file in this way:<br />
<pre><br />
# Printer configuration file for CUPS v1.2.11<br />
# Written by cupsd on 2007-06-26 00:44<br />
<Printer LaserSim><br />
Info SAMSUNG ML-1510 gdi<br />
Location SomoStation<br />
DeviceURI socket://192.168.0.4:9100<br />
State Idle<br />
StateTime 1182811465<br />
Accepting Yes<br />
Shared Yes<br />
JobSheets none none<br />
QuotaPeriod 0<br />
PageLimit 0<br />
KLimit 0<br />
OpPolicy default<br />
ErrorPolicy stop-printer<br />
</Printer><br />
</pre><br />
It should work. I had a few problems. They were resolved by removing foomatic and installing foomatic-db, foomatic-db-engine, foomatic-db-ppd instead.<br />
<br />
===Performing Utility Functions on Epson Printers===<br />
<br />
====Escputil====<br />
<br />
Here we explain how to perform some of the utility functions such as nozzle cleaning and nozzle checks on Epson printers. We will use the escputil utility, which is part of the gutenprint package.<br />
<br />
There is a man page ("man escputil") that provides pretty good information, but it does not include necessary information on how to identify your printer. There are two parameters that can be used. One is --printer; what it expects is the name you used to identify your printer when you configured it. The other is --raw-device. What this option expects is is something beginning with "/dev". If your printer is a serial printer, and the only serial printer, it is "/dev/lp0". If it is a USB printer, it is "/dev/usb/lp0". If you have more than one printer, they will have names ending in "lp1", "lp2", etc. <br />
<br />
* To clean the printer heads:<br />
<br />
escputil -u --clean-head<br />
<br />
* To print the nozzle-check pattern, allowing you to verify that the previous head cleaning worked. (Or to determine that you need to clean the heads)<br />
<br />
escputil -u --nozzle-check<br />
<br />
If you want to perform an operation that requires two-way communication with a printer, you must use the "--raw-device" specification and your user must be root or be a member of the group "lp". <br />
<br />
* The following is an example of getting the printer's internal identification:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* To print out the ink levels of the printer:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
This is a printer status monitor which enables to get the remaining ink quantity, to print test patterns, to reset printer and to clean nozzle. It use an intuitive graphical user interface. Package can be downloaded from [http://aur.archlinux.org/packages.php?do_Details=1&ID=476&O=0&L=0&C=0&K=mtink&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd AUR].<br />
<br />
==Another Source for Printer Drivers==<br />
<br />
On <i>http://www.turboprint.de/english.html</i> is a really good printer driver for many printers not yet supported by Linux (especially Canon i*). The only problem is that high-quality-prints are either marked with a turboprint-logo or you have to pay for it -- it's not open source.<br />
<br />
{{Wikipedia|Common_Unix_Printing_System}}<br />
<br />
=Troubleshooting=<br />
==As a result of upgrade==<br />
<br />
===Error with gnutls===<br />
After updating, if you get something like :<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
<br />
You need to update gnutls:<br />
<pre><br />
# pacman -Sy gnutls<br />
</pre><br />
<br />
In addition, in <code>/etc/cups</code>, there will be a file named <code>cupsd.conf.pacnew</code>. Rename it <code>cupsd.conf</code>.<br />
<br />
===All jobs are "stopped"===<br />
After updating CUPS, if all jobs sent to the printer become "stopped", delete the printer and add it again.<br />
Using the CUPS web interface (http://localhost:631), go to Printers > Delete Printer.<br />
<br />
''Note:'' If you don't remember your printer's settings, go to Printers > Modify Printer. Copy down the information displayed, click 'Modify Printer' to proceed to the next page(s), etc.</div>EVRAMP