Документация по ОС FreeBSD Воскресенье, 05.05.2024, 09:07
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » X Window

Бездисковые терминалы на FreeBSD (Часть 2)
Файл /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"!


Источник: http://www.lissyara.su/?id=1191
Категория: X Window | Добавил: oleg (09.01.2008) | Автор: Алексей Кеда (lissyara)
Просмотров: 1180 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024