среда, 13 июля 2011 г.

Novatel U720 скрипт запуска в Ubuntu Linux

Что из себя представляет аппаратная начика?

Железка очень хитрая: фактически - это 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

Настройка сенсорного экрана 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

Перезапускаем систему

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 укажите свою подпись. Пример я думаю приводить не
   надо ;-)

   Итак, настройка окончена, запускаем:

        Echo “” | mutts Kiosk_test 1c@korsa.uaa /var/www/data/*.*


   Перед собой мы видим список писем из спула
   (/var/spool/mail/user_name). Нажатием клавишы '?' открываем справку.

   Смотрим список клавиш, на которые нам придется нажать не один раз в
   процессе ежедневной работы с этой программой. Выход из справки - 'q'.
   Чтобы открыть какой-нибудь почтовый файл следует нажать 'c'. Внизу
   экрана мы видим предложение ввести имя файла. Нажимайте 'Tab' или '?'
   и откроется окно выбора файла. Выбираем какой-нибудь файл и видим
   список почтовых сообщений. Клавишы 'Вверх', 'Вниз' - перемещение по
   списку писем; 'Enter' - чтение письма; 'Page Up', 'Page Down' -
   страничная прокрутка письма. Об остальных клавишах вы без труда
   найдете нужную информацию во встроенной справке.