From: Андрей <sandysandy at rambler.ru>
Newsgroups: opennews
Date: Mon, 27 Apr 2004 14:31:37 +0000 (UTC)
Subject: Вариант создания собственного терминального клиента.
Оригинал: http://andrek.ipsp.ru/
Вариант создания собственного терминального клиента.
1. Ядро, минимум опций которые я использовал:
- тип процессора 386
- Networking support
- шина PCI
- тип бинарников ELF
- RAM диск
- initrd
Сетевые опции
- packet socket
- socket filtering
- unix domain sockets
- tcp networking
- ip kernel level autoconfiguration
- ip dhcp support
Драйвера сетевых адаптеров
- Virtual terminal
- Support for console on virtual terminal
- Standart generic serial port
- Mouse support
- PS/2 mouse
- /proc file system support
- second extended fs support
- vga text console
2. В сети настроены и работают сервисы dhcp и dns.
Так же необходимы работающие сервер шрифтов xfs и tftp для загрузки
образа ядра по сети.
Файл pxelinux.0 берется из пакета syslinux.
Настройка xfs сводится к закоментированию параметра no-listen = tcp в
файле /etc/X11/fs/config и перезапуска сервиса.
Этапы процесса загрузки:
- инициализация PXE
- подключение к DHCP
- загрузка загрузка pxelinux.0 чтение конфига и загрузка ядра и образа initrd
- инициализация сетевого интерфейса
- монтирование root фс
- запуск /sbin/init
- запуск скрипта инициализации rc.sysinit (http://andrek.ipsp.ru/rc.sysinit)
* монтирование /proc
* установка hostname (term-ip address)
* определение системных параметров через /proc/cmdline
* генерация /etc/resolv.conf
* определение видеокарты через /proc/pci
* генерация /etc/X11/XF86Config
* запуск X + rdesktop
3. Образ корневой фс собран на базе RedHat72, glibc-2.2.4.
Стандартный набор XFree86 был слишком раздут. Пришлось собирать, в
исходниках был только XFree86-4.4.0.
Использовался host.def
#define LinuxDistribution LinuxRedHat
#define XF86CardDrivers nv sis s3 s3virge trident via vesa
#define DefaultCCOptions -O2 -mcpu=i386 -march=i386
#define BuildFontServer no
#define BuildFonts no
#define BuildXKB no
#define BuildDPMS no
#define BuildServersOnly yes
При компиляции, пару раз вылетало с ошибками, но достаточно
заккоментировать строки с номерами ошибок, там в основном определения
которые мы запретили.
Так же присутствует поддержка мыши и PS/2 и COM1.
Поддержка сетевых адаптеров, выбирается при сборке ядра исходя из
потребностей.
Загрузить образ можно здесь http://andrek.ipsp.ru/initrd.gz (4 Mb).
Посмотреть список всех файлов (http://andrek.ipsp.ru/list.txt).
Следующие опции определены:
NSERVER - ip адрес DNS сервера в сети, по умолчанию 192.168.1.100
DOMAIN - домен, по умолчанию domain
XFSERVER - сервер шрифтов, по умолчанию xfs.$DOMAIN
TSERVER - сервер терминалов, по умолчанию tserver.$DOMAIN
VIDEODRIVER - принудительное выставление драйвера
HSYN - параметр HorizSync, по умолчанию "31-55"
VREF - параметр VertRefresh, по умолчанию "50-160"
MODES - разрешение экрана, по умолчанию "800x600"
Настройка PXE загрузчика сводится к определению файла для каждого
сетевого адреса либо default.