Gentoo Linux сборник статей



Pdf просмотр
страница65/79
Дата14.11.2016
Размер5.55 Mb.
Просмотров11586
Скачиваний1
1   ...   61   62   63   64   65   66   67   68   ...   79
-V использовать YV12/I420 в качестве встроенного видео кодека [выключено изначально]
Это, как правило, намного быстрее чем RGB процессинг, но некоторые импортированные модули могут не поддерживать этот формат.
Используйте эту опцию всегда, когда это возможно.
-y vmod[,amod]
видео[,аудио] модули для эксопртирования [отсутствуют изначально].
Если опустить, то transcode не будет кодировать никаким модулем.
Полностью установленный transcode имеет следующие модули:
<вырезано>
mpeg - (видео) MPEG 1/2 | (аудио) MPEG 1 Layer II
nasm должен быть доступен во время компиляции. Этот модуль не имеет зависимостей. Этот модуль хорошо поддерживается.
Инетрфейс к библиотеке bbmpeg (включена в transcode). Может кодировать в mpeg1, VCD, SVCD, MPEG2 и DVD видео форматы.
Кодированое видео является отдельным файлом, который следует объединить с соответствующим аудио файлом после кодирования.
-F codec_string
параметры енкодера [зависят от модуля].
Параметр -F имеет разные значения для разных модулей.
<вырезано>
-y mpeg:
Синтаксис: -F "[,[,user-profile]]"
может быть одним из:
'1' = MPEG 1 (по умолчанию)
'b' = big MPEG 1 (экспериментальный)
'v' = VCD
's' = SVCD
'2' = MPEG2
'd' = DVD совместимый
может быть одним из:
0 = выключить resizer (по умолчанию)
1 = 352x288 2 = 480x480 3 = 480x576 4 = 352x240
Имя файла профиля. Вы можете можно указать как абсолютный путь так и относительный
771

Русское WIKI
(относительно директории из которой запускаете transcode).
-Y top[,left[,bottom[,right]]]
определить (для енкодера) рамку по котрой будет обрезано изображение.
Отрицаельные значения будут добавлять рамку [отключено изначально].
-E r[,b[,c]]
частота сэмплирования выходного аудио [Гц], битов на сэмпл и каналы
[входящие данные]. Опция "-J resample" должна быть передана не совместимым с ресэмплингом.
-B n[,m[,M]]
изменить размеры до высота-n*M горизонтальных полосок
[,ширина-m*M] вертикальных полосок [отключено изначально,32].
M должно иметь одно из значений 8, 16 или 32. Неважно какое M вы используете. Также взгляниет на флаг fast опции -Z если не хотите считать n и m вручную.
-b b[,v,[q,[m]]]
битрейт аудио енкодера кБит/с [,vbr[,quality[,mode]]] [128,0,5,0]
Параметр mode оперделяет какие модули будет использовать lame при кодировании. Возможные значения для mode:
0 Joint Stereo (по умолчанию)
1 Full stereo
2 Mono
-o file
имя выходного файла, по умолчанию [/dev/null].
Если бы, к примеру, наше видео имело формат 728x424, то следовало бы воспользоватья командой типа следующей:
transcode -i showgirls-divx.avi -V -y mpeg -F d -B 1,1,8 -E 44100 -b 128 -o
showgirls-dvd
Также обратитесь к опции -X для того, чтобы увеличить размеры видео.
Использование tcmplex для объединения аудио и видео данных
Transcode должен был создать *.m2v (mpeg-2 видео) и *.mpa (аудио) файлы в текущей директории. Теперь мы их объединим так: tcmplex -o showgirls-dvd.vob -i showgirls-dvd.m2v -p showgirls-dvd.mpa -m d
Использование kino (альтернатива transcode+tcmplex)
Kino используется для получения видео с dv камер. Эта программа имеет возможности простейшего видеомонтажа (вырезать сцену, вставить, поменять местами). Она имеет удобный интерфейс для захвата видео (хотя вы можете использовать dvgrab для этой цели). Она использует фомат qt4linux mov по умолчанию для захвата.
Для более продвинутого монтажа cinelerra, пожалуй, пока единственный выбор под Linux. Это достаточно мощная, но достаточно долгая в освоении и пока что нестабильная (сохраняйтесь как можно чаще) программа. Вы можете просто импортировать тот же .mov полученный с помощью kino (dvgrab) в cinelerra (на
772

Русское WIKI
самом деле, она падает при работе с большинством других форматов). Затем вы можете использовать cinelerra, чтобы привести оконченный фильм обратно к формату mov.
Как только вы наконец получите тот .mov файл, какой вы хотели, загрузите его опять в kino и перейдите в закладку export. Здесь вы уже можете экспортировать video в формат vcd, svcd или dvd. Формат DVD потребует достаточно много времени для конвертирования (желателен мощный процессор).
Использование replex (подготовка DVB записей с цифрового телевидения (Digital
Television))
"Эти инструкции были испробованы на записях формата DVB-C, сделанных в
Финляндии"
Примечание: пожалуй, для России эта глава абсолютно бесполезна, но если есть большое желание, то я переведу и её. Мало ли, кто где живет ;)
Digital television streams are transmitted as MPEG2-TS in which the TS stands for
Transport Stream. This means that extra information, such as multiple audio streams, could be transferred along with the actual video. Quite fortunately, the video stream is already suitable for DVD without re-encoding which is both time consuming and stupid as it lowers the quality. Enter replex. First use czap for tuning into some channel: czap -r -n 3
This tunes the DVB card to channel number 3. Now, record some data by typing: cat /dev/dvb/adapter0/dvr0 > stream.ts
This simply writes raw data from the first tuner card into a file. After awhile press CTRL-
C to stop recording.
Now, you should have a blob of data which could be played with e.g. mplayer. Next, you should use replex to transform TS format suitable for DVD. Enter following command: replex -k -i TS -t DVD -o stream.dvd stream.ts
This command ignores possible errors in original stream (-k), assumes that input file is in TS format (-i TS), outputs format suitable for DVD (-t DVD), writes to a file called stream.dvd (-o stream.dvd) and reads its input from the file entered as a last parameter
(stream.ts).
After a moment a file called stream.dvd should appear in the same directory where above command was entered. Now just follow the instructions from the next chapter onwards to burn this baby on a DVD.
Создание структуры директорий (authoring) с использованием dvdauthor
Это самый сложный этап! Имея готовый MPEG2 файл, воспользуйтесь программой dvdauthor (или вашим любимым графическим фронтендом к ней
(например, dvdstyler)), чтобы создать структуру директорий для записи DVD
773

Русское WIKI
(VIDEO_TS и AUDIO_TS).
dvdauthor -o . showgirls-dvd.vob && dvdauthor -o . -T
Создание DVD образа для записи
Если директории AUDIO_TS и VIDEO_TS созданы у вас в директории bar, которая в свою очередь находится в текущей директории, то введите команду:
mkisofs -dvd-video -o ./bar.img ./bar/
и вы получите образ bar.img в текущей директории, который теперь следует записать на диск вашей любимой программой для записи дисков.
Или можете записать диретории AUDIO_TS и VIDEO_TS прямо из каталога bar/ набрав:
growisofs -Z /dev/dvd -dvd-video -V название_диска .
Где /dev/dvd - ваш DVD-writer.
Запись
В Linux существует множество способов записи DVD. Из уже показанных можно использовать cdrecord или growisofs.
С помощью графического интерфейса
Формат ISO можно записать с помощью программы X-CDroast (она использует cdrecord-ProDVD, которая требует ключ, что доставляет определенное неудобство).
Также можно воспользоваться прораммой k3b, котрая использует growisofs. Это, пожалуй, самый простой способ.
Из командной строки
Можно записать образ ещё и так: cdrecord-ProDVD -dao -speed=4 -dev=/dev/dvd ./bar.img
Воспользуйтесь командой cdrecord -scanbus предварительно, чтобы определить какое устройство использовать для записи. Для устройств ATAPI используйте формат -dev=/dev/dvd или -dev=/dev/hdd (зависит от машины), для эмуляции SCSI устройств используйте -dev=0,0,0 или -dev=0,0,1 (зависит от машины).
Если у вас нет cdrecord-ProDVD можете использовать growisofs.
growisofs -dvd-compat -Z /dev/dvd=./bar.img
Подсказка: С помощью growisofs вы можете писать диски налету (без создания
774

Русское WIKI
четырёхгигабайтного файла .iso):
growisofs -dvd-compat -Z /dev/dvd -dvd-video ./bar
Можно также воспользоваться скриптом, который расположен по адресу http://james.nontrivial.org/projdvd.htm
Система Portage
Portage через NFS
Проблемы
Слишком долгое время выполнения 'emerge --sync' на всех серверах в LAN.
Согласно этикету gentoo, вы не можете синхронизироваться чаще одного раза в день
Решение
Общий NFS portage. Одна машина синхронизируется под управлением cron, остальные машины монтируют свою директорию /usr/portage с помощью NFS.
Общее представление
1. Обязательная поддержка nfs в ядре. В случае компиляции ее как модуля, добавить соответствующие строчки в modules.autoload
2. Если потребуется, перезагрузить или загрузить модуль nfs
3. Выполнить emerge nfs-utils
4. Настроить NFS/fstab для автоматического монтирования общего репозитария portage.
5. Установить локальный PORTAGE_TMPDIR на локальную файловую систему.
Выгоды
Только один сервер заботится о синхронизации portage (ночью по заданию cron'а).
Не нужен локальный rsync сервер.
Общий для всех каталог /usr/portage/distfiles означает, что вам не нужно скачивать одно и то же каждый раз, чтобы синхронизировать репозитарий portage на ваших ваши компьютерах.
И вообще, NFS - это классная штука ;)
Предупреждение: NFS является очень скудным протоколом по части безопасности. Убедитесь, что используете его только в пределах вашей локальной сети, где вы полностью доверяете вашим пользователям. Мы вас предупредили!
775

Русское WIKI
Подробный процесс
Поддержка ядра
У вас ДОЛЖНА быть включена поддержка NFS в вашем ядре, либо вкомпиленная в ядро (в таком случае необходимо будет перезагрузиться):
Linux Kernel Configuration: Встроенная поддержка
File systems --->
Network File Systems --->
<*> NFS file system support
[*] Provide NFSv3 client support
[ ] Provide NFSv4 client support (EXPERIMENTAL)
[ ] Allow direct I/O on NFS files (EXPERIMENTAL)
<*> NFS server support
[*] Provide NFSv3 server support
[ ] Provide NFSv4 server support (EXPERIMENTAL)
[ ] Provide NFS server over TCP support (EXPERIMENTAL) либо в качестве модулей:
Linux Kernel Configuration: Включение модулей
File systems --->
Network File Systems --->
NFS file system support
[*] Provide NFSv3 client support
[ ] Provide NFSv4 client support (EXPERIMENTAL)
[ ] Allow direct I/O on NFS files (EXPERIMENTAL)
NFS server support
[*] Provide NFSv3 server support
[ ] Provide NFSv4 server support (EXPERIMENTAL)
[ ] Provide NFS server over TCP support (EXPERIMENTAL)
Добавляем NFS server support, так как на данной машине будет размещаться общий каталог portage. Поддержку клиента NFS можно добавить по желанию.
Сохраните конфиг вашего ядра и пересоберите его. Code: Пересборка ядра
gentoo # mount /boot //если это еще не сделано
gentoo # cd /usr/src/linux
Для ядер 2.4:
gentoo # make dep && make bzImage modules modules_install install
Для ядер 2.6:
gentoo # make && make modules_install
776

Русское WIKI
Включение поддержки
Перезагрузитесь, если включили поддержку NFS в ядро, или, если вы собрали ее как модули, просто запустите: modprobe nfs
Установка и настройка
Установите пакет
nfs-utils: emerge nfs-utils
Настраиваем автоматическое монтирование общего portage
rc-update add portmap default
rc-update add nfs default
Отредактируйте crontab на сервере (метод зависит от того, какой cron вы используете). Для vixie-cron и dcron команда выглядит так: crontab -e Добавьте код:
0 0 * * * emerge --sync > /dev/null 2>&1 || true --nospinner && emerge world -vup
Отредактируйте файл /etc/exports на сервере, чтобы в нем были следующие строчки:
/usr/portage ip_range/subnet(sync,no_root_squash,rw)
Отредактируйте /etc/fstab на клиентах, добавив в него следующий код:
SERVER_IP:/usr/portage /usr/portage nfs bg,hard 0 0
Отредактируйте /etc/modules.autoload.d/kernel-version, добавив следующую строку: nfs
Примечание: Кеш портежей не расшарен через nfs. Если каждый раз вас докучает обновление кеша при команде emerge сразу после синхронизации, попробуйте добавить следующее в crontab клиентов. Это обновит кеш на компьютерах ваших клиентов спустя 10 минут после старта синхронизации на сервере. Установите время согласно скорости вашего подключения.
10 0 * * * emerge --metadata
PORTAGE_TMPDIR
PORTAGE_TMPDIR должен быть локальным каталогом (для скорости).
Переменная PORTAGE_TMPDIR устанавливается в файле /etc/make.conf и по умолчанию указывает на /var/tmp, то есть на локальную файловую систему, но просто для того, чтобы увериться в том, что это так, а не иначе, сделайте: emerge info Если всё прошло успешно (а всё так и должно быть), вы спокойно можете очистить содержимое каталога /usr/portage на КЛИЕНТСКОЙ машине (например, чтобы освободить дополнительное свободное место на диске)
Пояснение кода
777

Русское WIKI
Запись crontab'а
0 0 * * * emerge --sync > /dev/null 2>&1 || true --nospinner && emerge world -vup
говорит о том, что раз в сутки, в полночь будут выполнятся синхронизация с перенаправлением вывода в мусор и без бегунка и emerge world -vup и отправка письма root'у о том, что должно быть обновлено - настройте корректно почту).
/etc/exports:
"/usr/portage" - каталог для экспорта "ip_range/subnet" - только компьютеры из этого диапазона могут подключать его по сети "(sync,no_root_squash,rw)" - полезные параметры, всегда мною используемые
/etc/fstab:
"SERVER_IP:/usr/portage" - что вы хотите подключить "/usr/portage" - куда вы хотите подключить "nfs" - ФС ресурса "bg,hard 0 0" - полезные параметры, всегда мною используемые
/etc/modules.autoload.d/kernel-version:
"nfs" сообщает какой модуль загружать при загрузке ядра версии kernel-version
Комментарии
Советы? Пожелания? Похвала? Дайте нам знать.
Если вы получаете ошибку "Error starting NFS daemon" попробуйте
# mount -t nfsd nfsd /proc/fs/nfsd
это работает для меня.
Настройка Portage
Portage Setup Howto
Целевая аудитория
Это руководство создается для людей, которые хотят использовать все возможности системы Portage.
Зачем нужно это howto?
Portage — это система управления пакетами Gentoo Linux. Ее возможности довольно велики — сборка пакетов из исходников, включая конфигурирование пакета на основе пользовательских USE-флагов; начальная настройка
778

Русское WIKI
приложений; установка предкомпилированных пакетов; удаление програм; автоматическое обновление, и т. д. Однако, как показывает опыт, несмотря на отличную документацию, большинство пользователей не знают всех возможностей этой замечательной системы, поэтому очень часто Gentoo Linux подвергается незаслуженной критике. Данный документ — это попытка восполнить этот пробел.
Профили Portage (Portage profiles)
Gentoo — многоплатформенная система, при этом количество поддерживаемых архитектур постоянно увеличивается. Поэтому возникает необходимость в так называемых профилях сборки. Профиль — это набор настроек по умолчанию для определенной архитектуры, или определенного класса задач (например, для систем с повышенной безопасностью существуют профили hardened и selinux).
Наличие профилей, которые легко создавать, позволяет называть Gentoo не дистрибутивом, а метадистрибутивом, то есть дистрибутивом для создания других дистрибутивов ;). Но не об этом сейчас разговор.
Итак, для того, чтобы иметь работающую Gentoo-систему, необходимо выбрать себе нужный профиль. Профили по умолчанию находятся в каталоге /usr/portage/
profiles. По названию профиля легко определить тот, который нужен вам.
Например, 'default-x86-2004.2' — это стандартный профиль для архитектуры x86 версии 2004.2. Если в каталоге с профилем есть файл deprecated, то это означает, что данный профиль больше не поддерживается и выбирать его не следует.
После того как вы определились с выбранным профилем необходимо создать симлинк /etc/make.profile на каталог с выбранным профилем. Например, ln -s /usr/
portage/profiles/default-x86-2004.2 /etc/make.profile Когда выйдет новая версия
Gentoo, вам не надо бежать в магазин, покупать новые диски. Достаточно просто поменять симлинк /etc/make.profile на симлинк, указывающий на каталог с новым профилем.
Примечание: Сейчас идет переход на новый вид профилей — Cascading
Profiles. Такие профили имеют вид:
default-linux/x86/2004.2/
То есть настройки, общие для нескольких профилей не надо записывать по несколько раз. Пока что это экспериментальная фича, но если вы хотите помочь ее протестировать, то используйте на здоровье ;).
Примечание: Вообще-то переход на cascading profiles уже произошел, посему надо обновить то, что написано выше в этой секции "Portage profiles"
779

Русское WIKI
Настройки профилей
В профилях содержится следующая информация:

use-флаги использующиеся по умолчанию;

системные пакеты, то есть такие пакеты, которые устанавливаются при emerge system;

маскированные пакеты;

Настройки сборки пакетов по умолчанию. (CFLAGS, CHOST и другие);

Какие пакеты надо устанавливать при наличии альтернативных. (например, xorg или xfree)
Конфигурацию профилей напрямую менять не следует, так как ваши настройки будут удалены после следующей синхронизации с rsync-сервером. О том как правильно настраивать portage будет рассказано в следующем разделе.
/etc/portage и /etc/make.conf
Для того, чтобы изменить конфигурацию выбранного профиля, нужно использовать конфигурационные файлы в /etc/portage. Если у вас нет этого каталога, то его необходимо создать. Вот список конфигурационных файлов, которые читает Portage во время своей работы:
/etc/portage/package.mask
Синтаксис: в каждой строке содержится DEPEND ATOM, то есть один из знаков >,
<, >=, <=, =, категорию, название и версию пакета. Логические знаки обязательны если указана версия пакета.
Например: >=net-www/mozilla-1.7
Неправильные примеры
:
net-www/mozilla-1.7 (нет логической операции)
>=mozilla-1.7 (нет категории)
Предназначение: Маскирует пакеты. Может использоваться для того, чтоб
Portage не обновлял нужный вам пакет. Например, если вы хотите использовать apache-1.3 вместо apache-2.0
/etc/portage/package.unmask
Синтаксис: такой же, как и у package.mask
Предназначение: Демаскирует пакеты, которые маскированы в профиле.
Используется для установки нестабильных пакетов. Рекомендуется использовать только тем, кто хочет протестировать какой-то нестабильный пакет.
/etc/portage/profile/package.provided
Синтаксис: В каждой строчке содержится полное имя пакета, то есть category/name-version
Например: dev-lang/ghc-6.2.1-r1
Предназначение: Замена 'emerge --inject'. При наличии пакета в package.provided
Portage будет считать, что этот пакет уже установлен в системе.
Примечание: Иногда этого бывает недостаточно и пакет приходится вносить в
/etc/make.profile/package.provided (который удаляется после каждого emerge sync)
780

Русское WIKI
/etc/portage/mirrors
Синтаксис: Такой же как и у файла /usr/portage/profiles/thirdpartymirrors.
Предназначение: Список зеркал, которые будут использоватся в первую очередь.
Можно также указать зеркала sourceforge или gnu, которые будут использоватся в первую очередь.
Например: sourceforge http://keihanna.dl.sourceforge.net/sourceforge
Так же можно использовать тип миррора 'local'. Такое зеркало будет проверятся, даже если в ebuild'е пакета есть RESTRICT="NOMIRROR". Например:
local ftp://gentoo.linux.kiev.ua/pub/Linux/Gentoo/distfiles/
/etc/portage/package.use
Синтаксис: DEPEND ATOM USE-флаги
Например: x11-libs/gtk+ doc
Предназначение: Установка индивидуальных USE-флагов для отдельных пакетов
/etc/portage/package.keywords
Синтаксис: DEPEND ATOM KEYWORD KEYWORD — это идентификатор, который показывает, насколько стабилен пакет на данной архитектуре. Всего есть
4 вида KEYWORDS: arch — пакет стабилен на архитектуре arch arch — пакет стабилен на архитекруре arch, но еще не прошло время тестирования
-arch — у пакета наблюдаются проблемы на архитектуре arch.
-* — пакет нестабилен на всех архитектурах
Например: >=app-editors/emacs-cvs-21.3 x86
Предназначение: Установка индивидуальных KEYWORDS для отдельных пакетов. Используйте если хотите, чтоб в вашей стабильной системе были отдельные нестабильные пакеты или наоборот :)
/etc/portage/categories
Синтаксис: В каждой строке содержится название категории. Предназначение:
Используется для создание новых категорий для Portage.
Например: app-vasia
Теперь вы можете создать ebuild для пакетов категории app-vasia. emacs $
{PORTDIR_OVERLAY}/app-vasia/pupkin/pupkin-0.0.1.ebuild
/etc/make.conf
Файл /etc/make.conf служит для настройки самого процесса сборки пакетов.
Никаких сложных опций там нет, читайте внимательно комментарии в
/etc/make.conf.example.
$PORTDIR_OVERLAY
781

Русское WIKI
Представьте себе такую ситуацию: вы хотите установить пакет, ebuild'а которого нет в официальном дереве, но кто-то уже его написал. Или вы собираетесь самостоятельно научится писать ebuild'ы, и вы хотите, чтоб Portage мог устанавливать нужные вам программы. Если вы запишете свой ebuild в
/usr/portage, то он сотрется при следующей синхронизации с rsync-сервером. Для того, чтобы third-party ebuild'ы сохранялись, необходимо создать каталог для их хранения (например, /usr/local/portage) и записать его имя в переменную
$PORTDIR_OVERLAY в файле /etc/make.conf. Теперь вы можете размещать свои ebuild'ы в этом каталоге, пример был показан в предыдущем разделе.
Portage Overlay
Введение
Это руководство расскажет о том как установить ebuild который не включен в официальное дерево портежей.
Установка Portage Overlay
Первым делом мы должны указать PORTAGE_OVERLAY директорию, для этого необходимо отредактировать файл /etc/make.conf
Файл: /etc/make.conf
PORTDIR_OVERLAY="/usr/local/portage"
Таким образом мы позволяем устанавливать дополнительные ebuild'ы при этом не нарушая процесс синхронизации основного дерева портежей.
Месторасположение ebuild
Проверьте наличие директории /usr/local/portage, и если ее нет создайте ее install - d /usr/local/portage
Когда помещаете новый ebuild в /usr/local/portage, вы должны использовать такую же схему как в /usr/portage (category/program/program.ebuild)
Создание digest-файлов
digest-файлы -- это файлы, которые содержат md5 суммы файлов, необходимых для установки пакетов. После того, как Portage скачает необходимые файлы, будет сделана проверка на соответствие файлов их md5-суммам (это дает возможность убедиться в целостности файлов). Для того, чтобы Portage мог устанавливать пакеты, необходим digest-файл. Digest-файл можно создать с помощью команды ebuild /usr/local/portage/category/program/program.ebuild digest
Вручную редактировать созданные этой командой файлы не следует. При этом надо учитывать требования к имени ebuild-а. При переименовании ebuild-а в произвольное имя, команда
782
1   ...   61   62   63   64   65   66   67   68   ...   79


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал