https://wiki.archlinux.org/api.php?action=feedcontributions&user=Charlag&feedformat=atomArchWiki - User contributions [en]2024-03-29T14:13:21ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Mkinitcpio_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=267009Mkinitcpio (Русский)2013-07-19T01:23:13Z<p>Charlag: /* Редактирование fallback образа */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
[[Category:Руководство пользователя (Русский)]]<br />
[[da:Mkinitcpio]]<br />
[[en:Mkinitcpio]]<br />
[[es:Mkinitcpio]]<br />
[[fr:mkinitcpio]]<br />
[[it:Mkinitcpio]]<br />
[[zh-CN:Mkinitcpio]]<br />
{{Article summary start}}<br />
{{Article summary text|Статья объясняет как использовать mkinitcpio}}<br />
<!-- {{Article summary heading|Related}} --><br />
{{Article summary end}}<br />
<br />
== Введение ==<br />
<br />
'''mkinitcpio''' - следующее поколение '''программ для создания initramfs'''. У нее есть много преимуществ перед '''mkinitrd''' и '''mkinitramfs'''.<br />
<br />
* Использует '''klibc''' и '''kinit''', разработанные авторами ядра Linux для уменьшения накладных расходов на ранней стадии загрузки.<br />
* Может использовать '''udev''' для определения апаратных средств, что предотвращает загрузки большого количества лишних модулей.<br />
* Возможность расширять функциональность при помощи специальных обработчиков, которые могут быть включены в другие пакеты.<br />
* Поддерживает '''lvm2''', '''dm-crypt''', '''raid''', '''swsusp''' и '''suspend2''' и загрузку с устройств '''usb mass storage'''.<br />
* Много опций передается прямо из строки аргументов ядра.<br />
* '''mkinitcpio''' позволяет включать образ ram-диска в образ ядра.<br />
<br />
'''mkinitcpio''' разработан '''phrakture''' и '''tpowa''' с помощью community.<br />
<br />
== Установка mkinitcpio ==<br />
=== Из текущего репозитория ===<br />
<br />
'''mkinitcpio''' находится в репозитории current. Вы можете установить его командой<br />
# pacman -S mkinitcpio<br />
<br />
=== Из git ===<br />
<br />
Последнюю development версию '''mkinitcpio''', можно получить из git командой<br />
# git clone git://projects.archlinux.org/mkinitcpio.git<br />
<br />
== Для ядер >=2.6.17 ==<br />
Будет создано 2 образа во время установки/обновления:<br />
<br />
Если вы используете '''kernel26'''<br />
/boot/kernel26.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26-fallback.img --> образ со всем драйверами<br />
Если вы используете '''kernel26beyond'''<br />
/boot/kernel26beyond.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26beyond-fallback.img --> образ со всем драйверами<br />
Настройте свой загрузчик на использование нужного образа.<br />
<br />
=== Предупреждения ===<br />
==== Пользователям '''lvm2''', '''raid''' и '''encrypt''' ====<br />
{{Warning|1='''lvm2''', '''raid''' и '''encrypt''' НЕ ВКЛЮЧЕНЫ по умолчанию.<br />
Прочитайте эту страницу чтобы узнать как их включить и настроить.}}<br />
<br />
==== Пользователям более одного контроллера дисков ====<br />
{{Warning|1=Если у вас более одного контроллера дисков использующих одно пространство имен устройств (например 2 SCSI/SATA или IDE контроллера) и они требуют разных модулей, укажите правильный порядок в MODULES="" в файле /etc/mkinitcpio.conf и в вашем файле конфигурации fallback, иначе устройства могут поменяться местами и вы получите kernel panic при загрузке.<br />
<br />
Более правильный путь - использовать [[Persistent block device naming]], чтобы быть уверенным, что вы смонтировали действительно то, что хотели.}}<br />
<br />
==== Незагружаемые модули ====<br />
{{Warning|1=Если вам нужно загрузить один из следующих модулей для нормального монтирования корневого раздела, поместите его в MODULES="" в /etc/mkinitcpio.conf и в файл конфигурации fallback.<br />
<br />
- '''SCSI КОНТРОЛЛЕРЫ''' (status stock kernel 2.6.18)<br />
<pre><br />
scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416<br />
g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x<br />
atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys<br />
</pre><br />
}}<br />
<br />
=== Редактирование файлов конфигурации ===<br />
<br />
=== '''Модификация основного образа''' ===<br />
Чтобы изменить начальные значения главного образа отредактируйте следующий файл:<br />
<br />
/etc/mkinitcpio.conf<br />
<br />
mkinitcpio использует этот файл по умолчанию.<br />
<br />
=== '''Редактирование fallback образа''' ===<br />
Чтобы изменить начальные значения fallback образа,<br />
отредактируйте '''/boot/mkinitcpio.d/kernel26-fallback.conf'''<br />
и выставьте файл который вы отредактировали в '''NoUpgrade =''' в '/etc/pacman.conf'. Это должно быть нормально, если вы не используете специальные настройки вида lvm или raid.<br />
<br />
=== Настройка обработчиков (HOOKS) ===<br />
<br />
Это наиболее важная часть конфигурирования mkinitcpio. Строка HOOKS содержит обработчики, которые исполняются при создании образа и во время выполнения в том же порядке, в котором они указаны. Строка имеет следующий формат:<br />
<br />
HOOKS="foo1 foo2 foo3 bar1 bar2"<br />
<br />
==== Доступные обработчики ====<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 />
! Hook || При установке || Во время выполнения<br />
|-<br />
| '''base''' || Устанавливает базовые каталоги, klibc и основные библиотеки. Всегда используйте его, за исключением случаев, когда вы действительно знаете, что делаете. || <br />
|-<br />
| '''udev''' || Добавляет udev в образ ram-диска || Udev автоматически создает файл устройства для корня и загружает необходимые модули для его работы. Рекомендуется использовать.<br />
|-<br />
| '''modload''' || || Альтернативный механизм автоопределения, но работает медленнее чем udev. Оставлен для совместимости, используйте udev вместо него.<br />
|-<br />
| '''autodetect''' || Уменьшает размер initramfs пытаясь определить какие модули вам нужны. Проверьте список модулей которые он добавил. Он должен запускаться раньше других подсистем. Все обработчики выполняемые до него будут включать все модули. || <br />
|-<br />
| '''ide''' || Добавляет модули IDE. Используйте если ваш корневой раздел на IDE диске. Поставьте '''autodetect''' до него, для уменьшения количества модулей || Загружает модули IDE. Вам потребуется '''udev''' или '''modload''' обработчики если вы не указали список модулей явно (см. секцию MODULES ниже).<br />
|-<br />
| '''pata''' || Добавляет IDE модули. Используйте если корневой раздел - IDE диск и вы хотите использовать PATA вместо IDE. Также рекомендуется '''autodetect''' || Загружает модули. Вам потребуется '''udev''' или '''modload''' если только вы не указали все в секции MODULES. PATA - новый набор IDE драйверов. При его использовании /dev/hd? меняются на /dev/sd?. См.: https://archlinux.org/news/272/<br />
|-<br />
| '''sata''' || Добавляет SATA модули. || Загружает SATA модули.<br />
|-<br />
| '''scsi''' || Добавляет SCSI модули. || Загружает SCSI модули.<br />
|-<br />
| '''usb''' || Добавляет USB модули для usb-storage. || Загружает USB модули.<br />
|-<br />
| '''usbinput''' || Добавляет USB HID модули. Используйте если нужна USB клавиатура на ранней стадии загрузки (например для ввода пароля в режиме failsafe || Загружает модули.<br />
|-<br />
| '''fw''' || Добавляет поддержку Firewire в образ. Нужно для FW mass storage устройств. || Загружает FW модули.<br />
|-<br />
| '''net''' || Добавляет модули сетевых устройств. Для pcmcia добавьте соответствующий обработчик. || Загружает модули. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''pcmcia''' || Добавляет pcmcia модули. Требует наличия pcmciautils.|| Загружает модули pcmcia.<br />
|-<br />
| '''dsdt''' || Добавляет пользовательский acpi dsdt файл. Запишите свой файл в /lib/initcpio/custom.dsdt || Ваш dsdt файл будет автоматически использован если он присутствует в initramfs.<br />
|-<br />
| '''filesystems''' || Добавляет драйвера файловых систем || Определяет файловые системы и загружает модули. ВНИМАНИЕ: это не работает с reiser4, вам придется добавлять драйвер этой ФС вручную.<br />
|-<br />
| '''lvm2''' || Добавляет поддержку lvm. Требует установленного пакета lvm2 || Включает поддержку lvm<br />
|-<br />
| '''raid''' || Добавляет модули для software raid. Требует пакет mdadm.|| Загружает модули и собирает raid устройства. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''encrypt''' || Добавляет dm-crypt модуль и программу cryptsetup. Требует установленный пакет cryptsetup. || Определяет и разблокирует зашифрованый корневой раздел. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''resume''' || || Пытается выполнить пробуждение после "suspend to disk". Работает с swsusp и [[Suspend to Disk|suspend2]]. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''firmware''' || Добавляет файлы в /lib/firmware. || Загружает firmware.<br />
|-<br />
| '''keymap''' || Добавляет keymap и consolefonts из rc.conf. || Загружает указанную раскладку и шрифты.<br />
|}<br />
<br />
==== Примеры ====<br />
<br />
Эта конфигурация будет работать для большинства пользователей:<br />
<br />
HOOKS="base udev autodetect ide scsi sata filesystems"<br />
<br />
Если вы хотите загружать систему на разных машинах используйте:<br />
<br />
HOOKS="base udev ide scsi sata filesystems"<br />
<br />
Вы можете использовать зашифрованные тома на lvm2:<br />
<br />
HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems"<br />
<br />
=== Изменение переменной MODULES ===<br />
<br />
MODULES содержит список модулей для включения в образ и загрузки. Например это нужно если вы не хотите использовать '''udev''' или '''modload'''. Тогда можно добавить все нужные модули вручную:<br />
<br />
MODULES="piix ide_disk reiserfs"<br />
HOOKS="base autodetect ide filesystems"<br />
<br />
NOTE: Если вам нужен '''reiser4''', вы ДОЛЖНЫ добавить его в список модулей.<br />
<br />
=== Настройка BINARIES и FILES ===<br />
<br />
Эти опции добавляют в образ указанные файлы. Разница только в том, что BINARIES проверяет зависимости от библиотек, в то время как FILES просто копирует файлы.<br />
<br />
Пример:<br />
<br />
FILES="/etc/modprobe.d/modprobe.conf"<br />
<br />
BINARIES="/usr/bin/somefile"<br />
<br />
== Создание образа ==<br />
<br />
=== Пересоздание предопределенного образа / использование предустановок ===<br />
<br />
Если вы хотите перегенерировать образы, используйте команду<br />
# mkinitcpio -p kernel26<br />
Это пример для пакета ''kernel26'', но вы можете выполнить аналогичную команду и для других ядер.<br />
<br />
Если вы хотите изменить настройки образов, отредактируйте ''/etc/mkinitcpio.d/kernel26.preset'' (для пакета kernel26). '''Эти ''.preset'' файлы также будут использованы при обновлении ядра, не испортите их!'''<br />
<br />
=== Вручную ===<br />
<br />
Создайте образ командой:<br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
Она создаст образ для текущего ядра в файле '''/boot/kernel26.img''', который является образом для ядра из пакета '''kernel26'''. Пользователи '''kernel26beyond''' должны написать:<br />
<br />
mkinitcpio -g /boot/kernel26beyond.img<br />
<br />
Если вы хотите сгенерировать образ для ядра, которое в данный момент не загружено, используйте:<br />
<br />
mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH<br />
<br />
==== Перегенерация fallback-образа ====<br />
<br />
''Замечание:'' Нижеследующий текст предназначен для создания образа для текущего ядра. Для других ядер используйте ключ -k.<br />
<br />
Fallback образ должен быть уже создан если вы установили '''kernel26''' или '''kernel26beyond''', но в случае если вы хотите его пересоздать используйте:<br />
<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26-fallback.conf -g /boot/kernel26.img<br />
для beyond ядер<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26beyond-fallback.conf -g /boot/kernel26beyond.img<br />
<br />
См. '''mkinitcpio -h''' чтобы увидеть другие опции.<br />
<br />
Не забудьте добавить запись в загрузчик. Просто скопируйте старую запись и измените путь к initrd. Будьте аккуратны, всегда имейте провереный вариант загрузки в списке загрузчика. Вы можете использовать mkinitcpio с любыми вариантами ядер (kernel26, kernel26-beyond...).<br />
<br />
== Изменения строки параметров ядра ==<br />
<br />
Не зависимо от наличия initramfs некоторые опции приходится передавать через строку параметров ядра, как например корневое устройство. Некоторые из обработчиков mkinitcpio имеют специальные опции. Они и обсуждаются в этой главе.<br />
<br />
Если вы не знаете, что такое строка параметров ядра, читайте документацию по [[GRUB]] или [[Lilo]].<br />
<br />
=== Вход в безотказный режим ===<br />
<br />
Если Вы добавите опцию<br />
break=y<br />
в строку параметров ядра, то init остановится после инициализации и вы получите ''dash'' шелл. Это может быть использовано, чтобы проверить, что все хорошо. После выхода загрузка продолжится в обычном режиме.<br />
<br />
=== Запрет обработчиков ===<br />
<br />
Вы можете запретить обработчики при помощи параметра ''disablehooks'' в строке параметров ядра:<br />
<br />
disablehooks=hook1,hook2,hook2<br />
<br />
например,<br />
<br />
disablehooks=resume<br />
<br />
=== Запрет загрузки модулей ===<br />
<br />
Вы можете запретить загрузку некоторых модулей добавив параметр ''disablemodules'' в строку параметров ядра:<br />
<br />
disablemodules=mod1,mod2,mod3<br />
<br />
например,<br />
<br />
disablemodules=ata_piix<br />
<br />
=== Использование raid ===<br />
Добавьте обработчик raid в список HOOKS в /etc/mkinitcpio.conf<br />
<br />
'''Параметры ядра: '''<br />
Укажите md массивы с помощью: md= parameter: (см. ниже).<br />
Простого добавления вашего raid массива достаточно.<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
<br />
Затем добавьте следующее в строку kernel в '''grub/menu.lst''':<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
Т.е. это будет выглядеть так:<br />
kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1<br />
Эта строка создает два md массива с постоянными суперблоками<br />
<br />
'''Настройка:'''<br />
- для старых raid массивов без постоянных суперблоков:<br />
md=<номер устройства md>,<уровень raid>,<chunk size factor>,<fault level>,dev0,dev1<br />
- для raid массивом с постоянными суперблоками:<br />
md=<номер устройства md>,dev0,dev1,...,devn<br />
- для сборки partitionable массивов:<br />
md=d<md device no.>,dev0,dev1,...,devn<br />
<br />
'''Параметры:'''<br />
- <номер устройства md> = номер устройства:<br />
0 значит md0, 1 значит md1, ...<br />
- <уровень raid> = -1 линейный режим, 0 striped режим<br />
другие режимы поддерживаются только с постоянным суперблоком<br />
- <chunk size factor> = (только для raid-0 и raid-1):<br />
Установить chunk size as 4k << n.<br />
- <fault level> = игнорируется<br />
- <dev0-devn>: т.е. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1<br />
<br />
=== Использование net ===<br />
<br />
'''Параметры ядра:''' <br />
<br />
'''ip=''' <br />
<br />
Описание интерфейса может быть в короткой форме, которая состоит просто из имени интерфейса (eth0 или какой либо еще), или в длинной форме. Длинная форма содержит семь элементов, разделенных двоеточием:<br />
<br />
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf><br />
nfsaddrs= это алиас для ip= и может использоваться также.<br />
<br />
''Разъяснение параметров:''<br />
<client-ip> IP адрес клиента. Если пустой, то автоматически назначается<br />
протоколом RARP/BOOTP/DHCP. Какой протокол используется<br />
зависит от параметра <autoconf>. Если его значение не пустое,<br />
то autocnf работает корректно.<br />
<br />
<server-ip> IP адрес NFS сервера. Если используется RARP для определения<br />
адреса клиента и этот параметр не пуст, то принимаются ответы<br />
только от указанного сервера.<br />
Для использования разных RARP и NFS серверов,<br />
укажите ваш RARP сервер здесь (или оставьте пустым), и<br />
укажите ваш NFS сервер в параметре `nfsroot'<br />
(см. выше). Если тут пусто, будет использован сервер, ответивший<br />
на RARP/BOOTP/DHCP запрос.<br />
<br />
<gw-ip> IP адрес шлюза если сервер в другой подсети. Если тут пусто,<br />
предполагается, что сервер находится в одной подсети, если значение<br />
не получено по BOOTP/DHCP.<br />
<br />
<netmask> Маска подсети для локального интерфейса. Если тут пусто,<br />
используется маска по умолчанию в зависимости от класса IP,<br />
если конечно не переопределена значением из BOOTP/DHCP ответа.<br />
<br />
<hostname> Имя машины клиента. Если пусто, используется IP адрес в виде ASCII<br />
строки, или значение полученное по BOOTP/DHCP.<br />
<br />
<device> Имя сетевого устройства. Если тут пусто, все устройства будут использованы<br />
для RARP/BOOTP/DHCP запросов, и все настройки будут получены из первого<br />
пришедшего ответа. Если вы имеете только одно сетевое устройство, можно спокойно<br />
оставить поле пустым.<br />
<br />
<autoconf> Какой метод использовать для автонастройки: 'rarp', 'bootp', или 'dhcp'.<br />
Если значение 'both', 'all' или пусто, все протоколы будут использованы.<br />
'off', 'static' или 'none' означают запрет автонастройки.<br />
''Примеры:''<br />
ip=127.0.0.1:::::lo:none --> Разрешить lo интерфейс.<br />
ip=192.168.1.1:::::eth2:none --> Статический eth2 интерфейс.<br />
ip=:::::eth0:dhcp --> Разрешить dhcp протокол для настройки интерфейса eth0.<br />
'''nfsroot='''<br />
<br />
Если параметр 'nfsroot' НЕ передан, будет использовано значение по умолчанию "/tftpboot/%s".<br />
<br />
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]<br />
<br />
''Описание параметров:''<br />
<br />
<server-ip> IP адрес NFS сервера. Если параметр отсутствует<br />
адрес по умолчанию определяется по переменной<br />
`ip' (см. ниже). Одно из применений этого параметра -<br />
использование разных серверов для <br />
RARP и NFS. Обычно можете оставить этот параметр пустым.<br />
<br />
<root-dir> Путь к директории, которая будет корневой на клиенте. Если тут<br />
написано "%s", то оно будет заменено на ASCII представление IP<br />
клиента.<br />
<br />
<nfs-options> Стандартные опции NFS. Все опции разделены запятыми.<br />
Если опция отсутствует будут использованы следующие значения по умолчанию:<br />
port = как скажет portmap демон на сервере<br />
rsize = 1024<br />
wsize = 1024<br />
timeo = 7<br />
retrans = 3<br />
acregmin = 3<br />
acregmax = 60<br />
acdirmin = 30<br />
acdirmax = 60<br />
flags = hard, nointr, noposix, cto, ac<br />
<br />
'''root=/dev/nfs'''<br />
Если вы не используете параметр nfsroot=, вам нужно установить root=/dev/nfs <br />
для загрузки с автонастройкой корня в nfs.<br />
<br />
=== Использование lvm ===<br />
<br />
Если ваш корень находится на lvm, вы должны добавить обработчик '''lvm2'''. Также, вы должны передать имя корневого устройства ядру в формате<br />
<br />
root=/dev/mapper/<имя-группы-томов>-<логическое-имя-тома><br />
<br />
например<br />
<br />
root=/dev/mapper/myvg-root<br />
<br />
=== Использование шифрования на корневом разделе ===<br />
<br />
Если ваш корневой раздел зашифрован, вы должны добавить обработчик '''encrypt'''. Затем укажите ядру корневой раздел также, как если бы он не был зашифрован.<br />
<br />
Например для sata/scsi:<br />
root=/dev/sda5<br />
<br />
или для зашифрованного lvm:<br />
root=/dev/mapper/myvg-root<br />
<br />
Корневое устройство автоматически поменяется на ''/dev/mapper/root''.<br />
<br />
==== Использование LUKS томов ====<br />
<br />
Если вы используете LUKS для шифровани дисков, скрипт инициализации поймет это автоматически, если вы указали обработчик '''encrypt'''. Он спросит пароль для разблокирования тома.<br />
<br />
Если этого не происходит, попробуйте добавить filesystem-module в список модулей в фале /etc/mkinitcpio.conf если он не вкомпилирован в ядро.<br />
<br />
==== Использование legacy cryptsetup томов ====<br />
<br />
Если вы используете legacy cryptsetup том, вы должны указать все опции, необходимые для его разблокировки в строке параметров ядра. Опции формата<br />
<br />
crypto=hash:cipher:keysize:offset:skip<br />
<br />
представляют опции cryptsetup: --hash, --cipher, --keysize, --offset и --skip. Если вы пропустите опцию, будет использовано значение по умолчанию, т.е. вы можете написать просто<br />
<br />
crypto=::::<br />
<br />
если вы создали том с настройками по умолчанию.<br />
<br />
'''ЗАМЕЧАНИЕ:''' По техническим причинам невозможно проверить корректность пароля для legacy cryptsetup тома. Если вы ошибетесь, у вас просто не получится его смонтировать. Рекомендуется использовать LUKS вместо legacy cryptsetup.<br />
<br />
==== Использование loop-aes томов ====<br />
<br />
'''mkinitcpio''' пока не поддерживает loop-aes.<br />
<br />
== Использование спящего режима (на диск) ==<br />
<br />
Если вы хотите, чтобы ваш компьютер засыпал на диск, вы должны добавить обработчик '''resume'''.<br />
<br />
==== swsusp ====<br />
<br />
''TODO''<br />
<br />
==== µswsusp ====<br />
<br />
µswsusp пока не поддерживается.<br />
<br />
==== suspend2 ====<br />
<br />
Если вы используете [[Suspend to Disk|suspend2]], вы должны указать обработчик ''resume2'' в параметрах ядра. Если вы используете запись в своп, пишите:<br />
<br />
resume2=swap:/dev/hda3<br />
<br />
где ''/dev/hda3'' ваш своп раздел. Если вы пишите память в файл, используйте<br />
<br />
resume2=file:/dev/hda2:0x123456<br />
<br />
где ''/dev/hda2'' раздел с файлом (обычно корневой раздел) и ''0x123456'' - смещение до файла. Вы можете получить его с помощью команд:<br />
<br />
echo "/suspend2_file" > /proc/suspend2/filewriter_target<br />
cat /proc/suspend2/resume2<br />
<br />
где /suspend2_file - путь к файлу, куда записывается образ памяти. Это (естественно) работает и для томов lvm. Также можно использовать и зашифрованные разделы<br />
<br />
resume2=file:/dev/mapper/root:0x123456<br />
<br />
где ''0x123456'' снова смещение. Восстановление с зашифрованного своп раздела не поддерживается.<br />
<br />
=== Примеры конфигурационных файлов загрузчиков ===<br />
<br />
Если Вы используете beyond kernel, замените имена фалов ''kernel26.img'' и ''kernel26-fallback.img'' на ''kernel26beyond.img'' и ''kernel26beyond-fallback.img'' соответственно. Так же замените "vmlinuz26" на "vmlinuz26beyond".<br />
<br />
==== GRUB ====<br />
<br />
Для тех у кого /boot на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26-fallback.img<br />
<br />
Для тех у кого /boot '''не''' на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
==== LILO ====<br />
<br />
Если Вы используете загрузчик LILO, то рекомендуется использовать ''append="root=/dev/XYZ"'' вместо ''root=/dev/XYZ''. Если у Вас уже есть глобальная опция ''append'', тогда используйте ''addappend''.<br />
<br />
boot=/dev/hdX <br />
default = ArchLinux<br />
timeout=50 <br />
vga=791<br />
lba32<br />
prompt<br />
<br />
# для образа автоопределения железа<br />
image=/boot/vmlinuz26<br />
label=ArchLinux<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26.img<br />
read-only<br />
<br />
# fallback image если другие образы не работают (Will most prob. never be used)<br />
image=/boot/vmlinuz26<br />
label=ArchLinuxFallBack<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26-fallback.img<br />
read-only<br />
<br />
== Возможные проблемы ==<br />
=== piix ide контролер и ядро beyond ===<br />
==== Проблема ====<br />
Если mkinitcpio не хочет определять ваш жесткий диск выдавая ошибки вида "Can't find device dev(0,0)" при переключении kinit, то это скорее всего из-за конфликта между драйвером ata_piix и piix. Ядро beyond содержит несколько патчей libata которые вызывают *конфликт* ata_piix с piix.<br />
<br />
==== Решение ====<br />
Измените /etc/mkinitcpio.conf так, чтобы он содержал только одну запись: или ide, или sata, или scsi, в зависимости от того откуда вы хотите загружать систему.<br />
<br />
== Я параноик! ==<br />
Если вам действительно нужно знать, что включено в initrd, вы можете вытаскивать и класть внутрь образа файлы. Это просто cpio архив, но...<br />
<br />
=== Предупреждение о cpio ===<br />
Использование cpio для извлечения опасно (от root'а), так как оно пытается извлечь файлы в /, ломая существующую систему загрузки. Для исправления, вам придется переставить все пакеты, файлы которых были перезаписаны с помощью pacman.static. Список файлов выдаст команда bsdtar -t -f kernel26.img<br />
=== Использование bsdtar для извлечения ===<br />
bsdtar извлекает файлы в текущий каталог.<br />
<br />
Используйте команду:<br />
bsdtar -x -f /boot/kernel26.img</div>Charlaghttps://wiki.archlinux.org/index.php?title=Mkinitcpio_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=267008Mkinitcpio (Русский)2013-07-19T01:21:40Z<p>Charlag: /* Модификация основного образа */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
[[Category:Руководство пользователя (Русский)]]<br />
[[da:Mkinitcpio]]<br />
[[en:Mkinitcpio]]<br />
[[es:Mkinitcpio]]<br />
[[fr:mkinitcpio]]<br />
[[it:Mkinitcpio]]<br />
[[zh-CN:Mkinitcpio]]<br />
{{Article summary start}}<br />
{{Article summary text|Статья объясняет как использовать mkinitcpio}}<br />
<!-- {{Article summary heading|Related}} --><br />
{{Article summary end}}<br />
<br />
== Введение ==<br />
<br />
'''mkinitcpio''' - следующее поколение '''программ для создания initramfs'''. У нее есть много преимуществ перед '''mkinitrd''' и '''mkinitramfs'''.<br />
<br />
* Использует '''klibc''' и '''kinit''', разработанные авторами ядра Linux для уменьшения накладных расходов на ранней стадии загрузки.<br />
* Может использовать '''udev''' для определения апаратных средств, что предотвращает загрузки большого количества лишних модулей.<br />
* Возможность расширять функциональность при помощи специальных обработчиков, которые могут быть включены в другие пакеты.<br />
* Поддерживает '''lvm2''', '''dm-crypt''', '''raid''', '''swsusp''' и '''suspend2''' и загрузку с устройств '''usb mass storage'''.<br />
* Много опций передается прямо из строки аргументов ядра.<br />
* '''mkinitcpio''' позволяет включать образ ram-диска в образ ядра.<br />
<br />
'''mkinitcpio''' разработан '''phrakture''' и '''tpowa''' с помощью community.<br />
<br />
== Установка mkinitcpio ==<br />
=== Из текущего репозитория ===<br />
<br />
'''mkinitcpio''' находится в репозитории current. Вы можете установить его командой<br />
# pacman -S mkinitcpio<br />
<br />
=== Из git ===<br />
<br />
Последнюю development версию '''mkinitcpio''', можно получить из git командой<br />
# git clone git://projects.archlinux.org/mkinitcpio.git<br />
<br />
== Для ядер >=2.6.17 ==<br />
Будет создано 2 образа во время установки/обновления:<br />
<br />
Если вы используете '''kernel26'''<br />
/boot/kernel26.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26-fallback.img --> образ со всем драйверами<br />
Если вы используете '''kernel26beyond'''<br />
/boot/kernel26beyond.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26beyond-fallback.img --> образ со всем драйверами<br />
Настройте свой загрузчик на использование нужного образа.<br />
<br />
=== Предупреждения ===<br />
==== Пользователям '''lvm2''', '''raid''' и '''encrypt''' ====<br />
{{Warning|1='''lvm2''', '''raid''' и '''encrypt''' НЕ ВКЛЮЧЕНЫ по умолчанию.<br />
Прочитайте эту страницу чтобы узнать как их включить и настроить.}}<br />
<br />
==== Пользователям более одного контроллера дисков ====<br />
{{Warning|1=Если у вас более одного контроллера дисков использующих одно пространство имен устройств (например 2 SCSI/SATA или IDE контроллера) и они требуют разных модулей, укажите правильный порядок в MODULES="" в файле /etc/mkinitcpio.conf и в вашем файле конфигурации fallback, иначе устройства могут поменяться местами и вы получите kernel panic при загрузке.<br />
<br />
Более правильный путь - использовать [[Persistent block device naming]], чтобы быть уверенным, что вы смонтировали действительно то, что хотели.}}<br />
<br />
==== Незагружаемые модули ====<br />
{{Warning|1=Если вам нужно загрузить один из следующих модулей для нормального монтирования корневого раздела, поместите его в MODULES="" в /etc/mkinitcpio.conf и в файл конфигурации fallback.<br />
<br />
- '''SCSI КОНТРОЛЛЕРЫ''' (status stock kernel 2.6.18)<br />
<pre><br />
scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416<br />
g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x<br />
atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys<br />
</pre><br />
}}<br />
<br />
=== Редактирование файлов конфигурации ===<br />
<br />
=== '''Модификация основного образа''' ===<br />
Чтобы изменить начальные значения главного образа отредактируйте следующий файл:<br />
<br />
/etc/mkinitcpio.conf<br />
<br />
mkinitcpio использует этот файл по умолчанию.<br />
<br />
=== '''Редактирование fallback образа''' ===<br />
To change the defaults for the fallback images, edit one of the following files:<br />
отредактируйте '''/boot/mkinitcpio.d/kernel26-fallback.conf'''<br />
и выставьте файл который вы отредактировали в '''NoUpgrade =''' в '/etc/pacman.conf'. Это должно быть нормально, если вы не используете специальные настройки вида lvm или raid.<br />
<br />
=== Настройка обработчиков (HOOKS) ===<br />
<br />
Это наиболее важная часть конфигурирования mkinitcpio. Строка HOOKS содержит обработчики, которые исполняются при создании образа и во время выполнения в том же порядке, в котором они указаны. Строка имеет следующий формат:<br />
<br />
HOOKS="foo1 foo2 foo3 bar1 bar2"<br />
<br />
==== Доступные обработчики ====<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 />
! Hook || При установке || Во время выполнения<br />
|-<br />
| '''base''' || Устанавливает базовые каталоги, klibc и основные библиотеки. Всегда используйте его, за исключением случаев, когда вы действительно знаете, что делаете. || <br />
|-<br />
| '''udev''' || Добавляет udev в образ ram-диска || Udev автоматически создает файл устройства для корня и загружает необходимые модули для его работы. Рекомендуется использовать.<br />
|-<br />
| '''modload''' || || Альтернативный механизм автоопределения, но работает медленнее чем udev. Оставлен для совместимости, используйте udev вместо него.<br />
|-<br />
| '''autodetect''' || Уменьшает размер initramfs пытаясь определить какие модули вам нужны. Проверьте список модулей которые он добавил. Он должен запускаться раньше других подсистем. Все обработчики выполняемые до него будут включать все модули. || <br />
|-<br />
| '''ide''' || Добавляет модули IDE. Используйте если ваш корневой раздел на IDE диске. Поставьте '''autodetect''' до него, для уменьшения количества модулей || Загружает модули IDE. Вам потребуется '''udev''' или '''modload''' обработчики если вы не указали список модулей явно (см. секцию MODULES ниже).<br />
|-<br />
| '''pata''' || Добавляет IDE модули. Используйте если корневой раздел - IDE диск и вы хотите использовать PATA вместо IDE. Также рекомендуется '''autodetect''' || Загружает модули. Вам потребуется '''udev''' или '''modload''' если только вы не указали все в секции MODULES. PATA - новый набор IDE драйверов. При его использовании /dev/hd? меняются на /dev/sd?. См.: https://archlinux.org/news/272/<br />
|-<br />
| '''sata''' || Добавляет SATA модули. || Загружает SATA модули.<br />
|-<br />
| '''scsi''' || Добавляет SCSI модули. || Загружает SCSI модули.<br />
|-<br />
| '''usb''' || Добавляет USB модули для usb-storage. || Загружает USB модули.<br />
|-<br />
| '''usbinput''' || Добавляет USB HID модули. Используйте если нужна USB клавиатура на ранней стадии загрузки (например для ввода пароля в режиме failsafe || Загружает модули.<br />
|-<br />
| '''fw''' || Добавляет поддержку Firewire в образ. Нужно для FW mass storage устройств. || Загружает FW модули.<br />
|-<br />
| '''net''' || Добавляет модули сетевых устройств. Для pcmcia добавьте соответствующий обработчик. || Загружает модули. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''pcmcia''' || Добавляет pcmcia модули. Требует наличия pcmciautils.|| Загружает модули pcmcia.<br />
|-<br />
| '''dsdt''' || Добавляет пользовательский acpi dsdt файл. Запишите свой файл в /lib/initcpio/custom.dsdt || Ваш dsdt файл будет автоматически использован если он присутствует в initramfs.<br />
|-<br />
| '''filesystems''' || Добавляет драйвера файловых систем || Определяет файловые системы и загружает модули. ВНИМАНИЕ: это не работает с reiser4, вам придется добавлять драйвер этой ФС вручную.<br />
|-<br />
| '''lvm2''' || Добавляет поддержку lvm. Требует установленного пакета lvm2 || Включает поддержку lvm<br />
|-<br />
| '''raid''' || Добавляет модули для software raid. Требует пакет mdadm.|| Загружает модули и собирает raid устройства. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''encrypt''' || Добавляет dm-crypt модуль и программу cryptsetup. Требует установленный пакет cryptsetup. || Определяет и разблокирует зашифрованый корневой раздел. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''resume''' || || Пытается выполнить пробуждение после "suspend to disk". Работает с swsusp и [[Suspend to Disk|suspend2]]. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''firmware''' || Добавляет файлы в /lib/firmware. || Загружает firmware.<br />
|-<br />
| '''keymap''' || Добавляет keymap и consolefonts из rc.conf. || Загружает указанную раскладку и шрифты.<br />
|}<br />
<br />
==== Примеры ====<br />
<br />
Эта конфигурация будет работать для большинства пользователей:<br />
<br />
HOOKS="base udev autodetect ide scsi sata filesystems"<br />
<br />
Если вы хотите загружать систему на разных машинах используйте:<br />
<br />
HOOKS="base udev ide scsi sata filesystems"<br />
<br />
Вы можете использовать зашифрованные тома на lvm2:<br />
<br />
HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems"<br />
<br />
=== Изменение переменной MODULES ===<br />
<br />
MODULES содержит список модулей для включения в образ и загрузки. Например это нужно если вы не хотите использовать '''udev''' или '''modload'''. Тогда можно добавить все нужные модули вручную:<br />
<br />
MODULES="piix ide_disk reiserfs"<br />
HOOKS="base autodetect ide filesystems"<br />
<br />
NOTE: Если вам нужен '''reiser4''', вы ДОЛЖНЫ добавить его в список модулей.<br />
<br />
=== Настройка BINARIES и FILES ===<br />
<br />
Эти опции добавляют в образ указанные файлы. Разница только в том, что BINARIES проверяет зависимости от библиотек, в то время как FILES просто копирует файлы.<br />
<br />
Пример:<br />
<br />
FILES="/etc/modprobe.d/modprobe.conf"<br />
<br />
BINARIES="/usr/bin/somefile"<br />
<br />
== Создание образа ==<br />
<br />
=== Пересоздание предопределенного образа / использование предустановок ===<br />
<br />
Если вы хотите перегенерировать образы, используйте команду<br />
# mkinitcpio -p kernel26<br />
Это пример для пакета ''kernel26'', но вы можете выполнить аналогичную команду и для других ядер.<br />
<br />
Если вы хотите изменить настройки образов, отредактируйте ''/etc/mkinitcpio.d/kernel26.preset'' (для пакета kernel26). '''Эти ''.preset'' файлы также будут использованы при обновлении ядра, не испортите их!'''<br />
<br />
=== Вручную ===<br />
<br />
Создайте образ командой:<br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
Она создаст образ для текущего ядра в файле '''/boot/kernel26.img''', который является образом для ядра из пакета '''kernel26'''. Пользователи '''kernel26beyond''' должны написать:<br />
<br />
mkinitcpio -g /boot/kernel26beyond.img<br />
<br />
Если вы хотите сгенерировать образ для ядра, которое в данный момент не загружено, используйте:<br />
<br />
mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH<br />
<br />
==== Перегенерация fallback-образа ====<br />
<br />
''Замечание:'' Нижеследующий текст предназначен для создания образа для текущего ядра. Для других ядер используйте ключ -k.<br />
<br />
Fallback образ должен быть уже создан если вы установили '''kernel26''' или '''kernel26beyond''', но в случае если вы хотите его пересоздать используйте:<br />
<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26-fallback.conf -g /boot/kernel26.img<br />
для beyond ядер<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26beyond-fallback.conf -g /boot/kernel26beyond.img<br />
<br />
См. '''mkinitcpio -h''' чтобы увидеть другие опции.<br />
<br />
Не забудьте добавить запись в загрузчик. Просто скопируйте старую запись и измените путь к initrd. Будьте аккуратны, всегда имейте провереный вариант загрузки в списке загрузчика. Вы можете использовать mkinitcpio с любыми вариантами ядер (kernel26, kernel26-beyond...).<br />
<br />
== Изменения строки параметров ядра ==<br />
<br />
Не зависимо от наличия initramfs некоторые опции приходится передавать через строку параметров ядра, как например корневое устройство. Некоторые из обработчиков mkinitcpio имеют специальные опции. Они и обсуждаются в этой главе.<br />
<br />
Если вы не знаете, что такое строка параметров ядра, читайте документацию по [[GRUB]] или [[Lilo]].<br />
<br />
=== Вход в безотказный режим ===<br />
<br />
Если Вы добавите опцию<br />
break=y<br />
в строку параметров ядра, то init остановится после инициализации и вы получите ''dash'' шелл. Это может быть использовано, чтобы проверить, что все хорошо. После выхода загрузка продолжится в обычном режиме.<br />
<br />
=== Запрет обработчиков ===<br />
<br />
Вы можете запретить обработчики при помощи параметра ''disablehooks'' в строке параметров ядра:<br />
<br />
disablehooks=hook1,hook2,hook2<br />
<br />
например,<br />
<br />
disablehooks=resume<br />
<br />
=== Запрет загрузки модулей ===<br />
<br />
Вы можете запретить загрузку некоторых модулей добавив параметр ''disablemodules'' в строку параметров ядра:<br />
<br />
disablemodules=mod1,mod2,mod3<br />
<br />
например,<br />
<br />
disablemodules=ata_piix<br />
<br />
=== Использование raid ===<br />
Добавьте обработчик raid в список HOOKS в /etc/mkinitcpio.conf<br />
<br />
'''Параметры ядра: '''<br />
Укажите md массивы с помощью: md= parameter: (см. ниже).<br />
Простого добавления вашего raid массива достаточно.<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
<br />
Затем добавьте следующее в строку kernel в '''grub/menu.lst''':<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
Т.е. это будет выглядеть так:<br />
kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1<br />
Эта строка создает два md массива с постоянными суперблоками<br />
<br />
'''Настройка:'''<br />
- для старых raid массивов без постоянных суперблоков:<br />
md=<номер устройства md>,<уровень raid>,<chunk size factor>,<fault level>,dev0,dev1<br />
- для raid массивом с постоянными суперблоками:<br />
md=<номер устройства md>,dev0,dev1,...,devn<br />
- для сборки partitionable массивов:<br />
md=d<md device no.>,dev0,dev1,...,devn<br />
<br />
'''Параметры:'''<br />
- <номер устройства md> = номер устройства:<br />
0 значит md0, 1 значит md1, ...<br />
- <уровень raid> = -1 линейный режим, 0 striped режим<br />
другие режимы поддерживаются только с постоянным суперблоком<br />
- <chunk size factor> = (только для raid-0 и raid-1):<br />
Установить chunk size as 4k << n.<br />
- <fault level> = игнорируется<br />
- <dev0-devn>: т.е. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1<br />
<br />
=== Использование net ===<br />
<br />
'''Параметры ядра:''' <br />
<br />
'''ip=''' <br />
<br />
Описание интерфейса может быть в короткой форме, которая состоит просто из имени интерфейса (eth0 или какой либо еще), или в длинной форме. Длинная форма содержит семь элементов, разделенных двоеточием:<br />
<br />
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf><br />
nfsaddrs= это алиас для ip= и может использоваться также.<br />
<br />
''Разъяснение параметров:''<br />
<client-ip> IP адрес клиента. Если пустой, то автоматически назначается<br />
протоколом RARP/BOOTP/DHCP. Какой протокол используется<br />
зависит от параметра <autoconf>. Если его значение не пустое,<br />
то autocnf работает корректно.<br />
<br />
<server-ip> IP адрес NFS сервера. Если используется RARP для определения<br />
адреса клиента и этот параметр не пуст, то принимаются ответы<br />
только от указанного сервера.<br />
Для использования разных RARP и NFS серверов,<br />
укажите ваш RARP сервер здесь (или оставьте пустым), и<br />
укажите ваш NFS сервер в параметре `nfsroot'<br />
(см. выше). Если тут пусто, будет использован сервер, ответивший<br />
на RARP/BOOTP/DHCP запрос.<br />
<br />
<gw-ip> IP адрес шлюза если сервер в другой подсети. Если тут пусто,<br />
предполагается, что сервер находится в одной подсети, если значение<br />
не получено по BOOTP/DHCP.<br />
<br />
<netmask> Маска подсети для локального интерфейса. Если тут пусто,<br />
используется маска по умолчанию в зависимости от класса IP,<br />
если конечно не переопределена значением из BOOTP/DHCP ответа.<br />
<br />
<hostname> Имя машины клиента. Если пусто, используется IP адрес в виде ASCII<br />
строки, или значение полученное по BOOTP/DHCP.<br />
<br />
<device> Имя сетевого устройства. Если тут пусто, все устройства будут использованы<br />
для RARP/BOOTP/DHCP запросов, и все настройки будут получены из первого<br />
пришедшего ответа. Если вы имеете только одно сетевое устройство, можно спокойно<br />
оставить поле пустым.<br />
<br />
<autoconf> Какой метод использовать для автонастройки: 'rarp', 'bootp', или 'dhcp'.<br />
Если значение 'both', 'all' или пусто, все протоколы будут использованы.<br />
'off', 'static' или 'none' означают запрет автонастройки.<br />
''Примеры:''<br />
ip=127.0.0.1:::::lo:none --> Разрешить lo интерфейс.<br />
ip=192.168.1.1:::::eth2:none --> Статический eth2 интерфейс.<br />
ip=:::::eth0:dhcp --> Разрешить dhcp протокол для настройки интерфейса eth0.<br />
'''nfsroot='''<br />
<br />
Если параметр 'nfsroot' НЕ передан, будет использовано значение по умолчанию "/tftpboot/%s".<br />
<br />
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]<br />
<br />
''Описание параметров:''<br />
<br />
<server-ip> IP адрес NFS сервера. Если параметр отсутствует<br />
адрес по умолчанию определяется по переменной<br />
`ip' (см. ниже). Одно из применений этого параметра -<br />
использование разных серверов для <br />
RARP и NFS. Обычно можете оставить этот параметр пустым.<br />
<br />
<root-dir> Путь к директории, которая будет корневой на клиенте. Если тут<br />
написано "%s", то оно будет заменено на ASCII представление IP<br />
клиента.<br />
<br />
<nfs-options> Стандартные опции NFS. Все опции разделены запятыми.<br />
Если опция отсутствует будут использованы следующие значения по умолчанию:<br />
port = как скажет portmap демон на сервере<br />
rsize = 1024<br />
wsize = 1024<br />
timeo = 7<br />
retrans = 3<br />
acregmin = 3<br />
acregmax = 60<br />
acdirmin = 30<br />
acdirmax = 60<br />
flags = hard, nointr, noposix, cto, ac<br />
<br />
'''root=/dev/nfs'''<br />
Если вы не используете параметр nfsroot=, вам нужно установить root=/dev/nfs <br />
для загрузки с автонастройкой корня в nfs.<br />
<br />
=== Использование lvm ===<br />
<br />
Если ваш корень находится на lvm, вы должны добавить обработчик '''lvm2'''. Также, вы должны передать имя корневого устройства ядру в формате<br />
<br />
root=/dev/mapper/<имя-группы-томов>-<логическое-имя-тома><br />
<br />
например<br />
<br />
root=/dev/mapper/myvg-root<br />
<br />
=== Использование шифрования на корневом разделе ===<br />
<br />
Если ваш корневой раздел зашифрован, вы должны добавить обработчик '''encrypt'''. Затем укажите ядру корневой раздел также, как если бы он не был зашифрован.<br />
<br />
Например для sata/scsi:<br />
root=/dev/sda5<br />
<br />
или для зашифрованного lvm:<br />
root=/dev/mapper/myvg-root<br />
<br />
Корневое устройство автоматически поменяется на ''/dev/mapper/root''.<br />
<br />
==== Использование LUKS томов ====<br />
<br />
Если вы используете LUKS для шифровани дисков, скрипт инициализации поймет это автоматически, если вы указали обработчик '''encrypt'''. Он спросит пароль для разблокирования тома.<br />
<br />
Если этого не происходит, попробуйте добавить filesystem-module в список модулей в фале /etc/mkinitcpio.conf если он не вкомпилирован в ядро.<br />
<br />
==== Использование legacy cryptsetup томов ====<br />
<br />
Если вы используете legacy cryptsetup том, вы должны указать все опции, необходимые для его разблокировки в строке параметров ядра. Опции формата<br />
<br />
crypto=hash:cipher:keysize:offset:skip<br />
<br />
представляют опции cryptsetup: --hash, --cipher, --keysize, --offset и --skip. Если вы пропустите опцию, будет использовано значение по умолчанию, т.е. вы можете написать просто<br />
<br />
crypto=::::<br />
<br />
если вы создали том с настройками по умолчанию.<br />
<br />
'''ЗАМЕЧАНИЕ:''' По техническим причинам невозможно проверить корректность пароля для legacy cryptsetup тома. Если вы ошибетесь, у вас просто не получится его смонтировать. Рекомендуется использовать LUKS вместо legacy cryptsetup.<br />
<br />
==== Использование loop-aes томов ====<br />
<br />
'''mkinitcpio''' пока не поддерживает loop-aes.<br />
<br />
== Использование спящего режима (на диск) ==<br />
<br />
Если вы хотите, чтобы ваш компьютер засыпал на диск, вы должны добавить обработчик '''resume'''.<br />
<br />
==== swsusp ====<br />
<br />
''TODO''<br />
<br />
==== µswsusp ====<br />
<br />
µswsusp пока не поддерживается.<br />
<br />
==== suspend2 ====<br />
<br />
Если вы используете [[Suspend to Disk|suspend2]], вы должны указать обработчик ''resume2'' в параметрах ядра. Если вы используете запись в своп, пишите:<br />
<br />
resume2=swap:/dev/hda3<br />
<br />
где ''/dev/hda3'' ваш своп раздел. Если вы пишите память в файл, используйте<br />
<br />
resume2=file:/dev/hda2:0x123456<br />
<br />
где ''/dev/hda2'' раздел с файлом (обычно корневой раздел) и ''0x123456'' - смещение до файла. Вы можете получить его с помощью команд:<br />
<br />
echo "/suspend2_file" > /proc/suspend2/filewriter_target<br />
cat /proc/suspend2/resume2<br />
<br />
где /suspend2_file - путь к файлу, куда записывается образ памяти. Это (естественно) работает и для томов lvm. Также можно использовать и зашифрованные разделы<br />
<br />
resume2=file:/dev/mapper/root:0x123456<br />
<br />
где ''0x123456'' снова смещение. Восстановление с зашифрованного своп раздела не поддерживается.<br />
<br />
=== Примеры конфигурационных файлов загрузчиков ===<br />
<br />
Если Вы используете beyond kernel, замените имена фалов ''kernel26.img'' и ''kernel26-fallback.img'' на ''kernel26beyond.img'' и ''kernel26beyond-fallback.img'' соответственно. Так же замените "vmlinuz26" на "vmlinuz26beyond".<br />
<br />
==== GRUB ====<br />
<br />
Для тех у кого /boot на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26-fallback.img<br />
<br />
Для тех у кого /boot '''не''' на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
==== LILO ====<br />
<br />
Если Вы используете загрузчик LILO, то рекомендуется использовать ''append="root=/dev/XYZ"'' вместо ''root=/dev/XYZ''. Если у Вас уже есть глобальная опция ''append'', тогда используйте ''addappend''.<br />
<br />
boot=/dev/hdX <br />
default = ArchLinux<br />
timeout=50 <br />
vga=791<br />
lba32<br />
prompt<br />
<br />
# для образа автоопределения железа<br />
image=/boot/vmlinuz26<br />
label=ArchLinux<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26.img<br />
read-only<br />
<br />
# fallback image если другие образы не работают (Will most prob. never be used)<br />
image=/boot/vmlinuz26<br />
label=ArchLinuxFallBack<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26-fallback.img<br />
read-only<br />
<br />
== Возможные проблемы ==<br />
=== piix ide контролер и ядро beyond ===<br />
==== Проблема ====<br />
Если mkinitcpio не хочет определять ваш жесткий диск выдавая ошибки вида "Can't find device dev(0,0)" при переключении kinit, то это скорее всего из-за конфликта между драйвером ata_piix и piix. Ядро beyond содержит несколько патчей libata которые вызывают *конфликт* ata_piix с piix.<br />
<br />
==== Решение ====<br />
Измените /etc/mkinitcpio.conf так, чтобы он содержал только одну запись: или ide, или sata, или scsi, в зависимости от того откуда вы хотите загружать систему.<br />
<br />
== Я параноик! ==<br />
Если вам действительно нужно знать, что включено в initrd, вы можете вытаскивать и класть внутрь образа файлы. Это просто cpio архив, но...<br />
<br />
=== Предупреждение о cpio ===<br />
Использование cpio для извлечения опасно (от root'а), так как оно пытается извлечь файлы в /, ломая существующую систему загрузки. Для исправления, вам придется переставить все пакеты, файлы которых были перезаписаны с помощью pacman.static. Список файлов выдаст команда bsdtar -t -f kernel26.img<br />
=== Использование bsdtar для извлечения ===<br />
bsdtar извлекает файлы в текущий каталог.<br />
<br />
Используйте команду:<br />
bsdtar -x -f /boot/kernel26.img</div>Charlaghttps://wiki.archlinux.org/index.php?title=Mkinitcpio_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=267007Mkinitcpio (Русский)2013-07-19T01:21:24Z<p>Charlag: /* Модификация основного образа */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
[[Category:Руководство пользователя (Русский)]]<br />
[[da:Mkinitcpio]]<br />
[[en:Mkinitcpio]]<br />
[[es:Mkinitcpio]]<br />
[[fr:mkinitcpio]]<br />
[[it:Mkinitcpio]]<br />
[[zh-CN:Mkinitcpio]]<br />
{{Article summary start}}<br />
{{Article summary text|Статья объясняет как использовать mkinitcpio}}<br />
<!-- {{Article summary heading|Related}} --><br />
{{Article summary end}}<br />
<br />
== Введение ==<br />
<br />
'''mkinitcpio''' - следующее поколение '''программ для создания initramfs'''. У нее есть много преимуществ перед '''mkinitrd''' и '''mkinitramfs'''.<br />
<br />
* Использует '''klibc''' и '''kinit''', разработанные авторами ядра Linux для уменьшения накладных расходов на ранней стадии загрузки.<br />
* Может использовать '''udev''' для определения апаратных средств, что предотвращает загрузки большого количества лишних модулей.<br />
* Возможность расширять функциональность при помощи специальных обработчиков, которые могут быть включены в другие пакеты.<br />
* Поддерживает '''lvm2''', '''dm-crypt''', '''raid''', '''swsusp''' и '''suspend2''' и загрузку с устройств '''usb mass storage'''.<br />
* Много опций передается прямо из строки аргументов ядра.<br />
* '''mkinitcpio''' позволяет включать образ ram-диска в образ ядра.<br />
<br />
'''mkinitcpio''' разработан '''phrakture''' и '''tpowa''' с помощью community.<br />
<br />
== Установка mkinitcpio ==<br />
=== Из текущего репозитория ===<br />
<br />
'''mkinitcpio''' находится в репозитории current. Вы можете установить его командой<br />
# pacman -S mkinitcpio<br />
<br />
=== Из git ===<br />
<br />
Последнюю development версию '''mkinitcpio''', можно получить из git командой<br />
# git clone git://projects.archlinux.org/mkinitcpio.git<br />
<br />
== Для ядер >=2.6.17 ==<br />
Будет создано 2 образа во время установки/обновления:<br />
<br />
Если вы используете '''kernel26'''<br />
/boot/kernel26.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26-fallback.img --> образ со всем драйверами<br />
Если вы используете '''kernel26beyond'''<br />
/boot/kernel26beyond.img --> образ с необходимыми драйверами для загрузки на этом компьютере<br />
/boot/kernel26beyond-fallback.img --> образ со всем драйверами<br />
Настройте свой загрузчик на использование нужного образа.<br />
<br />
=== Предупреждения ===<br />
==== Пользователям '''lvm2''', '''raid''' и '''encrypt''' ====<br />
{{Warning|1='''lvm2''', '''raid''' и '''encrypt''' НЕ ВКЛЮЧЕНЫ по умолчанию.<br />
Прочитайте эту страницу чтобы узнать как их включить и настроить.}}<br />
<br />
==== Пользователям более одного контроллера дисков ====<br />
{{Warning|1=Если у вас более одного контроллера дисков использующих одно пространство имен устройств (например 2 SCSI/SATA или IDE контроллера) и они требуют разных модулей, укажите правильный порядок в MODULES="" в файле /etc/mkinitcpio.conf и в вашем файле конфигурации fallback, иначе устройства могут поменяться местами и вы получите kernel panic при загрузке.<br />
<br />
Более правильный путь - использовать [[Persistent block device naming]], чтобы быть уверенным, что вы смонтировали действительно то, что хотели.}}<br />
<br />
==== Незагружаемые модули ====<br />
{{Warning|1=Если вам нужно загрузить один из следующих модулей для нормального монтирования корневого раздела, поместите его в MODULES="" в /etc/mkinitcpio.conf и в файл конфигурации fallback.<br />
<br />
- '''SCSI КОНТРОЛЛЕРЫ''' (status stock kernel 2.6.18)<br />
<pre><br />
scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416<br />
g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x<br />
atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys<br />
</pre><br />
}}<br />
<br />
=== Редактирование файлов конфигурации ===<br />
<br />
=== '''Модификация основного образа''' ===<br />
Чтобы изменить начальные значение главного образа отредактируйте следующий файл:<br />
<br />
/etc/mkinitcpio.conf<br />
<br />
mkinitcpio использует этот файл по умолчанию.<br />
<br />
=== '''Редактирование fallback образа''' ===<br />
To change the defaults for the fallback images, edit one of the following files:<br />
отредактируйте '''/boot/mkinitcpio.d/kernel26-fallback.conf'''<br />
и выставьте файл который вы отредактировали в '''NoUpgrade =''' в '/etc/pacman.conf'. Это должно быть нормально, если вы не используете специальные настройки вида lvm или raid.<br />
<br />
=== Настройка обработчиков (HOOKS) ===<br />
<br />
Это наиболее важная часть конфигурирования mkinitcpio. Строка HOOKS содержит обработчики, которые исполняются при создании образа и во время выполнения в том же порядке, в котором они указаны. Строка имеет следующий формат:<br />
<br />
HOOKS="foo1 foo2 foo3 bar1 bar2"<br />
<br />
==== Доступные обработчики ====<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 />
! Hook || При установке || Во время выполнения<br />
|-<br />
| '''base''' || Устанавливает базовые каталоги, klibc и основные библиотеки. Всегда используйте его, за исключением случаев, когда вы действительно знаете, что делаете. || <br />
|-<br />
| '''udev''' || Добавляет udev в образ ram-диска || Udev автоматически создает файл устройства для корня и загружает необходимые модули для его работы. Рекомендуется использовать.<br />
|-<br />
| '''modload''' || || Альтернативный механизм автоопределения, но работает медленнее чем udev. Оставлен для совместимости, используйте udev вместо него.<br />
|-<br />
| '''autodetect''' || Уменьшает размер initramfs пытаясь определить какие модули вам нужны. Проверьте список модулей которые он добавил. Он должен запускаться раньше других подсистем. Все обработчики выполняемые до него будут включать все модули. || <br />
|-<br />
| '''ide''' || Добавляет модули IDE. Используйте если ваш корневой раздел на IDE диске. Поставьте '''autodetect''' до него, для уменьшения количества модулей || Загружает модули IDE. Вам потребуется '''udev''' или '''modload''' обработчики если вы не указали список модулей явно (см. секцию MODULES ниже).<br />
|-<br />
| '''pata''' || Добавляет IDE модули. Используйте если корневой раздел - IDE диск и вы хотите использовать PATA вместо IDE. Также рекомендуется '''autodetect''' || Загружает модули. Вам потребуется '''udev''' или '''modload''' если только вы не указали все в секции MODULES. PATA - новый набор IDE драйверов. При его использовании /dev/hd? меняются на /dev/sd?. См.: https://archlinux.org/news/272/<br />
|-<br />
| '''sata''' || Добавляет SATA модули. || Загружает SATA модули.<br />
|-<br />
| '''scsi''' || Добавляет SCSI модули. || Загружает SCSI модули.<br />
|-<br />
| '''usb''' || Добавляет USB модули для usb-storage. || Загружает USB модули.<br />
|-<br />
| '''usbinput''' || Добавляет USB HID модули. Используйте если нужна USB клавиатура на ранней стадии загрузки (например для ввода пароля в режиме failsafe || Загружает модули.<br />
|-<br />
| '''fw''' || Добавляет поддержку Firewire в образ. Нужно для FW mass storage устройств. || Загружает FW модули.<br />
|-<br />
| '''net''' || Добавляет модули сетевых устройств. Для pcmcia добавьте соответствующий обработчик. || Загружает модули. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''pcmcia''' || Добавляет pcmcia модули. Требует наличия pcmciautils.|| Загружает модули pcmcia.<br />
|-<br />
| '''dsdt''' || Добавляет пользовательский acpi dsdt файл. Запишите свой файл в /lib/initcpio/custom.dsdt || Ваш dsdt файл будет автоматически использован если он присутствует в initramfs.<br />
|-<br />
| '''filesystems''' || Добавляет драйвера файловых систем || Определяет файловые системы и загружает модули. ВНИМАНИЕ: это не работает с reiser4, вам придется добавлять драйвер этой ФС вручную.<br />
|-<br />
| '''lvm2''' || Добавляет поддержку lvm. Требует установленного пакета lvm2 || Включает поддержку lvm<br />
|-<br />
| '''raid''' || Добавляет модули для software raid. Требует пакет mdadm.|| Загружает модули и собирает raid устройства. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''encrypt''' || Добавляет dm-crypt модуль и программу cryptsetup. Требует установленный пакет cryptsetup. || Определяет и разблокирует зашифрованый корневой раздел. См. секцию [[Configuring_mkinitcpio#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''resume''' || || Пытается выполнить пробуждение после "suspend to disk". Работает с swsusp и [[Suspend to Disk|suspend2]]. См. также [[Configuring mkinitcpio (Русский)#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D0.BE.D0.B2_.D1.8F.D0.B4.D1.80.D0.B0|Изменение строки параметров ядра]].<br />
|-<br />
| '''firmware''' || Добавляет файлы в /lib/firmware. || Загружает firmware.<br />
|-<br />
| '''keymap''' || Добавляет keymap и consolefonts из rc.conf. || Загружает указанную раскладку и шрифты.<br />
|}<br />
<br />
==== Примеры ====<br />
<br />
Эта конфигурация будет работать для большинства пользователей:<br />
<br />
HOOKS="base udev autodetect ide scsi sata filesystems"<br />
<br />
Если вы хотите загружать систему на разных машинах используйте:<br />
<br />
HOOKS="base udev ide scsi sata filesystems"<br />
<br />
Вы можете использовать зашифрованные тома на lvm2:<br />
<br />
HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems"<br />
<br />
=== Изменение переменной MODULES ===<br />
<br />
MODULES содержит список модулей для включения в образ и загрузки. Например это нужно если вы не хотите использовать '''udev''' или '''modload'''. Тогда можно добавить все нужные модули вручную:<br />
<br />
MODULES="piix ide_disk reiserfs"<br />
HOOKS="base autodetect ide filesystems"<br />
<br />
NOTE: Если вам нужен '''reiser4''', вы ДОЛЖНЫ добавить его в список модулей.<br />
<br />
=== Настройка BINARIES и FILES ===<br />
<br />
Эти опции добавляют в образ указанные файлы. Разница только в том, что BINARIES проверяет зависимости от библиотек, в то время как FILES просто копирует файлы.<br />
<br />
Пример:<br />
<br />
FILES="/etc/modprobe.d/modprobe.conf"<br />
<br />
BINARIES="/usr/bin/somefile"<br />
<br />
== Создание образа ==<br />
<br />
=== Пересоздание предопределенного образа / использование предустановок ===<br />
<br />
Если вы хотите перегенерировать образы, используйте команду<br />
# mkinitcpio -p kernel26<br />
Это пример для пакета ''kernel26'', но вы можете выполнить аналогичную команду и для других ядер.<br />
<br />
Если вы хотите изменить настройки образов, отредактируйте ''/etc/mkinitcpio.d/kernel26.preset'' (для пакета kernel26). '''Эти ''.preset'' файлы также будут использованы при обновлении ядра, не испортите их!'''<br />
<br />
=== Вручную ===<br />
<br />
Создайте образ командой:<br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
Она создаст образ для текущего ядра в файле '''/boot/kernel26.img''', который является образом для ядра из пакета '''kernel26'''. Пользователи '''kernel26beyond''' должны написать:<br />
<br />
mkinitcpio -g /boot/kernel26beyond.img<br />
<br />
Если вы хотите сгенерировать образ для ядра, которое в данный момент не загружено, используйте:<br />
<br />
mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH<br />
<br />
==== Перегенерация fallback-образа ====<br />
<br />
''Замечание:'' Нижеследующий текст предназначен для создания образа для текущего ядра. Для других ядер используйте ключ -k.<br />
<br />
Fallback образ должен быть уже создан если вы установили '''kernel26''' или '''kernel26beyond''', но в случае если вы хотите его пересоздать используйте:<br />
<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26-fallback.conf -g /boot/kernel26.img<br />
для beyond ядер<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26beyond-fallback.conf -g /boot/kernel26beyond.img<br />
<br />
См. '''mkinitcpio -h''' чтобы увидеть другие опции.<br />
<br />
Не забудьте добавить запись в загрузчик. Просто скопируйте старую запись и измените путь к initrd. Будьте аккуратны, всегда имейте провереный вариант загрузки в списке загрузчика. Вы можете использовать mkinitcpio с любыми вариантами ядер (kernel26, kernel26-beyond...).<br />
<br />
== Изменения строки параметров ядра ==<br />
<br />
Не зависимо от наличия initramfs некоторые опции приходится передавать через строку параметров ядра, как например корневое устройство. Некоторые из обработчиков mkinitcpio имеют специальные опции. Они и обсуждаются в этой главе.<br />
<br />
Если вы не знаете, что такое строка параметров ядра, читайте документацию по [[GRUB]] или [[Lilo]].<br />
<br />
=== Вход в безотказный режим ===<br />
<br />
Если Вы добавите опцию<br />
break=y<br />
в строку параметров ядра, то init остановится после инициализации и вы получите ''dash'' шелл. Это может быть использовано, чтобы проверить, что все хорошо. После выхода загрузка продолжится в обычном режиме.<br />
<br />
=== Запрет обработчиков ===<br />
<br />
Вы можете запретить обработчики при помощи параметра ''disablehooks'' в строке параметров ядра:<br />
<br />
disablehooks=hook1,hook2,hook2<br />
<br />
например,<br />
<br />
disablehooks=resume<br />
<br />
=== Запрет загрузки модулей ===<br />
<br />
Вы можете запретить загрузку некоторых модулей добавив параметр ''disablemodules'' в строку параметров ядра:<br />
<br />
disablemodules=mod1,mod2,mod3<br />
<br />
например,<br />
<br />
disablemodules=ata_piix<br />
<br />
=== Использование raid ===<br />
Добавьте обработчик raid в список HOOKS в /etc/mkinitcpio.conf<br />
<br />
'''Параметры ядра: '''<br />
Укажите md массивы с помощью: md= parameter: (см. ниже).<br />
Простого добавления вашего raid массива достаточно.<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
<br />
Затем добавьте следующее в строку kernel в '''grub/menu.lst''':<br />
Пример: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
Т.е. это будет выглядеть так:<br />
kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1<br />
Эта строка создает два md массива с постоянными суперблоками<br />
<br />
'''Настройка:'''<br />
- для старых raid массивов без постоянных суперблоков:<br />
md=<номер устройства md>,<уровень raid>,<chunk size factor>,<fault level>,dev0,dev1<br />
- для raid массивом с постоянными суперблоками:<br />
md=<номер устройства md>,dev0,dev1,...,devn<br />
- для сборки partitionable массивов:<br />
md=d<md device no.>,dev0,dev1,...,devn<br />
<br />
'''Параметры:'''<br />
- <номер устройства md> = номер устройства:<br />
0 значит md0, 1 значит md1, ...<br />
- <уровень raid> = -1 линейный режим, 0 striped режим<br />
другие режимы поддерживаются только с постоянным суперблоком<br />
- <chunk size factor> = (только для raid-0 и raid-1):<br />
Установить chunk size as 4k << n.<br />
- <fault level> = игнорируется<br />
- <dev0-devn>: т.е. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1<br />
<br />
=== Использование net ===<br />
<br />
'''Параметры ядра:''' <br />
<br />
'''ip=''' <br />
<br />
Описание интерфейса может быть в короткой форме, которая состоит просто из имени интерфейса (eth0 или какой либо еще), или в длинной форме. Длинная форма содержит семь элементов, разделенных двоеточием:<br />
<br />
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf><br />
nfsaddrs= это алиас для ip= и может использоваться также.<br />
<br />
''Разъяснение параметров:''<br />
<client-ip> IP адрес клиента. Если пустой, то автоматически назначается<br />
протоколом RARP/BOOTP/DHCP. Какой протокол используется<br />
зависит от параметра <autoconf>. Если его значение не пустое,<br />
то autocnf работает корректно.<br />
<br />
<server-ip> IP адрес NFS сервера. Если используется RARP для определения<br />
адреса клиента и этот параметр не пуст, то принимаются ответы<br />
только от указанного сервера.<br />
Для использования разных RARP и NFS серверов,<br />
укажите ваш RARP сервер здесь (или оставьте пустым), и<br />
укажите ваш NFS сервер в параметре `nfsroot'<br />
(см. выше). Если тут пусто, будет использован сервер, ответивший<br />
на RARP/BOOTP/DHCP запрос.<br />
<br />
<gw-ip> IP адрес шлюза если сервер в другой подсети. Если тут пусто,<br />
предполагается, что сервер находится в одной подсети, если значение<br />
не получено по BOOTP/DHCP.<br />
<br />
<netmask> Маска подсети для локального интерфейса. Если тут пусто,<br />
используется маска по умолчанию в зависимости от класса IP,<br />
если конечно не переопределена значением из BOOTP/DHCP ответа.<br />
<br />
<hostname> Имя машины клиента. Если пусто, используется IP адрес в виде ASCII<br />
строки, или значение полученное по BOOTP/DHCP.<br />
<br />
<device> Имя сетевого устройства. Если тут пусто, все устройства будут использованы<br />
для RARP/BOOTP/DHCP запросов, и все настройки будут получены из первого<br />
пришедшего ответа. Если вы имеете только одно сетевое устройство, можно спокойно<br />
оставить поле пустым.<br />
<br />
<autoconf> Какой метод использовать для автонастройки: 'rarp', 'bootp', или 'dhcp'.<br />
Если значение 'both', 'all' или пусто, все протоколы будут использованы.<br />
'off', 'static' или 'none' означают запрет автонастройки.<br />
''Примеры:''<br />
ip=127.0.0.1:::::lo:none --> Разрешить lo интерфейс.<br />
ip=192.168.1.1:::::eth2:none --> Статический eth2 интерфейс.<br />
ip=:::::eth0:dhcp --> Разрешить dhcp протокол для настройки интерфейса eth0.<br />
'''nfsroot='''<br />
<br />
Если параметр 'nfsroot' НЕ передан, будет использовано значение по умолчанию "/tftpboot/%s".<br />
<br />
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]<br />
<br />
''Описание параметров:''<br />
<br />
<server-ip> IP адрес NFS сервера. Если параметр отсутствует<br />
адрес по умолчанию определяется по переменной<br />
`ip' (см. ниже). Одно из применений этого параметра -<br />
использование разных серверов для <br />
RARP и NFS. Обычно можете оставить этот параметр пустым.<br />
<br />
<root-dir> Путь к директории, которая будет корневой на клиенте. Если тут<br />
написано "%s", то оно будет заменено на ASCII представление IP<br />
клиента.<br />
<br />
<nfs-options> Стандартные опции NFS. Все опции разделены запятыми.<br />
Если опция отсутствует будут использованы следующие значения по умолчанию:<br />
port = как скажет portmap демон на сервере<br />
rsize = 1024<br />
wsize = 1024<br />
timeo = 7<br />
retrans = 3<br />
acregmin = 3<br />
acregmax = 60<br />
acdirmin = 30<br />
acdirmax = 60<br />
flags = hard, nointr, noposix, cto, ac<br />
<br />
'''root=/dev/nfs'''<br />
Если вы не используете параметр nfsroot=, вам нужно установить root=/dev/nfs <br />
для загрузки с автонастройкой корня в nfs.<br />
<br />
=== Использование lvm ===<br />
<br />
Если ваш корень находится на lvm, вы должны добавить обработчик '''lvm2'''. Также, вы должны передать имя корневого устройства ядру в формате<br />
<br />
root=/dev/mapper/<имя-группы-томов>-<логическое-имя-тома><br />
<br />
например<br />
<br />
root=/dev/mapper/myvg-root<br />
<br />
=== Использование шифрования на корневом разделе ===<br />
<br />
Если ваш корневой раздел зашифрован, вы должны добавить обработчик '''encrypt'''. Затем укажите ядру корневой раздел также, как если бы он не был зашифрован.<br />
<br />
Например для sata/scsi:<br />
root=/dev/sda5<br />
<br />
или для зашифрованного lvm:<br />
root=/dev/mapper/myvg-root<br />
<br />
Корневое устройство автоматически поменяется на ''/dev/mapper/root''.<br />
<br />
==== Использование LUKS томов ====<br />
<br />
Если вы используете LUKS для шифровани дисков, скрипт инициализации поймет это автоматически, если вы указали обработчик '''encrypt'''. Он спросит пароль для разблокирования тома.<br />
<br />
Если этого не происходит, попробуйте добавить filesystem-module в список модулей в фале /etc/mkinitcpio.conf если он не вкомпилирован в ядро.<br />
<br />
==== Использование legacy cryptsetup томов ====<br />
<br />
Если вы используете legacy cryptsetup том, вы должны указать все опции, необходимые для его разблокировки в строке параметров ядра. Опции формата<br />
<br />
crypto=hash:cipher:keysize:offset:skip<br />
<br />
представляют опции cryptsetup: --hash, --cipher, --keysize, --offset и --skip. Если вы пропустите опцию, будет использовано значение по умолчанию, т.е. вы можете написать просто<br />
<br />
crypto=::::<br />
<br />
если вы создали том с настройками по умолчанию.<br />
<br />
'''ЗАМЕЧАНИЕ:''' По техническим причинам невозможно проверить корректность пароля для legacy cryptsetup тома. Если вы ошибетесь, у вас просто не получится его смонтировать. Рекомендуется использовать LUKS вместо legacy cryptsetup.<br />
<br />
==== Использование loop-aes томов ====<br />
<br />
'''mkinitcpio''' пока не поддерживает loop-aes.<br />
<br />
== Использование спящего режима (на диск) ==<br />
<br />
Если вы хотите, чтобы ваш компьютер засыпал на диск, вы должны добавить обработчик '''resume'''.<br />
<br />
==== swsusp ====<br />
<br />
''TODO''<br />
<br />
==== µswsusp ====<br />
<br />
µswsusp пока не поддерживается.<br />
<br />
==== suspend2 ====<br />
<br />
Если вы используете [[Suspend to Disk|suspend2]], вы должны указать обработчик ''resume2'' в параметрах ядра. Если вы используете запись в своп, пишите:<br />
<br />
resume2=swap:/dev/hda3<br />
<br />
где ''/dev/hda3'' ваш своп раздел. Если вы пишите память в файл, используйте<br />
<br />
resume2=file:/dev/hda2:0x123456<br />
<br />
где ''/dev/hda2'' раздел с файлом (обычно корневой раздел) и ''0x123456'' - смещение до файла. Вы можете получить его с помощью команд:<br />
<br />
echo "/suspend2_file" > /proc/suspend2/filewriter_target<br />
cat /proc/suspend2/resume2<br />
<br />
где /suspend2_file - путь к файлу, куда записывается образ памяти. Это (естественно) работает и для томов lvm. Также можно использовать и зашифрованные разделы<br />
<br />
resume2=file:/dev/mapper/root:0x123456<br />
<br />
где ''0x123456'' снова смещение. Восстановление с зашифрованного своп раздела не поддерживается.<br />
<br />
=== Примеры конфигурационных файлов загрузчиков ===<br />
<br />
Если Вы используете beyond kernel, замените имена фалов ''kernel26.img'' и ''kernel26-fallback.img'' на ''kernel26beyond.img'' и ''kernel26beyond-fallback.img'' соответственно. Так же замените "vmlinuz26" на "vmlinuz26beyond".<br />
<br />
==== GRUB ====<br />
<br />
Для тех у кого /boot на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26-fallback.img<br />
<br />
Для тех у кого /boot '''не''' на отдельном разделе диска:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
==== LILO ====<br />
<br />
Если Вы используете загрузчик LILO, то рекомендуется использовать ''append="root=/dev/XYZ"'' вместо ''root=/dev/XYZ''. Если у Вас уже есть глобальная опция ''append'', тогда используйте ''addappend''.<br />
<br />
boot=/dev/hdX <br />
default = ArchLinux<br />
timeout=50 <br />
vga=791<br />
lba32<br />
prompt<br />
<br />
# для образа автоопределения железа<br />
image=/boot/vmlinuz26<br />
label=ArchLinux<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26.img<br />
read-only<br />
<br />
# fallback image если другие образы не работают (Will most prob. never be used)<br />
image=/boot/vmlinuz26<br />
label=ArchLinuxFallBack<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26-fallback.img<br />
read-only<br />
<br />
== Возможные проблемы ==<br />
=== piix ide контролер и ядро beyond ===<br />
==== Проблема ====<br />
Если mkinitcpio не хочет определять ваш жесткий диск выдавая ошибки вида "Can't find device dev(0,0)" при переключении kinit, то это скорее всего из-за конфликта между драйвером ata_piix и piix. Ядро beyond содержит несколько патчей libata которые вызывают *конфликт* ata_piix с piix.<br />
<br />
==== Решение ====<br />
Измените /etc/mkinitcpio.conf так, чтобы он содержал только одну запись: или ide, или sata, или scsi, в зависимости от того откуда вы хотите загружать систему.<br />
<br />
== Я параноик! ==<br />
Если вам действительно нужно знать, что включено в initrd, вы можете вытаскивать и класть внутрь образа файлы. Это просто cpio архив, но...<br />
<br />
=== Предупреждение о cpio ===<br />
Использование cpio для извлечения опасно (от root'а), так как оно пытается извлечь файлы в /, ломая существующую систему загрузки. Для исправления, вам придется переставить все пакеты, файлы которых были перезаписаны с помощью pacman.static. Список файлов выдаст команда bsdtar -t -f kernel26.img<br />
=== Использование bsdtar для извлечения ===<br />
bsdtar извлекает файлы в текущий каталог.<br />
<br />
Используйте команду:<br />
bsdtar -x -f /boot/kernel26.img</div>Charlaghttps://wiki.archlinux.org/index.php?title=SLiM&diff=244149SLiM2013-01-16T15:55:08Z<p>Charlag: /* Zsh */</p>
<hr />
<div>[[Category:Display managers]]<br />
[[cs:SLiM]]<br />
[[es:SLiM]]<br />
[[fr:SLiM]]<br />
[[hu:SLiM]]<br />
[[it:SLiM]]<br />
[[ja:SLiM]]<br />
[[ko:SLiM]]<br />
[[pt:SLiM]]<br />
[[ru:SLiM]]<br />
[[sk:SLiM]]<br />
[[tr:SLiM]]<br />
[[zh-CN:SLiM]]<br />
[[zh-TW:SLiM]]<br />
{{Article summary start}}<br />
{{Article summary text|Provides an overview of the Simple Login Manager.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Display Manager}}<br />
{{Article summary end}}<br />
<br />
[http://slim.berlios.de/ SLiM] is an acronym for Simple Login Manager. SLiM is simple, lightweight and easily configurable. SLiM is used by some because it does not require the dependencies of [[GNOME]] or [[KDE]] and can help make a lighter system for users that like to use lightweight desktops like [[Xfce]], [[Openbox]], and [[Fluxbox]].<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{pkg|slim}} from the [[official repositories]].<br />
<br />
== Configuration ==<br />
<br />
=== Enabling SLiM ===<br />
<br />
If you use [[systemd]], just enable {{ic|slim.service}}. With systemd, it is no longer possible to enable slim using {{ic|inittab}}.<br />
<br />
This can be done with {{ic|sudo systemctl enable slim.service}}. If slim.service is not available, make sure you have slim package installed.<br />
<br />
=== Single environments ===<br />
<br />
To configure SLiM to load a particular environment, edit your {{ic|~/.xinitrc}} to load your desktop environment:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
<br />
exec <session-command><br />
}}<br />
<br />
Replace {{ic|<session-command>}} with the appropriate session command. Some examples of different desktop start commands:<br />
<br />
{{bc|<br />
exec awesome<br />
exec dwm<br />
exec startfluxbox<br />
exec fvwm2<br />
exec gnome-session<br />
exec openbox-session<br />
exec startkde<br />
exec startlxde<br />
exec startxfce4<br />
exec enlightenment_start<br />
}}<br />
<br />
For detailed instructions on how to start the various environments, refer to the appropriate wiki pages.<br />
<br />
SLiM reads the local {{ic|~/.xinitrc}} configuration and then launches the desktop according to what is in that file. If you do not have a {{ic|~/.xinitrc}} file, you can use the skeleton file by:<br />
<br />
$ cp /etc/skel/.xinitrc ~<br />
<br />
Remember to make {{ic|~/.xinitrc}} executable:<br />
<br />
chmod +x ~/.xinitrc<br />
<br />
{{Note|{{pkg|slim}} no longer has ConsoleKit support, but relies on systemd-logind, and the system being booted with systemd.}}<br />
<br />
=== Autologin ===<br />
<br />
To make SLiM automatically login as a specified user (without having to type a password) the following lines in {{ic|/etc/slim.conf}} should be changed.<br />
# default_user simone<br />
<br />
Uncomment this line, and change "simone" to the user to be logged into automatically.<br />
<br />
# auto_login no<br />
<br />
Uncomment this line and change the 'no' to 'yes'. This enables the auto login feature.<br />
<br />
=== Zsh ===<br />
{{Note|If you don't know what is zsh and you did not install it - ignore this paragraph.}}<br />
<br />
The default login command will not initialize your environment correctly [http://www.edsel.nu/2010/06/04/slim-simple-login-manager-on-freebsd/ [source]]. Change the login_cmd line to:<br />
<br />
#login_cmd exec /bin/sh - ~/.xinitrc %session<br />
login_cmd exec /bin/zsh -l ~/.xinitrc %session<br />
<br />
=== Multiple environments ===<br />
<br />
To be able to choose from multiple desktop environments, SLiM can be setup to log you into whichever you choose.<br />
<br />
Put a case statement similar to this one in your {{ic|~/.xinitrc}} file and edit the sessions variable in {{ic|/etc/slim.conf}} to match the names that trigger the case statement. You can choose the session at login time by pressing F1. Note that this feature is experimental.<br />
<br />
{{bc|1=<br />
# The following variable defines the session which is started if the user doesn't explicitly select a session<br />
# Source: http://svn.berlios.de/svnroot/repos/slim/trunk/xinitrc.sample<br />
<br />
DEFAULT_SESSION=twm<br />
<br />
case $1 in<br />
kde)<br />
exec startkde<br />
;;<br />
xfce4)<br />
exec startxfce4<br />
;;<br />
icewm)<br />
icewmbg &<br />
icewmtray &<br />
exec icewm<br />
;;<br />
wmaker)<br />
exec wmaker<br />
;;<br />
blackbox)<br />
exec blackbox<br />
;;<br />
*)<br />
exec $DEFAULT_SESSION<br />
;;<br />
esac<br />
}}<br />
<br />
Note that, in this script, the default option simply executes, e.g., exec icewm (if that is the default session), without icewmbg and icewmtray. You may want simply to repeat everything you've put under, e.g., icewm) again under *). When done use F1 to cycle through sessions in SLiM.<br />
<br />
=== Themes ===<br />
<br />
Install the {{Pkg|slim-themes}} package:<br />
<br />
# pacman -S slim-themes archlinux-themes-slim<br />
<br />
The {{Pkg|archlinux-themes-slim}} packages contains several different themes ([http://imageshack.us/photo/my-images/27/slimthemes.png/ slimthemes.png]). Look in the directory of {{ic|/usr/share/slim/themes}} to see the themes available. Enter the theme name on the {{ic|current_theme}} line in {{ic|/etc/slim.conf}}:<br />
<br />
#current_theme default<br />
current_theme archlinux-simplyblack<br />
<br />
To preview a theme run while an instance of the Xorg server is running by:<br />
<br />
$ slim -p /usr/share/slim/themes/<theme name><br />
<br />
To close, type "exit" in the Login line and press Enter.<br />
<br />
Additional theme packages can be found in the [[AUR]].<br />
<br />
==== Dual screen setup ====<br />
<br />
You can customize the slim theme in {{ic|/usr/share/slim/themes/<your-theme>/slim.theme}} to turn these percents values. The box itself is 450 pixels by 250 pixels:<br />
<br />
input_panel_x 50%<br />
input_panel_y 50%<br />
<br />
into pixels values:<br />
<br />
# These settings set the "archlinux-simplyblack" panel in the center of a 1440x900 screen<br />
input_panel_x 495<br />
input_panel_y 325<br />
<br />
# These settings set the "archlinux-retro" panel in the center of a 1680x1050 screen<br />
input_panel_x 615<br />
input_panel_y 400<br />
<br />
If your theme has a background picture you should use the background_style setting ('stretch', 'tile', 'center' or 'color') to get it correctly displayed. Have a look at the [http://slim.berlios.de/themes_howto.php very simple and clear official documentation about slim themes] for further details.<br />
<br />
== Other options ==<br />
<br />
A few things you might like to try.<br />
<br />
=== Changing the cursor ===<br />
<br />
If you want to change the default X cursor to a newer design, the {{AUR|slim-cursor}} package is available.<br />
<br />
After installing, edit {{ic|/etc/slim.conf}} and uncomment the line:<br />
<br />
cursor left_ptr<br />
<br />
This will give you a normal arrow instead. This setting is forwarded to {{ic|xsetroot -cursor_name}}. You can look up the possible cursor names [http://cvsweb.xfree86.org/cvsweb/*checkout*/xc/lib/X11/cursorfont.h?rev=HEAD&content-type=text/plain here] or in {{ic|/usr/share/icons/<your-cursor-theme>/cursors/}}.<br />
<br />
To change the cursor theme being used at the login screen, make a file named {{ic|/usr/share/icons/default/index.theme}} with this content:<br />
<br />
[Icon Theme]<br />
Inherits=<your-cursor-theme><br />
<br />
Replace <your-cursor-theme> with the name of the cursor theme you want to use (e.g. whiteglass).<br />
<br />
=== Match SLiM and Desktop Wallpaper ===<br />
<br />
To share a wallpaper between SLiM and your desktop, rename the used theme background, then create a link from your desktop wallpaper file to the default SLiM theme:<br />
<br />
# mv /usr/share/slim/themes/default/background.jpg{,.bck}<br />
# ln -s /path/to/mywallpaper.jpg /usr/share/slim/themes/default/background.jpg<br />
<br />
=== Shutdown, reboot, suspend, exit, launch terminal from SLiM ===<br />
<br />
You may shutdown, reboot, suspend, exit or even launch a terminal from the SLiM login screen. To do so, use the values in the username field, and the root password in the password field:<br />
<br />
* To launch a terminal, enter '''console''' as the username (defaults to xterm which must be installed separately... edit {{ic|/etc/slim.conf}} to change terminal preference)<br />
* For shutdown, enter '''halt''' as the username<br />
* For reboot, enter '''reboot''' as the username<br />
* To exit to bash, enter '''exit''' as the username<br />
* For suspend, enter '''suspend''' as the username (suspend is disabled by default, edit {{ic|/etc/slim.conf}} as root to uncomment the {{ic|suspend_cmd}} line and, if necessary modify the suspend command itself (e.g. change {{ic|/usr/sbin/suspend}} to {{ic|sudo /usr/sbin/pm-suspend}}))<br />
<br />
=== SLiM init error with rc.d daemon ===<br />
<br />
If you initialize SLiM with {{ic|/etc/rc.conf}} inside the DAEMONS array and it fails to initialize it's most likely a lock file issue. SLiM creates a lock file in {{ic|/var/lock}} on each initialization, however, in most cases the lock folder in {{ic|/var}} does not exist preventing SLiM from initializing. Check to make sure {{ic|/var/lock}} exists, if it does not you can create it by typing the following:<br />
<br />
# mkdir /var/lock/<br />
<br />
=== Power-off error with Splashy ===<br />
<br />
If you use Splashy and SLiM, sometimes you can't power-off or reboot from menu in GNOME, Xfce, LXDE or others. Check your {{ic|/etc/slim.conf}} and {{ic|/etc/splash.conf}}; set the {{ic|1=DEFAULT_TTY=7}} same as {{ic|xserver_arguments vt07}}.<br />
<br />
=== Power-off tray icon fails ===<br />
<br />
If your power off tray icon fails, it could be due to not having root privileges. To start a tray icon with root privileges, be sure to have SLiM start the program. Edit {{ic|/etc/slim.conf}} as follows:<br />
sessionstart_cmd /path/to/tray/icon/program &<br />
<br />
=== Login information with SLiM ===<br />
<br />
By default, SLiM fails to log logins to utmp and wtmp which causes who, last, etc. to misreport login information. To fix this edit your {{ic|slim.conf}} as follows:<br />
<br />
sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user<br />
sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user<br />
<br />
=== Custom SLiM Login Commands ===<br />
<br />
You can also use the sessionstart_cmd/sessionstop_cmd in {{ic|/etc/slim.conf}} to log specific infomation, such as the session, user, or theme used by slim:<br />
<br />
sessionstop_cmd /usr/bin/logger -i -t ASKAPACHE "(sessionstop_cmd: u:%user s:%session t:%theme)"<br />
sessionstart_cmd /usr/bin/logger -i -t ASKAPACHE "(sessionstart_cmd: u:%user s:%session t:%theme)"<br />
<br />
Or if you want to play a song when slim loads (and you have the beep program installed)<br />
<br />
sessionstart_cmd /usr/bin/beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110<br />
<br />
=== SLiM and Gnome Keyring ===<br />
If you are using SLiM to launch a Gnome session and have trouble accessing your keyring, for example not being automatically authenticated on login, add the following lines to {{ic|/etc/pam.d/slim}} (as discussed [https://bugs.archlinux.org/task/18637 here]).<br />
auth optional pam_gnome_keyring.so<br />
session optional pam_gnome_keyring.so auto_start<br />
<br />
You also have to add to {{ic|/etc/pam.d/passwd}}:<br />
password optional pam_gnome_keyring.so<br />
<br />
If you use a screensaver you also have to add <br />
auth optional pam_gnome_keyring.so<br />
to {{ic|/etc/pam.d/gnome-screensaver}} for example (replace {{ic|gnome-screensaver}} with {{ic|slimlock}}, {{ic|slock}}, whatever you use). If you don't do that, your keyring is locked when screen is locked by your screensaver and not unlocked again after logging back in.<br />
<br />
However, this fix alone no longer works since Gnome 2.30. Further changes are necessary as described [https://bugs.archlinux.org/task/18930 here]. Modifying the {{ic|login_cmd}} line in {{ic|/etc/slim.conf}}:<br />
login_cmd exec ck-launch-session dbus-launch /bin/bash -login ~/.xinitrc %session >~/.xsession-errors 2>&1<br />
<br />
As of GNOME 3, simply adding {{ic|dbus-launch}} after {{ic|ck-launch-session}} will work, without needing to edit {{ic|/etc/pam.d/slim}}.<br />
<br />
As of GNOME 3.1, you need to add {{ic|dbus-launch}} after {{ic|ck-launch-session}} and edit {{ic|<nowiki>/etc/pam.d/{slim,passwd}</nowiki>}}, otherwise the keyring will not be automatically unlocked. I never tried it on 3.0, so maybe the above information about GNOME 3 is wrong.<br />
<br />
As of GNOME 3.4, you need to edit {{ic|<nowiki>/etc/pam.d/{slim,passwd}</nowiki>}} as mentioned above, so that {{ic|<nowiki>/etc/pam.d/slim</nowiki>}} looks like:<br />
#%PAM-1.0<br />
auth requisite pam_nologin.so<br />
auth required pam_env.so<br />
auth required pam_unix.so<br />
auth optional pam_gnome_keyring.so<br />
account required pam_unix.so<br />
session required pam_limits.so<br />
session required pam_unix.so<br />
session optional pam_gnome_keyring.so auto_start<br />
password required pam_unix.so<br />
and {{ic|<nowiki>/etc/pam.d/passwd</nowiki>}}<br />
#%PAM-1.0<br />
password required pam_unix.so sha512 shadow nullok<br />
password optional pam_gnome_keyring.so<br />
As of 2012-10-13, {{ic|<nowiki>/etc/pam.d/gnome-screensaver</nowiki>}} already contains the {{ic|<nowiki>pam_gnome_keyring.so</nowiki>}} instruction.<br />
<br />
The correct positioning of the {{ic|<nowiki>pam_gnome_keyring.so</nowiki>}} instructions were taken from [http://live.gnome.org/GnomeKeyring/Pam here].<br />
<br />
After editing the above files, you need to edit {{ic|<nowiki>/etc/inittab</nowiki>}}. The above mentioned code<br />
login_cmd exec ck-launch-session dbus-launch /bin/bash -login ~/.xinitrc %session >~/.xsession-errors 2>&1<br />
will work, but when you try to power off or reboot the system from GNOME menu it will drop you into the SLiM screen. To solve this problem, use the code below<br />
login_cmd exec dbus-launch --exit-with-session /bin/bash -login ~/.xinitrc %session >~/.xsession-errors 2>&1<br />
{{ic|<nowiki>ck-launch-session</nowiki>}} is no longer necessary as stated [https://bbs.archlinux.org/viewtopic.php?pid=1099742#p1099742 here].<br />
<br />
The solutions mentioned here and also further information are found [http://live.gnome.org/GnomeKeyring/Pam here].<br />
<br />
If you have problems keeping the keyring unlocked for longer sessions, there is another thing that Gnome does: <br />
Look at {{ic|<nowiki>/etc/xdg/autostart/{gnome-keyring-gpg.desktop, gnome-keyring-pkcs11.desktop, gnome-keyring-secrets.desktop, gnome-keyring-ssh.desktop}</nowiki>}}. <br />
<br />
Append the following lines to .xinitrc just before you start your wm (example here is awesome wm):<br />
/usr/bin/gnome-keyring-daemon --start --components=gpg<br />
/usr/bin/gnome-keyring-daemon --start --components=pkcs11<br />
/usr/bin/gnome-keyring-daemon --start --components=secrets<br />
/usr/bin/gnome-keyring-daemon --start --components=ssh<br />
/usr/bin/awesome<br />
<br />
After login check if there is only one gnome-keyring-daemon instance running ({{ic|ps -A | grep gnome}}). If those lines are executed too early then you have 4 instances running which is not good.<br />
<br />
You also should notice that seahorse for example does not show any pkcs11 errors anymore and that your keyring is unlocked all the time and does not lock itself anymore. Finally {{pkg|gnome-keyring}} is fully functional like in Gnome. See also [https://bbs.archlinux.org/viewtopic.php?pid=1019845#p1019845 here].<br />
<br />
=== Setting DPI with SLiM ===<br />
<br />
The Xorg server generally picks up the DPI but if it doesn't you can specify it to SLiM. If you set the DPI with the argument -dpi 96 in {{ic|/etc/X11/xinit/xserverrc}} it will not work with SLiM. To fix this change your {{ic|slim.conf}} from:<br />
<br />
xserver_arguments -nolisten tcp vt07 <br />
<br />
to<br />
<br />
xserver_arguments -nolisten tcp vt07 -dpi 96<br />
<br />
=== Use a random theme ===<br />
<br />
Use the {{ic|current_theme}} variable as a comma separated list to specify a set from which to choose. Selection is random.<br />
<br />
===Move the whole session to another VT===<br />
Lets say you have commented out tty terminals 3-6 as you may not use them. (You may use screen and therefore only need one terminal)<br />
So, to move the X-Server you need to change one number in the {{ic|/etc/slim.conf}} file. Just a few lines down you should see:<br />
xserver_arguments -nolisten tcp vt07<br />
<br />
Simply change the vt07 to lets say vt03 as there is no agetty started there.<br />
<br />
=== Automatically mount your encrypted /home on login ===<br />
<br />
You can use [[Pam_mount#Slim|pam_mount]].<br />
<br />
== All Slim Options ==<br />
Here is a list of all the slim configuration options and their default values.<br />
<br />
{{Note|welcome_msg allows 2 variables '''%host''' and '''%domain'''<br>sessionstart_cmd allows '''%user''' ''(execd right before login_cmd)'' and it is also allowed in sessionstop_cmd<br>login_cmd allows '''%session''' and '''%theme'''}}<br />
<br />
{| class="wikitable collapsible collapsable collapsed"<br />
|-<br />
! Option Name || Default Value<br />
|-<br />
| default_path ||{{ic|/bin:/usr/bin:/usr/local/bin}}<br />
|-<br />
| default_xserver ||{{ic|/usr/bin/X}}<br />
|-<br />
| xserver_arguments ||{{ic|vt07 -auth /var/run/slim.auth}}<br />
|-<br />
| numlock ||<br />
|-<br />
| daemon || {{ic|yes}}<br />
|-<br />
| xauth_path ||{{ic|/usr/bin/xauth}}<br />
|-<br />
| login_cmd ||{{ic|exec /bin/bash -login ~/.xinitrc %session}}<br />
|-<br />
| halt_cmd ||{{ic|/sbin/shutdown -h now}}<br />
|-<br />
| reboot_cmd ||{{ic|/sbin/shutdown -r now}}<br />
|-<br />
| suspend_cmd ||<br />
|-<br />
| sessionstart_cmd ||<br />
|-<br />
| sessionstop_cmd ||<br />
|-<br />
| console_cmd ||{{ic|/usr/bin/xterm -C -fg white -bg black +sb -g %dx%d+%d+%d -fn %dx%d -T }}<br />
|-<br />
| screenshot_cmd ||{{ic|import -window root /slim.png}}<br />
|-<br />
| welcome_msg ||{{ic|Welcome to %host}}<br />
|-<br />
| session_msg ||{{ic|Session:}}<br />
|-<br />
| default_user ||<br />
|-<br />
| focus_password ||{{ic|no}}<br />
|-<br />
| auto_login ||{{ic|no}}<br />
|-<br />
| current_theme ||{{ic|default}}<br />
|-<br />
| lockfile ||{{ic|/var/run/slim.lock}}<br />
|-<br />
| logfile ||{{ic|/var/log/slim.log}}<br />
|-<br />
| authfile ||{{ic|/var/run/slim.auth}}<br />
|-<br />
| shutdown_msg ||{{ic|The system is halting...}}<br />
|-<br />
| reboot_msg ||{{ic|The system is rebooting...}}<br />
|-<br />
| sessions ||{{ic|wmaker,blackbox,icewm}}<br />
|-<br />
| sessiondir ||<br />
|-<br />
| hidecursor ||{{ic|false}}<br />
|-<br />
| input_panel_x ||{{ic|50%}}<br />
|-<br />
| input_panel_y ||{{ic|40%}}<br />
|-<br />
| input_name_x ||{{ic|200}}<br />
|-<br />
| input_name_y ||{{ic|154}}<br />
|-<br />
| input_pass_x ||{{ic|-1}}<br />
|-<br />
| input_pass_y ||{{ic|-1}}<br />
|-<br />
| input_font ||{{ic|1=Verdana:size=11}}<br />
|-<br />
| input_color ||{{ic|#000000}}<br />
|-<br />
| input_cursor_height ||{{ic|20}}<br />
|-<br />
| input_maxlength_name ||{{ic|20}}<br />
|-<br />
| input_maxlength_passwd ||{{ic|20}}<br />
|-<br />
| input_shadow_xoffset ||{{ic|0}}<br />
|-<br />
| input_shadow_yoffset ||{{ic|0}}<br />
|-<br />
| input_shadow_color ||{{ic|#FFFFFF}}<br />
|-<br />
| welcome_font ||{{ic|1=Verdana:size=14}}<br />
|-<br />
| welcome_color ||{{ic|#FFFFFF}}<br />
|-<br />
| welcome_x ||{{ic|-1}}<br />
|-<br />
| welcome_y ||{{ic|-1}}<br />
|-<br />
| welcome_shadow_xoffset ||{{ic|0}}<br />
|-<br />
| welcome_shadow_yoffset ||{{ic|0}}<br />
|-<br />
| welcome_shadow_color ||{{ic|#FFFFFF}}<br />
|-<br />
| intro_msg ||<br />
|-<br />
| intro_font ||{{ic|1=Verdana:size=14}}<br />
|-<br />
| intro_color ||{{ic|#FFFFFF}}<br />
|-<br />
| intro_x ||{{ic|-1}}<br />
|-<br />
| intro_y ||{{ic|-1}}<br />
|-<br />
| background_style ||{{ic|stretch}}<br />
|-<br />
| background_color ||{{ic|#CCCCCC}}<br />
|-<br />
| username_font ||{{ic|1=Verdana:size=12}}<br />
|-<br />
| username_color ||{{ic|#FFFFFF}}<br />
|-<br />
| username_x ||{{ic|-1}}<br />
|-<br />
| username_y ||{{ic|-1}}<br />
|-<br />
| username_msg ||{{ic|Please enter your username}}<br />
|-<br />
| username_shadow_xoffset ||{{ic|0}}<br />
|-<br />
| username_shadow_yoffset ||{{ic|0}}<br />
|-<br />
| username_shadow_color ||{{ic|#FFFFFF}}<br />
|-<br />
| password_x ||{{ic|-1}}<br />
|-<br />
| password_y ||{{ic|-1}}<br />
|-<br />
| password_msg ||{{ic|Please enter your password}}<br />
|-<br />
| msg_color ||{{ic|#FFFFFF}}<br />
|-<br />
| msg_font ||{{ic|1=Verdana:size=16:bold}}<br />
|-<br />
| msg_x ||{{ic|40}}<br />
|-<br />
| msg_y ||{{ic|40}}<br />
|-<br />
| msg_shadow_xoffset ||{{ic|0}}<br />
|-<br />
| msg_shadow_yoffset ||{{ic|0}}<br />
|-<br />
| msg_shadow_color ||{{ic|#FFFFFF}}<br />
|-<br />
| session_color ||{{ic|#FFFFFF}}<br />
|-<br />
| session_font ||{{ic|1=Verdana:size=16:bold}}<br />
|-<br />
| session_x ||{{ic|50%}}<br />
|-<br />
| session_y ||{{ic|90%}}<br />
|-<br />
| session_shadow_xoffset ||{{ic|0}}<br />
|-<br />
| session_shadow_yoffset ||{{ic|0}}<br />
|-<br />
| session_shadow_color ||{{ic|#FFFFFF}}<br />
|}<br />
== Uninstallation ==<br />
To completely remove SLiM:<br />
{{bc| # pacman -Rns slim<br />
# rm /etc/systemd/system/display-manager.service<br />
}}<br />
== See also ==<br />
<br />
* [http://slim.berlios.de/ SLiM homepage]<br />
* [http://slim.berlios.de/manual.php SLiM documentation]</div>Charlaghttps://wiki.archlinux.org/index.php?title=Chromium&diff=243514Chromium2013-01-11T15:51:24Z<p>Charlag: /* Font Rendering */</p>
<hr />
<div>[[es:Chromium]]<br />
[[fr:chromium]]<br />
[[it:Chromium]]<br />
[[zh-CN:Chromium]]<br />
[[Category:Web Browser]]<br />
{{Article summary start}}<br />
{{Article summary text|General information, installation and troubleshooting for Chromium.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Chromium Tips and Tweaks}}<br />
{{Article summary wiki|Browser Plugins}}<br />
{{Article summary wiki|Firefox}}<br />
{{Article summary wiki|Opera}}<br />
{{Article summary end}}<br />
[[Wikipedia:Chromium (web browser)|Chromium]] is an open source graphical web browser from Google, based on the [[Wikipedia:WebKit|WebKit]] rendering engine.<br />
<br />
== Installation ==<br />
Chromium can be [[Pacman|installed]] with the package {{Pkg|chromium}}, available in the [[official repositories]].<br />
<br />
In the [[AUR]] you can also find:<br />
* {{AUR|chromium-dev}} - a development version of the Chromium browser.<br />
* {{AUR|chromium-update}} - an update. script for Chromium nighly builds, pre-compiled on the Chromium buildbot server.<br />
* {{AUR|chromium-browser-bin}} - a binary version of the latest Chromium build.<br />
* {{AUR|iron-bin}} - a binary version of Chromium without Google's 'tracking features'<br />
<br />
{{Note|Compiling {{AUR|chromium-dev}} takes at least as long as compiling the Linux kernel.}}<br />
<br />
Various versions of the modified Google Chrome browser can be found in the [[AUR]]:<br />
* {{AUR|google-chrome}}<br />
* {{AUR|google-chrome-beta}}<br />
* {{AUR|google-chrome-dev}}<br />
<br />
See these [https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome two] [http://news.softpedia.com/news/Google-Chrome-vs-Chromium-Understanding-Stable-Beta-Dev-Releases-and-Version-No-140060.shtml articles] for an explanation of the differences between Stable/Beta/Dev, as well as Chromium vs. Chrome and the version numbers.<br />
<br />
== Configuration ==<br />
<br />
=== File associations ===<br />
<br />
Unlike [[Firefox]], Chromium does not maintain its own database of mimetype-to-application associations. Instead, it relies on [[Xdg-open|xdg-open]] to open files and other mime types, for example, [[Wikipedia:Magnet URI scheme|magnet links]].<br />
<br />
There are exceptions to this rule though. In the case of ''mailto'' URIs, Chromium calls out to {{ic|xdg-email}} which is similar to {{ic|xdg-open}}. Other protocol handlers may have equivalent scripts so check {{ic|/usr/bin/xdg*}}. <br />
<br />
The behaviour of {{ic|xdg-*}} tools is managed automatically in environments such as [[GNOME]], [[KDE]], [[Xfce]] or [[LXDE]], but does not work in others. Usually this behaviour can be fixed by tricking them into thinking that they are operating in one of the supported desktop environments. Depending on your environment one may work and another will not so trying each is recommended. You can set the desktop environment with the following variable:<br />
export DE=INSERT_DE_HERE<br />
<br />
where the recognised desktop environments are: '''gnome''', '''kde''', '''xfce''' and '''lxde'''. For the variable to be always set, put it somewhere like {{ic|~/.xinitrc}} or {{ic|~/.bashrc}}.<br />
<br />
An alternative is to edit the {{ic|xdg-open}} or {{ic|xdg-email}} scripts and '''hard-code''' a useful DE. At the bottom of the file you will see something like this:<br />
{{hc|/usr/bin/xdg-open|<nowiki><br />
detectDE<br />
<br />
if [ x"$DE" = x"" ]; then<br />
DE=generic<br />
fi<br />
<br />
DEBUG 2 "Selected DE $DE"<br />
<br />
# if BROWSER variable is not set, check some well known browsers instead<br />
if [ x"$BROWSER" = x"" ]; then<br />
BROWSER=links2:elinks:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=x-www-browser:firefox:seamonkey:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
fi<br />
<br />
case "$DE" in<br />
kde)<br />
open_kde "$url"<br />
;;<br />
<br />
gnome*)<br />
open_gnome "$url"<br />
;;<br />
<br />
mate)<br />
open_mate "$url"<br />
;;<br />
<br />
xfce)<br />
open_xfce "$url"<br />
;;<br />
<br />
lxde)<br />
open_lxde "$url"<br />
;;<br />
<br />
generic)<br />
open_generic "$url"<br />
;;<br />
<br />
*)<br />
exit_failure_operation_impossible "no method available for opening '$url'"<br />
;;<br />
esac</nowiki><br />
}}<br />
<br />
change the third line: {{ic|DE&#61;generic}} to one of the supported desktop environments (e.g. {{ic|DE&#61;gnome}}). <br />
<br />
{{Note|These changes are lost when any of the utilities are upgraded.}}<br />
<br />
An approach which is less useful is to place the required application in the default browser list:<br />
<br />
BROWSER=links2:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=firefox:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
<br />
{{ic|xdg-open}} and {{ic|xdg-email}} fall back to this list of browsers and will use the first that they find to attempt to open the URI. You could add the name of the application to the beginning of the list. However there is no guarantee that the application will be called correctly to meet your needs, e.g. your mail client will open but it will not correctly receive the ''mailto'' address. Also it will only work for one application.<br />
<br />
A fourth option is to make a softlink from your preferred application to one of the names on the browser list. This approach has the same problems as the previous work around. For more discussion on these ideas see [https://bbs.archlinux.org/viewtopic.php?id=81282&p=1 this forum thread].<br />
<br />
=== Font Rendering ===<br />
Chromium is now supposed to use the settings in {{ic|~/.fonts.conf}}, though you may have to edit it manually (see [[Font_Configuration#Basic_settings|Font Configuration]]).<br />
If your fonts setting are stored in another place, create {{ic|~/.fonts.conf}} and add these lines:<br />
{{hc|~/.fonts.conf|<br />
<match target&#61;"font"><br />
<edit name&#61;"autohint" mode&#61;"assign"><br />
<bool>true</bool><br />
</edit><br />
<edit name&#61;"hinting" mode&#61;"assign"><br />
<bool>true</bool><br />
</edit><br />
<edit mode&#61;"assign" name&#61;"hintstyle"><br />
<const>hintslight</const><br />
</edit><br />
</match><br />
}}<br />
If the fonts are still rendered badly, you can use Xft settings [[X resources|as suggested here]]. Create {{ic|~/.Xresources}} if it does not exist and add in:<br />
{{hc|~/.Xresources|<br />
...<br />
! Xft settings ---------------------------------------------------------------<br />
Xft.dpi: 96<br />
Xft.antialias: true<br />
Xft.rgba: rgb<br />
Xft.hinting: true<br />
Xft.hintstyle: hintslight<br />
...<br />
}}<br />
<br />
Then update the X Resources database using:<br />
<br />
{{bc|xrdb -merge ~/.Xresources}}<br />
<br />
{{Note|These settings will affect any application that uses X Resources for font settings; one example is [[Rxvt-unicode|rxvt-unicode]].}}<br />
<br />
==== Non-Latin characters ====<br />
Install needed fonts to correctly display Chinese, Japanese, Korean characters. For examples of recommended fonts for various languages see [[Fonts#Font_packages|Font Packages]].<br />
<br />
=== Default browser ===<br />
The simplest way to make Chromium the default browser is to set variable {{Ic|<nowiki>$BROWSER=chromium</nowiki>}} in {{ic|~/.profile}}<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=chromium<br />
fi<br />
<br />
To test if this was applied successfully, try to open an URL with {{ic|xdg-open}} as follows:<br />
$ xdg-open http://google.com/<br />
If everything went well, either a new tab inside Chromium, or a new window would open and display the Google homepage, depending on your settings.<br />
<br />
Another option, when using {{AUR|mimeo}}, is to associate "http://" links with Chromium:<br />
{{hc|~/.config/mimeo.conf|<nowiki><br />
/usr/bin/chromium<br />
^http://<br />
</nowiki>}}<br />
<br />
If all of that still does not get it working, you can try adding the following to the {{ic|[Added Associations]}} list in {{ic|~/.local/share/applications/mimeapps.list}}:<br />
x-scheme-handler/http=chromium.desktop<br />
<br />
For more info, see [[Xdg-open]].<br />
<br />
=== Flash Player ===<br />
The Adobe Flash plugin can be [[Pacman|installed]] with the package {{Pkg|flashplugin}}, available in the official repositories. <br />
<br />
While the classic Flash plugin will not be updated for Linux, Chromium can use the Flash plugin from Google Chrome (that uses the new Pepper API). This plugin is available in the [[AUR]] with the {{AUR|chromium-pepper-flash}} or {{AUR|chromium-pepper-flash-stable}} packages. <br />
<br />
{{Note|Make sure to enable the Flash plugin with location {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}} in {{ic|chrome://plugins}} and disable the plugin with location {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}}.}}<br />
<br />
If Pepper Flash doesn't show up in the plugins list (as is the case for Iron) then disable libflashplayer.so and start with the following command.<br />
iron --ppapi-flash-path=/usr/lib/PepperFlash/libpepflashplayer.so --ppapi-flash-version=11.5.31.101<br />
<br />
=== Open PDF files inside Chromium ===<br />
<br />
There are multiple ways of enabling PDF support in Chromium that are detailed below. <br />
<br />
==== Using Google Chrome's libpdf ====<br />
<br />
'''libpdf''' is Google's own implementation of a PDF renderer. While compatible, it is currently only part of Chrome releases, not Chromium ones.<br />
<br />
The easiest way to add it to the latter is using one of the packages provided in the [[AUR]]:<br />
* {{AUR|chromium-stable-libpdf}} for the stable version of the browser.<br />
* {{AUR|chromium-libpdf}} for a development version that installs to {{ic|/usr/lib/chromium}} (such as {{AUR|chromium-dev}}).<br />
* {{AUR|chromium-browser-libpdf}} for a development version that installs to {{ic|/opt/chromium-browser}} (such as {{AUR|chromium-browser-bin}}).<br />
<br />
To do it manually, download a Google Chrome release that corresponds to the version of Chromium you use:<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_i386.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_i386.deb<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_amd64.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb<br />
<br />
Extract the deb file with<br />
$ ar vx <deb-file><br />
<br />
Extract LZMA archive with<br />
$ tar -xJf <lzma-file><br />
<br />
Move {{ic|libpdf.so}} from {{ic|opt/google/chrome/}} to the appropriate directory as stated above. A change of its file permissions and ownership may be necessary (the permission of {{ic|libpdf.so}} should be 755).<br />
<br />
To verify that the installation went correctly: start Chromium, open ''about:plugins'' and check if "Chrome PDF Viewer" is available (it may need to be enabled).<br />
<br />
{{Note|As a new version of Chromium will not update {{ic|libpdf.so}}, it may become incompatible. Thus and with respect to possible security fixes it is advisable to update both at the same time.}}<br />
<br />
==== Using mozplugger ====<br />
{{Box||See the main article: [[Browser Plugins#MozPlugger]]|#E5E5FF|#FCFCFC}}<br />
<br />
For information about the installation see [[Browser Plugins#PDF viewer]].<br />
<br />
==== Using the KParts plugin ====<br />
{{Box||See the main article: [[Browser Plugins#kpartsplugin]]|#E5E5FF|#FCFCFC}}<br />
<br />
=== Certificates ===<br />
<br />
Chromium uses [[Nss|NSS]] for the certificate management. Certificates can be managed (including added) by going to ''Settings'', clicking the ''Show advanced settings..'' link and then ''Manage Certificates''.<br />
<br />
== Tips and Tricks ==<br />
{{Box||See the main article: [[Chromium Tips and Tweaks]]|#E5E5FF|#FCFCFC}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Proxy Settings ===<br />
There have been many situations in which proxy settings do not work properly, especially if set through the KDE interface. A good method as of now is to use Chromium's command-line options, like {{ic|--proxy-pac-url}} and {{ic|--proxy-server}}, to set your proxy.<br />
<br />
=== Default profile ===<br />
If you cannot get your default profile when you try to run Chromium and get a similar error instead:<br />
{{bc|<br />
$ chromium<br />
[2630:2630:485325611:FATAL:chrome/browser/browser_main.cc(755)] Check failed: profile. <br />
Cannot get default profile. Trace/breakpoint trap<br />
}}<br />
<br />
you have to set the correct owner of the directory {{ic|~/.config/chromium}} as following:<br />
$ sudo chown -R yourusername:yourusergroup /home/yourusername/.config/chromium<br />
<br />
=== WebGL ===<br />
<br />
Sometimes, Chromium will disable WebGL with certain graphics card configurations. This can generally be remedied by typing {{ic|about:flags}} into the URL bar and enabling the WebGL flag. You may also enable WebGL by passing the command line flag {{ic|--enable-webgl}} to Chromium in the terminal.<br />
<br />
There is also the possibility that your graphics card has been blacklisted by Chromium. To override this, pass the flag {{ic|--ignore-gpu-blacklist}} when starting Chromium, alternatively, go to {{ic|about:flags}} and enable ''Override software rendering list''.<br />
<br />
=== Pulseaudio & PA-Alsa-Bridge & Pepper-Flash ===<br />
<br />
Given a certain version of Chrome (23.x seem to exhibit this problem) and Pepper-Flash (11.x) while using the PA-Alsa-Bridge, sound may not play, become distorted, start skipping or outright keep crashing the PA-Alsa-Bridge continously. See [http://code.google.com/p/chromium/issues/detail?id=128870] for the bugreport.<br />
<br />
A possible workaround is to use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa directly.<br />
<br />
First, create an {{ic|~/.asoundrc}} file to default Alsa to your real hardware instead of Pulseaudio. See [[Alsa]] and [http://alsa.opensrc.org/FAQ026] for more information. Exemplary {{ic|~/.asoundrc}}:<br />
<br />
{{hc|~/.asoundrc|<br />
pcm. !default {<br />
type hw<br />
card 0<br />
device 0<br />
}<br />
}}<br />
<br />
Then use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa which now uses your real hardware.<br />
<br />
{{bc|<br />
pasuspender -- google-chrome<br />
}}<br />
<br />
== See Also ==<br />
* [http://www.chromium.org/Home Chromium Homepage]<br />
* [http://googlechromereleases.blogspot.com Google Chrome Release Notes]<br />
* [https://chrome.google.com/webstore/category/home Chrome Web Store]<br />
* [[Wikipedia: Chromium_(web_browser)#Differences_from_Google_Chrome|Differences between Chromium and Google Chrome]]<br />
* [http://peter.sh/experiments/chromium-command-line-switches/ List of Chromium command-line switches]</div>Charlaghttps://wiki.archlinux.org/index.php?title=Chromium&diff=243511Chromium2013-01-11T14:52:16Z<p>Charlag: /* Font Rendering */</p>
<hr />
<div>[[es:Chromium]]<br />
[[fr:chromium]]<br />
[[it:Chromium]]<br />
[[zh-CN:Chromium]]<br />
[[Category:Web Browser]]<br />
{{Article summary start}}<br />
{{Article summary text|General information, installation and troubleshooting for Chromium.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Chromium Tips and Tweaks}}<br />
{{Article summary wiki|Browser Plugins}}<br />
{{Article summary wiki|Firefox}}<br />
{{Article summary wiki|Opera}}<br />
{{Article summary end}}<br />
[[Wikipedia:Chromium (web browser)|Chromium]] is an open source graphical web browser from Google, based on the [[Wikipedia:WebKit|WebKit]] rendering engine.<br />
<br />
== Installation ==<br />
Chromium can be [[Pacman|installed]] with the package {{Pkg|chromium}}, available in the [[official repositories]].<br />
<br />
In the [[AUR]] you can also find:<br />
* {{AUR|chromium-dev}} - a development version of the Chromium browser.<br />
* {{AUR|chromium-update}} - an update. script for Chromium nighly builds, pre-compiled on the Chromium buildbot server.<br />
* {{AUR|chromium-browser-bin}} - a binary version of the latest Chromium build.<br />
* {{AUR|iron-bin}} - a binary version of Chromium without Google's 'tracking features'<br />
<br />
{{Note|Compiling {{AUR|chromium-dev}} takes at least as long as compiling the Linux kernel.}}<br />
<br />
Various versions of the modified Google Chrome browser can be found in the [[AUR]]:<br />
* {{AUR|google-chrome}}<br />
* {{AUR|google-chrome-beta}}<br />
* {{AUR|google-chrome-dev}}<br />
<br />
See these [https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome two] [http://news.softpedia.com/news/Google-Chrome-vs-Chromium-Understanding-Stable-Beta-Dev-Releases-and-Version-No-140060.shtml articles] for an explanation of the differences between Stable/Beta/Dev, as well as Chromium vs. Chrome and the version numbers.<br />
<br />
== Configuration ==<br />
<br />
=== File associations ===<br />
<br />
Unlike [[Firefox]], Chromium does not maintain its own database of mimetype-to-application associations. Instead, it relies on [[Xdg-open|xdg-open]] to open files and other mime types, for example, [[Wikipedia:Magnet URI scheme|magnet links]].<br />
<br />
There are exceptions to this rule though. In the case of ''mailto'' URIs, Chromium calls out to {{ic|xdg-email}} which is similar to {{ic|xdg-open}}. Other protocol handlers may have equivalent scripts so check {{ic|/usr/bin/xdg*}}. <br />
<br />
The behaviour of {{ic|xdg-*}} tools is managed automatically in environments such as [[GNOME]], [[KDE]], [[Xfce]] or [[LXDE]], but does not work in others. Usually this behaviour can be fixed by tricking them into thinking that they are operating in one of the supported desktop environments. Depending on your environment one may work and another will not so trying each is recommended. You can set the desktop environment with the following variable:<br />
export DE=INSERT_DE_HERE<br />
<br />
where the recognised desktop environments are: '''gnome''', '''kde''', '''xfce''' and '''lxde'''. For the variable to be always set, put it somewhere like {{ic|~/.xinitrc}} or {{ic|~/.bashrc}}.<br />
<br />
An alternative is to edit the {{ic|xdg-open}} or {{ic|xdg-email}} scripts and '''hard-code''' a useful DE. At the bottom of the file you will see something like this:<br />
{{hc|/usr/bin/xdg-open|<nowiki><br />
detectDE<br />
<br />
if [ x"$DE" = x"" ]; then<br />
DE=generic<br />
fi<br />
<br />
DEBUG 2 "Selected DE $DE"<br />
<br />
# if BROWSER variable is not set, check some well known browsers instead<br />
if [ x"$BROWSER" = x"" ]; then<br />
BROWSER=links2:elinks:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=x-www-browser:firefox:seamonkey:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
fi<br />
<br />
case "$DE" in<br />
kde)<br />
open_kde "$url"<br />
;;<br />
<br />
gnome*)<br />
open_gnome "$url"<br />
;;<br />
<br />
mate)<br />
open_mate "$url"<br />
;;<br />
<br />
xfce)<br />
open_xfce "$url"<br />
;;<br />
<br />
lxde)<br />
open_lxde "$url"<br />
;;<br />
<br />
generic)<br />
open_generic "$url"<br />
;;<br />
<br />
*)<br />
exit_failure_operation_impossible "no method available for opening '$url'"<br />
;;<br />
esac</nowiki><br />
}}<br />
<br />
change the third line: {{ic|DE&#61;generic}} to one of the supported desktop environments (e.g. {{ic|DE&#61;gnome}}). <br />
<br />
{{Note|These changes are lost when any of the utilities are upgraded.}}<br />
<br />
An approach which is less useful is to place the required application in the default browser list:<br />
<br />
BROWSER=links2:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=firefox:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
<br />
{{ic|xdg-open}} and {{ic|xdg-email}} fall back to this list of browsers and will use the first that they find to attempt to open the URI. You could add the name of the application to the beginning of the list. However there is no guarantee that the application will be called correctly to meet your needs, e.g. your mail client will open but it will not correctly receive the ''mailto'' address. Also it will only work for one application.<br />
<br />
A fourth option is to make a softlink from your preferred application to one of the names on the browser list. This approach has the same problems as the previous work around. For more discussion on these ideas see [https://bbs.archlinux.org/viewtopic.php?id=81282&p=1 this forum thread].<br />
<br />
=== Font Rendering ===<br />
Chromium is now supposed to use the settings in {{ic|~/.fonts.conf}}, though you may have to edit it manually (see [[Font_Configuration#Basic_settings|Font Configuration]]). If the fonts are still rendered badly, you can use Xft settings [[X resources|as suggested here]]. Create {{ic|~/.Xresources}} if it does not exist and add in:<br />
{{hc|~/.Xresources|<br />
...<br />
! Xft settings ---------------------------------------------------------------<br />
Xft.dpi: 96<br />
Xft.antialias: true<br />
Xft.rgba: rgb<br />
Xft.hinting: true<br />
Xft.hintstyle: hintslight<br />
...<br />
}}<br />
<br />
Then update the X Resources database using:<br />
<br />
{{bc|xrdb -merge ~/.Xresources}}<br />
<br />
{{Note|These settings will affect any application that uses X Resources for font settings; one example is [[Rxvt-unicode|rxvt-unicode]].}}<br />
<br />
==== Non-Latin characters ====<br />
Install needed fonts to correctly display Chinese, Japanese, Korean characters. For examples of recommended fonts for various languages see [[Fonts#Font_packages|Font Packages]].<br />
<br />
=== Default browser ===<br />
The simplest way to make Chromium the default browser is to set variable {{Ic|<nowiki>$BROWSER=chromium</nowiki>}} in {{ic|~/.profile}}<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=chromium<br />
fi<br />
<br />
To test if this was applied successfully, try to open an URL with {{ic|xdg-open}} as follows:<br />
$ xdg-open http://google.com/<br />
If everything went well, either a new tab inside Chromium, or a new window would open and display the Google homepage, depending on your settings.<br />
<br />
Another option, when using {{AUR|mimeo}}, is to associate "http://" links with Chromium:<br />
{{hc|~/.config/mimeo.conf|<nowiki><br />
/usr/bin/chromium<br />
^http://<br />
</nowiki>}}<br />
<br />
If all of that still does not get it working, you can try adding the following to the {{ic|[Added Associations]}} list in {{ic|~/.local/share/applications/mimeapps.list}}:<br />
x-scheme-handler/http=chromium.desktop<br />
<br />
For more info, see [[Xdg-open]].<br />
<br />
=== Flash Player ===<br />
The Adobe Flash plugin can be [[Pacman|installed]] with the package {{Pkg|flashplugin}}, available in the official repositories. <br />
<br />
While the classic Flash plugin will not be updated for Linux, Chromium can use the Flash plugin from Google Chrome (that uses the new Pepper API). This plugin is available in the [[AUR]] with the {{AUR|chromium-pepper-flash}} or {{AUR|chromium-pepper-flash-stable}} packages. <br />
<br />
{{Note|Make sure to enable the Flash plugin with location {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}} in {{ic|chrome://plugins}} and disable the plugin with location {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}}.}}<br />
<br />
If Pepper Flash doesn't show up in the plugins list (as is the case for Iron) then disable libflashplayer.so and start with the following command.<br />
iron --ppapi-flash-path=/usr/lib/PepperFlash/libpepflashplayer.so --ppapi-flash-version=11.5.31.101<br />
<br />
=== Open PDF files inside Chromium ===<br />
<br />
There are multiple ways of enabling PDF support in Chromium that are detailed below. <br />
<br />
==== Using Google Chrome's libpdf ====<br />
<br />
'''libpdf''' is Google's own implementation of a PDF renderer. While compatible, it is currently only part of Chrome releases, not Chromium ones.<br />
<br />
The easiest way to add it to the latter is using one of the packages provided in the [[AUR]]:<br />
* {{AUR|chromium-stable-libpdf}} for the stable version of the browser.<br />
* {{AUR|chromium-libpdf}} for a development version that installs to {{ic|/usr/lib/chromium}} (such as {{AUR|chromium-dev}}).<br />
* {{AUR|chromium-browser-libpdf}} for a development version that installs to {{ic|/opt/chromium-browser}} (such as {{AUR|chromium-browser-bin}}).<br />
<br />
To do it manually, download a Google Chrome release that corresponds to the version of Chromium you use:<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_i386.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_i386.deb<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_amd64.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb<br />
<br />
Extract the deb file with<br />
$ ar vx <deb-file><br />
<br />
Extract LZMA archive with<br />
$ tar -xJf <lzma-file><br />
<br />
Move {{ic|libpdf.so}} from {{ic|opt/google/chrome/}} to the appropriate directory as stated above. A change of its file permissions and ownership may be necessary (the permission of {{ic|libpdf.so}} should be 755).<br />
<br />
To verify that the installation went correctly: start Chromium, open ''about:plugins'' and check if "Chrome PDF Viewer" is available (it may need to be enabled).<br />
<br />
{{Note|As a new version of Chromium will not update {{ic|libpdf.so}}, it may become incompatible. Thus and with respect to possible security fixes it is advisable to update both at the same time.}}<br />
<br />
==== Using mozplugger ====<br />
{{Box||See the main article: [[Browser Plugins#MozPlugger]]|#E5E5FF|#FCFCFC}}<br />
<br />
For information about the installation see [[Browser Plugins#PDF viewer]].<br />
<br />
==== Using the KParts plugin ====<br />
{{Box||See the main article: [[Browser Plugins#kpartsplugin]]|#E5E5FF|#FCFCFC}}<br />
<br />
=== Certificates ===<br />
<br />
Chromium uses [[Nss|NSS]] for the certificate management. Certificates can be managed (including added) by going to ''Settings'', clicking the ''Show advanced settings..'' link and then ''Manage Certificates''.<br />
<br />
== Tips and Tricks ==<br />
{{Box||See the main article: [[Chromium Tips and Tweaks]]|#E5E5FF|#FCFCFC}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Proxy Settings ===<br />
There have been many situations in which proxy settings do not work properly, especially if set through the KDE interface. A good method as of now is to use Chromium's command-line options, like {{ic|--proxy-pac-url}} and {{ic|--proxy-server}}, to set your proxy.<br />
<br />
=== Default profile ===<br />
If you cannot get your default profile when you try to run Chromium and get a similar error instead:<br />
{{bc|<br />
$ chromium<br />
[2630:2630:485325611:FATAL:chrome/browser/browser_main.cc(755)] Check failed: profile. <br />
Cannot get default profile. Trace/breakpoint trap<br />
}}<br />
<br />
you have to set the correct owner of the directory {{ic|~/.config/chromium}} as following:<br />
$ sudo chown -R yourusername:yourusergroup /home/yourusername/.config/chromium<br />
<br />
=== WebGL ===<br />
<br />
Sometimes, Chromium will disable WebGL with certain graphics card configurations. This can generally be remedied by typing {{ic|about:flags}} into the URL bar and enabling the WebGL flag. You may also enable WebGL by passing the command line flag {{ic|--enable-webgl}} to Chromium in the terminal.<br />
<br />
There is also the possibility that your graphics card has been blacklisted by Chromium. To override this, pass the flag {{ic|--ignore-gpu-blacklist}} when starting Chromium, alternatively, go to {{ic|about:flags}} and enable ''Override software rendering list''.<br />
<br />
=== Pulseaudio & PA-Alsa-Bridge & Pepper-Flash ===<br />
<br />
Given a certain version of Chrome (23.x seem to exhibit this problem) and Pepper-Flash (11.x) while using the PA-Alsa-Bridge, sound may not play, become distorted, start skipping or outright keep crashing the PA-Alsa-Bridge continously. See [http://code.google.com/p/chromium/issues/detail?id=128870] for the bugreport.<br />
<br />
A possible workaround is to use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa directly.<br />
<br />
First, create an {{ic|~/.asoundrc}} file to default Alsa to your real hardware instead of Pulseaudio. See [[Alsa]] and [http://alsa.opensrc.org/FAQ026] for more information. Exemplary {{ic|~/.asoundrc}}:<br />
<br />
{{hc|~/.asoundrc|<br />
pcm. !default {<br />
type hw<br />
card 0<br />
device 0<br />
}<br />
}}<br />
<br />
Then use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa which now uses your real hardware.<br />
<br />
{{bc|<br />
pasuspender -- google-chrome<br />
}}<br />
<br />
== See Also ==<br />
* [http://www.chromium.org/Home Chromium Homepage]<br />
* [http://googlechromereleases.blogspot.com Google Chrome Release Notes]<br />
* [https://chrome.google.com/webstore/category/home Chrome Web Store]<br />
* [[Wikipedia: Chromium_(web_browser)#Differences_from_Google_Chrome|Differences between Chromium and Google Chrome]]<br />
* [http://peter.sh/experiments/chromium-command-line-switches/ List of Chromium command-line switches]</div>Charlaghttps://wiki.archlinux.org/index.php?title=Chromium&diff=243474Chromium2013-01-11T04:31:21Z<p>Charlag: /* Font Rendering */</p>
<hr />
<div>[[es:Chromium]]<br />
[[fr:chromium]]<br />
[[it:Chromium]]<br />
[[zh-CN:Chromium]]<br />
[[Category:Web Browser]]<br />
{{Article summary start}}<br />
{{Article summary text|General information, installation and troubleshooting for Chromium.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Chromium Tips and Tweaks}}<br />
{{Article summary wiki|Browser Plugins}}<br />
{{Article summary wiki|Firefox}}<br />
{{Article summary wiki|Opera}}<br />
{{Article summary end}}<br />
[[Wikipedia:Chromium (web browser)|Chromium]] is an open source graphical web browser from Google, based on the [[Wikipedia:WebKit|WebKit]] rendering engine.<br />
<br />
== Installation ==<br />
Chromium can be [[Pacman|installed]] with the package {{Pkg|chromium}}, available in the [[official repositories]].<br />
<br />
In the [[AUR]] you can also find:<br />
* {{AUR|chromium-dev}} - a development version of the Chromium browser.<br />
* {{AUR|chromium-update}} - an update. script for Chromium nighly builds, pre-compiled on the Chromium buildbot server.<br />
* {{AUR|chromium-browser-bin}} - a binary version of the latest Chromium build.<br />
* {{AUR|iron-bin}} - a binary version of Chromium without Google's 'tracking features'<br />
<br />
{{Note|Compiling {{AUR|chromium-dev}} takes at least as long as compiling the Linux kernel.}}<br />
<br />
Various versions of the modified Google Chrome browser can be found in the [[AUR]]:<br />
* {{AUR|google-chrome}}<br />
* {{AUR|google-chrome-beta}}<br />
* {{AUR|google-chrome-dev}}<br />
<br />
See these [https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome two] [http://news.softpedia.com/news/Google-Chrome-vs-Chromium-Understanding-Stable-Beta-Dev-Releases-and-Version-No-140060.shtml articles] for an explanation of the differences between Stable/Beta/Dev, as well as Chromium vs. Chrome and the version numbers.<br />
<br />
== Configuration ==<br />
<br />
=== File associations ===<br />
<br />
Unlike [[Firefox]], Chromium does not maintain its own database of mimetype-to-application associations. Instead, it relies on [[Xdg-open|xdg-open]] to open files and other mime types, for example, [[Wikipedia:Magnet URI scheme|magnet links]].<br />
<br />
There are exceptions to this rule though. In the case of ''mailto'' URIs, Chromium calls out to {{ic|xdg-email}} which is similar to {{ic|xdg-open}}. Other protocol handlers may have equivalent scripts so check {{ic|/usr/bin/xdg*}}. <br />
<br />
The behaviour of {{ic|xdg-*}} tools is managed automatically in environments such as [[GNOME]], [[KDE]], [[Xfce]] or [[LXDE]], but does not work in others. Usually this behaviour can be fixed by tricking them into thinking that they are operating in one of the supported desktop environments. Depending on your environment one may work and another will not so trying each is recommended. You can set the desktop environment with the following variable:<br />
export DE=INSERT_DE_HERE<br />
<br />
where the recognised desktop environments are: '''gnome''', '''kde''', '''xfce''' and '''lxde'''. For the variable to be always set, put it somewhere like {{ic|~/.xinitrc}} or {{ic|~/.bashrc}}.<br />
<br />
An alternative is to edit the {{ic|xdg-open}} or {{ic|xdg-email}} scripts and '''hard-code''' a useful DE. At the bottom of the file you will see something like this:<br />
{{hc|/usr/bin/xdg-open|<nowiki><br />
detectDE<br />
<br />
if [ x"$DE" = x"" ]; then<br />
DE=generic<br />
fi<br />
<br />
DEBUG 2 "Selected DE $DE"<br />
<br />
# if BROWSER variable is not set, check some well known browsers instead<br />
if [ x"$BROWSER" = x"" ]; then<br />
BROWSER=links2:elinks:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=x-www-browser:firefox:seamonkey:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
fi<br />
<br />
case "$DE" in<br />
kde)<br />
open_kde "$url"<br />
;;<br />
<br />
gnome*)<br />
open_gnome "$url"<br />
;;<br />
<br />
mate)<br />
open_mate "$url"<br />
;;<br />
<br />
xfce)<br />
open_xfce "$url"<br />
;;<br />
<br />
lxde)<br />
open_lxde "$url"<br />
;;<br />
<br />
generic)<br />
open_generic "$url"<br />
;;<br />
<br />
*)<br />
exit_failure_operation_impossible "no method available for opening '$url'"<br />
;;<br />
esac</nowiki><br />
}}<br />
<br />
change the third line: {{ic|DE&#61;generic}} to one of the supported desktop environments (e.g. {{ic|DE&#61;gnome}}). <br />
<br />
{{Note|These changes are lost when any of the utilities are upgraded.}}<br />
<br />
An approach which is less useful is to place the required application in the default browser list:<br />
<br />
BROWSER=links2:links:lynx:w3m<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=firefox:mozilla:epiphany:konqueror:chromium-browser:google-chrome:$BROWSER<br />
fi<br />
<br />
{{ic|xdg-open}} and {{ic|xdg-email}} fall back to this list of browsers and will use the first that they find to attempt to open the URI. You could add the name of the application to the beginning of the list. However there is no guarantee that the application will be called correctly to meet your needs, e.g. your mail client will open but it will not correctly receive the ''mailto'' address. Also it will only work for one application.<br />
<br />
A fourth option is to make a softlink from your preferred application to one of the names on the browser list. This approach has the same problems as the previous work around. For more discussion on these ideas see [https://bbs.archlinux.org/viewtopic.php?id=81282&p=1 this forum thread].<br />
<br />
=== Font Rendering ===<br />
Chromium is now supposed to use the settings in {{ic|~/.fonts.conf}}, though you may have to edit it manually (see [[Font_Configuration#Basic_settings|Font Configuration]]). If the fonts are still rendered badly, you can use Xft settings [[X resources|as suggested here]]. Create {{ic|~/.Xresources}} if it does not exist and add in:<br />
{{hc|~/.Xresources|<br />
...<br />
! Xft settings ---------------------------------------------------------------<br />
Xft.autohint: false<br />
Xft.dpi: 96<br />
Xft.antialias: true<br />
Xft.rgba: rgb<br />
Xft.hinting: true<br />
Xft.hintstyle: hintslight<br />
...<br />
}}<br />
<br />
Then update the X Resources database using:<br />
<br />
{{bc|xrdb -merge ~/.Xresources}}<br />
<br />
{{Note|These settings will affect any application that uses X Resources for font settings; one example is [[Rxvt-unicode|rxvt-unicode]].}}<br />
<br />
==== Non-Latin characters ====<br />
Install needed fonts to correctly display Chinese, Japanese, Korean characters. For examples of recommended fonts for various languages see [[Fonts#Font_packages|Font Packages]].<br />
<br />
=== Default browser ===<br />
The simplest way to make Chromium the default browser is to set variable {{Ic|<nowiki>$BROWSER=chromium</nowiki>}} in {{ic|~/.profile}}<br />
if [ -n "$DISPLAY" ]; then<br />
BROWSER=chromium<br />
fi<br />
<br />
To test if this was applied successfully, try to open an URL with {{ic|xdg-open}} as follows:<br />
$ xdg-open http://google.com/<br />
If everything went well, either a new tab inside Chromium, or a new window would open and display the Google homepage, depending on your settings.<br />
<br />
Another option, when using {{AUR|mimeo}}, is to associate "http://" links with Chromium:<br />
{{hc|~/.config/mimeo.conf|<nowiki><br />
/usr/bin/chromium<br />
^http://<br />
</nowiki>}}<br />
<br />
If all of that still does not get it working, you can try adding the following to the {{ic|[Added Associations]}} list in {{ic|~/.local/share/applications/mimeapps.list}}:<br />
x-scheme-handler/http=chromium.desktop<br />
<br />
For more info, see [[Xdg-open]].<br />
<br />
=== Flash Player ===<br />
The Adobe Flash plugin can be [[Pacman|installed]] with the package {{Pkg|flashplugin}}, available in the official repositories. <br />
<br />
While the classic Flash plugin will not be updated for Linux, Chromium can use the Flash plugin from Google Chrome (that uses the new Pepper API). This plugin is available in the [[AUR]] with the {{AUR|chromium-pepper-flash}} or {{AUR|chromium-pepper-flash-stable}} packages. <br />
<br />
{{Note|Make sure to enable the Flash plugin with location {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}} in {{ic|chrome://plugins}} and disable the plugin with location {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}}.}}<br />
<br />
If Pepper Flash doesn't show up in the plugins list (as is the case for Iron) then disable libflashplayer.so and start with the following command.<br />
iron --ppapi-flash-path=/usr/lib/PepperFlash/libpepflashplayer.so --ppapi-flash-version=11.5.31.101<br />
<br />
=== Open PDF files inside Chromium ===<br />
<br />
There are multiple ways of enabling PDF support in Chromium that are detailed below. <br />
<br />
==== Using Google Chrome's libpdf ====<br />
<br />
'''libpdf''' is Google's own implementation of a PDF renderer. While compatible, it is currently only part of Chrome releases, not Chromium ones.<br />
<br />
The easiest way to add it to the latter is using one of the packages provided in the [[AUR]]:<br />
* {{AUR|chromium-stable-libpdf}} for the stable version of the browser.<br />
* {{AUR|chromium-libpdf}} for a development version that installs to {{ic|/usr/lib/chromium}} (such as {{AUR|chromium-dev}}).<br />
* {{AUR|chromium-browser-libpdf}} for a development version that installs to {{ic|/opt/chromium-browser}} (such as {{AUR|chromium-browser-bin}}).<br />
<br />
To do it manually, download a Google Chrome release that corresponds to the version of Chromium you use:<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_i386.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_i386.deb<br />
<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-stable_current_amd64.deb<br />
$ wget https://dl-ssl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb<br />
<br />
Extract the deb file with<br />
$ ar vx <deb-file><br />
<br />
Extract LZMA archive with<br />
$ tar -xJf <lzma-file><br />
<br />
Move {{ic|libpdf.so}} from {{ic|opt/google/chrome/}} to the appropriate directory as stated above. A change of its file permissions and ownership may be necessary (the permission of {{ic|libpdf.so}} should be 755).<br />
<br />
To verify that the installation went correctly: start Chromium, open ''about:plugins'' and check if "Chrome PDF Viewer" is available (it may need to be enabled).<br />
<br />
{{Note|As a new version of Chromium will not update {{ic|libpdf.so}}, it may become incompatible. Thus and with respect to possible security fixes it is advisable to update both at the same time.}}<br />
<br />
==== Using mozplugger ====<br />
{{Box||See the main article: [[Browser Plugins#MozPlugger]]|#E5E5FF|#FCFCFC}}<br />
<br />
For information about the installation see [[Browser Plugins#PDF viewer]].<br />
<br />
==== Using the KParts plugin ====<br />
{{Box||See the main article: [[Browser Plugins#kpartsplugin]]|#E5E5FF|#FCFCFC}}<br />
<br />
=== Certificates ===<br />
<br />
Chromium uses [[Nss|NSS]] for the certificate management. Certificates can be managed (including added) by going to ''Settings'', clicking the ''Show advanced settings..'' link and then ''Manage Certificates''.<br />
<br />
== Tips and Tricks ==<br />
{{Box||See the main article: [[Chromium Tips and Tweaks]]|#E5E5FF|#FCFCFC}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Proxy Settings ===<br />
There have been many situations in which proxy settings do not work properly, especially if set through the KDE interface. A good method as of now is to use Chromium's command-line options, like {{ic|--proxy-pac-url}} and {{ic|--proxy-server}}, to set your proxy.<br />
<br />
=== Default profile ===<br />
If you cannot get your default profile when you try to run Chromium and get a similar error instead:<br />
{{bc|<br />
$ chromium<br />
[2630:2630:485325611:FATAL:chrome/browser/browser_main.cc(755)] Check failed: profile. <br />
Cannot get default profile. Trace/breakpoint trap<br />
}}<br />
<br />
you have to set the correct owner of the directory {{ic|~/.config/chromium}} as following:<br />
$ sudo chown -R yourusername:yourusergroup /home/yourusername/.config/chromium<br />
<br />
=== WebGL ===<br />
<br />
Sometimes, Chromium will disable WebGL with certain graphics card configurations. This can generally be remedied by typing {{ic|about:flags}} into the URL bar and enabling the WebGL flag. You may also enable WebGL by passing the command line flag {{ic|--enable-webgl}} to Chromium in the terminal.<br />
<br />
There is also the possibility that your graphics card has been blacklisted by Chromium. To override this, pass the flag {{ic|--ignore-gpu-blacklist}} when starting Chromium, alternatively, go to {{ic|about:flags}} and enable ''Override software rendering list''.<br />
<br />
=== Pulseaudio & PA-Alsa-Bridge & Pepper-Flash ===<br />
<br />
Given a certain version of Chrome (23.x seem to exhibit this problem) and Pepper-Flash (11.x) while using the PA-Alsa-Bridge, sound may not play, become distorted, start skipping or outright keep crashing the PA-Alsa-Bridge continously. See [http://code.google.com/p/chromium/issues/detail?id=128870] for the bugreport.<br />
<br />
A possible workaround is to use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa directly.<br />
<br />
First, create an {{ic|~/.asoundrc}} file to default Alsa to your real hardware instead of Pulseaudio. See [[Alsa]] and [http://alsa.opensrc.org/FAQ026] for more information. Exemplary {{ic|~/.asoundrc}}:<br />
<br />
{{hc|~/.asoundrc|<br />
pcm. !default {<br />
type hw<br />
card 0<br />
device 0<br />
}<br />
}}<br />
<br />
Then use {{ic|pasuspender}} to suspend Pulseaudio and force Chrome to use Alsa which now uses your real hardware.<br />
<br />
{{bc|<br />
pasuspender -- google-chrome<br />
}}<br />
<br />
== See Also ==<br />
* [http://www.chromium.org/Home Chromium Homepage]<br />
* [http://googlechromereleases.blogspot.com Google Chrome Release Notes]<br />
* [https://chrome.google.com/webstore/category/home Chrome Web Store]<br />
* [[Wikipedia: Chromium_(web_browser)#Differences_from_Google_Chrome|Differences between Chromium and Google Chrome]]<br />
* [http://peter.sh/experiments/chromium-command-line-switches/ List of Chromium command-line switches]</div>Charlag