пятница, января 28, 2011

локализация Linux

Локализация. Что это такое?

Локализация (localization, или сокращенно l10n) — это процесс адаптации программного обеспечения под конкретные национальные требования. А технически, локализация — это изменение языка интерфейса отдельных программ. Начиная с версии 3.0, Debian перешел от поставки всех локалей сразу к генерации локалей по требованию.
Локаль (locale) — это файл, содержащий таблицу с указанием того, какие символы считать буквами, и как их следует сортировать. Операционная система использует эту таблицу для отображения букв определенного национального алфавита.
По умолчанию есть только одна локаль — «C». Для установки остальных локалей нужен пакет locales. Более подробно о локализации можно прочитать в статье «Локализация, как она есть».

Итак, устанавливаем локали. А точнее — настраиваем:

# dpkg-reconfigure locales
Обычно пакет locales входит в стандартную поставку операционной системы но, если он не установлен, его необходимо установить:

# apt-get install locales



Скриншоты сделаны с уже локализованной системы, так что у вас все будет на английском языке.
Вам предложат выбрать из списка необходимые кодировки. В нашем случае для локализации мы будем использовать KOI8-R. Но и без английского языка оставаться нельзя, поэтому необходимо пометить пробелом следующие кодировки:

ru_RU.KOI8-R en_US.ISO-8859-1

Далее последует предложение выбрать кодировку по умолчанию:


Выбираем ru_RU.KOI8-R и мастер установки сгененирует нужные локали.


Console-cyrillic

Кириллизация текстового режима — самый простой способ отображать и вводить символы кириллицы. Для это нужно установить пакет console-cyrillic.:
# apt-get install console-cyrillic
В случае, если инсталлятор ответит, что данный пакет уже установлен, необходимо будет его переконфигурировать:

# dpkg-reconfigure console-cyrillic

Какие консоли вы собираетесь кирилизировать? По-умолчанию предлагается кирилизировать все консоли. Соглашаемся.



Далее следует вопрос о выборе шрифта для кирилизации. Останавливаем свой выбор на универсальном шрифте UniCyr.


Выбор размера шрифта консоли. Я используюсь 16 … каждому свое, как говорится. Так что выбираейте.


Выбор раскладки клавиатуры. Предлагаю остановиться на Russian WinKeys.


Выбор клавиш для переключения между языками ввода в консоли. Control+Shift или на ваш выбор.


Данная опция позволяет при нажатии и удерживании заданной клавиши временно изменить язык ввода. Я отключаю эту опцию (No termporary switch), но, при желании, можно выбрать в меню клавишу временного ввода.


Краткая справка по выбору кодировок. Ну, мы то и сами знаем что выбрали ранее.


Выбор кодировки (KOI8-R).


И финальный вопрос установщика: «Хотите, чтобы консоль кирилизироваллась при загрузке системы или будете сами загружать?»
Останавливаем свой выбор на положительном ответе. Иначе вам придется после каждой перезагрузки системы подгружать кирилицу командой cyr.

Затем необходимо перезагрузить сервис console-cyrillic

# /etc/init.d/console-cyrillic restart
И далее завершить сеанс и залогиниться снова, чтобы проверить насколько все получилось. Команда export

# export
выведет на экран некоторые параметры системы. Нас интересует параметр LANG. Он должен быть

declare -x LANG="ru_RU.KOI8-R"
Также нелишним будет слегка подкорректировать bash-профиль пользователя root. Нужно добавить в файл /root/.bashrc строку

export LANG="ru_RU.KOI8-R"
Это нужно для того, чтобы при использовании su из-под текущего пользователя не приходилось каждый вручную задавать язык по умолчанию.

Система локализована.

воскресенье, декабря 19, 2010

несколько заметок о sudo

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

Решение можно разделить на несколько этапов:
1)Сначала нужно установить группу пользователей или убедится в их принадлежности к какой-либо имеющейся группе (например. группе users). Для этого идем Yast — Безопасность и пользователи- управление пользователями и группами (в 10.3 - это два отдельных раздела) выбрать пользователя и нажать редактировать, перейти на вкладку «подробности». Здесь в окошке «дополнительные группы» (или просто «группы» в 10.3) мы проверяем принадлежность пользователя к выбранной группе т.е проверяем наличие галочки напротив нужной группы (чтобы не заморачиваться, я выбирал группу users, но при желании можно выбрать любую другую, и если надо что-то оригинальное, таковую можно создать в разделе управление группами) после чего жмем на ОК.
2)Настраиваем sudo. Идем Yast - Безопасность и пользователи - Sudo — в открывшемся окне выбираем правила sudo (обычно это стоит по умолчанию) и жмем добавить. Теперь в меню «Пользователь — группа или псевдоним пользователя» выбираем группу из выпадающего списка (я, как упоминал ранее, выбрал % users); в меню «хост или псевдоним хоста» выбираем ALL, меню «RunAs» оставляем пустым, и самое главное: ставим галочку напротив «Нет пароля». Чуть ниже расположено окно «команды для запуска» здесь мы жмем кнопку добавить и вводим собственно команду, доступ к которой мы хотим разрешить, с указанием полного пути, например /usr/sbin/ ваша_команда ( кстати, если путь указан неправильно, система предупредит об этом), а также, если это необходимо, можно указать дополнительные параметры команды. Теперь два раза жмем ОК и переходим к следующему этапу.
3)Необходимо немного отредактировать файл /etc/sudoers, сделав предварительно резервную копию. Это делается в любом текстовом редакторе, запущенном от рута. Нужно найти строку, которая выглядит примерно так:
%users ALL = NOPASSWD: /usr/sbin/ваша_команда.
Нужно поместить курсор в конец этой строки, удалить бекспейсом символ, отображаемый визуально как точка (подозреваю, что у него есть своё специфическое название) и нажать на Enter и сохранить получившийся файл. (Как мне объяснили, после строчки должен быть знак переноса строки, что, собственно, мы и добились редактированием.)
4)Осталось проверить работоспособность нашей конструкции: открываем терминал и пишем sudo ваша_команда (с дополнительными параметрами, если это необходимо). Если команда сработала — поздравляю, всё получилось.
5)Осталось создать на рабочем столе каждому пользователю иконку и указать в её свойствах команду типа sudo /usr/sbin/ваша_команда.
Удачи!
Из какого то блога:

digger@dignux:~$ sudo cat /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
digger ALL=NOPASSWD: ALL

Добавить в судоерсы как вариант, я о нем думал, но интересно почему так получается в стандартной реализации и где баг. Все-таки забью на проблему и пропишу себя :) Спасиб.

Это не баг. По дефолту дебиан запрещает использование команды sudo тем пользователям которые не прописаны в /etc/sudoers

А если в группу sudo добавить своего пользователя? :)

Такой вопрос: я выключаю комп, вводя sudo halt в консоли, и перегружаю через sudo reboot там же. Надоело уже каждый раз при выключении вводить свой пароль; можно ли как-нибудь сделать так, чтобы при вводе этих двух команд пароль бы не запрашивался?

Это ,кажись, через /etc/sudoers делается. Нужно строчку раскомментировать или добавить. Воспользуйся visudo. В терминале sudo visudo и редактируй файл. И читай , что digger написал.

2Константин digger Поводич: спс огромный за разъяснение. теперь все как надо. :)

2Константин mixer82 Широков: пропиши в судоерсах отмену пароля на эти комманды или вообще отмени запрос пароля при судо.

>digger ALL=NOPASSWD: ALL
вот эта строка ух как опасна

Да это же почти как под рутом сидеть, как я понимаю! Вот лично мне не влом вводить 16-тисимвольный пароль каждый раз, когда нужно, тем более что пароль действует минут пятнадцать... А на ребут можно отдельно поставить nopasswd.

Так, что касается ребута без пароля, то вроде разобрался как это сделать. А есть ли фронтенд к sudo, типа gksu или kdesu, но чтобы не тянул пол-гнома/кедов по зависимостям?

Макс, ага, правильно понимаешь.

Константин, надеюсь, Вы понимаете что есть Фронтенд? Это графика. Так чего вы хотите? Вы используете gksu, у Вас стоит Gnome, так какого банана он с собой еще потащит? GTK есть - все. Так же и с кде.
КДЕ стоит, стоит kdesu. Что за ерунду пишете? Потащит, может быть, пару либ для работы, но это в любом случае.

вот kdesudo, gksudo не ставится по дефолту, а kdesu и gksu тянутся зависимостями

А если не стоит ни гном, ни кде, а стоит какой-нибудь флюксбокс или, как в моём случае, icewm. И принцип анонимуса о том, что десктоп не нужен и все эти его либы тоже.
А хотя ладно, чёрт с ним. Если независимого от десктопов фронтенда нет, то и консольный su-to-root устроит.

>digger ALL=NOPASSWD: ALL
вот эта строка ух как опасна

Извини, но у меня в системе только один юзер - я. ЗАчем мне извращатся чтобы выполнить команду с помощью sudo?

Блин, пофиг сколько юзверей на машине. Фишка не в этом.

Cmnd_Alias SYS = /sbin/halt, /sbin/reboot
digger ALL = NOPASSWD: SYS

Вот этого хватит. Нефиг делать еще что-то беспарольное.

Или ползи под обратно винду и сиди там под админом.

Уважаемый, попрошу повежливее. Я ведь тоже послать могу, и не только в винду

Посылайте. Вот только объясните мне свою точку зрения, почему можно выставлять ALL? В данном случае абсолютно всё равно сколько пользователей в системе, это не для того сделано

sudo perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'

Воистину... не сочтите за паранойю, но я и на домашней машине убрал 10-минутное окно на sudo. Теперь сначала стоит подумать, стоит ли что-либо делать под судо, перед тем как вводить. Они же сами пишут, что
great knowledge leads to great responsibility.

Кстати, в x таки объяснили, что в дебиане по дефолту для sudo надо вводить пароль юзера а не рута.

Ема народ, так это естесственно!

Это и есть основная идея sudo, что требуется пароль юзера.
Кстати, я так и не понял, таймстампы в судо всетаки опасны, или их не удастся никак использовать сторонней программе? И если они - таки опасны, то как их отключить? Я не нашел в мане.:)

Убрал таки отмену запроса пароля и прописал себя в судоерсы :)

Всем спасиб за ответы.

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

попадется скрипток, по дурости запускаешь, а в нутри волшебные самые элементарные строки:
#!/bin/sh
sudo rm -rf /*

а потом будете орать, что никсы дырявые! Сами же себе проблемы делаете.

>Знаешь Миша, а можно еще хер себе дверью специально прищемить
>и потом всем рассказывать про неправильные двери.

(с) LOR ( )

2Артём Thomas Павлович: я наоборот убрал беспарольное судо и прописал юзера чтобы он мог пускать судо (ведь не прописав юзера в sudoers он даже судо пускать не может), НО с обязательным запросом пароля. Ещё раз повторюсь что раньше я жил под SuSe, где по дефолту надо вводить пароль рута, и столкнувшись в дебиане с непоняткой я спросил.

А. Извините, не правильно понял. К стати, цитата с Лора тоже на тему suse :)

Я когда на SuSe жил пару лет, сначала не мог понять почему её все ругают. С выходом 10.3 я начал достигать просветления. Ушел в убунту но тоже что-то не то, ставил слаку, поднимал на моем буке все, т.е. все работало, но не совсем мне подходит её идеология. Вот пришел к логическому завершению скитаний :) А на безопасности я никогда не экономил, т.к. видел что можно сделать с дырявой системой. :)

И ещё из одного:

о поводу использования Sudo в Ubuntu и отсутствие как такового рута - сказано много. Я лишь выскажу своё мнение. Sudo отличная утилита с помощью которой можно например дать права рута отдельному пользователю и только к примеру на выполнение одной единственной команды. Но в случае с UBUNTU не все так гладко, объясню чуть ниже. Что нужно было сделать, нужно создать пользователя на всех серверах UNIX (Ubuntu, Debian Lenny, FreeBSD) и дать ему права только на выполнение команды shutdown, вот сводка примеров того, что может sudo (файл настроек /etc/sudoerc):


ПРИМЕРЫ

Ниже приведены примеры записей sudoers. Возможно, некоторые из них являются выдуманными. Сначала мы определяем свои псевдонимы:


# Определение псевдонимов пользователя
User_Alias FULLTIMERS = millert, mikef, dowdy
User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim


# Определение псевдонимов Runas (Выполнить как)
Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase


# Определение псевдонимов машин
Host_Alias SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, black :\
ALPHA = widget, thalamus, foobar :\
HPPA = boa, nag, python
Host_Alias CUNETS = 128.138.0.0/255.255.0.0
Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias SERVERS = master, mail, www, ns
Host_Alias CDROM = orion, perseus, hercules


# Определение псевдонимов Cmnd (команд)
Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
/usr/sbin/restore, /usr/sbin/rrestore
Cmnd_Alias KILL = /usr/bin/kill
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt
Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su

Здесь мы переопределим некоторые встроенные значения по умолчанию. Мы хотим, чтобы sudo регистрировал события при помощи syslog(3), во всех случаях используя метод auth. Мы не хотим, что бы sudo читало лекции всем пользователям, и пользователь millert не должен указывать пароль. В добавок, на машинах в SERVERS Host_Alias мы держим дополнительный локальный файл журнала и удостоверимся, что мы регистрируем год в каждой строке файла журнала, так как записи журнала будут сохраняться в течение нескольких лет.


# Переопределяем встроенные значения по умолчанию
Defaults syslog=auth
Defaults:FULLTIMERS !lecture
Defaults:millert !authenticate
Defaults@SERVERS log_year, logfile=/var/log/sudo.log

Определение пользователя является частью, которая фактически определяет кто что может выполнять.


root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL

Мы позволим супер-пользователю (root) и любому пользователю в группе wheel выполнить любую команду на любой машине от имени любого пользователя.


FULLTIMERS ALL = NOPASSWD: ALL

Системные администраторы занятые полный рабочий день (millert, mikef и dowdy) могут выполнить любую команду на любой машине без аутентификации.


PARTTIMERS ALL = ALL

Системные администраторы занятые не полный рабочий день (bostley, jwfox и crawl) могут выполнить любую команду на любом компьютере, но сначала должны себя аутентифицировать (так как в записи отсутствует тэг NOPASSWD).


jack CSNETS = ALL

Пользователь jack может выполнить любую команду на машинах с псевдонимом CSNETS (сети 128.138.243.0, 128.138.204.0 и 128.138.242.0). Из этих сетей только <128.138.204.0> имеет явную сетевую маску (в соответствии с CIDR) означающую сеть класса C. Для остальных сетей в CSNETS в случае соответствия будет использоваться сетевая маска машины.


lisa CUNETS = ALL

Пользователь lisa может выполнять любую команду на любой машине с псевдонимом CUNETS (сеть класса B 128.138.0.0).


operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\
/usr/oper/bin/

Пользователь operator может выполнять команды ограничивающиеся простым обслуживанием. В данном случае таковыми являются резервное копирование, уничтожение процессов, система печати, выключение системы и любая команда в каталоге /usr/oper/bin/.


joe ALL = /usr/bin/su operator

Пользователь joe может выполнять только su(1) оператору.


pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

Пользователю pete разрешено изменять любой пароль, за исключением пароля супер-пользователя (root) на машинах HPPA. Учтите, что passwd(1) не воспринимает несколько имен пользователей подряд в одной командной строке.


bob SPARC = (OP) ALL : SGI = (OP) ALL

Пользователь bob может выполнять любые команды на машинах SPARC и SGI, как пользователь описанный в Runas_Alias в OP (root и operator).


jim +biglab = ALL

Пользователь jim может выполнить любую команду на машинах в сетевой группе biglab. Sudo знает, что biglab является сетевой группой из-за префикса +.


+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

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


fred ALL = (DB) NOPASSWD: ALL

Пользователь fred может выполнять команды от имени любого пользователя в Runas_Alias DB (oracle или sybase), без указания пароля.


john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

На машинах ALPHA пользователь john может выполнить su любому пользователю, за исключением супер-пользователя (root), но не имеет права задавать su(1) какие-либо флаги.


jen ALL, !SERVERS = ALL

Пользователь jen может выполнить любую команду на любой машине, за исключением машин в Host_Alias SERVERS (master, mail, www и ns).


jill SERVERS = /usr/bin/, !SU, !SHELLS

Для любой машины в Host_Alias SERVERS jill может выполнить любую команду в каталоге /usr/bin/, за исключением команд относящихся к Cmnd_Aliases SU и SHELLS.


steve CSNETS = (operator) /usr/local/op_commands/

Пользователь steve может выполнить любую команду в каталоге /usr/local/op_commands/, но только как пользователь operator.


matt valkyrie = KILL

На своей персональной рабочей станции, valkyrie, matt необходима возможность уничтожать зависшие процессы.


WEBMASTERS www = (www) ALL, (root) /usr/bin/su www

На машинах www, любой пользователь в User_Alias WEBMASTERS (will, wendy и wim), может выполнить любую команду как пользователь www (который является владельцем web-страниц) или просто su(1) к www.


ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM

Любой пользователь может монтировать или размонтировать CD-ROM на машинах в Host_Alias CDROM (orion, perseus, hercules) без ввода пароля. Ввод этого несколько утомителен для пользователей, поэтому это первейший кандидат для включения в сценарий оболочки.


Взято из мануала к sudoerc на opennet.

Согласно выше написанному, мне подходит срока:

operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,/usr/oper/bin/


Меняю ее под свои нужды:

user ALL = SHUTDOWN


(Не забудте создать пользователя user в системе!)
ВАЖНО! настройки начал с Debian Lenny, как известно встроенный root имеется. Так вот, захожу под этим пользователем и ввожу

sudo shutdown -r now


на что система говорит, данную команду может выполнить только root. Так вот!!!! в DEBIAN формат строки в sudoerc немного отличается и надо было прописать

user ALL = /sbin/shutdown


ИМЕННО ТАК! после этого пользователь user в Debian Lenny смог выполнить команду

user ALL = /sbin/shutdown


Остальные команды и операции в системе от имени рута ему запрещены, что и требовалось настроить.

Следующий этап, это настройка системы UBUNTU, все тоже самое. Создаю пользователя user и так как есть уже рабочая строка в sudoerc на Debian ее и добавляю в sudoerc

user ALL = /sbin/shutdown


Сохраняю файл и выхожу и вот тут самое интересное, при попытке выполнить sudo любая команда от системного пользователя или от пользователя user я получаю ошибку в строке 23 (это добавленная строка). Что это значит, это значит, что раз в системе нет как такового рута я не смогу поправить файл sudoerc! не смогу выполнить ни одной команды требующей прав рута, даже выключить или перезагрузить корректно сервер не смогу. Ситуация в которой приходится править файл sudoerc, если это не домашний ПК, достаточно частая и достаточно часто получается такая незадача. Возможно кто то подумает что я драматизирую и что достаточно подойти к серверу, ребутнуть его, загрузится с лайв СД и делов то. Но что если сервер за 350 км? и все настройки выполняются удаленно через консоль SSH?
Меня спасло то, что root в системе был создан очень давно, пароль к сожалению не помнил, но смог сменить его через Webmin, который так же присутствовал на системе, иначе было бы худо.
После смены пароля зашел в систему уже рутом, через su и пароль рута, далее поправил файл sudoerc, в UBUNTU синтаксис строки не такой как в Debian и надо писать:

Cmnd_Alias SHUTDOWN = /sbin/shutdown


user ALL = SHUTDOWN



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

P.S. ... производите правки sudoerc с помощью специальной утилитой visudo, защита sudo и проверка синтаксиса обеспечены, возможно это сохранит вам немного нервов и позволит избежать вышеописанного.

Удачи!
H@wk!
/Охальников Олег/

Настройка принтера на Linux

From: Сергей(Mkay82)
Newsgroups: email
Date: Mon, 23 May 2006 14:31:37 +0000 (UTC)
Subject: Настройка рабочего места ( Linux + принтер + клиент rdesktop)

Настройка рабочего места ( Linux + Open Office + HP LaserJet 1000 + rdesktop)

Доброго времени суток! Как-то мне поручили собрать рабочее место которое бы
работало бы как печатная машинка и одновременно работало бы с терминал сервером
(win 2003) в качестве клиента. Так же мне необходимо было зацепить на эту машину
принтер hp1000. В этой статье я опишу вкратце мои действия.

За основу я взял Linux Fedora Core 4.

1) Устанавливается он почти так же как и win XP, надо только при установке не
забыть поставить галки напротив CUPSD и FOOMATIC - обе эти приблуды должны
располагаться в секции, каким-то образом связанной с печатью, например,
"Печать" или "Printing" или что-то в этом духе. Так же при установке можно
настроить и сетевуху, можно, конечно, этого и не делать, но сеть вам все равно
рано или поздно понадобиться. После того как много раз нажали "Нехт" и
перегрузились можно переходить к шагу 2.

2) Будем считать, что при установке мы все сделали правильно в том числе
выставили и корректный язык - а именно русский. В итоге у нас должна быть
голая машина которая слегка прикрыта kde или gnom'om, а так же способна
пинговать все, что только дозволил провайдер. И если ваш админ не жмот - то
позволит стянуть вам с http://www.openoffice.org около 120 Mb офиса (там на
сайте есть ссылка "Projects": в ней надо найти RU - там
есть полностью локализованный офис). Распаковываем все что скачали и
устанавливаем следующим образом:

# rpm -Uhiv *rpm


По выполнению этой команды оно все развернется в /opt/openoffice.org2.0 ну или
около того ;)

После того как развернули офис надо добавить виндовые шрифты

Для этого надо папку Fonts из каталога Windows скопировать ну скажем в
/usr/X11R6/lib/X11/fonts/TTF
хотя куда вы их зальете это дело вкуса.

Затем надо добавить этот путь в переменную FontPath в /etc/X11/xorg.conf,
но я поступил проще - в /etc/fonts/fonts.cong добавил следующую строчку

/usr/X11R6/lib/X11/fonts/TTF


и все заработало.

3) Самое веселое - настраиваем принтер!!!

Если вы специально ни чего не делали с вашим ядром, то там уже есть поддержка
USB, поэтому смело заходим на http://foo2zjs.rkkda.com/ и скачиваем
http://foo2zjs.rkkda.com/foo2zjs.tar.gz

после чего вводим следующее:

# tar zxf foo2zjs.tar.gz ; это мы вроде как распаковали
# cd foo2zjs ; переходим в создавшийся каталог
# make ; очень сложная команда которая не поддается описанию, но без нее не обойтись ;))))
# make install ; а эта команда устанавливает результат предыдущей команды (ее желательно исполнить от root'a)


далее вводим:

# cat sihp1000.img > /dev/usb/lp0 ; при вводе этого принтер должен зашуршать


Теперь все готово для запуска CUPSD. Для этого вводим:

# /etc/init.d/cups start


Но для наглядности, и если у вас KDE (я не помню где это в Gnom искать) можно
сделать "Пуск->Системные параметры->Настройка сервера->Службы" Там все демоны
можно запускать одним тычком мыши. Если же у вас нет KDE то попробуйте ввести:

# /usr/bin/system-config-services ; это даст тот же эффект


4) Далее настраиваем foomatic!
Для этого втыкиваем следующую команду:

# foomatic-configure -s cups -p HP-LaserJet_1000 -c file:/dev/usb/lp0 -n hp1000 -d foo2zjs


в данном случае /dev/usb/lp0 это то к чему подключен принтер.

После этого надо любым браузером (ну скажем мозиллой так как она тоже входит в
дистрибутив) зайти на http://localhost:631 (там спросят рутовый пароль),
находим кнопку "Add printer" - в общем с приятным интерфейсом я думаю вы
разберетесь. Там же вы найдете кнопку печати тестовой страницы - "Print Test Page".

Ну, в принципе, можно печатать! (Там есть еще один нюанс - в /etc/init.d/cups
в процедуру старта можно прописать руками строчку

cat sihp1000.img > /dev/usb/lp0


чтоб принтер оживал вместе с его запуском)

5) Ну вот и самое последнее - настраиваем терминал-клиент!

Делается это очень просто: находим в сети rdesktop*.tar.gz (я лично просто
воспользовался http://www.filesearch.ru), распаковываем, набираем
последовательно:

# ./configure
# make
# make install


Вот и все! терминал клиент стоит! Чтобы им законектиться нужно ввести

# man rdesktop


и прочитать все что там написано - но если читать лень то привожу командочку
которая соединяется с сервером, таща за собой принтер и при этом не запускает
експлорер, а напрямую подключается в 1С:

# rdesktop -f -u admin -p g1pErpassw0Rd -a 16 -E -s \
'c:\Program files\1Cv77\bin\1cv7s.exe' 192.168.1.11


(все имена, пароли, пути запуска и IP адреса являются вымышленными -
любое совпадение - совпадение)

Вот собственно и все!

З.Ы. Огромное спасибо GentooMan за статью на
http://uls.gnu.kz/articles/2.html по настройке принтера!

HP 1020 и Debian Lenny

Проблемы с данным принтером у меня были на всех дистрах.
Погуглив, в третьей строке увидел ссылку: http://www.helplinux.ru/hp-laserjet-10xx

Принтеры Hp Laserjet 10xx (1000 1005 1018 1020) в Linux
Отвечаем на вопрос почему данные принтеры не работают в Linux и как это исправить.
Преамбула

Принтеры HP LaserJet 1000, 1005, 1018 и 1020 сразу после включения питания не имеют в себе прошивку (firmware, arm binary). Операционная система при обнаружении принтера должна "залить" в него необходимую прошивку и после этого работать как с обычным принтером. (Именно этим объясняется тот факт, что если не выключая принтер перезагрузиться из известной нам операционной системы от MS в Linux, принтер будет работать).
Как происходит "заливка" прошивки?

В современном Linux события о появлении новых устройств обрабатывает специальная служба udev. Правила обработки событий, т.е. что будет происходить при обнаружении новой железки, находятся в /etc/udev/rules.d/. В Ubuntu правила для принтеров обсуждаемых в данной статье находятся в файле /etc/udev/rules.d/85-hplj10xx.rules (пример для Ubuntu Gutsy).
Если правила в udev есть, почему принтер не работает?

Дело в том, что правила есть, а самих прошивок нет. Причины этого не понятны, но и не особо интересны. Мы можем скачать их сами и положить туда, где udev, в соответствии с правилами, их найдёт.
Как скачать прошивки?

В Ubuntu по умолчанию установлен пакет foo2zjs, которые содержит необходимые нам утилиты:
getweb - утилита которая "сливает" прошивки с foo2zjs.rkkda.com (вызывается следующим образом: getweb 1020 - скачает прошивку для HP LaserJet 1020)
arm2hpdl - утилита, которая добавляет необходимые заголовки для принтера HP к бинарному файлу arm (смотрите man arm2hpdl), после добавления заголовков прошивку можно заливать в принтер (этим и занимается udev)

Для проверки можно залить прошивку вручную следующим образом: cat sihp1020.dl > /dev/usb/lp0, где /dev/usb/lp0 нода устройства принтера. Нода может быть и другой, например /dev/usblp0, чтобы узнать наверняка, можно посмотреть dmesg|tail -20 после включения принтера.
Куда их положить?

Положить нужно в /usr/share/foo2zjs/firmware/
А теперь готовое решение в виде скрипта

Проверенно в Ubuntu 7.04 и 7.10
#!/bin/bash
printers="1000 1005 1018 1020"
cd /tmp
for prn in $printers; do
img="sihp${prn}.img"
dl="sihp${prn}.dl"
getweb $prn
if [ -f $img ]; then
arm2hpdl $img > $dl
sudo cp $dl /usr/share/foo2zjs/firmware/$dl
rm $img $dl
fi;
done

Чем данное решение лучше других, которые можно найти в интернет?

Другие решения помимо основной задачи, а именно, установки прошивок, выполняют другие лишние действия, например, заново устанавливают foo2zjs (который уже есть в системе), но не из deb-пакета, а из исходных кодов. Это не даёт преимуществ, но может создать проблемы при обновлении системы.

мне хватило:
#getweb 1020
#arm2hpdl sihp1020.img > sihp1020.dl

После этого все заработало
-------------------------------------Не моё, взято с http://semenovevgeni.livejournal.com/tag/hp%201020--------

суббота, марта 21, 2009

Установка Skype на Debian Lenny x64


После установки вэб камеры следующим шагом полной свободы от виндуса стал Skype. Я бы хотел сказать и последним.( тк всё остальное уже работает и настроено.)
На сайте
Skype есть скомпелированный пакет для Debian Etch, но к сожалению только для 32-х битной ОС. Поэтому для установки в 64-х битную предётся выполнить не только те требования которые приведены на сайте Skype,но и "обмануть" и представить свою систему как 32 битную,т.е установит некоторые библы(библиотеки) характерные для 32-х битной ОС.
Вот что тебуется сделать:
(1 вариант. Я так и делал и у меня получилось)
apt-get install ia32-libs ia32-libs-gtk libasound2-plugins
wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
dpkg -i --force-all skype-install.deb

Или(2-ой вариант)
//Грязный Хак :)но тоже работает :)
aptitude install ia32-libs ia32-libs-gtk
wget -O
skype-install.deb http://www.skype.com/go/getskype-linux-ubuntu-amd64
dpkg -i skype-install.deb


Есть ещё вариант(3-ий вариант):(у меня так и не получилось,
но говорят на форуме, что если всё сделать правильно то всё работает)
Взято вот с www.linuxforum.ru.

wget -c http://www.skype.com/go/getskype-linux-debian
dpkg -x skype-debian_2.0.0.72-1_i386.deb /
libglib2.0-0_2.16.6-1_i386.deb
libpcre3_7.8-2_i386.deb
libqt4-dbus_4.4.3-2_i386.deb
libqt4-ne
twork_4.4.3-2_i386.deb
libqt4-xml_4.4.3-2_i386.deb
libqtcore
4_4.4.3-2_i386.deb
libqtgui4_4.4.3-2_i386.deb


Качать их отсюда http://ftp.de.debian.org/ из сида брать лучше всего
Распаковываем из по одной в какую нибудь директорию и просто потом от
рута копируем.

paints:/home/sashka/skype# cp -a /tmp/usr/lib/* /usr/lib32/

В итоге

1-ым вариантом Я достиг того что спокойно разговариваю и общаюсь по Skype.
Чесно
говоря удобнее на много пользоваться виндовым скайпом,но будем надеятся
Глобал коллект(компания-владелец) переработает своё детище и под Linux в плане
user able'ности(Надёжность Skype под линукс железная. Работает великолепно!).
Существуют и ещё настройки,но их я думаю каждый сможет сам произвести,
там уже как кому удобней
тем более что все они в граф интерфейсе производятся
с пол тычка
.




пятница, марта 20, 2009

Установка Вэб камеры Logitech QuickCam S в Debian Lenny x64

Вот и наступило время мне полностью обустроить моё рабочее пространство в линуксе. Предыдущий раз я расказывал как установить принтер от HP в Debian/lenny(GNU/Linux мне теперь язык не поворачивается его назвать,хотя это нормально по моему так и должно быть,частично проприетарные,но безплатно используемые проги(драйвера) а остальное написанное для людей ;),для нас с вами, свободных и незаваисимых :)). Теперь как и обещал я напишу о вэб камере,которую вчера настроил под Debian x64. И _БОНУС_(!!!) я установил Skype(!). Ну а теперь как(!). Сразу хочу сказать что тут я не стал каким то новооткрываетлем или сделал что то невероятное,всё просто на самом деле! Камеры в подавляющем большенстве производятся на базе одной архитектуры микроконтроллера. Драйвера к этой архитектуре давным-давно написаны и исходные коды к ним тоже есть.И что самое интересное, они есть в этих драгоценных 5-ти дисках "Lenny". Поэтому делаем следующее: Шаг №0 Узнаём точное название камеры(просто для справки) Шаг №0.1 Подключаем её к компу и перезагружаем(если она была всегда подключена то не стоит ребутаться) и проcто вводим следующую команду: ls /dev и ищем в списках устройств "video0". Если так оно и есть значит уже всё установлено,осталось просто установить программу для работы с камерой или Skype о чём я раскажу в этом посте ,но по-позже. Шаг №0.2 Если у вас дистрибутивное ядро - там всё уже
   включено, а для любителей самосборных ядер нужно влючить:

  • v4l и все его протоколы (само v4l монолитом, протоколы - модулями)
  • i2c и его протоколы (так же, фактически как при установке
       ТВ-тюнеров)
Если это в ядре есть, дальнейшее не составит проблем.
Шаг№1

sudo aptitude install gspca-source camorama
//------------------------------------------------------------------------------
Замечание:
Я ставил пакеты из граф утилиты Synaptic. Ставил все пакеты с именем
gspca.
У меня их вот сколько:

Установил только те что отмечены.
Курсивом буду писать то что требуется сделать
если вы установили только исходники и решили
сами собрать модуль ядра.









//---------------------------------------------------------------------------------------------
И так:

В каталоге /usr/src появится архив с исходниками gspca-source.tar.bz2
- распаковываем его прямо там. После этого переходим в каталог
/usr/src/modules/gspca и там выполняем команду:
make
Модуль должен собраться без ошибок. Далее пишем:
sudo make install
Это установит наш модуль в каталог к другим модулям ядра. На всякий
случай, можно после этого написать:
sudo depmode -a
Всё, время загрузить модуль ядра для вебкамеры:
sudo modprobe gspca
Теперь всё готово. Врубаем камеру и запускаем софт.

Шаг №2

Диагностические выводы показывают, что чип опознан. Теперь должен
появиться файл устройства /dev/video0 - это и есть наша вебкамера.
После этого запускаем программу по работе с камерами (её мы
устанановили на предыдущем шаге):
$ camorama // Я это сделал через меню KDE-> Выполнить программу:camorama
Если всё было сделано верно, вы увидите видеоизображение в окошке
программы и простой интерфейс управления изображением
(яркость\контраст, насыщенность, фильтры и прочее).

Итоги//Автора статьи на которого я ссылался

Несмотря на то, что на коробке говорится только об Единственой На
Планете Земля Операционной Системе, Logitech QuickCam Messenger
отлично работает и в Линукс - и настраивается за те же три шага. Минус
сотни мегабайт бесполезного проприетарного мусора.
В процессе настройки я пользовался вот этим замечательным и
кратким руководством, так как у меня самосборное ядро. У тех, кто
пользуется дистрибутивным, может быть полезно вот это руководство.
Это руководство проверялось в следующих условиях: ядро 2.6.22,
компилятор gcc 3.4, Debian GNU/Linux Etch v4.0, gspca-source
01.00.04-2.

Пользуясь случаем, ещё раз благодарю Игоря Чернявского за
подаренную мне камеру - огромное спасибо!

Итоги //МОИ
Я тоже думал что установит камеоу это очень и очень трудно,однако как показала
практика вчерашнего дня,пол часа с ленцой и всё! Хотя не пойму что тут можно делать 30 минут!?
В общем сейчас у меня есть камера и работающий Skype(с ним придётся несколько повозится!).



суббота, марта 14, 2009

Настройка принтеров в Debian "Lenny"

Вот и пришло время мне настраивать принтере под моим любимым Debian.
В этом мне помогли посты этот потом этот и окончательно этот блоги.
Теперь собственно что зачем и с чем я работал.
Зачем:
На данный момент учусь я в техническом университете по простому говоря програмиста и уже заканчиваю это дело,как положенно, дипломом. Вот и решил я наконец сделать что-то стоящее и на Линуксе. Выбор Линукса не отнял и сикунды моего времени,а пишу я его(Диплом) на java(о дипломе потом,позже). А принтер мне нужен для распечатки ПЗ и прочей макулатуры которая идёт в довесок.
С чем:
Оборудование у меня не бог весть какое а именно комп с 64-х битным процом и такой же операционкой Debian Lenny, принтер HP LJ 1018 ну и клавиатура и мышь. Есть ещё конечно веб камера,но с ней я буду разбираться позже(наверно в следующем посту я и напишу как я её настроил)

Теперь как:
Перво на перво взял инфу с этого сайта и подробно ознакомился с работой в веб интерфейса CUPS
Затем я порыл ещё немного в интеренете и понял что просто установкой CUPS не обойтись. Далее мои действия:
wget http://foo2zjs.rkkda.com/firmware/sihp1018.tar.gz
debian:~$ tar xvzf sihp1018.tar.gz
sihp1018.img
debian:/home/gln0fate# arm2hpdl sihp1018.img > sihp1018.dl
debian~$:cp sihp1018.dl /usr/share/foo2zjs/firmware
debian:/home/gln0fate# cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0
Собственно вот и всё! просто до невозможности!
Удачной установки :)

четверг, марта 05, 2009

И вот она первая тема!
Есть новоиспечённый блог одного моего друга. Блог посвящён програмированию на С\С++ и является как бы дополнением канала cpp@conference.jabber.ru. Все-все заходите если вы новичок то узнаете о С/С++ с помощью знатоков,а если вы и сами имеете серьёзный опыт,то сами сможете помоч другим и тем паче что наверняка найдётся человек на конференции который и вам,о знаток(!), сможет сказать что-то новое,или объяснить то что раньше не давалось!