LTSP/TroubleShooting

Материал из ALT Linux Wiki

Решение общих проблем с ALTSP

Может иметь смысл заглянуть в баг #15333 — есть вероятность, что с подобной ошибкой уже столкнулись и порешали.

Начинаем с инсталера

Как озвучили в рассылке мы с Michael A. Kangin:

> Вообще с этой штукой лучше знакомиться, начиная с нашего
> установочного диска и рекомендованной сетевой конфигурации,
> чтоб не ломать голову, где из трёх областей (железо, начиная
> с PXE-прошивки; сеть, т.е. адресация; терминальный сервер)   
> проблема-то.

Или же идти строго по 
http://sourceforge.net/apps/mediawiki/ltsp/index.php?title=Ltsp_TroubleShooting
:)

Порядок сетевых интерфейсов

Если, как и рекомендуется, задействовано два сетевых интерфейса — то они могут автоматически сконфигурироваться в двух комбинациях. Когда они одинаковы, при несовпадении логической и физической конфигурации можно просто поменять местами подключенные кабели.

А вот если из гигабита и Fast Ethernet терминальный адрес (192.168.0.1) «сел» на «сотку», хорошо бы это исправить. Для этого должно быть достаточно поменять местами слова eth0 и eth1 в файле /etc/udev/rules.d/70-persistent-net.rules и перезагрузить[1] терминальный сервер.

root login

Поскольку терминалы загружаются не с общего корня (в котором есть пароль root'а и добавляются пользователи), а с маленького сетевого -- то при необходимости зайти непосредственно на терминал рутом следует сперва поставить известный пароль; для этого выполните от имени root на терминальном сервере:

chroot /var/lib/ltsp/i586
passwd

и теперь на терминале можно нажать Ctrl-Alt-F2 и посмотреть содержимое /var/log/Xorg.*.log либо вывод dmesg.

PXE NIC

Если сетевая карта имеет PXE-стек, который представляется Intel Boot Agent 4.0.19 — его придётся перешивать на более старый или более новый. Для набортных сетевых это, как правило, означает вливание прошивки в материнскую плату (хотя с Award Modular BIOS теоретически можно извернуться иначе); впрочем, современные обычно не имеют таких проблем. На чипах VIA я лично (mike@) с ними не встречался никогда. См. тж. на linux.armd.ru.

Осенью 2007 года для Intel 82557 (8086:1229) на intel.com давали нерабочую прошивку — пришлось воспользоваться вытащенной из заведомо грузящейся карты.

Некоторые старые PXE не могут загрузить c tftp-сервера дальнейший свой загрузчик из-за проблемы понять размер блока данных больший, чем 512 байт. По tcpdump'у клиент обращается по tftp к серверу, от него идёт несколько пакетов ответа, после чего обмен данными останавливается. В таких случаях может помочь указание tftpd не использовать опцию blksize (для tftp-hpa, что входит в альтлинукс, нужно в файле /etc/xinetd.d/tftp в опциях серверу добавить -r blksize). Это может замедлить скачивание данных с tftp-сервера и, соответственно, загрузку клиентов. Поэтому, если перепрошивка клиентов невозможна, в сети можно попробовать держать пару tftp-серверов - медленный, но совместимый, и быстрый.

Если же вариант с PXE не получается — возможна загрузка с помощью Etherboot или с CD, содержащего образ, сгенерированный ltsp-mkbootiso; в Terminal 4.0.0 и Линукс Терминал из комплекта ПСПО после инсталяции он уже доступен как /opt/ltsp-boot.iso.

Локальная загрузка (без PXE BIOS)

Существует возможность разместить загрузчик и ядро на локальном жёстком диске.

«Курсор крестиком» на терминалах

Не удаётся подключиться к дисплей-менеджеру, запущенному на терминальном сервере.

Как правило, говорит о проблемах с DNS — настройки такового должны быть либо верными, либо отсутствующими.

Пока не выяснена причина такой проблемы с Линукс Терминал, о которой были сообщения при настройке второго Ethernet после (а не во время) установки — но упоминался, соответственно, объезд в виде настройки при установке.

Если столкнётесь — попробуйте поднять интерфейс руками (проверил, у меня работает); если сработает, то сделать резервные копии /etc/net/ifaces/ и /etc/resolv.conf и после удачной либо неудачной настройки сравнить их с актуальными при помощи diff -Naur. Результаты стоит сообщить в bugzilla.altlinux.org.

Старые NVIDIA

Если на терминалах установлены карты с чипами, поддерживаемыми драйверами nvidia legacy (например, 71.86) -- придётся удалить из терминального чрута драйверы nvidia вообще и, таким образом, воспользоваться драйвером nv:

chroot /var/lib/ltsp/i586
rpm -qa | grep nvidia | xargs rpm -e

Проблема в том, что x11presetdrv, который должен адаптировать симлинки, не может нормально отработать на readonly-корне бездискового клиента (в частности, выполнить depmod -a).

Также можно попытаться выкрутиться фигурной правкой файлов *.xinf.

Подземный стук с XDMCP

Если у вас спорадически не работает XDMCP со странной диагностикой в районе «authorization cookie rejected» — проверьте MTU в локальной сети и восстановите его в 1500 во всём сегменте.

Производительность NFS-сервера

> Если включить все терминалы на загрузку, то часть из них
> на этой загрузке и застрянет.

Юзерспейсный NFS-сервер unfs3 по определению проигрывает в скорости kernelspace-ному nfs-server. Правда, и с тем 24 клиента грузились одновременно, хоть и не шибко весело.

Сделайте apt-get install nfs-server unfs3- (именно так, с минусом на конце — предложит вместе с unfs3 снести ltsp-server-basic, который метапакет; с этим можно согласиться).

Дело в том, что в 4.0 мы собирались сделать это всё запихивабельным ещё и под OpenVZ сразу — оно-то запихивается, но оптимизировать под это не стоило, поскольку всё равно ручная работа.

В бетах пятёрки это учтено.

«Замерзание» терминала

Если при работе с Firefox 1.x/2.x, OpenOffice.org ранее 2.4 или kpdf терминал на какую-то секунду «призадумывается» и перестаёт отвечать — это вызвано «разбуханием» X-сервера терминала под натиском запихиваемых в него xpixmap’ов (картинок) и заклиниванием ядра даже при наличии сетевого свопа.

От этой проблемы есть несколько слабо помогающих припарок, но радикальное решение — патч Peter Zijlstra от дедлоков при networked swap. Этот патч включен в сборки kernel-image-tmc-tc, а также релизы ALT Linux 4.0 Terminal и Линукс Терминал.

Firefox3 и OOo2.4 вроде как намного лучше — но, к сожалению, вероятность зависнуть зависит от «паршивой овцы» среди приложений… если, конечно, использовать обычное ядро.

Насколько мне (mike@) известно — на сейчас сборка в ALT Linux является уникальной среди всех дистрибутивов, поддерживающих LTSP5.

Сканер штрих-кодов

См. здесь.

Realtek 8103EL/8102EL

Не поддерживается нормально драйвером r8169.ko в 2.6.27 (добавили в 2.6.28). Как вариант, можно попробовать скопировать и установить в чруте "обычное" ядро, а затем скопировать из чрута в /var/lib/tftpboot/ltsp/i586/ vmlinuz и initrd к нему.[2]

«Зависание» терминала на «Populating /dev:»

Периодическое (или постоянное) «зависание» терминала на «Populating /dev:» может быть вызвано переполнением /dev/, по объёму либо инодам (altbug #23608) . Лечится подъёмом лимитов в переменной tmpfs_options в /var/lib/ltsp/i586/etc/udev/udev.conf. Например, так:

#tmpfs_options="size=192k,nr_inodes=2048"
tmpfs_options="size=384k,nr_inodes=6144"

Решение проблем с ALT Linux 4.0 Terminal

Эти замечания также относятся к дистрибутиву из комплекта ПСПО-2008 (Линукс Терминал), поскольку обусловлены недочётами в коде, присутствовавшем в 4.0/branch на момент их выпуска.

МП на GeForce 8200

Проблема: при установке не видно жесткого диска или оптического привода SATA.

Решение: необходимо в BIOS материнской платы выставить режим AHCI для контроллера SATA, при загрузке с загрузочного диска ядру указать параметр pci=nomsi.

AMD Geode

В силу наличия известной проблемы с видеодрайвером xorg-x11-drv-amd в версии X.org, входящей в состав ALT Linux 4.0 (апстрим внёс регрессию) — использование таких терминалов с ALTSP5 на сейчас затруднено необходимостью ручной сборки клиентского чрута с иной (более старой) версией xorg-x11. На сейчас подробного описания или готового варианта решения у меня (mike@) ещё нет.

Начиная с branch 4.0 X’ы пофикшены (snejok@):

 10 апреля 2008 Valery Inozemtsev <shrek at altlinux.ru> 2:1.4.0.90-alt17 
Xext: fixed memory corruption in ProcXResQueryClients()
X86EMU: fixing X for GeodeLX (close #15300)

Ссылки

  1. Если очень не хочется именно перезагружать, придётся выгрузить модули для eth0 и eth1, загрузить их по новой, service network restart и перезапустить все зависимые от сети службы — но это практически то же и получится.
  2. Устройства "обычного" ядра могут переполнить /dev/ по объёму либо инодам.