Что из себя представляет аппаратная начика?
Железка очень хитрая: фактически - это 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
Ubuntu Linux
среда, 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)