Что из себя представляет аппаратная начика?
Железка очень хитрая: фактически - это USB-хаб с одним портом, к которму припаян 3G модем от Novatel:
Вводим команду и смотрим определился ли модем в системе
lsusb
AT-команды и дозвонные скрипты
Если терминальная линия нашлась, можно приступить к проверке уровня сигнала и выходу в Сеть.
Для проверки качества сигнала используем порт ttyUSB2 и AT-команду AT+CSQ?:
% cat /dev/ttyUSB2 &
% echo 'AT+CSQ?' > /dev/ttyUSB2
20, 99
OK
% fg
жмем контрол-C
Первая команда открыват порт на чтение, вторая пишет в него команду, после чего он отвечает двумя цифрами и словом OK, команда fg с нажатием Ctrl-C закрывает порт.
Первая цифра - уровень сигнала (RSII). В примере - 20 из 31. Если она равна 99 - модем не видит покрытие. Вторая цифра всегда 99 и ничего не значит, насколько мне известно.
После проверки уровня сигнала можно приступать к "дозвону". Необходимо создать три файла: два конфига pppd и дозвонный скрипт для chat.
Файл первый: конфиг с дозвоном. /etc/ppp/peers/people:
connect "/usr/sbin/chat -v -f /etc/chatscripts/cdma"
usepeerdns
defaultroute
/dev/ttyUSB0
921600
noauth
user "IT"
password "IT"
Файл второй: конфиг без дозвона. /etc/ppp/peers/people-noinit:
usepeerdns
defaultroute
/dev/ttyUSB0
921600
noauth
user "IT"
password "IT"
Файл третий: скрипт дозвона. /etc/chatscripts/cdma:
'' 'ATZ'
SAY "ATZ sent\n"
'OK' 'ATE0V1&F&D&D2&C1&C2S0=0'
SAY "Init 1 sent\n"
'OK' 'ATE0V1'
SAY "Init 2 sent\n"
'OK' 'ATS7=60'
SAY "Init 3 sent\n"
'OK' 'ATD#777'
SAY "Dialing\n"
'CONNECT' ''
SAY "\n connected"
Подключение
Теперь можно подключаться с помощью команды
% pppd call people
Команды нужно давать либо от имени root (через su, sudo или как вам нравится), либо установив SUID бит на бинарник pppd командой
% chmod +s $(which pppd)
Чтобы удалить pppoe соеденение нужно сделать от рута killall pppoe
среда, 13 июля 2011 г.
Настройка сенсорного экрана Linux Ubuntu 10.10
По своей работе мне пришлось столкнуться с сенсорным киоском производства криворожской компании "Сенсорные киоски"
1. Определение типа оборудования:
У меня в наличии был сенсорный экран подключаемый по USB.
Соответственно, для определения модели моего устройства я воспользовался командой
lsusb
вот что она вывела мне в консоли:
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Вторая строка этого списка указывает на eGalax TouchScreen - вот оно! Запишем название себе в блокнот
2. Устраняем ошибки драйвера для поддержки мультитача
sudo nano /etc/default/grub
в строку GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
добавляем i8042.noloop=1 usbhid.quirks=0xeef:0x1:0x40
чтобы получилось GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.noloop=1 usbhid.quirks=0xeef:0x1:0x40"
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
обновляем конфигурацию загрузчика
sudo update-grub
3. Блокируем использование устройства несколькими модулями ядра:
редактируем blacklist.conf
sudo nano /etc/modprobe.d/blacklist.conf
Добавляем в конец редактируемого файла строку:
blacklist usbtouchscreen
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
4. Прописываем конфиги устройства в Х файлы :-)
sudo mkdir /usr/lib/X11/xorg.conf.d
sudo nano /usr/lib/X11/xorg.conf.d/05-evdev.conf
Добавляем такие строки в редактируемый файл:
Section "InputClass"
Identifier "eGalax"
MatchProduct "eGalax"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "SwapAxes" "off"
Option "Calibration" "2 4100 11 4099"
EndSection
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
Значения калибровки "2 4100 11 4099" подходят для разрешения 1366 x 768 пикселей. Вы всегда сможете подкорректировать их после пункта 6 данной инструкции.
5. Скачиваем текущую версию xinput-calibrator (0.7.5)
wget https://github.com/downloads/tias/xinput_calibrator/xinput-calibrator_0.7.5-1ubuntu1_i386.deb --no-check-certificate
и устанавливаем ее
sudo dpkg -i xinput-calibrator_0.7.5-1ubuntu1_i386.deb
Перезапускаем систему
1. Определение типа оборудования:
У меня в наличии был сенсорный экран подключаемый по USB.
Соответственно, для определения модели моего устройства я воспользовался командой
lsusb
вот что она вывела мне в консоли:
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Вторая строка этого списка указывает на eGalax TouchScreen - вот оно! Запишем название себе в блокнот
2. Устраняем ошибки драйвера для поддержки мультитача
sudo nano /etc/default/grub
в строку GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
добавляем i8042.noloop=1 usbhid.quirks=0xeef:0x1:0x40
чтобы получилось GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.noloop=1 usbhid.quirks=0xeef:0x1:0x40"
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
обновляем конфигурацию загрузчика
sudo update-grub
3. Блокируем использование устройства несколькими модулями ядра:
редактируем blacklist.conf
sudo nano /etc/modprobe.d/blacklist.conf
Добавляем в конец редактируемого файла строку:
blacklist usbtouchscreen
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
4. Прописываем конфиги устройства в Х файлы :-)
sudo mkdir /usr/lib/X11/xorg.conf.d
sudo nano /usr/lib/X11/xorg.conf.d/05-evdev.conf
Добавляем такие строки в редактируемый файл:
Section "InputClass"
Identifier "eGalax"
MatchProduct "eGalax"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "SwapAxes" "off"
Option "Calibration" "2 4100 11 4099"
EndSection
Сохраняем файл Ctrl+O ентер
Выходим Ctrl+X
Значения калибровки "2 4100 11 4099" подходят для разрешения 1366 x 768 пикселей. Вы всегда сможете подкорректировать их после пункта 6 данной инструкции.
5. Скачиваем текущую версию xinput-calibrator (0.7.5)
wget https://github.com/downloads/tias/xinput_calibrator/xinput-calibrator_0.7.5-1ubuntu1_i386.deb --no-check-certificate
и устанавливаем ее
sudo dpkg -i xinput-calibrator_0.7.5-1ubuntu1_i386.deb
Перезапускаем систему
Mutt, ssmtp и отправка отчетов
Итак, под катом — статья о практике отправки отчетов по e-mail. Сейчас, перечитывая текст, понимаю, что статья — не фонтан, но может кому-нибудь пригодится.
Часто передо мной встает задача вроде такой: необходимо ежемесячно (или еженедельно/ежедневно) обработать такие-то логи, построить по ним отчет и отправить его на заданный E-Mail. В этой статье я как раз хотел бы рассказать о второй части такой задачи, а именно об отправке отчетов. Казалось бы, такая рутинная операция, но трудности с ней возникают чаще, чем может показаться на первый взгляд.
Я предпочитаю использовать уже готовые, проверенные временем, программы, а не писать каждый раз собственные скрипты. В большинстве случаев нужная программа уже была когда-то кем-то написана, зачем изобретать велосипед?
Для отправки отчетов я пользуюсь mutt.
Чтобы при помощи mutt послать письмо с аттачем, достаточно команды
mutt -s Subject -a File User@Host.com
где Subject — тема сообщения, File — имя прикрепляемого файла, а User@Host.com — получатель письма. К письму можно прикрепить несколько файлов или указать несколько получателей. Текст письма программа читает из stdin.
По умолчанию mutt использует sendmail в качестве MTA. Обычно с этим не возникает трудностей — после установки mutt мы можем сразу приступить к написанию скриптов и все будет прекрасно работать. Но мне приходилось сталкиваться с ситуацией, когда посылка писем напрямую с сервера просто запрещена правилами фаервола. В этом случае следует использовать сторонний SMTP сервер.
Проблема в том, что mutt не имеет функций MTA, то есть работа с SMTP — не его задача. Тем не менее, можно научить его слать почту через заданный smtp-сервер и поможет ему в этом программа ssmtp.
Строго говоря, ssmtp является не MTA, а просто smtp-клиентом, эмулирующим работу sendmail.
Настройка ssmtp производится путем редактирования файла /etc/ssmtp/ssmtp.conf (в вашей ОС путь к файлу может быть другим). Вот как он примерно выглядит:
root=reports@example.ru # от чьего имени шлем письма
mailhub=smtp.example.ru:465 # smtp-сервер и порт
hostname= smtp.example.ru:465 # имя нашего хоста, желательно вписать верное
AuthUser=reports@example.ru # логин
AuthPass=qwerty # пароль
UseTLS=Yes # используем зашифрованное соединение
FromLineOverride=Yes # Поле From: может задавать mutt
Если вы хотите слать отчеты через Gmail, конфиг будет выглядеть немного иначе:
root=reports@gmail.com
mailhub=smtp.gmail.com:587
hostname=localhost
UseSTARTTLS=YES
AuthUser=reports@gmail.com
AuthPass=qwerty
FromLineOverride=Yes
Пытаемся послать тестовое письмо с помощью ssmtp:
echo "" | ssmtp -v -s Hello admin@example.ru
Если письмо успешно дошло, значит все было сделано правильно. Если ssmtp говорит нечто вроде:
. . .
[->] MAIL FROM:<root@localhost>
[<-] 573 root@localhost failed to route the address
ssmtp: 573 root@localhost failed to route the address
тоже не проблема, просто ssmtp указал неверный адрес отправителя, и smtp-сервер это заметил. Когда будем слать почту через mutt, все будет задано верно.
Чтобы mutt слал почту через ssmtp, в домашнем каталоге пользователя, от имени которого мы собираемся слать отчеты, нужно подправить файл .muttrc
set sendmail="/usr/local/sbin/ssmtp" # путь к ssmtp
set realname="Example Report System" # имя отправителя
set from="reports@example.ru" # e-mail отправителя
Проверяем работу mutt:
echo "" | mutt -s Hello admin@example.ru
Письмо должно успешно дойти до получателя. Если вы хотите использовать mutt в скриптах, запускаемых по крону, нужно иметь ввиду, что mutt находится в каталоге /usr/local/bin, который по умолчанию не прописан в переменную окружения PATH в вашем crontab. Решения два — либо исправить переменную окружения PATH в кронтабе, либо использовать полное имя mutt в скриптах.
Просмотр и написание почты (mutt)
В качестве MUA, как я уже писал, у нас будет работать mutt. Это
консольная, очень удобная и простая в использовании, программа для
чтения и написания писем. Попробую коротко описать как ее настраивать
и использовать.
Создаем файл /home/user_name/.muttrc:
$ touch /home/user_name/.muttrc
Открываем и пишем:
# .muttrc - конфиг для mutt
# ---------------
# Общие настройки
# ---------------
set folder=~/Mail # каталог для почты
set alias_file=~/.mail_aliases # файл алиасов
set arrow_cursor # курсор в виде '->'
set attribution="%d, %n написал:"
# начало письма при ответе
set copy=yes # сохранять копии исходящих писем
set edit_headers # редактировать заголовки письма
set editor="vim" # редактор писем
set folder_format="%t%N %-30.30f %8s"
# вид списка папок
set index_format="%4C %Z %{%b %d} %-31.31F %N (%4c) %s"
# вид списков писем
set mailcap_path="~/.mailcap" # путь к .mailcap
set menu_scroll # прокручивать список по одной строке
set mail_check=5 # интервал проверки почты
set mbox=+mbox # файл для прочитанных сообщений
set mime_forward=ask-no # запрашивать вид пересылаемого письма
set pager_stop # в конце письма не переходить на следующее
set postponed=+drafts # черновики
set print=ask-yes # запрос перед печатью файла
set print_command=lpr # команда печати
set record=+sent # куда сохранять отправленные письма
set signature="~/.signature" # файл с подписью к сообщениям
# set show_alt # y/n вместо д/н
set send_charset="us-ascii:iso-8859-1:koi8-r:windows-1251:utf-8"
# кодировка отправляемых писем
set visual=vim # редактор вызываемый по ~v
# сортировка писем при просмотре
set sort=threads
set sort_aux=reverse-date-received
set sort_browser=reverse-date
# путь к спулу почты
# procmail уже обработал почту и вы можете указать здесь файл mbox
set spoolfile='~/Mail/mbox'
# поле From заголовка отправляемых писем
set from="KIOSK1 <kiosk1@korsa.ua>"
# собственные заголовки писем можно устанавливать с помощью my_hdr
my_hdr X-Url: http://alenitchev.nm.ru
# ------------------------------------
# Настройки просматриваемых заголовков
# ------------------------------------
ignore *
# поля которые я хочу видеть
unignore from: subject to cc mail-followup-to \
date x-mailer x-url user-agent reply-to
# ---------------
# Привязки клавиш
# ---------------
# клавиша <up> при просмотре письма на строку вверх
bind pager <up> previous-line
# клавиша <down> при просмотре письма на строку вниз
bind pager <down> next-line
# --------------
# Почтовые файлы
# --------------
# перечислите все ваши почтовые файлы
mailboxes +mbox +work +friends +lists/debian +lists/mlug
# если вы подписаны на mailing-list'ы укажите их адреса
# это нужно для использования возможности list-reply (клавиша 'L')
lists mlug@unixcenter.ru debian-russian@lists.debian.org
folder-hook mlug "push ^[V" # при открытии этих файлов нажимать 'Esc-V'
folder-hook debian "push ^[V" # (свернуть все дискуссии)
# при открытии mlug устанавливать заголовок Reply-To
folder-hook mlug "my_hdr Reply-To: \
Moscow Linux User Group <mlug@unixcenter.ru>"
# при открытии debian устанавливать заголовок Reply-To
folder-hook debian "my_hdr Reply-To: \
Debian <debian-russian@lists.debian.org>"
# Aliases.
# Очень удобное средство - укажите здесь псевдонимы и e-mail'ы
# получателей. Для написания письма можно будет использовать
# команду mutt alias_name. E-mail, соответствующий
# alias_name будет подставлен в поле From.
alias mlug Moscow Linux User Group <mlug@unixcenter.ru>
alias support TechSupport support@hostname.ru
________________________________________________________________________
В каталоге /etc находится файл Muttrc. Он может послужить вам хорошим
примером конфигурационного файла для mutt.
Создайте файлы /home/user_name/.mailcap и /home/user_name/.signature:
$ touch /home/user_name/.mailcap
$ touch /home/user_name/.signature
Файл .mailcap нам необходим для обработки MIME-типов. Приведу
небольшой пример, чтобы продемонстрировать структуру этого файла:
text/html; links %s
image/gif; xview %s
image/jpg; xview %s
Думаю, что типы, которые вам хотелось бы обрабатывать вы без труда
добавите сами.
В файле .signature укажите свою подпись. Пример я думаю приводить не
надо ;-)
Итак, настройка окончена, запускаем:
Перед собой мы видим список писем из спула
(/var/spool/mail/user_name). Нажатием клавишы '?' открываем справку.
Смотрим список клавиш, на которые нам придется нажать не один раз в
процессе ежедневной работы с этой программой. Выход из справки - 'q'.
Чтобы открыть какой-нибудь почтовый файл следует нажать 'c'. Внизу
экрана мы видим предложение ввести имя файла. Нажимайте 'Tab' или '?'
и откроется окно выбора файла. Выбираем какой-нибудь файл и видим
список почтовых сообщений. Клавишы 'Вверх', 'Вниз' - перемещение по
списку писем; 'Enter' - чтение письма; 'Page Up', 'Page Down' -
страничная прокрутка письма. Об остальных клавишах вы без труда
найдете нужную информацию во встроенной справке.
Подписаться на:
Сообщения (Atom)