From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.1-sysv/chapter09/symlinks.html | 430 ---------------------------------- 1 file changed, 430 deletions(-) delete mode 100644 lfs-12.1-sysv/chapter09/symlinks.html (limited to 'lfs-12.1-sysv/chapter09/symlinks.html') diff --git a/lfs-12.1-sysv/chapter09/symlinks.html b/lfs-12.1-sysv/chapter09/symlinks.html deleted file mode 100644 index 25c0faf..0000000 --- a/lfs-12.1-sysv/chapter09/symlinks.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - 9.4. Управление устройствами - - - - - - - - -

- 9.4. - Управление устройствами -

-
-
-

- 9.4.1. Сетевые устройства -

-

- Udev по умолчанию присваивает имена сетевым устройствам в - соответствии с данными прошивки, BIOS'а или физическими - характеристиками, такими как шина, слот или MAC-адрес. Целью такого - соглашения об именовании является обеспечение того, чтобы сетевые - устройства именовались последовательно, а не основывались на - времени обнаружения сетевой карты. Например, в более старых версиях - Linux—на компьютере с двумя сетевыми картами производства Intel и - Realtek, сетевая карта производства Intel могла стать eth0, а карта - Realtek — eth1. Иногда после перезагрузки карты именовались - наоборот. -

-

- В новой схеме именования, типичными именами сетевых устройств - являются enp5s0 или wlp3s0. Если такие имена для вас нежелательны, - то может быть реализована традиционная схема именования или своя - собственная. -

-
-

- 9.4.1.1. Отключение постоянного присвоения имен в параметрах - загрузки ядра -

-

- Традиционная схема именования - eth0, eth1, и так далее, может - быть включена путем добавления параметра net.ifnames=0 в командную - строку ядра. Это решение подходит для систем, которые имеют - только одно сетевое устройство каждого типа. Часто в ноутбуках - несколько сетевых устройств с именами eth0 и wlan0; в таких - ноутбуках также может использоваться этот метод. Командная строка - указывается в файле конфигурации GRUB. Подробности смотрите на - странице Раздел 10.4.4, - «Создание файла конфигурации GRUB». -

-
-
-

- 9.4.1.2. Создание пользовательских правил Udev -

-

- Схему именования можно настроить, создав пользовательские правила - udev. В состав книги включен скрипт, который генерирует начальные - правила. Чтобы их сгенерировать, выполните команду: -

-
bash /usr/lib/udev/init-net-rules.sh
-

- Теперь, проверьте файл /etc/udev/rules.d/70-persistent-net.rules, - чтобы узнать какое имя с каким сетевым устройством сопоставлено: -

-
cat /etc/udev/rules.d/70-persistent-net.rules
-
- [Примечание] -

- Примечание -

-

- В некоторых случаях, например, когда MAC-адреса были назначены - сетевой карте вручную или в виртуальной среде, такой как Qemu - или Xen, возможно, файл сетевых правил не будет сгенерирован, - поскольку адреса назначаются не последовательно. В таких - случаях, этот способ не применим. -

-
-

- Файл начинается с блока комментариев, далее следуют две строки - для каждой сетевой карты (NIC). Первая строка представляет собой - описание с комментариями и содержит аппаратные идентификаторы - (например, поставщика PCI и идентификаторы устройств, если это - PCI-карта), а также информацию о драйвере (если его удалось - обнаружить). Ни идентификатор оборудования, ни драйвер не - используются для определения того, какое имя присвоить - интерфейсу; эта информация предназначена только для справки. - Вторая строка - это правило udev, которое соответствует этому - сетевому адаптеру и фактически присваивает ему имя. -

-

- Все правила udev состоят из нескольких ключевых слов, разделенных - запятыми и необязательными пробелами. Ниже приведены ключевые - слова и пояснения по каждому из них: -

-
-
    -
  • -

    - SUBSYSTEM=="net" - указывает - Udev игнорировать устройства, которые не являются сетевыми - картами. -

    -
  • -
  • -

    - ACTION=="add" - указывает Udev - игнорировать правила для событий, отличных от добавления - (события "удалить" и "изменить" также происходят, но не - требуют переименования сетевых интерфейсов). -

    -
  • -
  • -

    - DRIVERS=="?*" - существует для - того, чтобы Udev проигнорировал подинтерфейсы VLAN или - моста (потому что эти подинтерфейсы не имеют драйверов). - Эти подинтерфейсы пропускаются, потому что назначенные им - имена будут конфликтовать с именами их родительских - устройств. -

    -
  • -
  • -

    - ATTR{address} - значением - этого ключевого слова является MAC-адрес сетевой карты. -

    -
  • -
  • -

    - ATTR{type}=="1" - этот ключ - гарантирует выполнение правила соответствующего только - основному интерфейсу, при использовании определенных - беспроводных драйверов, которые создают несколько - виртуальных интерфейсов. Дополнительные интерфейсы - пропускаются по той же причине, что и подинтерфейсы VLAN и - мост, в ином случае произошел бы конфликт имен. -

    -
  • -
  • -

    - NAME - значением этого - ключевого слова является имя, которое udev присвоит этому - интерфейсу. -

    -
  • -
-
-

- Значение NAME является очень важным. - Прежде чем продолжить, убедитесь, что вы знаете, какое имя - назначено каждой из сетевых карт и обязательно используйте это - значение NAME при создании файлов - конфигурации сети. -

-

- Даже если создан пользовательский файл правил udev, udev все - равно может назначить одно или несколько альтернативных имен для - сетевой карты на основе физических характеристик. Если - пользовательское правило udev переименовывает какой-либо сетевой - адаптер, используя имя, уже назначенное в качестве - альтернативного имени другого сетевого адаптера, это правило udev - не будет выполнено. Если возникает эта проблема, вы можете - создать файл конфигурации /etc/udev/network/99-default.link с пустой - альтернативной политикой назначения, переопределяющей файл - конфигурации по умолчанию /usr/lib/udev/network/99-default.link: -

-
sed -e '/^AlternativeNamesPolicy/s/=.*$/=/'  \
-    -i /usr/lib/udev/network/99-default.link \
-     > /etc/udev/network/99-default.link
-
-
-
-

- 9.4.2. Символические ссылки CD-ROM -

-

- Некоторое программное обеспечение, которое вы, возможно, захотите - установить позже (например, различные медиаплееры) ожидают, что - устройства /dev/cdrom или - /dev/dvd и символические ссылки на - CD-ROM или DVD-ROM устройства должны существовать. Кроме того, - может быть удобно использовать эти символические ссылки в - /etc/fstab. Udev поставляется с - файлом сценария, который будет генерировать правила для создания - этих символических ссылок, в зависимости от возможностей каждого - устройства, но вам нужно решить, какой из двух режимов работы вы - хотите использовать. -

-

- Во-первых, скрипт может работать в режиме «by-path» (используется - по умолчанию для USB и FireWire устройств), где создаваемые им - правила зависят от физического пути к CD или DVD устройству. - Во-вторых, он может работать в режиме «by-id» (по умолчанию для - устройств IDE и SCSI), где создаваемые им правила зависят от строк - идентификации, хранящихся в самом устройстве CD или DVD. Путь - определяется сценарием Udev path_id, а идентификационные - строки считываются с оборудования командами ata_id или scsi_id, в зависимости от того, - какой тип устройства у вас есть. -

-

- У каждого подхода есть свои преимущества; правильный подход к - использованию будет зависеть от того, какие изменения устройств - могут произойти. Если вы ожидаете, что физический путь к устройству - (порты и/или слоты, в который оно подключено), изменится, например, - потому, что вы планируете переместить диск в другой порт IDE или - другой разъем USB, то вы должны использовать режим «by-id». С другой - стороны, если вы ожидаете, что идентификация устройства изменится, - например, потому, что оно может выйти из строя, и вы замените его - другим устройством с теми же характеристиками и подключите к тем же - разъемам, тогда вы должны использовать режим «by-path». -

-

- Если с вашим устройством возможен любой из вариантов, выберите тот, - который по вашему мнению случается чаще. -

-
- [Важно] -

- Важно -

-

- Внешние устройства (например, привод компакт-дисков, подключенный - через USB) не следует подключать методом «by-path», потому что - каждый раз, когда устройство подключено в новый внешний порт, - изменится его физический путь. Все внешние устройства подвержены - этой проблеме, если при написании правил Udev применять режим - распознавания по их физическому пути. К тому же, эта проблема не - ограничивается CD и DVD-приводами. -

-
-

- Если вы хотите увидеть значения, которые будут использовать скрипты - udev, то для требуемого устройства CD-ROM найдите соответствующий - каталог в /sys (например, это может - быть /sys/block/hdd) и выполните - команду, аналогичную следующей: -

-
udevadm test /sys/block/hdd
-

- Обратите внимание на строки, содержащие вывод различных - идентификаторов *_id. Режим «by-id» будет использовать значение ID_SERIAL - если оно существует и не пустое, иначе будет использована - комбинация ID_MODEL и ID_REVISION. Режим «by-path» будет - использовать значение ID_PATH. -

-

- Если режим по умолчанию не подходит для вашей ситуации, то в файл - /etc/udev/rules.d/83-cdrom-symlinks.rules можно - внести следующие изменения (где mode является одним из значений - «by-id» или - «by-path»): -

-
sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \
-    -i /etc/udev/rules.d/83-cdrom-symlinks.rules
-

- Обратите внимание, что на данный момент, нет необходимости - создавать файлы правил или символические ссылки, так как вы - смонтировали каталог /dev хоста в - систему LFS, и мы предполагаем, что символические ссылки уже - существуют. Правила и символические ссылки будут создаваться при - первой загрузке LFS системы. -

-

- Однако, если у вас есть несколько устройств CD-ROM, то - символические ссылки, сгенерированные в это время, могут указывать - на другие устройства, и иметь различия от хост системы, потому что - устройства не будут обнаружены в предсказуемом порядке. Назначения, - созданные при первой загрузке системы LFS, будут правильными, - проблема возникнет только в том случае, если символические ссылки в - обеих системах указывают на одно и то же устройство. Если - потребуется, проверьте (и, возможно, отредактируйте) - сгенерированные правила в файле /etc/udev/rules.d/70-persistent-cd.rules после - загрузки, чтобы убедиться, что назначенные символические ссылки - соответствуют тому, что вам нужно. -

-
-
-

- 9.4.3. Работа с дубликатами устройств -

-

- Как поясняется в Раздел 9.3, - «Взаимодействие с устройствами и модулями», порядок отображения - устройства с одинаковой функциональностью в /dev является, как правило, случайным. Например, - если у вас есть веб камера и TV тюнер, иногда /dev/video0 ссылается на камеру, а /dev/video1 ссылается на TV тюнер, а иногда, - например, после перезагрузки системы, порядок поменяется на - противоположный. Для всех классов оборудования, за исключением - звуковых и сетевых карт, это можно исправить, написав правила udev - для создания постоянных символических ссылок. Случай с сетевыми - картами описан отдельно в Раздел 9.5, «Настройка сети», - инструкции по настройке звуковых карт можно найти в - BLFS. -

-

- Для каждого из ваших устройств, которые могут иметь такую проблему - (даже если проблема не существует в текущем дистрибутиве Linux ), - найдите соответствующий каталог в /sys/class или /sys/block. Для видеоустройств это может быть - /sys/class/video4linux/videoX. Определите атрибуты, - которые однозначно идентифицируют устройство (обычно это - идентификаторы поставщика и продукта и/или серийные номера): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Затем напишите правила, которые создают символические ссылки, - например: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-
-EOF
-

- В результате устройства /dev/video0 и - /dev/video1 по-прежнему случайным - образом ссылаются на TV тюнер и веб-камеру (и, следовательно, - никогда не должны использоваться напрямую), но есть символические - ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают на - правильное устройство. -

-
-
- - - -- cgit v1.2.3