Возможно вы искали: 'Inordinate Desire'

May 15 2025 18:45:09
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Бездисковые терминалы на FreeBSD (xterm diskless freebsd pxe boot)

Бездисковые терминалы на FreeBSD (xterm diskless freebsd pxe boot)

Ключевые слова: xterm, diskless, freebsd, pxe, boot, (найти похожие документы)

From: Алексей Кеда (lissyara) <admin@lissyara.su.>
Date: Mon, 25 Nov 2007 18:21:07 +0000 (UTC)
Subject: Бездисковые терминалы на FreeBSD

Оригинал: http://www.lissyara.su/?id=1191


Итак, немного предыстории. Две довольно большие конторы, и одна
маленькая. Один домен на всех, общая локалка. Всё хорошо, но конторы
надо разделать, по техническим и политическим причинам. Примерно 40
человек работали в терминале. С ними и произошли проблемы -
использовался линуксовый тонкий клиент - достался по наследству, и при
переключении клиентов в другую сеть, они потеряли свои конфиги.
Копание в скриптах клиента ничего не дало - везде поменял одну сеть на
другую, но бестолку. Сидеть и подробно разбираться в чужом творении -
откровенно не хотелось. Да и не люблю я пингвинов, наверно, потому,
что готовить не умею :))

Изыскания на сайте FreeBSD привели к хандбуку. Согласно нему,
всё было просто. В общем-то, так и оказалось. На 6-й ветке тонкий
клиент завёлся и заработал влёт, но был косяк - у меня много старых
машин, и старых сетевух - они грузились по сети с дискеток, а не с
PXE-биоса сетевухи. Как оказалось, нету ни одной дискеты, которая
могла бы загрузить и переварить лоадер FreeBSD. Ближе всех к истине
оказался microsoft - у них есть загрузочная дискета для удалённой
установки, оно грузило, запускало, но как-то неправильно передавала
параметры - лоадер не получал адреса сервера и своего IP....

Помучавшись несколько дней, пришёл к выводу - с дискеты надо
грузить ядро фряхи, и корневую ФС, остальное монтировать с сети. Тока
вот в 6-й ветке, мне так и не удалось ужать ядро и корневую ФС с
уилитами до приемлемого размера. Пришлось собирать тестовую машину,
ставить 4-ю ветку. Там всё получилось, и, как выяснилось, на дискету
достаточно положить только ядро :)))

Итак. Ставим ОСь, обновляем исходные тексты системы,
пересобираем мир, ядро. Пишем примерно такой конфиг ядра (для 4.11 -
на 6.0 отличия минимальные, и всё одинаково хорошо работает и в одной
и в другой ветке.)

# ядро не обязательно делать именно таким.
# Просто, чем оно меньше будет, тем быстрей будут грузиться
# клиенты. Юзеры - народ нервный :)))
machine i386
cpu I586_CPU
cpu I686_CPU
ident diskless-1
maxusers 0
options MATH_EMULATE
options INET
options FFS
options FFS_ROOT
options SOFTUPDATES
options MFS
options MD_ROOT
options NFS
options NFS_ROOT
options PROCFS
options COMPAT_43
device isa
device eisa
device pci
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device vga0 at isa?
device sc0 at isa? flags 0x100
device agp
device npx0 at nexus? port IO_NPX irq 13
device apm0 at nexus? disable flags 0x20 # Advanced Power Management
device de
device em
device txp
device vx
device miibus
device dc
device fxp
device pcn
device rl
device sf
device sis
device ste
device tl
device tx
device vr
device wb
device xl
device bge
device ed0 at isa? disable port 0x280 irq 10 iomem 0xd8000
device ex
device ep
device fe0 at isa? disable port 0x300
device xe
pseudo-device loop
pseudo-device ether
pseudo-device pty
pseudo-device md

# следующие строки добавлял я - до этого момента лишь убирал лишнее
# цвет консоли - кому как удобней, и буфер консоли
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
options SC_HISTORY_SIZE=2022
# как раз опции для поддержки бездисковых клиентов
options BOOTP
options BOOTP_NFSROOT
options BOOTP_COMPAT


Расписывать какая опция за что отвечает - не буду, это уже
было. Конфиг обзываем, например, main-diskless. Добавляем такую
строчку в /etc/make.conf:

# Опция необязательная, нужна для загрузки ядра по TFTP а не по NFS.
# Я захотел сдеть так, вы - можете иначе.
LOADER_TFTP_SUPPORT=YES


После чего, пишем небольшой скрипт:

#!/bin/sh

export DESTDIR=/usr/local/tftp/freebsd.4.11
kernell_config="main-diskless"

mkdir -p ${DESTDIR} &&
cd /usr/src && make cleandir && make clean && make cleandir && make clean &&
make world DESTDIR=${DESTDIR} &&
cd /usr/src/etc &&
make distribution DESTDIR=${DESTDIR} &&
cd /usr/src &&
make kernel DESTDIR=${DESTDIR} KERNCONF=${kernell_config} &&
echo "Building Completed"


Ну, и сделав его исполняемым, запускаем. Ждём завершения работы, в
указанной директории (/usr/local/tftp/freebsd.4.11 - но можно и
поменять, в скрипте) должна появиться вся система, и ядро. По
окончании работы скрипта, советую проверить наличие и того, и другово.
Пока собирется мир и ядро, организуем сервер tftp, раскомментив и
слегка подправив строчку в /etc/inetd.conf:

# Следующие две строки - на самом деле - одна, просто у меня не влезли.
tftp dgram udp wait root /usr/libexec/tftpd
tftpd -l -s /usr/local/tftp/freebsd.4.11 -u root


Даём команду inetd перечитать свой конфиг (если он у вас запущен и
работает. Если не запущен, смотрите тут)

/usr/home/lissyara/>killall -1 inetd


Если есть желание логгировать запросы к tftpd, добавляем в
/etc/syslog.conf такие строки:

# TFTPd
!tftpd
*.* /var/log/tftpd.log


Затем создаём файлик и даём команду syslogd перечитать свой конфиг:

/usr/home/lissyara/>touch /var/log/tftpd.log
/usr/home/lissyara/>killall -1 syslogd
/usr/home/lissyara/>


Также, нам необходимо организовать расшаривание создаваемой
корневой системы по NFS, для этого, добавляем такие строки в
/etc/rc.conf (значение опций можно посмотреть тут)

# NFS
nfs_server_enable="YES"
nfs_server_flags="-u -n 50"
rpcbind_enable="YES"


Также расшариваем будущую корневую ФС тонких клиентов, для этого
вносим в файл /etc/exports такие строки:

# То, что расшариваем по NFS
/usr/local/tftp/freebsd.4.11 -maproot=root -network 192.168 -mask 255.255.0.0


На первый раз, можно запустить руками, или перезагрузиться, если
мир с ядром уже собрались и проинсталлились. Если будте запускать
руками, то я использую такой скрипт (вообще, он для перезапуска, чё-то
у меня не получается штатными средсвами перезапустить всю эту кучу
демонов, если правил /etc/exports)

#!/bin/sh

killall -9 rpcbind
killall -9 nfsd
killall -9 mountd
sleep 2
rpcbind
nfsd -u -n 40
mountd -r


Если используете виндовый DHCP - добавляете в него опции, у меня же
стоит isc-dhcp, посему даю опции для него:

next-server 192.168.110.254;
option root-path "192.168.110.254:/usr/local/tftp/freebsd.4.11";
filename "/boot/pxeboot";


Ну, перезупускаем dhcp, и если мир с ядром установились, пробуем
загузиться с машины подерживающей PXE. Должно получиться. Правда, сам
клиент будет по мелочи ругаться - sendmail и прочие не запустятся.
Также надо сразу подправить файл
/usr/local/tftp/freebsd.4.11/etc/fstab до такого состояния:

# fstab for diskless clients

# Корневая система в режиме только чтение (пока в rw укажите, потом смените,
# после окончательной настройки)
192.168.110.254:/usr/local/tftp/freebsd.4.11 / nfs ro 0 0
# дерево портов. Можно пользоваться и локальным - кому как удобней.
192.168.110.254:/usr/ports /usr/ports nfs rw 0 0


Собственно, дальнейшие работы я производил с тонкого клиента (ага,
загрузившись по сети на двухголовом ксеноне с гигабитной сеткой и 3Gb
памяти :)))) - надо писать конфиги, и устанавливать иксы, ибо целью
было, не посадить юзеров за консоль FreeBSD, а подрубить их к
виндовому серверу терминалов. Есть и другой метод - jail - можно
на родительской машине зайти в корневую директорию для клиентов, как в
клетку. Но - мне этот мето не подходил - я экспортировал с 6-й
FreeBSD, а на клиентах была 4.11 (перенёс с машины на машину tar`ом).
Посему ищем самую мощную доступную машину, и грузимся с неё.

Для начала, надо передвинуть с /var всё, что нужно, т.к. на тонком
клиенте /var находитя в оперативной памяти (надо сказать такую феню -
если / смонтировать в режиме чтения-записи, то /var, /tmp и /dev не
создаются в оперативке, а вот если всё в режиме только чтения - фря
создаёт их в оперативке), а собсно из родного /var нам надо лишь
/var/db/pkg который мы переместим в /usr/local/var/db/pkg. Для этого,
надо завести переменную окружения $PKG_DBDIR. Для этого, правим файл
/root/.cshrc, вносим в его начало такую строчку:
setenv PKG_DBDIR /usr/local/var/db/pkg

Делаем логоф-логон рута, проверяем:

/root/>echo $PKG_DBDIR
/usr/local/var/db/pkg
/root/>


Всё путём. Можно собирать из портов ПО. Нa 4.11 (на шохе - влёт) у
меня не собрался xorg - но я и не особо пытался, посему собираем
XFree4. C ним тоже не всё гладко, поэтому добавляем в /etc/make.conf
такие строки:

# Опция необязательная, нужна для загрузки ядра по TFTP а не по NFS.
# Я захотел сдеть так, вы - можете иначе.
# заметтьте - тут эта опция потому, что я пересобирал ядро с
#тонкого клиента, у которого свой конфиг.
LOADER_TFTP_SUPPORT=YES

# опции касающиеся иксов
InstallAppDefFiles= NO
InstallXdmConfig= NO
HasSecureRPC= NO
HasPam= NO


После чего, собираем такой список софта:

XFree86-Server-4.5.0_4 XFree86-4 X server and related programs
XFree86-clients-4.5.0_3 XFree86-4 client programs and related files
XFree86-fontDefaultBitmaps-4.5.0_1 XFree86-4 default bitmap fonts
XFree86-fontEncodings-4.5.0_1 XFree86-4 font encoding files
XFree86-libraries-4.5.0 XFree86-4 libraries and headers
expat-2.0.0_1 XML 1.0 parser written in C
fontconfig-2.3.2_6,1 An XML-based font configuration API for X Windows
freetype2-2.2.1_1 A free and portable TrueType font rendering engine
gettext-0.14.5_2 GNU gettext package
gmake-3.81_1 GNU version of 'make' utility
imake-4.5.0 Imake and other utilities from XFree86
ldconfig_compat-1.0_8 Ldconfig compatibility script
libXft-2.1.7_1 A client-sided font API for X applications
libiconv-1.9.2_2 A character set conversion library
libtool-1.5.22_2 Generic shared library support script
pkg-config-0.21 A utility to retrieve information about installed libraries
png-1.2.12_1 Library for manipulating PNG images
rc_subr-1.31_1 Common startup and shutdown subroutines used by scripts
rdesktop-1.5.0 RDP client for Windows NT/2000/2003 Terminal Server
xfree86-dri-4.5.0 OpenGL hardware acceleration drivers for XFree86
xterm-222 Terminal emulator for the X Window System


Я собирал вначале rdesktop, а уже затем всё оставшееся (осталось
то, что начиналось на заглавную букву X :)). Пока собирается ПО,
настраиваем систему - я настроил русскую локаль, и привёл
/etc/rc.conf к такому состоянию:

# Русский язык в консоли
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"

# Запускаем sshd для удалённого доступа к клиентам
sshd_enable="YES"
# Убираем запуск sendmail (я вообще поставил на тонких клиентов exim :))
sendmail_enable="NONE"
# Включаем syslogd (пусть месаги всякие пишет)
syslogd_enable="YES"
# включаем крон - я установил /usr/ports/sysutils/bsdstats и настроил на
# запуск днём - нехай в России будет больше фрях :))
cron_enable="YES"

# Размер /var для бездисковой станции (в 512-байтных блоках!)
varsize="6144" # У меня - 3 мегабайта

# Опции касающиеся мыши. У мeня у всех PS/2
moused_enable="YES"
moused_type="auto"
moused_port="/dev/psm0"


Далее, пишем такой набор скриптов:

/usr/home/lissyara/>more /usr/local/etc/rc.d/thin_startup.sh
#!/bin/sh

# Используемые в иксах переменные:
# ${x_keyboard} - модель клавы
# ${x_mouse_proto} - протокол мыши
# ${x_mouse_device} - устройство мыши
# ${x_horiz_sync} - горизонтальная развёртка
# ${x_vert_refresh} - частота обновления кадров
# ${x_vga_driver} - драйвер видеокарты
# ${x_color_bits} - скольки битный цвет в иксах

# Ввиду того, что по DHCP клиент не получает DNS-сервер,
# указываем его тут
dns_server_ip="192.168.0.254"

# сервер времени в локальной сети (у меня много старых компов с чуть живыми
# батрейками, а F1 юзеры уже давно сами нажимать научились :))
local_ntp_server="192.168.0.253"

# Имя пользователя, от которого будут работать иксы.
x_username="ThinUser"
x_user_profile_dir="/var/user_profile"
users_configs_dir="/usr/local/etc/thin_configs"

PATH="/sbin:/bin:/usr/sbin:/usr/bin:
/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin"

# Если завершение работы - ничё не делаем.
case "$1" in
stop)
# нихрена не делаем :)
# Просто, без этого пункта, при остановке тонкого клиента,
# снова запускаются иксы
;;

# Если старт - запускаем rdesktop
start)
# синхронизируем время на клиенте (в фоне, т.к.
# сервер может вообще не ответить)
ntpdate -b ${local_ntp_server} &
# Вытаскиваем персональные настройки клиента.
# Определяем его MAC-адрес
client_mac=`ifconfig | grep ether | awk '{print $2}' |
tr -d ":" | tr "[:lower:]" "[:upper:]" | tail -1`
# Инклюдим персональный конфиг клиента, если он сущствует
if [ -s ${users_configs_dir}/${client_mac}.conf ]
then
. ${users_configs_dir}/${client_mac}.conf
else
. ${users_configs_dir}/defaults.conf
fi

# Стругаем директорию, где будет лежать конфиг иксов
mkdir -p /var/etc/X11
rm -R /etc/X11 >/dev/null 2>&1
ln -s /var/etc/X11 /etc/X11 >/dev/null 2>&1
# Глобальная конфигурация - создаём пользовательский конфиг
# иксов из шаблона - xorg.conf.template
. ${users_configs_dir}/conf/xorg.conf.template

# hostname
hostname ${win_user_name}.${win_domain}
rm /etc/resolv.conf >/dev/null 2>&1
ln -s /var/etc/resolv.conf /etc/resolv.conf >/dev/null 2>&1
echo "domain ${win_domain}" > /var/etc/resolv.conf
echo "nameserver ${dns_server_ip}" >> /var/etc/resolv.conf
# Создаём домашнюю директорию для пользователя
mkdir -p ${x_user_profile_dir}/${x_username}

# На этом этапе можно подрубить swap - если на клиентах мало памяти.
# Выглядеть это будет примерно так (где /swap смонтирована с машины
# на которой расшарена директория с правами на запись по NFS
# if [ ! -s /swap/${client_mac}.swp ]
# then
# echo "Adding SWAP file...."
# dd if=/dev/zero of=/swap/${client_mac}.swp bs=1m count=128
# swapon /swap/${client_mac}.swp
# else
# echo "Adding SWAP file...."
# swapon /swap/${client_mac}.swp
# fi

# Запускаем бесконечный цикл
${users_configs_dir}/conf/rdesktop_polling.sh ${win_user_name}
${win_ts_server} ${x_user_profile_dir} ${x_username} &

# Валим %)
exit;

. /usr/local/etc/thin_configs/conf/thin_startup.sh
# конец скрипта
;;

# справка по использованию

*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
exit;


Файл /usr/home/lissyara/>more /usr/local/etc/thin_configs/conf/rdesktop_polling.sh

#!/bin/sh

# Параметры --> переменные
win_user_name="$1"
win_ts_server="$2"
x_user_profile_dir="$3"
x_username="$4"

# Запускаем бесконечный цикл
while test 1 -eq 1
do
# считаем число процессов rdesktop.
rdesktop_proc="`ps -ax | grep rdeskt | grep -v grep |
grep -v '/bin/sh' | wc -l`"
# ПРоверяем, работает ли rdesctop
if [ ${rdesktop_proc} -ne 1 ]
then
# создаём файл .xinitrc
echo "exec /usr/local/bin/rdesktop
-u ${win_user_name} -n ${win_user_name}
-d grand-prix -f -N ${win_ts_server}" >
${x_user_profile_dir}/${x_username}/.xinitrc
# Даём на неё ему права
chown ${x_username} ${x_user_profile_dir}/${x_username}
su ${x_username} -c /usr/X11R6/bin/startx 2>/dev/console &
# Засыпаем на 35 секунд, потом снова будем проверять.
# sleep 35
fi
sleep 35
done

#-k en-us

exit;


После чего не забываем сделать их исполняемыми и заводим нужного
юзера:

/usr/home/lissyara/>pw useradd ThinUser -d /var/user_profile/ThinUser
/usr/home/lissyara/>chmod +x /usr/local/etc/rc.d/thin_startup.sh
/usr/home/lissyara/>chmod +x /usr/local/etc/thin_configs/conf/rdesktop_polling.sh
/usr/home/lissyara/>


Ну, можно завести себя, чтоб ходить по ssh, можно разрешить вход
руту. Кому как удобней - тут о секурности можно не особо
беспокоится... Также кладём конфиг для иксов -
/usr/local/etc/thin_configs/conf/xorg.conf.template

# Этот файл не написан мною с нуля, откуда-то скатан рабочий образец и
# рашпилем (это такой напильник с крупными зубьями :)) подрихтован под
# свои нужды. Соответственно комменты - минимальны, и тока в тех местах,
# где вместо фиксированных настроек прописаны переменные.

# Создаём конфиг иксов в /etc/X11/xorg.conf (не забываем, что эта директория
# у меня является симлинком на ``/var/etc/X11'', т.к. ``/'' подмонтирован в
# режиме только чтения.)

echo "# Конфиг тонкого клиента ${win_user_name}. Создан автоматически из
# шаблона ``/usr/local/etc/thin_configs/xorg.conf.template''
# ${current_date} в ${current_time}
Section "Module"
Load "dbe"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
Load "type1"
Load "freetype"
EndSection

Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/local"
EndSection

Section "ServerFlags"
Option "DontZap"
EndSection

Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbDisable"
Option "XkbRules" "xfree86"
# Если поставить клаву отличающуюся от 102 то будет лочиться клава
# при нажатии ALT+SHIFT - в принципе, правиться в иксовых раскладках
# тока мне это нафик не нужно....
Option "XkbModel" "${x_keyboard:-pc102}"
Option "XkbLayout" "en"
EndSection

Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "${x_mouse_proto:-SysMouse}"
Option "Device" "${x_mouse_device:-/dev/sysmouse}"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "monik"
HorizSync ${x_horiz_sync:-30-70}
VertRefresh ${x_vert_refresh:-60-100}
EndSection

Section "Device"
Identifier "monik_device"
VendorName "Unknown"
BoardName "Unknown"
Driver "${x_vga_driver:-vesa}"
Option "NoAccel" "0"
EndSection

Section "Screen"
Identifier "Screen 1"
Device "monik_device"
Monitor "monik"
DefaultDepth 24

Subsection "Display"
Depth ${x_color_bits:-24}
Modes ${x_resolution:-"1024x768" "800x600" "640x480"}
ViewPort 0 0
EndSubsection
EndSection

Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

" >/etc/X11/XF86Config
# в xorg конфиг называется иначе
#> /etc/X11/xorg.conf


Выкладываем дефолтовый конфиг клиента -
/usr/local/etc/thin_configs/defaults.conf, который сразу можно
подравить под себя (имя домена и сервера)

# first.config

# Имя пользователя - используется для имени хоста,
# и для имени, с которым коннектится
win_user_name="change_user_name_in_config"
# Домен в которых будет логиниться юзер
win_domain="CHANGE-DOMAIN-NAME-IN-CONFIG"
# Имя сервера терминалов
win_ts_server="TS"

# Настройки иксов.
# Горизонтальная развёртка
x_horiz_sync="30-70"
# Частота обновления кадров
x_vert_refresh="60-100"
# Драйвер видеокарты
x_vga_driver="vesa"
# Скольки битный цвет
x_color_bits="24"
# Разрешение моника (именно в одинарных и двойных кавычках!!)
x_resolution='"1024x768"'


Также, надо сделать симлинк /tmp --> /var/tmp

/usr/home/lissyara/>cd /
//>rm -R tmp/
//>ll / | grep tmp
//>ln -s /var/tmp
//>ll
lrwxr-xr-x 1 root wheel 8B 14 ноя 06:38 tmp -> /var/tmp
//>


Пожалуй, всё. Перезагружаемся, смотрим - подымутся ли иксы. Должны
подняться. Типичный конфиг клиента выглядит так:

/usr/home/lissyara/>more /usr/local/etc/thin_configs/0050BF694851.conf
# Имя пользователя - используется для имени хоста,
# и для имени, с которым коннектится
win_user_name="lissyara"
# Домен в которых будет логиниться юзер
win_domain="DOMAIN.NAME.OF.MY.DOMAIN"
# Имя сервера терминалов
win_ts_server="TerminalServerName"

# Настройки иксов.
# Горизонтальная развёртка
x_horiz_sync="30-70"
# Частота обновления кадров
x_vert_refresh="85"
# Драйвер видеокарты
x_vga_driver="s3virge"
# Скольки битный цвет
x_color_bits="24"
# Разрешение моника (именно в одинарных и двойных кавычках!!)
x_resolution='"1024x768"'


Список драйверов можно глянуть тут:

/usr/X11R6/lib/modules/drivers/>ls -alh
total 3586
drwxr-xr-x 2 root wheel 1K 15 ноя 09:57 .
drwxr-xr-x 9 root wheel 1K 15 ноя 09:57 ..
-r--r--r-- 1 root wheel 113K 15 ноя 09:57 apm_drv.o
-r--r--r-- 1 root wheel 14K 15 ноя 09:57 ark_drv.o
-r--r--r-- 1 root wheel 47K 15 ноя 09:57 ati_drv.o
-r--r--r-- 1 root wheel 146K 15 ноя 09:57 atimisc_drv.o
-r--r--r-- 1 root wheel 138K 15 ноя 09:57 chips_drv.o
-r--r--r-- 1 root wheel 32K 15 ноя 09:56 cirrus_alpine.o
-r--r--r-- 1 root wheel 9K 15 ноя 09:56 cirrus_drv.o
-r--r--r-- 1 root wheel 24K 15 ноя 09:56 cirrus_laguna.o
-r--r--r-- 1 root wheel 22K 15 ноя 09:57 cyrix_drv.o
-r--r--r-- 1 root wheel 202K 15 ноя 09:56 glint_drv.o
-r--r--r-- 1 root wheel 49K 15 ноя 09:57 i128_drv.o
-r--r--r-- 1 root wheel 40K 15 ноя 09:56 i740_drv.o
-r--r--r-- 1 root wheel 197K 15 ноя 09:57 i810_drv.o
-r--r--r-- 1 root wheel 198K 15 ноя 09:56 mga_drv.o
-r--r--r-- 1 root wheel 65K 15 ноя 09:56 neomagic_drv.o
-r--r--r-- 1 root wheel 251K 15 ноя 09:57 nsc_drv.o
-r--r--r-- 1 root wheel 75K 15 ноя 09:56 nv_drv.o
-r--r--r-- 1 root wheel 89K 15 ноя 09:57 r128_drv.o
-r--r--r-- 1 root wheel 139K 15 ноя 09:57 radeon_drv.o
-r--r--r-- 1 root wheel 36K 15 ноя 09:56 rendition_drv.o
-r--r--r-- 1 root wheel 39K 15 ноя 09:56 riva128.o
-r--r--r-- 1 root wheel 48K 15 ноя 09:56 s3_drv.o
-r--r--r-- 1 root wheel 69K 15 ноя 09:56 s3virge_drv.o
-r--r--r-- 1 root wheel 71K 15 ноя 09:56 savage_drv.o
-r--r--r-- 1 root wheel 73K 15 ноя 09:57 siliconmotion_drv.o
-r--r--r-- 1 root wheel 526K 15 ноя 09:56 sis_drv.o
-r--r--r-- 1 root wheel 66K 15 ноя 09:56 tdfx_drv.o
-r--r--r-- 1 root wheel 43K 15 ноя 09:56 tga_drv.o
-r--r--r-- 1 root wheel 127K 15 ноя 09:56 trident_drv.o
-r--r--r-- 1 root wheel 61K 15 ноя 09:56 tseng_drv.o
-r--r--r-- 1 root wheel 19K 15 ноя 09:57 vesa_drv.o
-r--r--r-- 1 root wheel 15K 15 ноя 09:57 vga_drv.o
-r--r--r-- 1 root wheel 327K 15 ноя 09:57 via_drv.o
-r--r--r-- 1 root wheel 34K 15 ноя 09:56 vmware_drv.o
/usr/X11R6/lib/modules/drivers/>


Замечу, что драйвер vesa - практически универсальный, но не всегда
он тянет большое разрешение и частоту обновления, он - выход на
крайний случай, когда не удалось подобрать драйвер производителя.

Осталось последнее - у меня больше половины клиентов, без сетевух с
поддержкой PXE - надо создать загрузочную дискету. Для этого выполняем
такой набор телодвижений (без комментов, тока примечание - делалось на
FreeBSD4.11 на 6.1 будет отличаться.)

/usr/home/lissyara/>mkdir boot_floppy
/usr/home/lissyara/>cd boot_floppy
/usr/home/lissyara/boot_floppy/>dd if=/dev/zero of=boot_floppy.img count=1440 bs=1k
1440+0 records in
1440+0 records out
1474560 bytes transferred in 2.135704 secs (690433 bytes/sec)
/usr/home/lissyara/boot_floppy/>vnconfig -s labels -c /dev/vn0 boot_floppy.img
/usr/ho..skipped.._ppy/>disklabel -Brw -b /boot/boot1 -s /boot/boot2 vn0c fd1440
/usr/home/lissyara/boot_floppy/>newfs -i 32768 -m 0 -p 0 -o space /dev/vn0c
Warning: Block size restricts cylinders per group to 6.
Warning: 1216 sector(s) in last cylinder unallocated
/dev/vn0c: 2880 sectors in 1 cylinders of 1 tracks, 4096 sectors
1.4MB in 1 cyl groups (6 c/g, 12.00MB/g, 64 i/g)
super-block backups (for fsck -b #) at: 32
/usr/home/lissyara/boot_floppy/>mount /dev/vn0c /mnt
/usr/home/lissyara/boot_floppy/>mkdir -p /mnt/boot
/usr/home/lissyara/boot_floppy/>cp /boot/loader /mnt/boot
/usr/home/lissyara/boot_floppy/>echo "echo Loading kernel..." >> /mnt/boot/loader.rc
/usr/home/lissyara/boot_floppy/>echo "load /kernel" >> /mnt/boot/loader.rc
/usr/ho..skipped.._ppy/>echo "echo Kernel loaded successful" >> /mnt/boot/loader.rc
/usr/home/lissyara/boot_floppy/>echo "autoboot 1" >> /mnt/boot/loader.rc
/usr/home/lissyara/boot_floppy/>cp /kernel ./
/usr/home/lissyara/boot_floppy/>gzip --best kernel
/usr/home/lissyara/boot_floppy/>ls -alh kernel.gz
-r-xr-xr-x 1 root wheel 944K 17 ноя 15:28 kernel.gz
/usr/home/lissyara/boot_floppy/>cp kernel.gz /mnt/
/usr/home/lissyara/boot_floppy/>umount /mnt
/usr/home/lissyara/boot_floppy/>vnconfig -u vn0
/usr/home/lissyara/boot_floppy/>


Всё. Пишем полученный флоп такой командой:

dd if=boot_floppy.img of=/dev/fd0


P.S. C дискеты довольно долго грузиться, ядро всё же не
маленькое...
P.S.2 Писалось после сделанного, мог чего-то забыть...
P.S.3 Не забываем сделать корень "ro"!
1479 Прочтений •  [Бездисковые терминалы на FreeBSD (xterm diskless freebsd pxe boot)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Бездисковые станции и терминалы на ... Ukraine Vova 08.05.2012
• Бездисковые терминалы на FreeBSD (x... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка