https://www.altlinux.org/api.php?action=feedcontributions&user=92.241.239.241&feedformat=atomALT Linux Wiki - Вклад [ru]2024-03-28T11:59:49ZВкладMediaWiki 1.38.2https://www.altlinux.org/index.php?title=Nvidia&diff=11014Nvidia2009-04-29T19:38:56Z<p>92.241.239.241: /* Возможные баги */</p>
<hr />
<div>{{h0|Настройка видеокарт Nvidia в Сизифе}}<br />
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/Nvidia}}<br />
<br />
== Постановка вопроса ==<br />
На сегодня видеокарты от Nvidia являются одними из самых распространённых.<br />
Поддержка карт Nvidia в Linux может осуществляться следующими «драйверами» — модулями Xorg.<br />
<br />
* Свободным модулем [http://sisyphus.ru/srpm/xorg-x11-drv-vesa vesa] — настолько, насколько данная видеокарта поддерживает спецификацию vesa.<br />
* Модулем поддержки фреймбуфера — [http://sisyphus.ru/srpm/xorg-x11-drv-fbdev fbdev].<br />
* Свободным модулем nv — поддерживаются не все видеокарты, нет поддержки аппаратного 3D (как и у vesa и у fdbv)<br />
* Свободным модулем [http://nouveau.freedesktop.org/wiki/ nouveau] с поддержкой 3D. [http://sisyphus.ru/srpm/xorg-x11-drv-nouveau Eсть в Сизифе], но модуль ещё сырой.<br />
* Проприетарные модули [http://www.nvidia.ru/object/linux_ru.html Nvidia].<br />
<br />
На сегодняшний день политика компании Nvidia такова, что она разделила все свои видеокарты [[Nvidia/Tablica|на 3 группы]].<br />
В зависимости от того,<br />
какая видеокарта, можно ставить один из поддерживающих её драйверов.<br />
<br />
== Краткий алгоритм установки драйверов серии legacy ==<br />
Данный алгоритм устарел. В современном Сизифе всё это делается скриптами, но если произошёл сбой в их работе, вы можете сделать эти операции за них.<br />
<br />
С недавнего времени xorg-x11-server-1.4 модули legacy вошли в основной пакет Nvidia.<br />
Как поменять текущий модуль ядра (все операции требуют прав root)?<br />
* Выключаем X-ы, например {{cmd|telinit 3}},<br />
* Выгружаем модуль nvidia: {{cmd|rmmod nvidia}},<br />
* Меняем символическую ссылку, например {{cmd|ln -s /lib/modules/nvidia/{версия ядра} /lib/modules/{версия ядра}/nVidia/nvidia.ko}},<br />
* Прописываем в {{path|/lib/modules/{версия ядра}/.versions/nvidia}}: {{term|1.0.9639}},<br />
* {{cmd|depmod -a}},<br />
* {{cmd|modprobe nvidia}},<br />
* Проверяем, что в {{path|xorg.conf}} прописан модуль nvidia,<br />
* {{cmd|x11setupdrv}}, (начиная с ALT 5.0 и выше не нужно, т.к. скрипт встроен в запуск X-сервера)<br />
* Запускаем X-ы, например {{cmd|telinit 5}}.<br />
<br />
: {версия ядра} — это та версия, в которой вы хотите настроить работу драйверов Nvidia.<br />
<br />
=== Возможные баги ===<br />
xorg-x11-server-1.4 требует, чтобы в {{path|/etc/X11/xinit/xserverrc}} было прописано:<br />
<source lang="xorg_conf"><br />
X_server='X -nolisten tcp -ignoreABI'<br />
</source><br />
вместо<br />
<source lang="xorg_conf"><br />
X_server='X -nolisten tcp'<br />
</source><br />
<br />
В {{path|xorg.conf}} добавить (вроде теоретически взаимозаменяемо, но на практике не получается)<br />
<source lang="xorg_conf"><br />
Section "ServerFlags"<br />
Option "IgnoreABI" "true"<br />
EndSection<br />
</source><br />
<br />
[[Категория:Hardware]]<br />
[[Категория:Sisyphus]]</div>92.241.239.241https://www.altlinux.org/index.php?title=APT_%D0%B2_ALT_Linux/CreateRepository&diff=4601APT в ALT Linux/CreateRepository2008-10-15T18:58:10Z<p>92.241.239.241: /* Создание локального репозитория */</p>
<hr />
<div>{{MovedFromFreesourceInfo|AltLinux/Apt/CreateRepository}}<br />
<br />
== Создание локального репозитория ==<br />
Для создания репозитория достаточно создать правильную структуру директорий, разместить в ней rpm-пакеты и создать метаинформацию для APT.<br />
Ключевые слова: Локальный репозиторий.<br />
<br />
=== Структура APT-RPM репозитория ===<br />
APT-RPM репозиторий выглядит достаточно просто:<br />
<br />
<pre>i586/<br />
base/ # метаинформация<br />
release<br />
pkglist.reponame.bz2<br />
...<br />
RPMS.reponame/ # пакеты архитектуры i586<br />
foobar-1.2-5.i586.rpm<br />
x86_64/<br />
base/ # метаинформация<br />
release<br />
pkglist.reponame.bz2<br />
RPMS.reponame/ # пакеты архитектуры x86_64<br />
foobar-1.2-5.x86_64.rpm<br />
noarch/<br />
base/ # метаинформация<br />
release<br />
pkglist.reponame.bz2<br />
RPMS.reponame/ # архитектурно-независимые пакеты<br />
foobar-doc-1.2-5.noarch.rpm</pre><br />
<br />
Такая структура формирует три источника для APT (<base directory> - место, где располагается репозиторий):<br />
<br />
<pre>rpm file:<base directory> i586 reponame<br />
rpm file:<base directory> x86_64 reponame<br />
rpm file:<base directory> noarch reponame</pre><br />
<br />
'''NB:''' указываем noarch и ''один'' из архитектурно-зависимых репозиториев, всё в кучу не надо!<br />
<br />
Более изощрённую структуру директорий, когда в репозитории хранятся пакеты с иходным текстом (<tt>.src.rpm</tt>), общие для нескольких архитектур, а также когда в репозитории имеется несколько компонентов (в данном репозитории компонент один - <tt>reponame</tt>), можно посмотреть, к примеру, в [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/Server/current/ репозитории ALT Linux Server]. Обратите внимание, что в этом репозитории используется отдельная директория <tt>files</tt> для хранения всех пакетов, и директории <tt>RPMS.*/SRPMS.*</tt> являются символическими ссылками на поддиректории из <tt>files</tt>.<br />
<br />
== Размещение пакетов ==<br />
Просто разложите пакеты по директориям <tt>{i586,i686,x86_64,noarch}/RPMS.reponame</tt> в зависимости от архитектуры пакета.<br />
<br />
== Создание/обновление метаинформации ==<br />
Для создания/обновления метаинформации (файлов, хранящихся в директории <tt>base</tt>), используйте утилиту <tt>genbasedir</tt> из пакета <tt>apt-utils</tt>:<br />
<br />
<pre>#!/bin/sh<br />
REPO_DIR="$1"<br />
REPO_NAME="$2"<br />
<br />
for arch in i586 i686 x86_64 noarch; do<br />
genbasedir --progress --topdir=$REPO_DIR $arch $REPO_NAME<br />
done</pre><br />
<br />
== Полезные советы ==<br />
<br />
=== Создание "скелета" репозитория ===<br />
<br />
<pre>#!/bin/sh<br />
REPO_DIR="$1"<br />
REPO_NAME="$2"<br />
for i in i586 i686 x86_64 noarch; do<br />
mkdir -p "$REPO_DIR/$i/base" "$REPO_DIR/$i/RPMS.$REPO_NAME"<br />
done</pre><br />
<br />
=== Добавление произвольного набора пакетов в репозиторий ===<br />
<br />
<pre>#!/bin/sh<br />
REPO_DIR="$1"<br />
REPO_NAME="$2"<br />
PACKAGES_DIR="$1"<br />
<br />
for file in $PACKAGES_DIR/*.rpm; do<br />
arch=`rpm -qp --queryformat %{ARCH} "$file"`<br />
rpm_name=`rpm -qp --queryformat %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm "$file"`<br />
cp -f "$file" "$REPO_DIR/$arch/RPMS.$REPO_NAME/$rpm_name"<br />
done</pre><br />
<br />
После этой операции необходимо обновить метаинформацию. Побочным эффектом является приведение имён файлов с пакетами к "каноническому" виду.<br />
<br />
=== Создание репозитория на основе содержимого кэша APT ===<br />
<br />
Добавьте содержимое кэша APT в репозиторий (см. выше) и обновите метаинформацию (см. выше).<br />
<br />
=== Автоматизация добавления пакетов в репозиторий ===<br />
<br />
Воспользуйтесь скриптами из пакета <tt>sisyphus</tt>.<br />
<br />
=== Запись репозитория на CD/DVD ===<br />
<br />
См. [[Apt/IsoFromRepository|Создание образов CD/DVD из репозитория]].</div>92.241.239.241