The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Linux-сервер своими руками - Настройка X терминала (diskless linux xterm boot)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: diskless, linux, xterm, boot,  (найти похожие документы)
From: Денис Колисниченко <http://dkws.narod.ru>; Date: Wed, 24 Feb 2005 18:21:07 +0000 (UTC) Subject: Linux-сервер своими руками - Настройка X терминала Оригинал: http://dkws.narod.ru/linux/servers/xterm.html В этом пункте вы узнаете, как можно использовать старенький, припавший, пылью компьютер с 486-ым процессором в качестве X-терминала. Для начала нужно сказать, что такое X-терминал. Как и в обыкновенном терминале, в X-терминале мы видим лишь результаты выполнения программ, а сама программа выполняется на сервере. На обыкновенном терминале нельзя запускать программы, использующие систему X Window, а X-терминал снимает это ограничение. Благодаря этому даже на самых медленных и старых компьютерах можно работать с новым программным обеспечением. Вы когда-нибудь пробовали установить систему X Window на компьютере IP166/16 Mб и запустить последнюю версию Netscape (на то время 4.51)? Для тех, кто не испытывал этого удовольствия, скажу, что запуск Netscape длился около 70...80 секунд. При работе с X-терминалов скорость выполнения программ даже на 486-ом компьютере будет примерно такая же, как и на сервере. Естественно, это сильно зависит от загрузки сервера и количества X-терминалов. При запуске X-терминала вы увидите приглашение для входа в систему в графическом режиме, подобное тому, которое вы видите при запуске вашего сервера, если сервер X у вас запускается автоматически. Какую аппаратуру можно использовать в качестве X-терминала? Подойдет любой компьютер, даже с процессором 386DX. Обратите внимание на наименование процессора! Нужен именно DX, а не SX. В отличие от последнего, процессор 386DX полностью 32-х разрядный. При использовании процессора 486 тип (DX или SX) не имеет значения, потому что они отличаются только наличием или отсутствием математического сопроцессора. Минимальный объем оперативной памяти -- 8 Мб. Объем оперативной памяти сильно зависит от дистрибутива и версии X Window, которые вы собираетесь использовать для X-терминала. Я рекомендую установить 16 или даже 32 Мб. Устанавливать ОЗУ объемом более 32 Мб не имеет смысла, так как нам нужно будет запустить только ядро системы и X Window. Сейчас мы рассмотрим базовую настройку X-терминала. Для начала необходимо где-нибудь достать или подготовить самостоятельно корневую файловую систему для X-терминала. В качестве операционной системы для X-терминала я рекомендую использовать Slackware-подобную систему, например, тот же Slackware или Debian. Это обусловлено двумя причинами. Во-первых, Slackware-подобные системы обладают меньшими требованиями к аппаратуре: чтобы более или менее нормально работать в Slackware нужен компьютер 386DX/4Мб ОЗУ, а при использовании RedHat-подобных дистрибутивов (Mandrake, Black Cat) нужен как минимум 486/8Мб ОЗУ. Во-вторых, я решил не создавать корневую файловую систему самостоятельно, а пойти по пути минимального сопротивления и достать корневую систему Slackware-подобной системы и использовать ее. В этом случае достаточно просто развернуть один архив и не тратить время на выбор нужных пакетов RPM. Конечно, можно достать tar-файл с корневой файловой системой и для Red Hat, но тут напомнила о себе первая причина -- системные требования Red Hat. Итак, у нас есть два компьютера: более мощный (сервер) и самый обыкновенный компьютер с процессором 486. Примечание. Вот конфигурация "более мощного" компьютера: Intel Celeron 600Mhz/192MB/Quantum FireBall 7200rpm/Riva TNT2/Netcard Realtek 10/100Mbit PCI. Конфигурация терминала: Intel 486DX-100/16MB/Floppy 1,44MB/без HDD/Video S3 2MB PCI/PCI Netcard Realtek 10/100Mbit. Конфигурация терминала даже несколько превышает минимальную, но ничего более старого тогда я не смог найти. Желательно, если есть такая возможность, использовать сетевые платы для шины PCI, обеспечивающие передачу данных со скоростью 100Mбит/с. У меня обе платы работали в режиме 10Mбит/с, потому что я соединял их напрямую, то есть без концентратора. На сервере может быть установлен любой дистрибутив Linux. Желательно, конечно, использовать один дистрибутив, как для сервера, так и для X-терминала. Я установил на обоих, точнее только на сервере, дистрибутив Debian Linux. Корневую файловую систему можно скачать на сайте Debian -- www.debian.org. Архив с файловой системой называется base2_2.tgz. Я выразился не совсем корректно, поскольку в архиве файловая система как таковая не содержится, а в нем запакованы файлы, которые должны находится в корневой файловой системе: утилиты (каталог bin), файлы конфигурации (etc) и так далее. Вам также понадобится установочный компакт диск с выбранным дистрибутивом для установки системы X Window. Распакуйте только что выкачанный файл в каталог /usr/xterm: tar -xvzf base2_2.tgz /usr/xterm После выполнения этой команды в каталоге /usr/xterm появятся файлы корневой файловой системы. Теперь немного настройте свою корневую файловую систему. Сделайте ее корневой для своей операционной системы: chroot /usr/xterm Создайте файл /etc/resolv.conf, подобный тому, который используется на сервере. Это нужно для корректного разрешения имен на X-терминале. Можно прописать необходимые IP-адреса и имена в файле /etc/hosts. В большинстве случаев нужно указать только IP-адрес сервера. Затем отредактируйте файл /etc/fstab следующим образом: 192.168.0.1:/usr/xterm / nfs defaults 0 0 proc /proc proc defaults 0 0 Вы, естественно, замените 192.168.0.1 на IP-адрес сервера для X-терминалов. Теперь установите и настройте систему X Window для X-терминала. При этом вместо менеджера пакетов RPM в Debian нужно использовать программу apt-get. Установить Х можно с помощью следующих команд: apt-get update apt-get install xserver-s3 xfonts-100dpi xfonts-base Вторая команда устанавливает сервер Х для видеокарт S3. Если у вас другая видеокарта, измените название пакета. Для SVGA-видеокарт сервер называется xserver-svga. Пока других пакетов устанавливать не нужно. Позже можно будет установить пакет с русскими шрифтами и необходимые приложения. Сейчас нас интересует функционирование самой X Window на терминале. Если вы используете Linux Mandrake (или Red Hat) как операционную систему для терминала, установка системы X Window выполняется так, как описано выше в этой главе (см. пункт 20.1). Программа apt-get задаст вам несколько вопросов и на основании ваших ответов создаст файл XF86Config. В большинстве случаев его не нужно редактировать (пока не нужно: после установки русских шрифтов его нужно будет немного поправить). У нас в данный момент нет учетных записей пользователей, кроме пользователя root, поэтому систему X Window лучше запускать из файла inittab: X:123456:respawn:/usr/bin/X11/X -query 192.168.0.1 Осталось только перекомпилировать ядро и создать загрузочный диск (компилирование ядра подробно рассматривалось в гл. 18). С этой целью перейдите в каталог /usr/src/linux и введите команду make menuconfig. Включите следующие опции: в разделе Networking options включите опцию IP: kernel level configuration, а в появившихся новых опциях отметьте BOOTP support. Если вам также нужна поддержка DHCP, включите поддержку DHCP (DHCP support). Кстати, эту опцию нужно учитывать при настройке DHCP-клиентов. В разделе Filesystems->Network filesystems включите поддержку файловой системы NFS - NFS filesystem support. После ее включения (с учетом того, что поддержка BOOTP уже включена) появится новая опция Root file system on NFS. Ее тоже нужно включить. Старайтесь сделать ядро как можно более компактным, исключив из его состава лишние опции. Я вообще рекомендую использовать ядра 2.2.х -- они более компактны, чем 2.4.х. Не забудьте включить в состав ядра драйвер для вашей сетевой платы. Итак, продолжим -- откомпилируйте ядро: make dep make bzImage Если вы использовали модули, откомпилируйте их: make modules make modules install После того как ядро откомпилировано, нужно записать его на дискету командой: dd if=bzImage of=/dev/fd0 Перед этим нужно перейти в каталог /usr/src/linux/arch/i386/boot. Теперь надо указать ядру, где искать корневую файловую систему. Если бы мы создавали обыкновенную загрузочную дискету, мы бы ввели команду: rdev /dev/fd0 /dev/fd0 Так как ваше ядро должно искать корневую систему по NFS, то вы должны выполнить следующие действия: mknod /dev/boot255 c 0 255 rdev /dev/fd0 /dev/boot255 rm -f /dev/boot255 Первая команда создает псевдоустройство /dev/boot255, вторая указывает ядру, что корневую файловую систему нужно искать по NFS, а третья удаляет только что созданное устройство, потому что оно больше не нужно нам. Установите корневой файловую систему сервера с помощью команды chroot. Теперь нужно настроить сервер. Настройка NFS рассматривалась в главе 8, а здесь я лишь напомню некоторые моменты. На вашем сервере должен быть запущен демон nfs (nfsd). Если он не установлен, установите пакет nfs-utils в Mandrake и Red Hat. Если же вы последовали моему примеру и использовали Debian на сервере, введите команду apt-get nfs-user-server. Затем добавьте следующую строчку в файл /etc/exports на сервере: /usr/xterm 192.168.0.2/255.255.255.0(rw,no_root_squash) 192.168.0.2 -- это IP-адрес X-терминала. Вы можете указать маску подсети, как это сделал я, тогда при подключении новых X-терминалов вам не нужно будет перечислять каждый терминал отдельно. После этого установите сервер BOOTP: в Mandrake и RedHat -- rpm -ih /mnt/cdrom/Mandrake/RPMS/bootparamd* в Debian -- apt-get install bootp Затем в файл /etc/bootptab (или /etc/bootparams) добавьте строчку: xterm01:vm=auto:ip=192.168.0.2:ht=ethernet:ha=xxxxxxxxxxx:rp=/usr/xterm где: xterm01 -- имя X-терминала; 192.168.0.2 -- его IP-адрес; xxxxxxxxxxx -- MAC-адрес X-терминала. В файл /etc/inetd.conf, если вы используете суперсервер inetd, добавьте строчку (или раскомментируйте ее): bootps dgram udp wait root /usr/sbin/tcpd bootpd -i -t 120 Можно также использовать следующий вариант: bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120 При использовании xinetd изменения несколько иныйе: service bootps { socket_type = dgram protocol = udp user = root wait = yes # в Linux Mandrake / Red Hat server = /usr/sbin/rpc.bootparamd # в Debian server = /usr/sbin/bootpd } Заставьте xinetd (inetd) перечитать файл конфигурации: killall -HUP inetd Теперь осталось настроить диспетчер дисплеев - xdm. При использовании Red Hat или Mandrake xdm, скорее всего, будет уже установлен. А вот если вы использовали "укороченную" файловую систему от Debian, xdm установлен не будет. Для его установки выполните (на файловой системе сервера) команду: apt-get install xdm Файлы конфигурации xdm находятся в каталоге /etc/X11/xdm. В файл Xservers добавьте строку: 192.168.0.2:0 foreign Эта строка обеспечит подключение X-терминала. В файл Xaccess добавьте строку: 192.168.0.2 Если в вашем файле xdm-config будет строка DisplayManager.requestPort: 0, то закомментируйте ее. Примеры используемых файлов конфигурации xmd приведены в листингах 20.3, 20.4, 20.5. Вот, собственно, и все. Листинг 20.3. Файл /etc/X11/xdm/Xservers # $XConsortium: Xserv.ws.cpp,v 1.3 93/09/28 14:30:30 gildea Exp $ # # # $XFree86: xc/programs/xdm/config/Xserv.ws.cpp,v 1.1.1.1.12.2 1998/10/04 15:23:14 hohndel Exp $ # # Xservers file, workstation prototype # # Each X terminal line should # look like: # XTerminalName:0 foreign # :0 local /usr/X11R6/bin/X 192.168.0.2:0 foreign Листинг 20.4. Файл /etc/X11/xdm/Xaccess 192.168.0.2 Листинг 20.5. Файл /etc/X11/xdm/xdm-config ! $XConsortium: xdm-conf.cpp /main/3 1996/01/15 15:17:26 gildea $ DisplayManager.errorLogFile: /var/log/xdm-error.log DisplayManager.pidFile: /var/run/xdm.pid DisplayManager.keyFile: /etc/X11/xdm/xdm-keys DisplayManager.servers: /etc/X11/xdm/Xservers DisplayManager.accessFile: /etc/X11/xdm/Xaccess ! All displays should use authorization, but we cannot be sure ! X terminals will be configured that way, so by default ! use authorization only for local displays :0, :1, etc. DisplayManager._0.authorize: true DisplayManager._1.authorize: true ! The following three resources set up display :0 as the console. DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0 DisplayManager._0.startup: /etc/X11/xdm/GiveConsole DisplayManager._0.reset: /etc/X11/xdm/TakeConsole DisplayManager._0.startAttempts: 1 ! DisplayManager*resources: /etc/X11/xdm/Xresources DisplayManager*session: /etc/X11/Xsession DisplayManager*authComplain: false

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:





  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor