LTSP/TroubleShooting
Решение общих проблем с 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
- Возможно, встроенная сетевая карта умеет загрузку по сети, но эта функция попросту выключена в BIOS — поищите в (обычно) Integrated Peripherals пункт Onboard LAN Boot ROM (или ещё что похожее) и удостоверьтесь, что он включен; также потребуется указать LAN/Network[2] как вариант загрузки перед жёстким диском.
Некоторые 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[3]) и свичи (например, Dlink DGS-1008D[4]) плохо работают с большими пакетами; типичный признак:
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 к нему.[5]
«Зависание» терминала на «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"
Сетевая установка (не поддерживается)
Скрипт настройки LTSP в инсталяторе рассчитывает на установку с CD/DVD; если невозможно обойтись USB-приводом, можно поставить обычный Desktop и добавить вручную необходимые пакеты и настройки.
Проброс локальных устройств
Механизм с использованием ltspfs описан здесь.
Решение проблем с 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)
Примечания
- ↑ Если очень не хочется именно перезагружать, придётся выгрузить модули для eth0 и eth1, загрузить их по новой, service network restart и перезапустить все зависимые от сети службы — но это практически то же и получится.
- ↑ Тоже может варьироваться; возможно, это Boot From LAN First или подобное.
- ↑ http://lists.altlinux.org/pipermail/junior/2008-January/004541.html
- ↑ http://lists.altlinux.org/pipermail/ltsp-server/2008-February/001127.html
- ↑ Устройства "обычного" ядра могут переполнить /dev/ по объёму либо инодам.