https://wiki.archlinux.org/api.php?action=feedcontributions&user=Sylvain&feedformat=atomArchWiki - User contributions [en]2024-03-28T11:02:12ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=USB_flash_installation_medium&diff=311633USB flash installation medium2014-04-24T05:31:51Z<p>Sylvain: </p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[ar:USB Installation Media]]<br />
[[bg:USB Installation Media]]<br />
[[de:Installation von einem USB-Stick]]<br />
[[es:USB Installation Media]]<br />
[[fr: Créer une clef USB avec l'ISO Arch Linux]]<br />
[[it:USB Installation Media]]<br />
[[ja:USB Installation Media]]<br />
[[ro:Instalare prin USB]]<br />
[[ru:USB Installation Media]]<br />
[[tr:USB_ile_kurulum]]<br />
[[zh-CN:USB Installation Media]]<br />
[[zh-TW:USB Installation Media]]<br />
{{Related articles start}}<br />
{{Related|CD Burning}}<br />
{{Related|Archiso}}<br />
{{Related articles end}}<br />
This page discusses various mutiplatform methods on how to create a Arch Linux Installer USB drive (also referred to as ''"flash drive", "USB stick", "USB key"'', etc) for booting in BIOS and UEFI systems. The result will be a LiveUSB (LiveCD-like) system that can be used for installing Arch Linux, system maintenance or for recovery purposes, and that, because of the nature of [[Wikipedia:SquashFS|SquashFS]], will discard all changes once the computer shuts down.<br />
<br />
If you would like to run a full install of Arch Linux from a USB drive (i.e. with persistent settings), see [[Installing Arch Linux on a USB key]]. If you would like to use your bootable Arch Linux USB stick as a rescue USB, see [[Change Root]].<br />
<br />
== BIOS and UEFI Bootable USB ==<br />
<br />
=== Using dd ===<br />
{{Note|This method is recommended due to its simplicity. If it does not work switch to the alternative method [[#Using manual formatting ]] below.}}<br />
<br />
{{Warning|This will irrevocably destroy all data on {{ic|/dev/sd'''x'''}}.}}<br />
<br />
==== In GNU/Linux ====<br />
<br />
{{Tip|Check that the USB flash installation media is '''not''' mounted with {{ic|lsblk}}.}}<br />
<br />
{{Note|Use {{ic|/dev/sd'''x'''}} instead of {{ic|/dev/sd'''x1'''}}, and adjust '''x''' to reflect the targeted device.}}<br />
<br />
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sd'''x''' && sync<br />
<br />
{{Note|If you are using a previously bootable USB disk you need to reformat it first.}}<br />
<br />
==== In Windows ====<br />
<br />
<br />
===== Using USBwriter =====<br />
This method do not require any workaround and is as straightforward as dd under linux. Just download the archlinux iso and use the [http://sourceforge.net/p/usbwriter/wiki/Documentation/|USBwriter] utility to write to your USB flash memory.<br />
<br />
===== Using Universal USB Installer =====<br />
<br />
This is probably the most straightforward way to create a bootable Arch linux USB stick from Windows. Download [http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ Universal USB Installer], which runs on Windows XP/Vista/7/8. There's no installation involved, you directly download a single executable. Download the Arch iso file and run Universal-USB-Installer-1.9.5.2.exe (the version numbers will vary). The use of the program is fairly self-explanatory. You select the distribution you'd like to create a bootable USB for (archlinux), the iso file you downloaded, and the USB flash disk you want to install to.<br />
<br />
{{Note|1= As of UUI 1.9.5.2 this does not work out-of-the-box because of a [https://bbs.archlinux.org/viewtopic.php?pid=1344629 discrepancy in syslinux versions].}}<br />
<br />
{{Tip| The Arch syslinux installer uses the USB disk label to facilitate mounting the correct drive. The current version of UUI (1.9.5.2) sets the disk label to UUI, when Arch is expecting something else. You can easily fix this by right clicking the USB drive icon and clicking on Properties to change the label. For archlinux-2014.04.01-dual.iso, the label should be {{ic|ARCH_201404}}. It should be clear what the label should be for other versions of the ISO, but in any case Arch will tell you what the label needs to be if you attempt to boot from the USB with an incorrect label.}}<br />
<br />
{{Warning| Make sure you don't accidentally click on one of the ads on the pendrivelinux.com page which feature prominent {{ic|Download}} buttons -- these are likely to carry virus/spyware/trojan payloads. The Pendrive download button is small and near the middle of the page.}}<br />
<br />
===== Using Cygwin =====<br />
<br />
Make sure your [http://www.cygwin.com/ Cygwin] installation contains the {{ic|dd}} package.<br />
<br />
{{Tip|If you do not want to install Cygwin, you can download {{ic|dd}} for Windows from [http://www.chrysocome.net/dd here]. See the next section for more information.}}<br />
<br />
Place your image file in your home directory:<br />
<br />
C:\cygwin\home\John\<br />
<br />
Run cygwin as administrator (required for cygwin to access hardware). To write to your USB drive use the following command:<br />
<br />
dd if=image.iso of=\\.\[x]: bs=4M<br />
<br />
where image.iso is the path to the iso image file within the {{ic|cygwin}} directory and {{ic|\\.\['''x''']}}: is your USB flash drive where '''x''' is the windows designated letter, e.g. {{ic|\\.\d:}}.<br />
<br />
On Cygwin 6.0 find out the correct partition with:<br />
<br />
cat /proc/partitions<br />
<br />
and write the ISO image with the information from the output. Example:<br />
<br />
{{Warning|This will irrevocably delete all files on your USB flash drive, so make sure you do not have any important files on the stick before doing this.}}<br />
<br />
dd if=image.iso of=/dev/sdb bs=4M<br />
<br />
===== dd for Windows =====<br />
<br />
{{Note|Some users have an "isolinux.bin missing or corrupt" problem when booting the media with this method.}}<br />
<br />
A GPL licensed dd version for Windows is available at http://www.chrysocome.net/dd. The advantage of this over Cygwin is a smaller download. Use it as shown in instructions for Cygwin above.<br />
<br />
To begin, download the latest version of dd for Windows. Once downloaded, extract the archive's contents into Downloads or elsewhere.<br />
<br />
Now, launch your {{ic|command prompt}} as an administrator. Next, change directory ({{ic|cd}}) into the Downloads directory.<br />
<br />
If your Arch Linux ISO is elsewhere you may need to state the full path, for convenience you may wish to put the Arch Linux ISO into the same folder as the dd executable. The basic format of the command will look like this.<br />
<br />
{{bc|<nowiki>dd if=archlinux-2014-XX-xx-dual.iso of=\\.\x: bs=4m</nowiki>}}<br />
{{Warning|This command will replace the drive's contents and its formatting with the ISO's. You will likely be unable to recover its contents in the event of an accidental copy. Be absolutely sure that you are directing dd to the correct drive before executing!}}<br />
Simply replace the various null spots (indicated by an "x") with the correct date and correct drive letter.<br />
<br />
Here is a complete example.<br />
{{bc|<nowiki>dd if=ISOs\archlinux-2014.04.01-dual.iso of=\\.\d: bs=4M</nowiki>}}<br />
<br />
==== In Mac OS X ====<br />
<br />
To be able to use {{ic|dd}} on your USB device on a Mac you have to do some special maneuvers. First of all insert your usb device, OS X will automount it, and in {{ic|Terminal.app}} run:<br />
<br />
$ diskutil list<br />
<br />
Figure out what your USB device is called with {{ic|mount}} or {{ic|<nowiki>sudo dmesg | tail</nowiki>}} (e.g. {{ic|/dev/disk1}}) and unmount the partitions on the device (i.e., /dev/disk1s1) while keeping the device proper (i.e., /dev/disk1):<br />
<br />
$ diskutil unmountDisk /dev/disk1<br />
<br />
Now we can continue in accordance with the instructions above (but use {{ic|1=bs=8192}} if you are using the OS X {{ic|dd}}, the number comes from {{ic|1024*8}}).<br />
<br />
{{hc|<nowiki>sudo dd if=image.iso of=/dev/disk1 bs=8192</nowiki>|<br />
20480+0 records in<br />
20480+0 records out<br />
167772160 bytes transferred in 220.016918 secs (762542 bytes/sec)<br />
}}<br />
<br />
It is probably a good idea to eject your drive before physical removal at this point:<br />
<br />
$ diskutil eject /dev/disk1<br />
<br />
==== How to restore the USB drive ====<br />
<br />
Because the ISO image is a hybrid which can either be burned to a disc or directly written to a USB drive, it does not include a standard partition table.<br />
<br />
After you install Arch Linux and you are done with the USB drive, you should zero out its first 512 bytes ''(meaning the boot code from the MBR and the non-standard partition table)'' if you want to restore it to full capacity:<br />
<br />
# dd count=1 bs=512 if=/dev/zero of=/dev/sd'''x''' && sync<br />
<br />
Then create a new partition table (e.g. "msdos") and filesystem (e.g. EXT4, FAT32) using {{Pkg|gparted}}, or from a terminal:<br />
<br />
* For EXT2/3/4 (adjust accordingly), it would be:<br />
<br />
# cfdisk /dev/sd'''x'''<br />
# mkfs.ext4 /dev/sd'''x1'''<br />
# e2label /dev/sd'''x1''' USB_STICK<br />
<br />
* For FAT32, install the {{Pkg|dosfstools}} package and run:<br />
<br />
# cfdisk /dev/sd'''x'''<br />
# mkfs.vfat -F32 /dev/sd'''x1'''<br />
# dosfslabel /dev/sd'''x1''' USB_STICK<br />
<br />
=== Using manual formatting===<br />
<br />
==== In GNU/Linux ====<br />
<br />
This method is more complicated than writing the image directly with {{ic|dd}}, but it does keep the flash drive usable for data storage.<br />
<br />
* Make sure that the latest ''syslinux'' package (version 6.02 or newer) is installed on the system. <br />
<br />
* A MBR (msdos) partition table with at least one partition, containing a FAT32 filesystem must be present on the device. If not, create the partition and/or filesystem before continuing.<br />
<br />
* Mount the ISO image.<br />
# mkdir -p /mnt/iso<br />
# mount -o loop archlinux-2014.04.01-dual.iso /mnt/iso<br />
<br />
{{Note|In any of the following commands, adjust {{ic|/dev/sd'''X'''1}} according to your system.}}<br />
* Mount the FAT32 filesystem on the USB flash device, and copy the contents of the isofile to it.<br />
# mkdir -p /mnt/usb<br />
# mount /dev/sd'''X'''1 /mnt/usb<br />
# cp -a /mnt/iso/* /mnt/usb<br />
# sync<br />
# umount /mnt/{usb,iso}<br />
<br />
* Adjust the configuration files archiso_sys32 and archiso_sys64. This step is not required when using [[Archboot]] instead of [[Archiso]]. This command replaces the {{ic|1=archisolabel=ARCH_2014XX}} part with your equivalent of {{ic|1=archiso'''device'''=/dev/disk/by-uuid/47FA-4071}} in both files.<br />
{{Warning|Failure to label the drive "{{ic|ARCH_2014XX}}" (with the appropriate release month) or to use an [[UUID]] (to re-label it to whatever you like) prevents booting from the created medium.}}<br />
<br />
$ sed -i "s|label=ARCH_.*|device=/dev/disk/by-uuid/$(blkid -o value -s UUID /dev/sd'''X'''1)|" archiso_sys{32,64}.cfg<br />
<br />
* If want to use UUID to boot, such as by running the above command, and want to boot the stick using from a system using EFI, you need to update /mnt/usb/loader/entries/archiso-x86_64.conf (or similar for 32-bit ISO) similarly, by removing {{ic|1=archisolabel=ARCH_2014XX}} and adding {{ic|1=archisodevice=/dev/disk/by-uuid/your-uuid-here}}.<br />
<br />
{{Note|Again, adjust {{ic|/dev/sd'''X'''1}}.}}<br />
{{Accuracy|This makes no sense as you are changing files on a device you just unmounted, and also doesn't match the 2014 isos. Really, the Archiso/Archboot USB media creation process needs separate pages}}<br />
<br />
* Install Syslinux to the flash drive by following [[Syslinux#Manual_install]]. Overwrite the existing syslinux modules ({{ic|*.c32}} files) present in the USB (from the ISO) with the ones from the syslinux package. This is necessary to avoid boot failure because of a possible version mismatch.<br />
<br />
* Mark the partition as active by following [[Syslinux#MBR_partition_table]]<br />
<br />
==== In Windows ====<br />
<br />
{{Note|<br />
* Do not use any '''Bootable USB Creator utility''' for creating the UEFI bootable USB. Do not use ''dd for Windows'' to dd the ISO to the USB drive.<br />
<br />
* In the below commands '''X:''' is assumed to be the USB flash drive in Windows.<br />
<br />
* Windows used backward slash {{ic|\}} as path-separator, so the same is used in the below commands.<br />
<br />
* All commands should be run in Windows command prompt '''as administrator'''.<br />
<br />
* {{ic|>}} denotes the Windows command prompt.<br />
}}<br />
<br />
* Partition and format the USB drive using [http://rufus.akeo.ie/ Rufus USB partitioner]. Select partition scheme option as '''MBR for BIOS and UEFI''' and File system as '''FAT32'''. Uncheck "Create a bootable disk using ISO image" and "Create extended label and icon files" options. Use <br />
<br />
* Change the '''Volume Label''' of the USB flash drive {{ic|X:}} to match the LABEL mentioned in {{ic|1=archisolabel=}} part in {{ic|<ISO>\loader\entries\archiso-x86_64.conf}}. This step is required for Official ISO ([[Archiso]]) but not required for [[Archboot]].<br />
<br />
* Extract the ISO (similar to extracting ZIP archive) to the USB flash drive (using [http://7-zip.org/ 7-Zip]. <br />
<br />
* Download latest official syslinux 6.xx binaries (zip file) from https://www.kernel.org/pub/linux/utils/boot/syslinux/ and extract it.<br />
<br />
* Run the following command (in Windows cmd prompt, as admin):<br />
<br />
{{Note|Use {{ic|X:\boot\syslinux\}} for Archboot iso.}}<br />
<br />
> cd bios\<br />
> for /r %Y in (*.c32) do copy "%Y" "X:\arch\boot\syslinux\" /y<br />
> copy mbr\*.bin X:\arch\boot\syslinux\ /y<br />
<br />
* Install Syslinux to the USB by running (use {{ic|win64\syslinux64.exe}} for x64 Windows):<br />
<br />
{{Note|Use {{ic|/boot/syslinux}} for Archboot iso.}}<br />
<br />
> cd bios\<br />
> win32\syslinux.exe -d /arch/boot/syslinux -i -a -m X:<br />
<br />
{{Note|<br />
* The above step install Syslinux {{ic|ldlinux.sys}} to the USB partition VBR, sets the partition as active/boot in the MBR partition table and write the MBR boot code to the 1st 400-byte boot code region of the USB.<br />
<br />
* The {{ic|-d}} switch expects path with forward slash path-separator like in *unix systems.<br />
}}<br />
<br />
== Other Methods for BIOS systems ==<br />
{{Out of date|Can someone verify these work/are even needed to be mentioned?|section=Other Methods for BIOS systems}}<br />
=== In GNU/Linux ===<br />
<br />
==== Using UNetbootin ====<br />
<br />
UNetbootin can be used on any Linux distribution or Windows to copy your iso to a USB device. However, Unetbootin overwrites syslinux.cfg, so it creates a USB device that does not boot properly. For this reason, '''Unetbootin is not recommended''' -- please use {{ic|dd}} or one of the other methods discussed in this topic.<br />
{{Warning|UNetbootin writes over the default {{ic|syslinux.cfg}}; this must be restored before the USB device will boot properly.}}<br />
<br />
Edit {{ic|syslinux.cfg}}:<br />
<br />
{{hc|sysconfig.cfg|2=<br />
default menu.c32<br />
prompt 0<br />
menu title Archlinux Installer<br />
timeout 100<br />
<br />
label unetbootindefault<br />
menu label Archlinux_x86_64<br />
kernel /arch/boot/x86_64/vmlinuz<br />
append initrd=/arch/boot/x86_64/archiso.img archisodevice=/dev/sd'''x1''' ../../<br />
<br />
label ubnentry0<br />
menu label Archlinux_i686<br />
kernel /arch/boot/i686/vmlinuz<br />
append initrd=/arch/boot/i686/archiso.img archisodevice=/dev/sd'''x1''' ../../<br />
}}<br />
<br />
In {{ic|/dev/sd'''x1'''}} you must replace '''x''' with the first free letter after the last letter in use on the system where you are installing Arch Linux (e.g. if you have two hard drives, use {{ic|c}}.). You can make this change during the first phase of boot by pressing {{ic|Tab}} when the menu is shown.<br />
<br />
=== In Windows ===<br />
<br />
==== Win32 Disk Imager ====<br />
<br />
{{Warning|This will destroy all information on your USB flash drive!}}<br />
First, download the program from [http://sourceforge.net/projects/win32diskimager/ here]. Next, extract the archive and run the executable. Now, select the Arch Linux ISO under the {{ic|Image File}} section and the USB flash device letter (for example, [D:\]) under the {{ic|Device}} section. Finally, click {{ic|Write}} when ready.<br />
{{Note|After installation, you may need to restore the USB flash drive following a process as outlined [[USB_Installation_Media#How_to_restore_the_USB_drive|here]].}}<br />
<br />
==== USBWriter for Windows ====<br />
<br />
Download the program from http://sourceforge.net/projects/usbwriter/ and run it. Select the arch image file, the target USB stick, and click on the {{ic|write}} button. Now you should be able to boot from the usb stick and install Arch Linux from it.<br />
<br />
==== The Flashnul way ====<br />
<br />
[http://shounen.ru/soft/flashnul/ flashnul] is an utility to verify the functionality and maintenance of Flash-Memory (USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash etc).<br />
<br />
From a command prompt, invoke flashnul with {{ic|-p}}, and determine which device index is your USB drive, e.g.:<br />
<br />
{{hc|C:\>flashnul -p|<br />
Avaible physical drives:<br />
Avaible logical disks:<br />
C:\<br />
D:\<br />
E:\<br />
}}<br />
<br />
When you have determined which device is the correct one, you can write the image to your drive, by invoking flashnul with the device index, {{ic|-L}}, and the path to your image, e.g:<br />
<br />
C:\>flashnul '''E:''' -L ''path\to\arch.iso''<br />
<br />
As long as you are really sure you want to write the data, type yes, then wait a bit for it to write. If you get an access denied error, close any Explorer windows you have open.<br />
<br />
If under Vista or Win7, you should open the console as administrator, or else flashnul will fail to open the stick as a block device and will only be able to write via the drive handle windows provides<br />
<br />
{{Note|Confirmed that you need to use drive letter as opposed to number. flashnul 1rc1, Windows 7 x64.}}<br />
<br />
==== Loading the installation media from RAM ====<br />
<br />
This method uses [[Syslinux]] and a [[Ramdisk]] ([http://www.syslinux.org/wiki/index.php/MEMDISK MEMDISK]) to load the entire Arch Linux ISO image into RAM. Since this will be running entirely from system memory, you will need to make sure the system you will be installing this on has an adequate amount. A minimum amount of RAM between 500 MB and 1 GB should suffice for a MEMDISK based, Arch Linux install.<br />
<br />
For more information on Arch Linux system requirements as well as those for MEMDISK see the [[Beginners' guide]] and [http://www.etherboot.org/wiki/bootingmemdisk#preliminaries here].<br />
{{Tip|Once the installer has completed loading you can simply remove the USB stick and even use it on a different machine to start the process all over again. Utilizing MEMDISK also allows booting and installing Arch Linux to and from the same USB flash drive.}}<br />
<br />
===== Preparing the USB flash drive =====<br />
<br />
Begin by formatting the USB flash drive as '''FAT32'''. Then create the following folders on the newly formatted drive.<br />
* {{ic|Boot}}<br />
** {{ic|Boot/ISOs}}<br />
** {{ic|Boot/Settings}}<br />
<br />
===== Copy the needed files to the USB flash drive =====<br />
<br />
Next copy the ISO that you would like to boot to the {{ic|Boot/ISOs}} folder. After that, extract from the following files from the latest release of {{pkg|syslinux}} from [http://www.kernel.org/pub/linux/utils/boot/syslinux/ here] and copy them into the following folders.<br />
* {{ic|./win32/syslinux.exe}} to the Desktop or Downloads folder on your system.<br />
* {{ic|./memdisk/memdisk}} to the {{ic|Settings}} folder on your USB flash drive.<br />
<br />
===== Create the configuration file =====<br />
<br />
After copying the needed files, navigate to the USB flash drive, /boot/Settings and create a {{ic|syslinux.cfg}} file.<br />
{{Warning|On the {{ic|INITRD}} line, be sure to use the name of the ISO file that you copied to your {{ic|ISOs}} folder!}}<br />
{{hc|/Boot/Settings/syslinux.cfg|2=<br />
DEFAULT arch_iso<br />
<br />
LABEL arch_iso<br />
MENU LABEL Arch Setup<br />
LINUX memdisk<br />
INITRD /Boot/ISOs/archlinux-2014.04.01-dual.iso<br />
APPEND iso}}<br />
For more information on Syslinux see the [[Syslinux|Arch Wiki article]].<br />
<br />
===== Final steps =====<br />
<br />
Finally, create a {{ic|*.bat}} file where {{ic|syslinux.exe}} is located and run it ("Run as administrator" if you are on Vista or Windows 7):<br />
{{hc|C:\Documents and Settings\username\Desktop\install.bat|<br />
@echo off<br />
syslinux.exe -m -a -d /Boot/Settings X:}}<br />
<br />
== Troubleshooting ==<br />
<br />
* For the [[#Loading the installation media from RAM|MEMDISK Method]], if you get the famous "30 seconds" error trying to boot the i686 version, press the {{ic|Tab}} key over the {{ic|Boot Arch Linux (i686)}} entry and add {{ic|vmalloc&#61;448M}} at the end. For reference: ''If your image is bigger than 128MiB and you have a 32-bit OS, then you have to increase the maximum memory usage of vmalloc''. [http://www.syslinux.org/wiki/index.php/MEMDISK#-_memdiskfind_in_combination_with_phram_and_mtdblock]<br />
<br />
* If you get the "30 seconds" error due to the {{ic|/dev/disk/by-label/ARCH_XXXXYY}} not mounting, try renaming your USB media to {{ic|ARCH_XXXXYY}} (e.g. {{ic|ARCH_201404}}).<br />
<br />
== See Also ==<br />
<br />
* [https://wiki.gentoo.org/wiki/LiveUSB/HOWTO Gentoo wiki - LiveUSB/HOWTO]<br />
* [https://fedoraproject.org/wiki/How_to_create_and_use_Live_USB Fedora wiki - How to create and use Live USB]<br />
* [http://en.opensuse.org/SDB:Live_USB_stick openSUSE wiki - SDB:Live USB stick]</div>Sylvainhttps://wiki.archlinux.org/index.php?title=USB_flash_installation_medium&diff=311632USB flash installation medium2014-04-24T05:23:48Z<p>Sylvain: added the use of usb writer on windows to burn the usb.</p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[ar:USB Installation Media]]<br />
[[bg:USB Installation Media]]<br />
[[de:Installation von einem USB-Stick]]<br />
[[es:USB Installation Media]]<br />
[[fr: Créer une clef USB avec l'ISO Arch Linux]]<br />
[[it:USB Installation Media]]<br />
[[ja:USB Installation Media]]<br />
[[ro:Instalare prin USB]]<br />
[[ru:USB Installation Media]]<br />
[[tr:USB_ile_kurulum]]<br />
[[zh-CN:USB Installation Media]]<br />
[[zh-TW:USB Installation Media]]<br />
{{Related articles start}}<br />
{{Related|CD Burning}}<br />
{{Related|Archiso}}<br />
{{Related articles end}}<br />
This page discusses various mutiplatform methods on how to create a Arch Linux Installer USB drive (also referred to as ''"flash drive", "USB stick", "USB key"'', etc) for booting in BIOS and UEFI systems. The result will be a LiveUSB (LiveCD-like) system that can be used for installing Arch Linux, system maintenance or for recovery purposes, and that, because of the nature of [[Wikipedia:SquashFS|SquashFS]], will discard all changes once the computer shuts down.<br />
<br />
If you would like to run a full install of Arch Linux from a USB drive (i.e. with persistent settings), see [[Installing Arch Linux on a USB key]]. If you would like to use your bootable Arch Linux USB stick as a rescue USB, see [[Change Root]].<br />
<br />
== BIOS and UEFI Bootable USB ==<br />
<br />
=== Using dd ===<br />
{{Note|This method is recommended due to its simplicity. If it does not work switch to the alternative method [[#Using manual formatting ]] below.}}<br />
<br />
{{Warning|This will irrevocably destroy all data on {{ic|/dev/sd'''x'''}}.}}<br />
<br />
==== In GNU/Linux ====<br />
<br />
{{Tip|Check that the USB flash installation media is '''not''' mounted with {{ic|lsblk}}.}}<br />
<br />
{{Note|Use {{ic|/dev/sd'''x'''}} instead of {{ic|/dev/sd'''x1'''}}, and adjust '''x''' to reflect the targeted device.}}<br />
<br />
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sd'''x''' && sync<br />
<br />
{{Note|If you are using a previously bootable USB disk you need to reformat it first.}}<br />
<br />
==== In Windows ====<br />
<br />
===== Using USBwriter ====<br />
This method do not require any workaround and is as straightforward as dd under linux. Just download the archlinux iso and use the [http://sourceforge.net/p/usbwriter/wiki/Documentation/|USBwriter] utility to write to your USB flash memory.<br />
<br />
===== Using Universal USB Installer =====<br />
<br />
This is probably the most straightforward way to create a bootable Arch linux USB stick from Windows. Download [http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ Universal USB Installer], which runs on Windows XP/Vista/7/8. There's no installation involved, you directly download a single executable. Download the Arch iso file and run Universal-USB-Installer-1.9.5.2.exe (the version numbers will vary). The use of the program is fairly self-explanatory. You select the distribution you'd like to create a bootable USB for (archlinux), the iso file you downloaded, and the USB flash disk you want to install to.<br />
<br />
{{Note|1= As of UUI 1.9.5.2 this does not work out-of-the-box because of a [https://bbs.archlinux.org/viewtopic.php?pid=1344629 discrepancy in syslinux versions].}}<br />
<br />
{{Tip| The Arch syslinux installer uses the USB disk label to facilitate mounting the correct drive. The current version of UUI (1.9.5.2) sets the disk label to UUI, when Arch is expecting something else. You can easily fix this by right clicking the USB drive icon and clicking on Properties to change the label. For archlinux-2014.04.01-dual.iso, the label should be {{ic|ARCH_201404}}. It should be clear what the label should be for other versions of the ISO, but in any case Arch will tell you what the label needs to be if you attempt to boot from the USB with an incorrect label.}}<br />
<br />
{{Warning| Make sure you don't accidentally click on one of the ads on the pendrivelinux.com page which feature prominent {{ic|Download}} buttons -- these are likely to carry virus/spyware/trojan payloads. The Pendrive download button is small and near the middle of the page.}}<br />
<br />
===== Using Cygwin =====<br />
<br />
Make sure your [http://www.cygwin.com/ Cygwin] installation contains the {{ic|dd}} package.<br />
<br />
{{Tip|If you do not want to install Cygwin, you can download {{ic|dd}} for Windows from [http://www.chrysocome.net/dd here]. See the next section for more information.}}<br />
<br />
Place your image file in your home directory:<br />
<br />
C:\cygwin\home\John\<br />
<br />
Run cygwin as administrator (required for cygwin to access hardware). To write to your USB drive use the following command:<br />
<br />
dd if=image.iso of=\\.\[x]: bs=4M<br />
<br />
where image.iso is the path to the iso image file within the {{ic|cygwin}} directory and {{ic|\\.\['''x''']}}: is your USB flash drive where '''x''' is the windows designated letter, e.g. {{ic|\\.\d:}}.<br />
<br />
On Cygwin 6.0 find out the correct partition with:<br />
<br />
cat /proc/partitions<br />
<br />
and write the ISO image with the information from the output. Example:<br />
<br />
{{Warning|This will irrevocably delete all files on your USB flash drive, so make sure you do not have any important files on the stick before doing this.}}<br />
<br />
dd if=image.iso of=/dev/sdb bs=4M<br />
<br />
===== dd for Windows =====<br />
<br />
{{Note|Some users have an "isolinux.bin missing or corrupt" problem when booting the media with this method.}}<br />
<br />
A GPL licensed dd version for Windows is available at http://www.chrysocome.net/dd. The advantage of this over Cygwin is a smaller download. Use it as shown in instructions for Cygwin above.<br />
<br />
To begin, download the latest version of dd for Windows. Once downloaded, extract the archive's contents into Downloads or elsewhere.<br />
<br />
Now, launch your {{ic|command prompt}} as an administrator. Next, change directory ({{ic|cd}}) into the Downloads directory.<br />
<br />
If your Arch Linux ISO is elsewhere you may need to state the full path, for convenience you may wish to put the Arch Linux ISO into the same folder as the dd executable. The basic format of the command will look like this.<br />
<br />
{{bc|<nowiki>dd if=archlinux-2014-XX-xx-dual.iso of=\\.\x: bs=4m</nowiki>}}<br />
{{Warning|This command will replace the drive's contents and its formatting with the ISO's. You will likely be unable to recover its contents in the event of an accidental copy. Be absolutely sure that you are directing dd to the correct drive before executing!}}<br />
Simply replace the various null spots (indicated by an "x") with the correct date and correct drive letter.<br />
<br />
Here is a complete example.<br />
{{bc|<nowiki>dd if=ISOs\archlinux-2014.04.01-dual.iso of=\\.\d: bs=4M</nowiki>}}<br />
<br />
==== In Mac OS X ====<br />
<br />
To be able to use {{ic|dd}} on your USB device on a Mac you have to do some special maneuvers. First of all insert your usb device, OS X will automount it, and in {{ic|Terminal.app}} run:<br />
<br />
$ diskutil list<br />
<br />
Figure out what your USB device is called with {{ic|mount}} or {{ic|<nowiki>sudo dmesg | tail</nowiki>}} (e.g. {{ic|/dev/disk1}}) and unmount the partitions on the device (i.e., /dev/disk1s1) while keeping the device proper (i.e., /dev/disk1):<br />
<br />
$ diskutil unmountDisk /dev/disk1<br />
<br />
Now we can continue in accordance with the instructions above (but use {{ic|1=bs=8192}} if you are using the OS X {{ic|dd}}, the number comes from {{ic|1024*8}}).<br />
<br />
{{hc|<nowiki>sudo dd if=image.iso of=/dev/disk1 bs=8192</nowiki>|<br />
20480+0 records in<br />
20480+0 records out<br />
167772160 bytes transferred in 220.016918 secs (762542 bytes/sec)<br />
}}<br />
<br />
It is probably a good idea to eject your drive before physical removal at this point:<br />
<br />
$ diskutil eject /dev/disk1<br />
<br />
==== How to restore the USB drive ====<br />
<br />
Because the ISO image is a hybrid which can either be burned to a disc or directly written to a USB drive, it does not include a standard partition table.<br />
<br />
After you install Arch Linux and you are done with the USB drive, you should zero out its first 512 bytes ''(meaning the boot code from the MBR and the non-standard partition table)'' if you want to restore it to full capacity:<br />
<br />
# dd count=1 bs=512 if=/dev/zero of=/dev/sd'''x''' && sync<br />
<br />
Then create a new partition table (e.g. "msdos") and filesystem (e.g. EXT4, FAT32) using {{Pkg|gparted}}, or from a terminal:<br />
<br />
* For EXT2/3/4 (adjust accordingly), it would be:<br />
<br />
# cfdisk /dev/sd'''x'''<br />
# mkfs.ext4 /dev/sd'''x1'''<br />
# e2label /dev/sd'''x1''' USB_STICK<br />
<br />
* For FAT32, install the {{Pkg|dosfstools}} package and run:<br />
<br />
# cfdisk /dev/sd'''x'''<br />
# mkfs.vfat -F32 /dev/sd'''x1'''<br />
# dosfslabel /dev/sd'''x1''' USB_STICK<br />
<br />
=== Using manual formatting===<br />
<br />
==== In GNU/Linux ====<br />
<br />
This method is more complicated than writing the image directly with {{ic|dd}}, but it does keep the flash drive usable for data storage.<br />
<br />
* Make sure that the latest ''syslinux'' package (version 6.02 or newer) is installed on the system. <br />
<br />
* A MBR (msdos) partition table with at least one partition, containing a FAT32 filesystem must be present on the device. If not, create the partition and/or filesystem before continuing.<br />
<br />
* Mount the ISO image.<br />
# mkdir -p /mnt/iso<br />
# mount -o loop archlinux-2014.04.01-dual.iso /mnt/iso<br />
<br />
{{Note|In any of the following commands, adjust {{ic|/dev/sd'''X'''1}} according to your system.}}<br />
* Mount the FAT32 filesystem on the USB flash device, and copy the contents of the isofile to it.<br />
# mkdir -p /mnt/usb<br />
# mount /dev/sd'''X'''1 /mnt/usb<br />
# cp -a /mnt/iso/* /mnt/usb<br />
# sync<br />
# umount /mnt/{usb,iso}<br />
<br />
* Adjust the configuration files archiso_sys32 and archiso_sys64. This step is not required when using [[Archboot]] instead of [[Archiso]]. This command replaces the {{ic|1=archisolabel=ARCH_2014XX}} part with your equivalent of {{ic|1=archiso'''device'''=/dev/disk/by-uuid/47FA-4071}} in both files.<br />
{{Warning|Failure to label the drive "{{ic|ARCH_2014XX}}" (with the appropriate release month) or to use an [[UUID]] (to re-label it to whatever you like) prevents booting from the created medium.}}<br />
<br />
$ sed -i "s|label=ARCH_.*|device=/dev/disk/by-uuid/$(blkid -o value -s UUID /dev/sd'''X'''1)|" archiso_sys{32,64}.cfg<br />
<br />
* If want to use UUID to boot, such as by running the above command, and want to boot the stick using from a system using EFI, you need to update /mnt/usb/loader/entries/archiso-x86_64.conf (or similar for 32-bit ISO) similarly, by removing {{ic|1=archisolabel=ARCH_2014XX}} and adding {{ic|1=archisodevice=/dev/disk/by-uuid/your-uuid-here}}.<br />
<br />
{{Note|Again, adjust {{ic|/dev/sd'''X'''1}}.}}<br />
{{Accuracy|This makes no sense as you are changing files on a device you just unmounted, and also doesn't match the 2014 isos. Really, the Archiso/Archboot USB media creation process needs separate pages}}<br />
<br />
* Install Syslinux to the flash drive by following [[Syslinux#Manual_install]]. Overwrite the existing syslinux modules ({{ic|*.c32}} files) present in the USB (from the ISO) with the ones from the syslinux package. This is necessary to avoid boot failure because of a possible version mismatch.<br />
<br />
* Mark the partition as active by following [[Syslinux#MBR_partition_table]]<br />
<br />
==== In Windows ====<br />
<br />
{{Note|<br />
* Do not use any '''Bootable USB Creator utility''' for creating the UEFI bootable USB. Do not use ''dd for Windows'' to dd the ISO to the USB drive.<br />
<br />
* In the below commands '''X:''' is assumed to be the USB flash drive in Windows.<br />
<br />
* Windows used backward slash {{ic|\}} as path-separator, so the same is used in the below commands.<br />
<br />
* All commands should be run in Windows command prompt '''as administrator'''.<br />
<br />
* {{ic|>}} denotes the Windows command prompt.<br />
}}<br />
<br />
* Partition and format the USB drive using [http://rufus.akeo.ie/ Rufus USB partitioner]. Select partition scheme option as '''MBR for BIOS and UEFI''' and File system as '''FAT32'''. Uncheck "Create a bootable disk using ISO image" and "Create extended label and icon files" options. Use <br />
<br />
* Change the '''Volume Label''' of the USB flash drive {{ic|X:}} to match the LABEL mentioned in {{ic|1=archisolabel=}} part in {{ic|<ISO>\loader\entries\archiso-x86_64.conf}}. This step is required for Official ISO ([[Archiso]]) but not required for [[Archboot]].<br />
<br />
* Extract the ISO (similar to extracting ZIP archive) to the USB flash drive (using [http://7-zip.org/ 7-Zip]. <br />
<br />
* Download latest official syslinux 6.xx binaries (zip file) from https://www.kernel.org/pub/linux/utils/boot/syslinux/ and extract it.<br />
<br />
* Run the following command (in Windows cmd prompt, as admin):<br />
<br />
{{Note|Use {{ic|X:\boot\syslinux\}} for Archboot iso.}}<br />
<br />
> cd bios\<br />
> for /r %Y in (*.c32) do copy "%Y" "X:\arch\boot\syslinux\" /y<br />
> copy mbr\*.bin X:\arch\boot\syslinux\ /y<br />
<br />
* Install Syslinux to the USB by running (use {{ic|win64\syslinux64.exe}} for x64 Windows):<br />
<br />
{{Note|Use {{ic|/boot/syslinux}} for Archboot iso.}}<br />
<br />
> cd bios\<br />
> win32\syslinux.exe -d /arch/boot/syslinux -i -a -m X:<br />
<br />
{{Note|<br />
* The above step install Syslinux {{ic|ldlinux.sys}} to the USB partition VBR, sets the partition as active/boot in the MBR partition table and write the MBR boot code to the 1st 400-byte boot code region of the USB.<br />
<br />
* The {{ic|-d}} switch expects path with forward slash path-separator like in *unix systems.<br />
}}<br />
<br />
== Other Methods for BIOS systems ==<br />
{{Out of date|Can someone verify these work/are even needed to be mentioned?|section=Other Methods for BIOS systems}}<br />
=== In GNU/Linux ===<br />
<br />
==== Using UNetbootin ====<br />
<br />
UNetbootin can be used on any Linux distribution or Windows to copy your iso to a USB device. However, Unetbootin overwrites syslinux.cfg, so it creates a USB device that does not boot properly. For this reason, '''Unetbootin is not recommended''' -- please use {{ic|dd}} or one of the other methods discussed in this topic.<br />
{{Warning|UNetbootin writes over the default {{ic|syslinux.cfg}}; this must be restored before the USB device will boot properly.}}<br />
<br />
Edit {{ic|syslinux.cfg}}:<br />
<br />
{{hc|sysconfig.cfg|2=<br />
default menu.c32<br />
prompt 0<br />
menu title Archlinux Installer<br />
timeout 100<br />
<br />
label unetbootindefault<br />
menu label Archlinux_x86_64<br />
kernel /arch/boot/x86_64/vmlinuz<br />
append initrd=/arch/boot/x86_64/archiso.img archisodevice=/dev/sd'''x1''' ../../<br />
<br />
label ubnentry0<br />
menu label Archlinux_i686<br />
kernel /arch/boot/i686/vmlinuz<br />
append initrd=/arch/boot/i686/archiso.img archisodevice=/dev/sd'''x1''' ../../<br />
}}<br />
<br />
In {{ic|/dev/sd'''x1'''}} you must replace '''x''' with the first free letter after the last letter in use on the system where you are installing Arch Linux (e.g. if you have two hard drives, use {{ic|c}}.). You can make this change during the first phase of boot by pressing {{ic|Tab}} when the menu is shown.<br />
<br />
=== In Windows ===<br />
<br />
==== Win32 Disk Imager ====<br />
<br />
{{Warning|This will destroy all information on your USB flash drive!}}<br />
First, download the program from [http://sourceforge.net/projects/win32diskimager/ here]. Next, extract the archive and run the executable. Now, select the Arch Linux ISO under the {{ic|Image File}} section and the USB flash device letter (for example, [D:\]) under the {{ic|Device}} section. Finally, click {{ic|Write}} when ready.<br />
{{Note|After installation, you may need to restore the USB flash drive following a process as outlined [[USB_Installation_Media#How_to_restore_the_USB_drive|here]].}}<br />
<br />
==== USBWriter for Windows ====<br />
<br />
Download the program from http://sourceforge.net/projects/usbwriter/ and run it. Select the arch image file, the target USB stick, and click on the {{ic|write}} button. Now you should be able to boot from the usb stick and install Arch Linux from it.<br />
<br />
==== The Flashnul way ====<br />
<br />
[http://shounen.ru/soft/flashnul/ flashnul] is an utility to verify the functionality and maintenance of Flash-Memory (USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash etc).<br />
<br />
From a command prompt, invoke flashnul with {{ic|-p}}, and determine which device index is your USB drive, e.g.:<br />
<br />
{{hc|C:\>flashnul -p|<br />
Avaible physical drives:<br />
Avaible logical disks:<br />
C:\<br />
D:\<br />
E:\<br />
}}<br />
<br />
When you have determined which device is the correct one, you can write the image to your drive, by invoking flashnul with the device index, {{ic|-L}}, and the path to your image, e.g:<br />
<br />
C:\>flashnul '''E:''' -L ''path\to\arch.iso''<br />
<br />
As long as you are really sure you want to write the data, type yes, then wait a bit for it to write. If you get an access denied error, close any Explorer windows you have open.<br />
<br />
If under Vista or Win7, you should open the console as administrator, or else flashnul will fail to open the stick as a block device and will only be able to write via the drive handle windows provides<br />
<br />
{{Note|Confirmed that you need to use drive letter as opposed to number. flashnul 1rc1, Windows 7 x64.}}<br />
<br />
==== Loading the installation media from RAM ====<br />
<br />
This method uses [[Syslinux]] and a [[Ramdisk]] ([http://www.syslinux.org/wiki/index.php/MEMDISK MEMDISK]) to load the entire Arch Linux ISO image into RAM. Since this will be running entirely from system memory, you will need to make sure the system you will be installing this on has an adequate amount. A minimum amount of RAM between 500 MB and 1 GB should suffice for a MEMDISK based, Arch Linux install.<br />
<br />
For more information on Arch Linux system requirements as well as those for MEMDISK see the [[Beginners' guide]] and [http://www.etherboot.org/wiki/bootingmemdisk#preliminaries here].<br />
{{Tip|Once the installer has completed loading you can simply remove the USB stick and even use it on a different machine to start the process all over again. Utilizing MEMDISK also allows booting and installing Arch Linux to and from the same USB flash drive.}}<br />
<br />
===== Preparing the USB flash drive =====<br />
<br />
Begin by formatting the USB flash drive as '''FAT32'''. Then create the following folders on the newly formatted drive.<br />
* {{ic|Boot}}<br />
** {{ic|Boot/ISOs}}<br />
** {{ic|Boot/Settings}}<br />
<br />
===== Copy the needed files to the USB flash drive =====<br />
<br />
Next copy the ISO that you would like to boot to the {{ic|Boot/ISOs}} folder. After that, extract from the following files from the latest release of {{pkg|syslinux}} from [http://www.kernel.org/pub/linux/utils/boot/syslinux/ here] and copy them into the following folders.<br />
* {{ic|./win32/syslinux.exe}} to the Desktop or Downloads folder on your system.<br />
* {{ic|./memdisk/memdisk}} to the {{ic|Settings}} folder on your USB flash drive.<br />
<br />
===== Create the configuration file =====<br />
<br />
After copying the needed files, navigate to the USB flash drive, /boot/Settings and create a {{ic|syslinux.cfg}} file.<br />
{{Warning|On the {{ic|INITRD}} line, be sure to use the name of the ISO file that you copied to your {{ic|ISOs}} folder!}}<br />
{{hc|/Boot/Settings/syslinux.cfg|2=<br />
DEFAULT arch_iso<br />
<br />
LABEL arch_iso<br />
MENU LABEL Arch Setup<br />
LINUX memdisk<br />
INITRD /Boot/ISOs/archlinux-2014.04.01-dual.iso<br />
APPEND iso}}<br />
For more information on Syslinux see the [[Syslinux|Arch Wiki article]].<br />
<br />
===== Final steps =====<br />
<br />
Finally, create a {{ic|*.bat}} file where {{ic|syslinux.exe}} is located and run it ("Run as administrator" if you are on Vista or Windows 7):<br />
{{hc|C:\Documents and Settings\username\Desktop\install.bat|<br />
@echo off<br />
syslinux.exe -m -a -d /Boot/Settings X:}}<br />
<br />
== Troubleshooting ==<br />
<br />
* For the [[#Loading the installation media from RAM|MEMDISK Method]], if you get the famous "30 seconds" error trying to boot the i686 version, press the {{ic|Tab}} key over the {{ic|Boot Arch Linux (i686)}} entry and add {{ic|vmalloc&#61;448M}} at the end. For reference: ''If your image is bigger than 128MiB and you have a 32-bit OS, then you have to increase the maximum memory usage of vmalloc''. [http://www.syslinux.org/wiki/index.php/MEMDISK#-_memdiskfind_in_combination_with_phram_and_mtdblock]<br />
<br />
* If you get the "30 seconds" error due to the {{ic|/dev/disk/by-label/ARCH_XXXXYY}} not mounting, try renaming your USB media to {{ic|ARCH_XXXXYY}} (e.g. {{ic|ARCH_201404}}).<br />
<br />
== See Also ==<br />
<br />
* [https://wiki.gentoo.org/wiki/LiveUSB/HOWTO Gentoo wiki - LiveUSB/HOWTO]<br />
* [https://fedoraproject.org/wiki/How_to_create_and_use_Live_USB Fedora wiki - How to create and use Live USB]<br />
* [http://en.opensuse.org/SDB:Live_USB_stick openSUSE wiki - SDB:Live USB stick]</div>Sylvainhttps://wiki.archlinux.org/index.php?title=Talk:Debugging/Getting_traces&diff=247234Talk:Debugging/Getting traces2013-02-14T00:02:27Z<p>Sylvain: </p>
<hr />
<div>Regarding qt debug. Passing the -developper-build option to the configure returns an error. It is my first time compiling qt, but by looking at the help it seems it should be -debug, can somebody more aware can confirm it and if it is true edit the page?<br />
[[User:Sylvain|Sylvain]] ([[User talk:Sylvain|talk]]) 00:02, 14 February 2013 (UTC)</div>Sylvainhttps://wiki.archlinux.org/index.php?title=Daemons&diff=218396Daemons2012-08-17T07:24:23Z<p>Sylvain: </p>
<hr />
<div>[[Category:Boot process]]<br />
[[Category:Daemons and system services]]<br />
[[cs:Daemon]]<br />
[[de:Daemons]]<br />
[[it:Daemon]]<br />
[[pl:Daemon]]<br />
[[ro:Daemon]]<br />
[[ru:Daemon]]<br />
[[tr:Artsüreç]]<br />
[[zh-CN:Daemon]]<br />
A [[Wikipedia:Daemon (computing)|daemon]] is a program that runs in the background, waiting for events to occur and offering services. A good example is a web server that waits for a request to deliver a page or a ssh server waiting for someone trying to log in. While these are full featured applications, there are daemons whose work is not that visible. Daemons are for tasks like writing messages into a log file (e.g. {{ic|syslog}}, {{ic|metalog}}) or keeping your system time accurate (e.g. [[Network Time Protocol daemon|{{ic|ntpd}}]]).<br />
<br />
{{Note|The word daemon is sometimes used for a class of programs that are started at boot but have no process which remains in memory. They are called daemons simply because they utilize the same startup/shutdown framework (e.g. {{ic|/etc/rc.d/}} scripts) used to start traditional daemons. For example, the {{ic|/etc/rc.d}} scripts for {{ic|alsa}} and {{ic|cpufreq}} provide persistent configuration support for their perspective kernel modules but do not start additional background processes to service requests or respond to events.<br />
<br />
From the user's perspective the distinction is typically not significant unless the user tries to look for the "daemon" in a process list.<br />
}}<br />
<br />
==Starting on Boot==<br />
A default install of Arch Linux will leave you with very few services (or daemons) enabled during boot. You can add or remove services by editing the {{ic|DAEMONS}} array in your [[rc.conf]] file. It will initially look something like this:<br />
DAEMONS=(syslog-ng network netfs crond)<br />
<br />
They will start in the order you have them listed. You can disable one and keep it in the array by prefixing it with an exclamation mark ({{ic|!}}). You can also have them start in the background by adding the {{ic|@}} symbol in front of it.<br />
<br />
Daemon scripts are stored in {{ic|/etc/rc.d/}}. You can print the list of all the available daemons on your system, along with their current status, with:<br />
$ rc.d list<br />
<br />
==Performing daemon actions manually==<br />
Every daemon has a series of actions that can be called with specific commands: usually there are at least {{ic|start}}, {{ic|stop}}, and {{ic|restart}}. You can issue each with:<br />
# /etc/rc.d/''daemon-name'' {start|stop|restart|...}<br />
A completely equivalent way is:<br />
# rc.d {start|stop|restart|...} ''daemon-name-1'' ''daemon-name-2'' ''daemon-name-3'' ...<br />
which, as it is clear from the example, works also with a list of daemons, calling for each the given action.<br />
<br />
For a list of all the available commands for a specific daemon, check its documentation, or just open the script in a text viewer.<br />
<br />
==Essentials==<br />
You do not have to add any more services, if you do not feel the need. However, a typical desktop user will add at least [[CUPS]] and [[dbus]]. As you install new services, you will have to manually add them to the {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}} (located at the very end).<br />
<br />
==Starting Daemons in Background==<br />
This is helpful for starting a service and letting the next service start before the previous one has finished. Which services to start background depends on your needs. Do not background anything you need immediately. Here is an example:<br />
DAEMONS=(syslog-ng gensplash dbus network netfs @avahi-daemon @samba @crond @openntpd @cupsd @mpd)<br />
<br />
Starting {{ic|openntpd}} in the background could lead to synchronization errors between the actual time and the time stored on your computer. If you recognize an increasing time difference between your desktop clock and the actual time, try to start the {{ic|openntpd}} daemon normally and not in the background.<br />
<br />
==rc.conf GUI front-ends==<br />
[[Rc.conf GUI Frontends|rc.conf GUI front-ends]] allow one to easily change settings in {{ic|/etc/rc.conf}} using a graphical application.<br />
<br />
==List of Daemons==<br />
Here is a list of daemons. Note that any package can provide a daemon, so this list will never be complete. Please feel free to add any missing daemons here, in alphabetical order.<br />
For each daemon the name of the script (for [[rc.conf|initscripts]]) and of the service (for [[systemd]]) is given.<br />
{| border="1"<br />
!Initscripts!!Systemd!!Description<br />
|-<br />
|[[acpid]]||acpid.service||Delivers ACPI events.<br />
|-<br />
|[[Advanced Linux Sound Architecture|alsa]]||alsa-store.service<br />
alsa-restore.service<br />
||Advanced Linux Sound Architecture; provides device drivers for sound cards.<br />
|-<br />
|atd||''not yet implemented''||Run jobs queued for later execution.<br />
|-<br />
|[[Avahi|avahi-daemon]]||avahi-daemon.service||Allows programs to automatically find local network services.<br />
|-<br />
|[[Avahi|avahi-dnsconfd]]||avahi-dnsconfd.service||<br />
|-<br />
|cpufreq||||Userspace tools for the kernel cpufreq subsystem<br />
|-<br />
|craftbukkit||''not yet implemented''||CraftBukkit Minecraft server<br />
|-<br />
|[[Cron|crond]]||cronie.service||Daemon to schedule and time events. The daemon name ''crond'' is used by at least two packages, {{Pkg|cronie}} and {{Pkg|dcron}}.<br />
|-<br />
|[[CUPS|cupsd]]||cupsd.service<br />
''or'' cups.service<br />
||Common UNIX Printing System daemon.<br />
|-<br />
|[[dbus]]||dbus.service||Message bus system for software communication.<br />
|-<br />
|[[Dropbox|dropboxd]]||''not yet implemented''||Cross-platform file synchronisation with version control.<br />
|-<br />
|[[FAM|fam]]||''deprecated''||File Alteration Monitor. (deprecated)<br />
|-<br />
|fancontrol||fancontrol.service||Fan control daemon (part of lm_sensors)<br />
|-<br />
|[[Fbsplash|fbsplash]]||''not yet implemented''||Graphical boot splash screen for the user.<br />
|-<br />
|ftpd||''not yet implemented''||Inetutils ftp daemon<br />
|-<br />
|[[GDM|gdm]]||gdm.service ''(in community/systemd-arch-units)''||Gnome Display Manager (Login Screen)<br />
|-<br />
|[[Git|git-daemon]]||''not yet implemented''||GIT daemon<br />
|-<br />
|[[Console Mouse Support|gpm]]||gpm.service||Console mouse support.<br />
|-<br />
|[[HAL|hal]]||''deprecated''||Hardware Abstraction Layer. (Deprecated)<br />
|-<br />
|hddtemp||hddtemp.service||Hard drive temperature monitor daemon<br />
|-<br />
|healthd||healthd.service||A daemon which can be used to alert you in the event of a hardware health monitoring alarm (part of lm_sensors).<br />
|-<br />
|[[LAMP|httpd]]||''not yet implemented''<br />
See [[Systemd/Services#apache2]] for manual configuration.<br />
||Apache HTTP Server (Web Server)<br />
|-<br />
|[[hwclock]]||||Not a daemon as such, but on shutdown, updates hwclock to compensate for drift. Only run this daemon if ntpd is not running as both daemons adjust the hardware clock.<br />
|-<br />
|irqbalance||''not yet implemented''||Irqbalance is the Linux utility tasked with making sure that interrupts from your hardware devices are handled in as efficient a manner as possible.<br />
|-<br />
|[[KDE|kdm]]||kdm.service||KDE Display Manager (Graphical Login)<br />
|-<br />
|krb5-kadmind||krb5-kadmind.service||Kerberos 5 administration server<br />
|-<br />
|krb5-kdc||krb5-kdc.service||Kerberos 5 KDC<br />
|-<br />
|krb5-kpropd||krb5-kpropd.service||Kerberos 5 propagation server<br />
|-<br />
|[[Laptop Mode Tools|laptop-mode]]||laptop-mode-tools.service||Laptop Power Saving Tools<br />
|-<br />
|[[lighttpd]]||lighttpd.service||Lighttpd HTTP Server (Web Server).<br />
|-<br />
|mdadm||mdadm.service||MD Administration (Linux Software RAID).<br />
|-<br />
|[[Music Player Daemon|mpd]]||mpd.service||Music Player Daemon.<br />
|-<br />
|[[MySQL|mysqld]]||''not yet implemented''<br />
See [[Systemd/Services#mysqld]] for manual configuration.<br />
||MySQL database server.<br />
|-<br />
|netfs||''unused, handled automatically, see''<br />
remote-fs.service<br />
''to manually execute scripts''<br />
||Mounts network file systems.<br />
|-<br />
|[[Netcfg|net-auto-wired]]||net-auto-wired.service||Netcfg replacement for {{ic|network}} - connects to wired network<br />
|-<br />
|[[Netcfg|net-auto-wireless]]||net-auto-wireless.service||Netcfg replacement for {{ic|network}} - connects to wireless network<br />
|-<br />
|[[Netcfg|net-profiles]]||netcfg.service||Netcfg replacement for {{ic|network}} - connects to profiles<br />
|-<br />
|[[Configuring_Network|network]]||''(dynamic Ethernet)'' dhcpcd@.service||To bring up the network connections.<br />
|-<br />
|[[NetworkManager|networkmanager]]||NetworkManager.service<br />
NetworkManager-wait-online.service<br />
||Replaces {{ic|network}}, and provides configuration and detection for automatic network connections.<br />
|-<br />
|[[Nginx|nginx]]||nginx.service||Nginx HTTP Server and IMAP/POP3 proxy server (Web Server)<br />
|-<br />
|nscd||nscd.service||Name service cache daemon<br />
|-<br />
|[[Network Time Protocol daemon|ntpd]]||ntpd.service||Network Time Protocol daemon (client and server).<br />
|-<br />
|[[OpenNTPD|openntpd]]||openntpd.service||alternate Network Time Protocol daemon (client and server).<br />
|-<br />
|[[Nginx#1st_Method_.22New.22_.28as_of_PHP_5.3.3.29|php-fpm]]||||FastCGI Process Manager for PHP<br />
|-<br />
|[[PostgreSQL|postgresql]]||postgresql.service||PostgreSQL database server.<br />
|-<br />
|[[powernowd]]||''not yet implemented''||To adjust speed of CPU depending on system load. See also [[CPU Frequency Scaling]]<br />
|-<br />
|ppp||''not yet implemented''||A daemon which implements the Point-to-Point Protocol for dial-up networking.<br />
|-<br />
|[[preload]]||preload.service||Makes applications run faster by prefetching binaries and shared objects.<br />
|-<br />
|pure-ftpd||''not yet implemented''||FTP server.<br />
|-<br />
|[[readahead]]||systemd-readahead-collect.service<br />
systemd-readahead-done.service<br />
<br />
systemd-readahead-drop.service<br />
<br />
systemd-readahead-replay.service<br />
||Readahead for faster boot<br />
|-<br />
|[[Rsync|rsyncd]]||rsyncd.service||Rsync daemon.<br />
|-<br />
|[[Rsyslog|rsyslogd]]||rsyslog.service||The latest version of a system logger.<br />
|-<br />
|[[samba]]||smbd.service<br />
nmbd.service<br />
<br />
winbindd.service<br />
||File and print services for Microsoft Windows clients.<br />
|-<br />
|[[USB_Scanner_Support|saned]]||saned@.service||To share the scanner system over network.<br />
|-<br />
|sensord||sensord.service||Sensor information logging daemon (part of lm_sensors)<br />
|-<br />
|[[Lm sensors|sensors]]||lm_sensors.service||Hardware (temperature, fans etc) monitoring.<br />
|-<br />
|[[SLiM|slim]]||slim.service||Simple Login Manager<br />
|-<br />
|[[SMART|smartd]]||smartd.service||Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T) Hard Disk Monitoring<br />
|-<br />
|snmpd||''not yet implemented''||A suite of applications used to implement SNMP<br />
|-<br />
|soundmodem||''not yet implemented''||Multiplatform Soundcard Packet Radio Modem<br />
|-<br />
|[[Secure Shell|sshd]]||sshd.service<br />
sshd@.service<br />
<br />
sshdgenkeys.service<br />
||OpenSSH (secure shell) daemon.<br />
|-<br />
|stbd||''deprecated''||This daemon was previously necessary for gnome-system-tools. However, as of gnome-tools 2.28, it is no longer needed.<br />
|-<br />
|svnserve||''not yet implemented''||Subversion server<br />
|-<br />
|syslogd||''deprecated''||This was the older and basic system logger.<br />
|-<br />
|[[syslog-ng]]||syslog-ng.service||System logger next generation.<br />
|-<br />
|[[Timidity|timidity++]]||''not yet implemented''||Software synthesizer for MIDI.<br />
|-<br />
|[[VirtualBox|vboxservice]]||vboxservice.service||VirtualBox Guest Service<br />
|-<br />
|[[Very Secure FTP Daemon|vsftpd]]||vsftpd.service<br />
vsftpd@.service<br />
<br />
vsftpd-ssl.service<br />
||FTP server.<br />
|-<br />
|[[wicd]]||wicd.service||Combine with dbus to replace {{ic|network}}, a lightweight alternative to NetworkManager.<br />
|-<br />
|[[x11vnc]]||''not yet implemented''||VNC remote desktop daemon <br />
|-<br />
|}<br />
<br />
==See also==<br />
* [[rc.conf|Initscripts]]<br />
* [[Systemd]]<br />
* Examples for [[writing rc.d scripts]]<br />
* Examples for writing [[Systemd/Services]]</div>Sylvainhttps://wiki.archlinux.org/index.php?title=CUPS/Printer-specific_problems&diff=172809CUPS/Printer-specific problems2011-12-09T09:51:05Z<p>Sylvain: /* LP-S5000 */</p>
<hr />
<div>[[Category:Printers (English)]]<br />
{{i18n|CUPS printer-specific problems}}<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Dealing with printer-specific problems}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|CUPS}}<br />
{{Article summary end}}<br />
<br />
Printer-specific problems and their solutions.<br />
<br />
==Brother==<br />
<br />
===DCP 7020===<br />
See: [[Brother DCP-7020]]<br />
===Other Brother Printers===<br />
<br />
It appears that newer versions of the "file" package break the ability of many Brother printers to print from GUI applications. The solution seems to be to ensure that the "a2ps" package is installed.<br />
<br />
==Canon==<br />
===MF 4150===<br />
This is required as some Canon printers apparently do not declare their specification correctly for kernel and libusb to recognize them<br />
<br />
* Do NOT blacklist usblp module.<br />
<br />
* Connect the printer<br />
<br />
The printer should now be recognized by the CUPS Add printer dialog. If still having problems, try restarting CUPS.<br />
<br />
* Install UFRII driver ({{Package AUR|ufr2}} from the [[AUR]] and complete the printer installation.<br />
<br />
===Pixma MP540/MP5**===<br />
To get the printer working you need to:<br />
<br />
* Blacklist '''usblp''' module and reboot.<br />
<br />
* Install {{Package AUR|cnijfilter-common}} and {{Package AUR|cnijfilter-mp540}} from the [[AUR]].<br />
<br />
If it's still not working execute the following command as root:<br />
# ln -s /usr/bin/cifmp540 /usr/local/bin/cifmp540<br />
<br />
==Epson==<br />
<br />
===Utility functions===<br />
====escputil====<br />
This section explains how to perform some of the utility functions (such as nozzle cleaning) on Epson printers, by using the escputil utility, part of the gutenprint package.<br />
<br />
With newer printers (like the CX3600/CX3650 or D88) you must first "modprobe usblp" to get escputil working. This creates the "/dev/usb/lp0" node (see the "--raw-device" flag below). Afterwards you have to "rmmod usblp", else the printer won't be recognized by CUPS (version 1.4.x). More here: http://bbs.archlinux.org/viewtopic.php?pid=682455#p682455<br />
<br />
There is a escputil's man-page provides basic information, but it does not touch on how to identify the printer. There are two parameters that can be used to do so:<br />
<br />
* One is {{Codeline|--printer}}: it expects the name used to identify the printer when is was configured.<br />
<br />
* The other is {{Codeline|--raw-device}}: this option expects a path beginning with "/dev". If the printer is the only serial printer on the system, "/dev/lp0" should be its device node. For USB printers, it is "/dev/usb/lp0". If having more than one printer, they will have names ending in "lp1", "lp2", etc.<br />
<br />
On to the maintenance options:<br />
* To clean the printer heads:<br />
$ escputil -u --clean-head<br />
<br />
* To print the nozzle-check pattern (allows verifying that the previous head cleaning worked, and determining the heads need cleaning):<br />
$ escputil -u --nozzle-check<br />
<br />
If wanting to perform an operation that requires two-way communication with a printer, use the "--raw-device" specification and the 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 />
$ sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* To print out the ink levels of the printer:<br />
$ sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====mtink====<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 />
====Stylus-toolbox====<br />
This is a GUI using escputil and cups drivers. It supports nearly all USB printer of Epson and displays ink quantity, can clean and align print heads and print test patterns. It can be downloaded from [http://aur.archlinux.org/packages.php?ID=30319 AUR]<br />
<br />
===AcuLaser CX11(NF)===<br />
Install [http://aur.archlinux.org/packages.php?ID=30424 Epson-ALCX11-filter] from the AUR. Restart CUPS and add the printer using the driver "EPSON AL-CX11, ESC/PageS Filter".<br />
<br />
Both connections, USB and network, should work as expected.<br />
<br />
===Stylus SX125===<br />
Simply install gutenprint, <br />
$ sudo pacman -S gutenprint<br />
restart cups,<br />
& sudo /etc/rc.d/cupsd restart<br />
add the printer via the cups-webinterface and select the <br />
'''Epson Stylus SX115 Foomatic/gutenprint-ijs.5.2''' driver. This should work fine.<br />
<br />
===LP-S5000===<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
"Source" code of the driver is available on [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website], in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.<br />
To install the printer:<br />
<br />
*Install the libstdc++5 ,on 32bit system, or the lib32-listdc++5 package (available in the multilib repository), on 64bit.<br />
# pacman -S libstdc++5<br />
or<br />
# pacman -S lib32-libstdc++5<br />
<br />
*Install some dependencies <br />
# pacman -S psutils bc<br />
<br />
*Download the source code of the driver (tar.gz) from [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website] and unpack it.<br />
* Compile and install the driver. <br />
<br />
$ ./configure --prefix=/usr<br />
$ make<br />
# make install<br />
<br />
*Edit the path of pstops in /usr/bin/pstolps5000.sh according to this:<br />
<br />
$ diff pstolps5000.sh.orig /usr/bin/pstolps5000.sh <br />
212c212<br />
< rotator="" && test "$useRotator" = "on" && rotator="| pstops -q $pstops1 $pstops2"<br />
---<br />
> rotator="" && test "$useRotator" = "on" && rotator="| /usr/bin/pstops -q $pstops1 $pstops2"<br />
<br />
*Restart cups<br />
<br />
# /etc/rc.d/cupsd restart<br />
<br />
* Install the printer through cups web interface, the printer was detected as a socket://XXX.XXX.XXX.XXX<br />
<br />
* Select the Esc Pages driver LP-S5000 (the one installed).<br />
<br />
* Print test page: OK<br />
<br />
If you have any problems on a 64 system, some other lib32 libraries may be required. These instruction may be useful for other printer working with driver from avasys website.<br />
<br />
==FX==<br />
=== C1110 (not model B)===<br />
Keep in mind that these directions assume that the printer is connected and listening on the network.<br />
<br />
*Install cpio and rpmunpack to later unpack the package:<br />
# pacman -S cpio rpmunpack cups ghostscript gsfonts<br />
<br />
*Get the FX GNU/Linux driver [http://www.fujixeroxprinters.com/downloads/uploaded/Drivers/DocuPrint%20C1110%20C1110B/linux/fxlinuxprint-1.0.1-1.i386.zip here].<br />
<br />
*Unzip {{Filename|fxlinuxprint-1.0.1-1.i386.zip}} to /var/tmp (the directory is not important):<br />
$ unzip fxlinuxprint-1.0.1-1.i386.zip -d /var/tmp<br />
<br />
*Continue extracting the file:<br />
$ cd /var/tmp<br />
$ rpmunpack fxlinuxprint-1.0.1-1.i386.rpm<br />
$ gunzip fxlinuxprint-1.0.1-1.cpio.gz<br />
<br />
*Move the cpio DST file (for convenience):<br />
$ mkdir /var/tmp/DST<br />
$ mv fxlinuxprint-1.0.1-1.cpio /var/tmp/DST<br />
<br />
*Extract it:<br />
$ cd /var/tmp/DST<br />
$ cpio -id < fxlinuxprint-1.0.1-1.cpio<br />
<br />
*Filter the relevant files:<br />
$ cd /var/tmp<br />
$ find /var/tmp/DST -type f |cat -n<br />
1 /var/tmp/DST/etc/cups/mimefx.convs<br />
2 /var/tmp/DST/etc/cups/mimefx.types<br />
3 /var/tmp/DST/usr/lib/cups/filter/pdftopjlfx<br />
4 /var/tmp/DST/usr/lib/cups/filter/pstopdffx<br />
5 /var/tmp/DST/usr/lib/cups/filter/pdftopdffx<br />
6 /var/tmp/DST/usr/share/cups/model/FujiXerox/en/fxlinuxprint.ppd<br />
<br />
*Copy the files found in the previous step to /<br />
{{Note|For the PPD use {{Filename|/usr/share/cups/model/fxlinuxprint.ppd}}}}<br />
<br />
*Access http://localhost:631/ and add the lpd://f.q.d.n/queue printer, aunthenticating as root.<br />
<br />
*Go through "Manage Printer" and "Set Printer Options".<br />
<br />
*Print a test page (substitue color103 with the assigned printer name):<br />
$ lpq -P color103<br />
color103 is ready<br />
no entries<br />
<br />
==HP==<br />
===Deskjet 700 Series===<br />
====Printing does not work====<br />
The solution is to install '''pnm2ppa''' printer filter for the HP Deskjet 700 series. Without this, the print jobs will be aborted by the system. A [[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 />
=== HP LaserJet 1010 ===<br />
A solution to make LaserJet 1010 work with CUPS may be to compile a newer version of GhostScript:<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 />
<br />
Setting <code>LogLevel</code> may also need to be set in {{Filename|/etc/cups/cupsd.conf}} to <code>debug2</code>, this way the logs will show how to circumvent minor issues, such as missing fonts. Search Google for [http://www.google.com/search?q=n019003l+filetype%3Apfb n019003l filetype:pfb]<br />
<br />
The debug solution might work if getting errors similar to 'Unsupport PCL', etc. See: [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 OpenPrinting database - Printer: HP LaserJet 1010]<br />
<br />
===LaserJet 1020===<br />
====Installation from AUR====<br />
Install the package foo2zjs from AUR and modify the {{Filename|PKGBUILD}}. Change the line:<br />
./getweb all<br />
to<br />
./getweb 1020<br />
<br />
If getting errors with incorrect md5sums, the md5sum of {{Filename|foo2zjs.tar.gz}} in the PKGBUILD should be changed to match the downloaded driver.<br />
<br />
As a last step, add and configure the printer in the CUPS manager. The printer should be recognized automatically, and function for both root and regular users.<br />
<br />
====Manual installation====<br />
This section details the setup of the HP Laserjet 1020 by manually downloading and compiling the '''foo2zjs''' driver.<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
=====Packages=====<br />
Only {{Package Official|CUPS}} and {{Package Official|GhostScript}} are needed to set up the HP Laserjet 1020.<br />
# pacman -S cups ghostscript<br />
The [http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 OpenPrinting database - Printer: HP LaserJet 1020] page outlines the support for this printer.<br />
<br />
The '''foo2zjs''' driver will be installed as outlined on the project page: [http://foo2zjs.rkkda.com/ foo2zjs: a linux printer driver for ZjStream protocol].<br />
<br />
Firstly, download the driver:<br />
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz<br />
And unpack it:<br />
$ tar zxf foo2zjs.tar.gz<br />
$ cd foo2zjs<br />
The driver is now compiled:<br />
$ make<br />
$ ./getweb 1020<br />
# make install<br />
# make install-hotplug<br />
# make cups<br />
<br />
=====Configuration=====<br />
The '''usblp''' module is needed to upload the firmware to the printer, but the module must then be removed to allow printing or adding the printer to the system.<br />
<br />
Ensure that the CUPS daemon is running and added to the {{Filename|/etc/rc.conf}} file:<br />
# /etc/rc.d/cupsd start<br />
{{File|name=/etc/rc.conf|content=DAEMONS=(... '''cupsd''' crond ...)}}<br />
<br />
Now plug in the USB printer and turn it on. The printer will whirl, pause, then whirl once more as the firmware is uploaded. Now remove the '''usblp''' module:<br />
# rmmod usblp<br />
The printer can be added to the system with CUPS http://localhost:631/<br />
{{Note|The '''usblp''' module must be removed '''after''' the firmware is loaded to the printer, and '''before''' any printing job is submitted.}}<br />
The reason for this has been [http://bbs.archlinux.org/viewtopic.php?pid=639930#p639930 explained on the forum].<br />
<br />
===Firmware for HPLIP===<br />
Some printers may appear to have been correctly installed by CUPS, but fail to print. It may be that the necessary firmware needs to be downloaded by running:<br />
# hp-setup -i<br />
as root. This situation has been encountered with the LaserJet 1000 and LaserJet 1005.<br />
<br />
==Printer connected to an Airport Express Station==<br />
The first step is to scan the Airport Express station. It 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 />
<br />
The Airport station is accessed like an HP JetDirect printer. Note the port of the '''jetdirect''' service, and edit {{Filename|printer.conf}}. The '''DeviceURI''' entry should be '''socket://''', followed by your station IP address, a colon, and the '''jetdirect''' port number.<br />
{{File|name=/etc/cups/printer.conf|content=# 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 />
Problems may be resolved by removing foomatic and installing foomatic-db, foomatic-db-engine, foomatic-db-ppd instead.</div>Sylvainhttps://wiki.archlinux.org/index.php?title=CUPS/Printer-specific_problems&diff=166574CUPS/Printer-specific problems2011-10-20T02:46:13Z<p>Sylvain: </p>
<hr />
<div>[[Category:Printers (English)]]<br />
{{i18n|CUPS printer-specific problems}}<br />
{{Article summary start|Summary}}<br />
{{Article summary text|Dealing with printer-specific problems}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|CUPS}}<br />
{{Article summary end}}<br />
<br />
Printer-specific problems and their solutions.<br />
<br />
==Brother==<br />
<br />
===DCP 7020===<br />
See: [[Brother DCP-7020]]<br />
===Other Brother Printers===<br />
<br />
It appears that newer versions of the "file" package break the ability of many Brother printers to print from GUI applications. The solution seems to be to ensure that the "a2ps" package is installed.<br />
<br />
==Canon==<br />
===MF 4150===<br />
This is required as some Canon printers apparently do not declare their specification correctly for kernel and libusb to recognize them<br />
<br />
* Do NOT blacklist usblp module.<br />
<br />
* Connect the printer<br />
<br />
The printer should now be recognized by the CUPS Add printer dialog. If still having problems, try restarting CUPS.<br />
<br />
* Install UFRII driver ({{Package AUR|ufr2}} from the [[AUR]] and complete the printer installation.<br />
<br />
===Pixma MP540===<br />
To get the printer working you need to:<br />
<br />
* Blacklist '''usblp''' module and reboot.<br />
<br />
* Install {{Package AUR|cnijfilter-common}} and {{Package AUR|cnijfilter-mp540}} from the [[AUR]].<br />
<br />
If it's still not working execute the following command as root:<br />
# ln -s /usr/bin/cifmp540 /usr/local/bin/cifmp540<br />
<br />
==Epson==<br />
<br />
===Utility functions===<br />
====escputil====<br />
This section explains how to perform some of the utility functions (such as nozzle cleaning) on Epson printers, by using the escputil utility, part of the gutenprint package.<br />
<br />
With newer printers (like the CX3600/CX3650 or D88) you must first "modprobe usblp" to get escputil working. This creates the "/dev/usb/lp0" node (see the "--raw-device" flag below). Afterwards you have to "rmmod usblp", else the printer won't be recognized by CUPS (version 1.4.x). More here: http://bbs.archlinux.org/viewtopic.php?pid=682455#p682455<br />
<br />
There is a escputil's man-page provides basic information, but it does not touch on how to identify the printer. There are two parameters that can be used to do so:<br />
<br />
* One is {{Codeline|--printer}}: it expects the name used to identify the printer when is was configured.<br />
<br />
* The other is {{Codeline|--raw-device}}: this option expects a path beginning with "/dev". If the printer is the only serial printer on the system, "/dev/lp0" should be its device node. For USB printers, it is "/dev/usb/lp0". If having more than one printer, they will have names ending in "lp1", "lp2", etc.<br />
<br />
On to the maintenance options:<br />
* To clean the printer heads:<br />
$ escputil -u --clean-head<br />
<br />
* To print the nozzle-check pattern (allows verifying that the previous head cleaning worked, and determining the heads need cleaning):<br />
$ escputil -u --nozzle-check<br />
<br />
If wanting to perform an operation that requires two-way communication with a printer, use the "--raw-device" specification and the 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 />
$ sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* To print out the ink levels of the printer:<br />
$ sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====mtink====<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 />
====Stylus-toolbox====<br />
This is a GUI using escputil and cups drivers. It supports nearly all USB printer of Epson and displays ink quantity, can clean and align print heads and print test patterns. It can be downloaded from [http://aur.archlinux.org/packages.php?ID=30319 AUR]<br />
<br />
===AcuLaser CX11(NF)===<br />
Install [http://aur.archlinux.org/packages.php?ID=30424 Epson-ALCX11-filter] from the AUR. Restart CUPS and add the printer using the driver "EPSON AL-CX11, ESC/PageS Filter".<br />
<br />
Both connections, USB and network, should work as expected.<br />
<br />
===Stylus SX125===<br />
Simply install gutenprint, <br />
$ sudo pacman -S gutenprint<br />
restart cups,<br />
& sudo /etc/rc.d/cupsd restart<br />
add the printer via the cups-webinterface and select the <br />
'''Epson Stylus SX115 Foomatic/gutenprint-ijs.5.2''' driver. This should work fine.<br />
<br />
===LP-S5000===<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
"Source" code of the driver is available on [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website], in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.<br />
To install the printer:<br />
<br />
*Install the libstdc++5 ,on 32bit system, or the lib32-listdc++5 package (available in the multilib repository), on 64bit.<br />
$pacman -S libstdc++5<br />
or<br />
$pacman -S lib32-libstdc++5<br />
<br />
*Install psutils <br />
$pacman -S psutils<br />
<br />
*Download the source code of the driver (tar.gz) from [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website] and unpack it.<br />
$cp ~/Downloads/Epson-LPS5000-filter-1.0.tar.gz .<br />
$tar xzvf Epson-LPS5000-filter-1.0.tar.gz <br />
<br />
* Compile and install the driver. <br />
<br />
$./configure --prefix=/usr<br />
$make<br />
$su.... make install<br />
<br />
*Edit the path of pstops in /usr/bin/pstolps5000.sh according to this:<br />
<br />
$diff pstolps5000.sh.orig /usr/bin/pstolps5000.sh <br />
212c212<br />
< rotator="" && test "$useRotator" = "on" && rotator="| pstops -q $pstops1 $pstops2"<br />
---<br />
> rotator="" && test "$useRotator" = "on" && rotator="| /usr/bin/pstops -q $pstops1 $pstops2"<br />
<br />
*Restart cups<br />
<br />
$/etc/rc.d/cupsd restart<br />
<br />
* Install the printer through cups web interface, the printer was detected as a socket://XXX.XXX.XXX.XXX<br />
<br />
* Select the Esc Pages driver LP-S5000 (the one installed).<br />
<br />
* Print test page: OK<br />
<br />
If you have any problems on a 64 system, some other lib32 libraries may be required. These instruction may be useful for other printer working with driver from avasys website.<br />
<br />
==FX==<br />
=== C1110 (not model B)===<br />
Keep in mind that these directions assume that the printer is connected and listening on the network.<br />
<br />
*Install cpio and rpmunpack to later unpack the package:<br />
# pacman -S cpio rpmunpack cups ghostscript gsfonts<br />
<br />
*Get the FX GNU/Linux driver [http://www.fujixeroxprinters.com/downloads/uploaded/Drivers/DocuPrint%20C1110%20C1110B/linux/fxlinuxprint-1.0.1-1.i386.zip here].<br />
<br />
*Unzip {{Filename|fxlinuxprint-1.0.1-1.i386.zip}} to /var/tmp (the directory is not important):<br />
$ unzip fxlinuxprint-1.0.1-1.i386.zip -d /var/tmp<br />
<br />
*Continue extracting the file:<br />
$ cd /var/tmp<br />
$ rpmunpack fxlinuxprint-1.0.1-1.i386.rpm<br />
$ gunzip fxlinuxprint-1.0.1-1.cpio.gz<br />
<br />
*Move the cpio DST file (for convenience):<br />
$ mkdir /var/tmp/DST<br />
$ mv fxlinuxprint-1.0.1-1.cpio /var/tmp/DST<br />
<br />
*Extract it:<br />
$ cd /var/tmp/DST<br />
$ cpio -id < fxlinuxprint-1.0.1-1.cpio<br />
<br />
*Filter the relevant files:<br />
$ cd /var/tmp<br />
$ find /var/tmp/DST -type f |cat -n<br />
1 /var/tmp/DST/etc/cups/mimefx.convs<br />
2 /var/tmp/DST/etc/cups/mimefx.types<br />
3 /var/tmp/DST/usr/lib/cups/filter/pdftopjlfx<br />
4 /var/tmp/DST/usr/lib/cups/filter/pstopdffx<br />
5 /var/tmp/DST/usr/lib/cups/filter/pdftopdffx<br />
6 /var/tmp/DST/usr/share/cups/model/FujiXerox/en/fxlinuxprint.ppd<br />
<br />
*Copy the files found in the previous step to /<br />
{{Note|For the PPD use {{Filename|/usr/share/cups/model/fxlinuxprint.ppd}}}}<br />
<br />
*Access http://localhost:631/ and add the lpd://f.q.d.n/queue printer, aunthenticating as root.<br />
<br />
*Go through "Manage Printer" and "Set Printer Options".<br />
<br />
*Print a test page (substitue color103 with the assigned printer name):<br />
$ lpq -P color103<br />
color103 is ready<br />
no entries<br />
<br />
==HP==<br />
===Deskjet 700 Series===<br />
====Printing does not work====<br />
The solution is to install '''pnm2ppa''' printer filter for the HP Deskjet 700 series. Without this, the print jobs will be aborted by the system. A [[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 />
=== HP LaserJet 1010 ===<br />
A solution to make LaserJet 1010 work with CUPS may be to compile a newer version of GhostScript:<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 />
<br />
Setting <code>LogLevel</code> may also need to be set in {{Filename|/etc/cups/cupsd.conf}} to <code>debug2</code>, this way the logs will show how to circumvent minor issues, such as missing fonts. Search Google for [http://www.google.com/search?q=n019003l+filetype%3Apfb n019003l filetype:pfb]<br />
<br />
The debug solution might work if getting errors similar to 'Unsupport PCL', etc. See: [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 OpenPrinting database - Printer: HP LaserJet 1010]<br />
<br />
===LaserJet 1020===<br />
====Installation from AUR====<br />
Install the package foo2zjs from AUR and modify the {{Filename|PKGBUILD}}. Change the line:<br />
./getweb all<br />
to<br />
./getweb 1020<br />
<br />
If getting errors with incorrect md5sums, the md5sum of {{Filename|foo2zjs.tar.gz}} in the PKGBUILD should be changed to match the downloaded driver.<br />
<br />
As a last step, add and configure the printer in the CUPS manager. The printer should be recognized automatically, and function for both root and regular users.<br />
<br />
====Manual installation====<br />
This section details the setup of the HP Laserjet 1020 by manually downloading and compiling the '''foo2zjs''' driver.<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
=====Packages=====<br />
Only {{Package Official|CUPS}} and {{Package Official|GhostScript}} are needed to set up the HP Laserjet 1020.<br />
# pacman -S cups ghostscript<br />
The [http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 OpenPrinting database - Printer: HP LaserJet 1020] page outlines the support for this printer.<br />
<br />
The '''foo2zjs''' driver will be installed as outlined on the project page: [http://foo2zjs.rkkda.com/ foo2zjs: a linux printer driver for ZjStream protocol].<br />
<br />
Firstly, download the driver:<br />
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz<br />
And unpack it:<br />
$ tar zxf foo2zjs.tar.gz<br />
$ cd foo2zjs<br />
The driver is now compiled:<br />
$ make<br />
$ ./getweb 1020<br />
# make install<br />
# make install-hotplug<br />
# make cups<br />
<br />
=====Configuration=====<br />
The '''usblp''' module is needed to upload the firmware to the printer, but the module must then be removed to allow printing or adding the printer to the system.<br />
<br />
Ensure that the CUPS daemon is running and added to the {{Filename|/etc/rc.conf}} file:<br />
# /etc/rc.d/cupsd start<br />
{{File|name=/etc/rc.conf|content=DAEMONS=(... '''cupsd''' crond ...)}}<br />
<br />
Now plug in the USB printer and turn it on. The printer will whirl, pause, then whirl once more as the firmware is uploaded. Now remove the '''usblp''' module:<br />
# rmmod usblp<br />
The printer can be added to the system with CUPS http://localhost:631/<br />
{{Note|The '''usblp''' module must be removed '''after''' the firmware is loaded to the printer, and '''before''' any printing job is submitted.}}<br />
The reason for this has been [http://bbs.archlinux.org/viewtopic.php?pid=639930#p639930 explained on the forum].<br />
<br />
===Firmware for HPLIP===<br />
Some printers may appear to have been correctly installed by CUPS, but fail to print. It may be that the necessary firmware needs to be downloaded by running:<br />
# hp-setup -i<br />
as root. This situation has been encountered with the LaserJet 1000 and LaserJet 1005.<br />
<br />
==Printer connected to an Airport Express Station==<br />
The first step is to scan the Airport Express station. It 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 />
<br />
The Airport station is accessed like an HP JetDirect printer. Note the port of the '''jetdirect''' service, and edit {{Filename|printer.conf}}. The '''DeviceURI''' entry should be '''socket://''', followed by your station IP address, a colon, and the '''jetdirect''' port number.<br />
{{File|name=/etc/cups/printer.conf|content=# 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 />
Problems may be resolved by removing foomatic and installing foomatic-db, foomatic-db-engine, foomatic-db-ppd instead.</div>Sylvain