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] терминальный сервер.

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

root login

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

chroot /var/lib/ltsp/i586
passwd

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

PXE NIC

  • Возможно, встроенная сетевая карта умеет загрузку по сети, но эта функция попросту выключена в BIOS — поищите в (обычно) Integrated Peripherals пункт Onboard LAN Boot ROM (или ещё что похожее) и удостоверьтесь, что он включен; также потребуется указать LAN/Network[4] как вариант загрузки перед жёстким диском.
    Некоторые BIOS умеют перейти на однократную сетевую загрузку по нажатию F12 (ищите на экране со считалкой памяти при загрузке «Network boot» внизу или что-то в том роде).
  • Если сетевая карта имеет 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 и Линукс Терминал из комплекта ПСПО после инсталяции он уже доступен как /opt/ltsp-boot.iso.

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

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

nfs not responding, still trying...

Некоторые сетевые карты (например, Realtek RTL8029[5]) и свичи (например, Dlink DGS-1008D[6]) плохо работают с большими пакетами; типичный признак:

nfs: server 192.168.0.1 not responding, still trying
nfs: server 192.168.0.1 not responding, still trying
nfs: server 192.168.0.1 OK
nfs: server 192.168.0.1 OK
nfs: server 192.168.0.1 not responding, still trying

Можно попытаться занизить размеры блоков чтения/записи в /var/lib/tftpboot/ltsp/i586/pxelinux.cfg/default.nfs до 8K или ещё ниже:

#DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp diskless fastboot ip=dhcp
DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp,rsize=8192,wsize=8192 diskless fastboot ip=dhcp

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

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

Как правило, говорит о проблемах с 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 к нему.[7]

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

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

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

См. тж. про noudev и отладку загрузки модулей.

Черный экран после «Populating /dev:». Добавить в ядро /var/lib/tftpboot/ltsp/i586/pxelinux.cfg/default опцию "nomodeset". Можно попробовать добавить явное указание VESA режима, например vga=773.

#DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp diskless fastboot ip=dhcp
DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp diskless fastboot ip=dhcp nomodeset vga=773

Сетевая установка (не поддерживается)

Скрипт настройки LTSP в инсталяторе рассчитывает на установку с CD/DVD; если невозможно обойтись USB-приводом, можно поставить обычный Desktop и добавить вручную необходимые пакеты и настройки.

Проброс локальных устройств

Механизм с использованием ltspfs описан здесь.

Аппаратные терминалы без XKB

Актуально, например, для ТОНК1202; решение в использовании xmodmap/xrus и KOI-8 вместо UTF-8.

PXELINUX не работает

Если при загрузке клиентов по сети появляется только надпись

 PXELINUX 4.04 0x547c793e Copyright (C) 1994-2011 H. Peter Anvin et al.

и всё -- обратите внимание на altbug #31534.

PeperFlash в браузере Firefox

При просмотре Flash контента в терминал выводится сообщение:

[fresh] [error] ppb_graphics3d_create, unsupported g3d->depth (16)
[fresh] [warning] handle_graphics_expose_event, can't get visual for depth 24, using default

Проблема решается добавлением в lts.conf параметра X_COLOR_DEPTH=24

Решение проблем с 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. В бетах с 20120308 в процессе установки заданный для системы пароль root переносится и в чрут.
  3. В бетах с 20120308 в чруте также доступна команда ltsp-sysreport
  4. Тоже может варьироваться; возможно, это Boot From LAN First или подобное.
  5. http://lists.altlinux.org/pipermail/junior/2008-January/004541.html
  6. http://lists.altlinux.org/pipermail/ltsp-server/2008-February/001127.html
  7. Устройства "обычного" ядра могут переполнить /dev/ по объёму либо инодам.
  8. Пожалуйста, сообщите, если nr_inodes или size пришлось увеличивать.

Ссылки