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
|