Tонкие клиенты - линух дистрибутив Thinstation Печать
Автор: Administrator   
02.04.10 12:04

thinstation и определение принтеров


вдоволь намучившись с усбд, решил наконец пойти верным путем =) udev - вот тот инструмент, который есть в составе синстэйшона, и мало того — готов делать то, что я пытался навесить на усбд.
с помощью udev можно не только нормально назвать какое то устройство в /dev, но и выполнить какой то скрипт при подключении\отключении устройства. то что нужно вовщем. прочитать пример можно по следующей ссылке.
вовщем я спасен. сделал некоторые изменения в рулезах удев, написал скрипт-заглушку (пока что умеет только катить прошивку 1018, и больше ничего =)) - и все отлично заработало. реагирует и на подключение принтера, и на отключение =)
для флэшек тоже кое что поменял в скрипте. правда не проверял еще =) наткнулся кстати на небольшой полезный фак, касающийся стороны неработающих клавишь в рдп сессии и еще некоторых мелочей.
вовщем нет предела совершенству. как то нужно будет научить скрипт различать принтеры, но это уже не так сложно =)

 

usbd на тонком клиенте. автоопределение принтеров


вовщем долго я оттягивал этот момент —)
в моем текущем тонком клиенте не хватает двух вещей:
1) автоопределения принтеров, так чтобы для хп 1018 лилась прошивка, а для самсунга — переписывался принткап, а не как сейчас: льем во все подряд принтеры прошивку 1018
2) коректная установка в систему подключенного после начала работы принтера. а то забывают включить принтер — получается либо им перезагружаться, либо мне вручную лить им через ssh прошивку

Вовщем все это давно не давало мне покоя, я кнчно особо не парился, но изза того что не удается печатать через расшаренный на тонком клиенте gdi принтер от самсунг (1610) прийдется это сделать =)
Заодно паралельно решил и параметры монтирования флешек подправить, так чтобы имена файлов можно было прочесть. найти скрипт, который этим занимается довольно просто =)

поскольку я не сливал соурсы thinstation, то собирал я usbd на другой тачке. собирал я его уже очень давно, так что уже даже забыл, какие файлы он вносит в систему. все что я посчитал нужными — /bin/usbd и /etc/usbd.conf
кнчно может быть я ошибся и чего то нужного забыл =\ и поэтому usbd никак не хочет реагировать на подключенный принтер.

следующий шаг — создание своего пакета для синстэйшон. эт очень просто. в build.conf в какой нить раздел добавляем нужный нам пакет. далее, копируем папку template в дириктории пакетов, присвоив новой папке имя нашего пакета. думаю говорить что дальше делать внутри пакета — не стоит. один нюанс - в etc/rc лежить симлинк на файл etc/init.d/< имя пакета >
в бин кидаем свои бинарники, скрипты запуска можно подсмотреть в соседней папке. в etc складываем нужные конфиги. все. можно собирать синстэйшон со своим пакетом =)

первое, с чем я столкнулся — в /proc/bus/usb было пусто =) но это решается допольно быстро записью в fstab нужной строки, касающейся usbfs (на память не помню, извините) и монтированием usbfs в /proc/bus/usb. после этого usbd нормально запустился, отрапортовал о подключенных устройствах, после чего я перенастроил его конфиг, вписав туда нужные вендор и продукт id. вроде все. перезапускаем усбд. подключаем принтер — и тишина =\ самое главное усбд реагирует на подключение принтера, но катить прошивку в принтер не желает =\ зараза. если бы он еще логи какие нить вел.
вовщем на этом я и остановился пока. прийдется порыться поглубже. может быть 
какое то файло  забыл. может быть конфиг не верный. может быть собран усбд не соответсвующим образом. ну хз прям.

 

 

Печать из win сервера терминалов через тонкий клиент Thinstation


Ничто так не выводит из себя как какая нить неработающая мелочь. Я вроде как замечательно справился с печатью из терминала на линуховый тонкий клиент, однако на заключительной стадии внедрения выяснилось, что из 10 тонких клиентов ни один не способен и строчки напечатать =\ конфиг клиента не менялся, принтер тоже. вовщем я в бешенстве.
Некоторое время порывшись в тырнете, пытаясь понять как вообще можно печатать с виндовой тачки на линуховую понял. Вариантов печати полно: хочешь - перенаправлением принтера через rdesktop, хочешь - расшарь с помощью самбы+lpr, хочешь - вывеси на 9100 tcp порт lp_server.
Но самое стремное - то что принтер продолжал молчать. Как выяснилось, дело в том
что прежде чем печатать в мой принтер (HP 1018) нужно влить firmware.
Выяснить подробности можно на следующем ресурсе: http://foo2zjs.rkkda.com/

Далее, я использовал пакет lpr в Thinstation, слегка подредактировав его init скрипт:

gate Thinstation-2.2 # cat packages/lpr/etc/init.d/lpr | grep lp0
cat /bin/sihp1018.dl > /dev/usb/lp0

тоесть в конце инициализации этого сервиса в принтер льется его firmware, в процессе чего тот мигает индикаторами и шуршит.

далее, в packages/lpr/bin/ я вложил firmware этого принтера. получить его можно собрав по инструкции пакет foo2zjs

Итого - принтер замечательно печатает и будучи расшареным через самбу, и после мапинга в рдп, и будучи как угодно по другому использован =)

 

thinstation - продолжение

я около трех дней не мог понять две вещи:
1) почему не подцепляются индивидуальные настройки, если в конфиге выбран пункт кастом_конфиг
2) почему вечно вылазит меню настройки графической подсистемы при загрузке с индивидуальными настройками

все как всегда было изза того, что читаю и конфиги, и манулы по диагонали.
итак. чтобы были доступны индивидуальные настройки, нужно указать протокол, по которому их нужно скачать =) а сам пунки кастом_конфиг как раз и отвечает за менюшку индивидуальных настроек видеорежима (разрешение,частоты из доступных).

для загрузки по сети с использованием сетевухи, поддеживающей pxe достаточно в биосе выбрать метод загрузки - LAN  и прописать два параметра в настройках dhcp: 066 (узел сетевой загрузки) и 067 (путь и имя к файлу загрузки).
далее положить содержимое boot-install/pxe в корень tftp сервера. я использовал net-ftp/tftp-hpa:
Homepage:            http://www.kernel.org/pub/software/network/tftp/
Description:         port of the OpenBSD TFTP server

оч. простой сервис. всеголишь достаточно указать папку-корень tftp сервера. и все =)

далее в корень нужно положить файлы настроек:
thinstation.hosts -- содержит в себе информацию для соотношения мак-адресов и имен для тонких клиентов.
thinstation.conf.network -- общие для всех клиентов настройки
thinstation.conf-<имя тачки\группа\мак-адрес>  --  настройки для определенной рабочей станции.

вторая же тачка, из которой я собирался сделать тонкого клиента отказалась грузится по сети. я долгое время пытался выяснить, как заставить его это сделать. есть оч неплохой вариант с прошиванием в биос спец области для загрузки. но мою мамку это убило =) остановив на этом эксперименты решил пойти по более простому пути: на странице ROM-o-matic.net for Etherboot version 5.4.3 создаем подходящий для нашей сетевухи вариант, будь то груб/лило загрузчик, или досовский .сом. я выбрал путь с загрузкой через груб. приходится использовать харды. но куда деваться.

проброс подцепленного к тачке принтера:
в файле индивид.настроек указываем (для усб принтера):

PRINTER_0_NAME=myprinter
PRINTER_0_DEVICE=/dev/usb/lp0
PRINTER_0_TYPE=U

и настройки сессии (должна присутвовать нулевая обязательно!):
SESSION_0_TITLE="Remote Desktop (usb printer)"
SESSION_0_TYPE=rdesktop
SESSION_0_RDESKTOP_SERVER=<ip>
SESSION_0_RDESKTOP_OPTIONS="-u <user> -p <pass> -d <domain> -a 8 -r printer:myprinter='<printer>'"
SESSION_0_AUTOSTART=On

<printer> -- имя принтера, то что поймет винда. например HP LaserJet 1018.

и в общем - все. остается воткнуть на терминале дрова для всех принтеров и радоваться жизни (если кнчно у вас уже настроен терминальник =))

 

тонкие клиенты - линух дистрибутив Thinstation


Я уже продолжительно время откладываю дописывание хауту о связке постфикс+довекот. за это время уже прибавился к конфигу amavisd-new и подцеплен spamassassin. однако пока нет времени закончить с антиспамом и нормально в нем разобраться, прикрутить веб морду к антиспаму (уже вроде подобрал. проект Maia Mailguard), но все это откладывается на неопределенный срок. просто потому что босу не видна работа с антиспамом. а вот тонкие клиенты - то что можно пощюпать.

Итак, я был точно уверен что найдется не один проект, цель которого будет использование древних тачек в качетсве тонкого клиента для различных терминальных серверов и основой которого будет линух. В итоге взял то, что показалось достаточно удачным и живым. проект thinstation, прошу любить и жаловать. Кстати, неплохая альтернатива: diet-pc

Надо сказать тонкие клиенты достаточно удачный комерческий продукт. сплошь и рядом продаются готовые мелкие коробочки к которым осталось подключить мышь, клаву, моник и принтер, пара кликов и вперед, работать =) Вот и мне захотелось получить скил организации подобной фигни =) тем более что это достаточно удачное решение для использования древних тачек, да и с точки зрения лицензирования такой подход себя оправдывает начиная с 5 клиентов. а их у меня будет 10. только в начале.

Есть два варианта использования синстэйшон: либо вы берете пребилденый вариант, либо собираете свой. Конечно же я хотел понять что и как, поэтому решил собрать свой вариант синстэйшона. для этого следуем инструкции с оф.сайта:

Building Thinstation on a Linux box

To build your own image you need a Linux box.

Download Thinstation-2.2.tar.gz from sourceforge

Linuxhost> cd /home/<user>
Linuxhost> wget http://optusnet.dl.sourceforge.net/sourceforge/thinstation/Thinstation-2.2.tar.gz

Extract the build environment

Linuxhost> tar -zxvf Thinstation-2.2.tar.gz

Edit build.conf to reflect your client hardware (I use pico). Make it as simple as possible in the beginning, and improve it once it works with a basic setup.

Linuxhost> cd Thinstation-2.2
Linuxhost> pico build.conf

If you want to have a default behaviour built in (that can be over-ridden by a thinstation.conf<whatever> file), create and edit a thinstation.conf.buildtime file. Documentation for the settings in this file can be found within this file and here.

Linuxhost> cp thinstation.conf.example thinstation.conf.buildtime
Linuxhost> pico thinstation.conf.buildtime

Now you build the client image.

Linuxhost> cd Thinstation-2.2
Linuxhost> ./build

You will find your images in your /home/<user>/Thinstation-2.2/boot-images sub-directories (depending on the deployment option you want to use).

тобишь качаем, разпаковываем, редактируем конфиги, запускаем скрипт. надо сказать на самом деле ничего не билдится. просто строится из имеющихся кирпичиков согласно build.conf необходимый образ.
Далее берем исо образ, пишем на диск и пробуем бутнуть с него какой нить древний комп. естественно в этот момент выясняется что в конфиге было сделано что то не так =) или вам захочется посмотреть как будет все выглядеть при включении icewm и тд.

вовщем привожу свой рабочий конфиг, на котором я остановился. пока что он не подключает принтер через рдесктоп и не знает под кем ему заходить на терминальный сервер. это вполне решаемо с помощью индивидуальных конфигов.

gate Thinstation-2.2 # cat build.conf | grep --invert-match ^#


module acpi                     # Advanced Configuration and Power Interface support

module agpgart                  # AGP bus module for use with AGP video cards
module amd-k7-agp               # AMD Irongate, 761, and 762 chipset support
module ati-agp                  # ATI chipset support
module intel-agp                # Intel 440LX/BX/GX, I8xx and E7x05 chipset support
module nvidia-agp               # NVIDIA nForce/nForce2 chipset support
module sis-agp                  # SiS chipset support
module via-agp                  # VIA chipset support


module 3c509                    # 3c509/3c529 (MCA)/3c579 "EtherLink III" support
module 8139too                  # RealTek RTL-8139 PCI Fast Ethernet Adapter support. VERY
#  common in no-name network cards. Covers also 8129.
module 8139cp           # RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support
module eepro                    # EtherExpressPro support/EtherExpress 10 (i82595) support
module forcedeth                # nForce Ethernet support
module sis900                   # SiS 900/7016 PCI Fast Ethernet Adapter support. Common
#  in integrated motherboards
module via-rhine                # VIA Rhine support (both Rhine I and II). Common in integrated motherboards

module usb-hid                  # Needed for USB keyboards and mice
module usb-storage              # Needed for USB-Sticks
module usb-printer              # Needed for USB-Printers

module ide-cd                   # CD-Rom Drive Support


module autofs4                  # Automount and autofs support
module isofs                    # ISO9960 file system support for CDRoms
module vfat                     # Fat and VFat file system support
module ntfs                     # NTFS file system support
module ext2                     # Ext2 file system support
module ext3             # Ext3 file system support
module supermount               # Supermount support for auto unmounting of removable media
module smbfs            # Samba client FS Support, allows you to mount smb filesystems


package xf3-svga                # XF86_SVGA 3.3.6 server
package xf3-s3                  # XF86_S3 3.3.6 server
package xorg6vnc                # Xorg VNC Server Module. With this package you can
#  connect to the Thinstation client's desktop from a java
#  browser at "http://<;TS ip>:5800

package xorg6-ati                       # ATI video driver
package xorg6-cirrus                    # Cirrus Logic video driver
package xorg6-cyrix                     # Cyrix video driver
package xorg6-i740                      # Intel i740 video driver
ackage xorg6-i810                       # Intel 8xx integrated graphics chipsets
package xorg6-mga                       # Matrox video driver
package xorg6-nv                        # NVIDIA video driver
package xorg6-r128                      # ATI Rage 128 video driver
package xorg6-radeon                    # ATI RADEON video driver
package xorg6-s3                        # S3 video driver
package xorg6-s3virge                   # S3 ViRGE video driver
package xorg6-savage                    # S3 Savage video driver
package xorg6-sis                       # SiS video driver
package xorg6-tdfx                      # 3Dfx video driver
package xorg6-trident                   # Trident video driver
package xorg6-vesa                      # Generic VESA driver, use this if you don't know what to use
package xorg6-via                       # VIA video driver

package keymaps-en_us           # English-United States
package keymaps-ru              # Russian

package rdesktop                # X RDP client for Windows Terminal Services (ver 1.5)
#  use this for low memory machines

#  It's a little bigger than blackbox.

package www                     # Web access to client.  From a browser: "http://<;IP number>"
#  The standard page is for general user settings, administrative access
#  is on port 6800.
package lp_server               # Remote printing daemon (JetDirect compatible)
package lpr                     # LPR Print Server, for use with samba-server package
package lprng           # LPRng Print Server, supports network based printing
package sshd                    # Dropbear secure shell server
#  for thinstation on a WAN over a slow link.
package samba-server            # Samba server FS Support, allows you to share
#  local floppy/cdrom/hd/printer to other Windows
#  PCs. Needs supermount for removeable media.
package samba-client            # Samba smbclient, gives a shell like environment to access an samba server
#  adds some networking based options for downloading configuration files or
#  in using hdupdate package.


package e3                      # Basic vi like Editor
#  Not recommended for normal use.

param rootpasswd   <rootpass>                       # Do Change!  Console/telnet password for root
#  If this is enabled, Telnetd will be enabled.
param xorgvncpasswd   <vncpass>                          # VNC Access Password
param storagepasswd                     # Password for storage server
param dialuppasswd                      # Password for dialin account
param sambapasswd                       # Password for samba shares when using user mode security
param bootlogo       true                               # Backgound picture during boot
param bootresolution 1024x768                           # Resolution used during Thinstation boot
param defaultconfig  thinstation.conf.buildtime         # The file with default setup.  No other config file is found
#  during boot.
param basename       thinstation                        # Used for all config/tftp/scp file names
param basepath       .                                  # Used to determine path to tftp/scp files
param localpkgs      false                              # to determine is PKG files are to be loaded locally
param fulllocales    false                              # Use full locale support for packages
param icaencryption  false                              # Use ica encryption support, add 290k to image
param bootverbosity  3 

gate Thinstation-2.2 # cat thinstation.conf.buildtime | grep --invert-match ^#

 

AUDIO_LEVEL=0
KEYBOARD_MAP=en_us
TIME_ZONE="GMT+3"
SYSLOG_SERVER=local
USB_ENABLED=On
DAILY_REBOOT=Off
AUTOPLAYCD=Off
CUSTOM_CONFIG=Off
RECONNECT_PROMPT=MENU


SCREEN=0
WORKSPACE=1
AUTOSTART=ON
ICONMODE=AUTO

SESSION_0_TITLE="bla bla"
SESSION_0_TYPE=rdesktop
SESSION_0_RDESKTOP_SERVER=192.168.0.108
SESSION_0_RDESKTOP_OPTIONS="-a 8"
SESSION_0_AUTOSTART=On

SCREEN_RESOLUTION="1024x768 | 800x600 "
SCREEN_COLOR_DEPTH="16 | 8 "
SCREEN_HORIZSYNC="30-64 | *"
SCREEN_VERTREFRESH="72 | 75 | 85"
SCREEN_BLANK_TIME=10
SCREEN_STANDBY_TIME=20
SCREEN_SUSPEND_TIME=30
SCREEN_OFF_TIME=60
MOUSE_RESOLUTION=100

SAMBA_SERVER_ENABLED=On
SAMBA_WORKGROUP=<domain>
SAMBA_SECURITY=DOMAIN
SAMBA_SERVER=<dc>
SAMBA_HARDDISK=Off
SAMBA_CDROM=Off
SAMBA_FLOPPY=On
SAMBA_PRINTER=On
SAMBA_USB=On


NET_HOSTNAME=ts_*
NET_TIME_SERVER=192.168.0.1
NET_TELNETD_ENABLED=Off
NET_REMOTE_ACCESS_FROM="192.168.0.0"

NET_USE_DHCP=On
NET_FILE_ENABLED=Off
NET_DNS1=192.168.0.1
NET_DNS2=192.168.0.254
NET_DNS_SEARCH=MYDOMAIN

STORAGE_PREFIX=I


Эти конфиги не содержать ни blackbox ни icewm. сразу после загрузки стартует rdesktop, ключи для которого по идее можно прописать в индвидуальных файлах. вклучены интересные модули самба сервер/клиент, поддержка принтеров, package www -- хттп сервер, через который можно узнать о состоянии системы, почитать логи и тд., параметр CUSTOM_CONFIG отвечает за включение индивидуальных настроек, package xorg6vnc -- веб морда vnc сервера. висит на 5800 порту. для работы с ней нужна установленная ява машина. так же активирован sshd (куда ж без него).

один раз загрузив этот дистр сразу начинаешь думать, как сменить дефолтный бутсплэш. инструкция с оф.сайта:

BootSplash images - settings

Frustrated because you tried to load your own images into Thinstation via TS-O-Matic or on your own local build and they just didn't work.

Well here's some more information on the right settings for your image as posted by Peter Leonard Krebs.

BootSplash requires very specific image settings: 1024x768 Standard (non-progressive) JPEG images saved at the following settings: 24bpp, 72x72dpi, Medium Resolution and High Quality.

From my experience you also need to ensure that there are no layers (for those of you using advanced imaging software).

единственное что еще в плане обдумывания - индивидуальные настройки и мапинг принтеров.

тоесть нужно в файлы типа thinstation.conf-<IP ADDRESS> пихнуть следующие параметры, то что касается принтеров, например если он усб:

PRINTER_0_NAME=usb
PRINTER_0_DEVICE=/dev/usb/lp0
PRINTER_0_TYPE=U

и настройки рдесктопа:

SESSION_0_RDESKTOP_OPTIONS="-u <username> -d <domain> -p <pass> -a 8"

на этом я в общем и остановился. изначально я думал использовать жесткие диски для загрузки клиентов, но поскольку файлы индивидуальных настроек ищются на tftp сервере, решил от этого отказаться. похоже буду заставлять грузится тачки по сети.

полезные ссылки проекта thinstation:

Booting/Deploying
Info about access to Microsoft Windows servers
Booting Thinstation from a Hard Disk using Syslinux
NZ school - hd boot, RDP & Samba

другие полезные ссылки, кучей:
http://thinstation.sourceforge.net/wiki/index.php/ThHowto-tftp
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=11.2004;a=02
http://www.network.xsp.ru/6_9.php
http://thinstation.sourceforge.net/wiki/index.php/ThHowto-comprehensive_guide

 

 

оригинал: http://butch.blog.ru/tag/thinstation

Последнее обновление 02.04.10 13:47