Showing posts with label настройка. Show all posts
Showing posts with label настройка. Show all posts

Friday, 5 December 2008

написание правил udev

Чтобы нормально монтировать различные съёмные устройства очень полезна такая штука как udev,
она позволяет динамически формировать ноды в /dev/, опираясь на различные характеристики устройства.
Для создания нод необходимо написать правила, для моего съёмного винчестера я создал такое правило

KERNEL=="sd*", ATTRS{serial}=="2GE12YDI", ATTRS{manufacturer}=="Seagate", SYMLINK+="seagate"


В правило входят различные ключи:

KERNEL - имя ноды, автоматически назначаемое ядром,

ATTRS - различные атрибуты которые можно узнать командой

SYMLINK - имя ноды, которая будет создана.

udevinfo -a -p /sys/block/sdb

у меня вывод был примерно такой
# udevinfo -a -p /sys/block/sdc

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/block/sdc':
KERNEL=="sdc"
SUBSYSTEM=="block"
DRIVER==""
ATTR{capability}=="12"
ATTR{stat}==" 1002 29254 63332 21760 127604 3476920 28836216 62613612 0 599412 62635368"
ATTR{size}=="625142448"
ATTR{removable}=="0"
ATTR{range}=="16"

looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb6/6-2/6-2:1.0/host15/target15:0:0/15:0:0:0':
KERNELS=="15:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{modalias}=="scsi:t-0x00"
ATTRS{ioerr_cnt}=="0x0"
ATTRS{iodone_cnt}=="0x1f665"
ATTRS{iorequest_cnt}=="0x1f665"
ATTRS{iocounterbits}=="32"
ATTRS{timeout}=="30"
ATTRS{state}=="running"
ATTRS{rev}=="102C"
ATTRS{model}=="FreeAgent Go "
ATTRS{vendor}=="Seagate "
ATTRS{scsi_level}=="3"
ATTRS{type}=="0"
ATTRS{queue_type}=="none"
ATTRS{queue_depth}=="1"
ATTRS{device_blocked}=="0"
ATTRS{max_sectors}=="240"
...

из него можно получить атрибуты точно характеризующие устройство.
Правило нужно записать в файл с расширением rules(обязательно!) в /etc/udev/rules.d/
Если несколько правил создают ноды для одного устройства то будут созданы все ноды.
Более подробно про udev можно узнать здесь

Tuesday, 18 November 2008

Запись в ntfs в linux

Винчестера ноутбука стало уже мало, поэтому я купил внешний usb винт seagate free-agent go 320GB,
возник вопрос в как его отформатировать, ext3 не подходит т.к это переносной носитель информации и придётся записывать на него в виндусе,
fat32 не поддерживает больших файлов, поэтому была выбрана ntfs.
Недавно вышла первая стабильная версия полноценного ntfs драйвера ntfs-3g.
Ставится просто
#aptitude install ntfs-3g

прописываем в /etc/fstab

/dev/sdb1 /media/portableHDD ntfs-3g auto,nls=utf8,umask=0,user 0 0


также пришлось выполнить эти магические действия чтобы можно было монтировать от юзера

chown root $(which ntfs-3g)
chmod 4755 $(which ntfs-3g)

Всё готово, теперь можно не удалять фильмы после просмотра!

Wednesday, 22 October 2008

Настройка vpn подключения в linux

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

Для настройки vpn подключения необходимо иметь в ядре поддержку PPTP, также необходимо установить пакеты pptpclient, ppp.

Сначала необходимо сконфигурировать сетевой интерфейс, в Debian это делается очень просто в файле /etc/network/interfaces.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

iface eth0 inet dhcp #означает что ip адресс, адресса dns серверов и маршруты получаем от dhcp сервера
post-up /etc/routes #скрипт, который выполняется после поднятия интерфейса, очень полено если dhcp выдаёт кривые маршруты
auto eth0



файл /etc/ppp/peers/prov содержит параметры конкретного подключения


persist
pty "pptp 10.129.10.2 --nolaunchpppd" # адрес vpn сервера
#pty "/usr/sbin/pppoe -I eth0 -T 80 -C prov_name" # В случае использоваия PPPoE все настройки отличаются только этой строчкой
name # здесь писать свой логин
ipparam prov
file /etc/ppp/options.pptp



файл /etc/ppp/options.pptp содержит опции работы ppptp демона


# Использовать pppX в качестве шлюза по умолчанию
defaultroute

# Использовать вместо шлюза по умолчанию
replacedefaultroute

# Не использовать сжатие
nodeflate

# Не использовать BSD сжатие
nobsdcomp


# Запрашивать аутентификацию перед отправкой или приёмом пакетов
#auth

# Использовать аппаратный контроль потока данных ( RTS/CTS) через последовательный порт.
crtscts

# Использовать аппаратный контроль потока данных ( RTS/CTS) через последовательный порт.
#xonxoff

# Определяет последовательность прерывания подключения
#escape 11,13,ff


# Блокировать устройство после запуска pppd
lock

# Не показывать пароль при использовании PAP аутентификации(включено по умолчанию)
hide-password

# Показывать пароль при использовании PAP аутентификации
#show-password

# Установить значение MRU [Maximum Receive Unit] определяет размер (в байтах) максимального блока, который может быть принят на канальном уровне коммуникационного протокола. pppd
# Минимальное значение MRU равно 128. Значение по умолчанию 1500.
# Значение 296 рекомендуется для медленных подключений (40 байт для TCP/IP заголовка + 256 байт данных).
mru 1500Option nopredictor added. It defines if predictor corrector algorithm is used or not. Option noconviter added. It skips convergence double checking in ...

# Установить значение маски подсети
netmask 255.255.255.0

# При наличии интерфеса с заданным ip адрессом pppd будет пытаться использовать этот адрес, параметр noipdefault пресекает эти попытки
noipdefault

# При включенном параметре pppd после неудачной попытки подключения будет ожидать подключения с другой стороны
#passive

# С этой опцией pppd начнёт передавать свои пакеты только после получения пакета от удалённой системы
# используется при подключении к медленным системам
#silent


# Оставаться в терминале, иначе pppd станет фоновым процессом
#-detach


# Выводить отладочную информацию
#debug

# Добавлять имя домена к имени кмпьютера
#domain

# Включить вывод отладочной информации драйвера PPP уровня ядра
#kdebug n

# Установить значение MTU [Maximum Transmit Unit] используется для определения максимального размера блока (в байтах), который может быть передан на канальном уровне коммуникационного протокола.. Unless the peer
mtu 1492

# Установить имя машины
#name

# Использовать в качестве name hostname, перезаписывает опцию name
#usehostname

# Задать имя удалённой системы для аутентификации
#remotename

# Добавить в ншу таблицу соответствия физических и ip адрессов ip адресс удалённой машины, ассоциированный
# с физическим адрессом нашей сетевой карты (не использовать если сервер находится в другом сегменте сети)
#proxyarp

noproxyarp

# Отключить протоколы IPXCP и IPX.
#noipx

# Не переподключаться в случае разрыва, задано по умолчанию
#nopersist

# Переподключаться в случае разрыва
persist

# Выключить pppd после неудачных попыток подключения
maxfail 2

# Инициализировать соединение только по требованию, например когда приходят пакеты.
# С этой опцией, удалённый IP должен быть задан
#demand

# Если этот парамтр задан то связь будет разорвана через секунд простоя, каждый считаюсчийся траффиком пакет сбрасывает этот таймер
#idle

# Время которое нужно ждать перед повторным подключением после разрыва связи
holdoff 10

# Задержка в миллисекундах после выполнения подключения до начала передачи пакетов
#connect-delay

# Позволяет задать фильтр, показывающий какие пакеты считать траффиком, а какие нет
# фильтр по дефолту tcpdump считает траффиком все пакеты
#active-filter



Осталось записать в /etc/ppp/chap-secrets логин и пароль и можно подключаться командой pppd call prov

Saturday, 18 October 2008

Синхронизация с телефоном в Linux с помощью Gammu

Как известно ничего не даётся так легко и не ценится так высоко, как вовремя сделанная резервная копия. Резервным копированием данных с телефона я и решил заняться. Имеем телефон Nokia 6021, Debian Lenny, подключение через Bluetooth. Для решения задачи я выбрал утилиту gammu в Debian её можно легко поставить
#aptitude install gammu
далее необхоимо исправить файл ~/.gammurc (пример иожно найти в /usr/share/doc/gammu/examples/config/gammurc.gz ), я в него записал

[gammu]
port = 00:16:BC:D6:92:1D
model = 6021
connection = bluephonet
synchronizetime = yes
logfile = gammulog
logformat = textall
use_locking = yes
gammuloc = locfile
startinfo = yes
gammucoding = utf8
rsslevel = teststable
usephonedb = yes

обязательными опциями являются только port и connection.
connection это тип подключения, в нашем случае подключение происходит через bluetooth, вообще тип также зависит от телефона, соответствие можно установить, воспользовавшись этим документом. port это адрес устройства, в случае с bluetooth его можно получить коммандой hcitool scan, в случае кабеля это будет /dev/phone.
Нужно настроить привязку телефона и компьютера, описано тут
Далее начинаем использовать Gammu

SMS


$ gammu getsmsfolders
даёт папки с SMS.
SMS можно забэкапить командой
$ gammu backupsms имя_файла
при этом также можно удалить ВСЕ sms с телефона( очень полезная функция, в моём телефоне нет функции удаления всех sms и их приходится удалять по одной), также sms можно удалять по одной командой
$gammu deleteallsms номер_папки
восстановить sms можно командой
$gammu restoresms имя_файла

Phonebook


Вот ради чего всё и затевалось: бэкап телефонной книги
$ gammu backup имя_файла.vcf

Можно забэкапить все данные с телефона, в этом случае нужно выбрать произвольное расширение файла, но он будет бинарным,

.vcs - Только календарь(VCalendar)
.vcf - Только контакты(VCard file)
Другое расширение (Gammu text file): бэкапить всё

подробнее здесь
Восстановление данных командой
$ gammu restore имя_файла.vcf

Очистить память можно с помошью команды
$ gammu clearall


Filesystem


Для просмотра содержимого файловой системы команда
$ gammu getfilesystem

Для установки приложения
$ gammu nokiaaddfile Application имя_файла_без_расширения

Аналогичным образом можно закачивать картинки, мелодии и т.д. в этом случае команда будет выглядеть так
$ gammu nokiaaddfile Gallery|Gallery2|Camera|Tones|Tones2|Records|Video|Playlist|MemoryCard имя_файла_без_расширения

Подробности здесь

Tuesday, 1 July 2008

Настройка adsl в linux

Вот и наступили каникулы, вдалеке от москвы в лучшем случае можно получить медленное adsl подключение. Подлючение к телефонной линии естественно производиться через модем, подключение компьютера к модему производиться витой парой, компьютеру присваивается статический ip вида 192.168.1.x .На сайтах некоторых провайдеров есть инструкции по настройке подключения в linux, на сайте моего провайдера (elcom.ru) таких не оказалось, в службе тех поддержки тоже ничем помочь не смогли, после долгих и безуспешных попыток настроить подключение классическими методами(создание файлов /etc/ppp/peers/elcom и т.д. ) я открыл для себя пакет утилит rp-pppoe, далее подключение производиться очень просто
устанавливаем софт
tar xzvf rp-pppoe-3.5.tar.gz
# ./configure
# make
# make install


запускаем
#adsl-setup
и отвечаем а вопросы

после чего можно подключаться
#adsl-start

и отключаться
#adsl-stop

Год назад, настраивая dial-up подключение у того же провайдера тоже было много проблем, в техподдержке ничего не говорили и я долго ковырялся в конфигах пока методом тыка не обнаружил что необходимо поставить опцию stupid-mode, которой, кстати, нет в kppp, она есть в gnome-ppp, но я предпочёл wvdial.

Sunday, 2 September 2007

Настройка GPRS подключения в Linux через bluetooth

Буду писать о граблях, на которые я наступил, настраивая GNU/Linux, начну с настройки bluetooth и gprs:

настройка bluetooth+gprs в GNU/Linux
OS Debian etch 4.0 GNU/Linux kernel 2.6.21
bluetooth dongle Belkin BU-2083
phone Nokia 6021
bluez-utils 3.7-1
Для работы bluetooth в GNU/Linux были использованы драйвера Bluez, поставляемые с ядром.Ставим драйвера apt-get install bluez-utils, также необходимо наличие pppd.
Работоспособность bluetooth можно определить с помощью команды(от рута)
# hciconfig -a
hci0: Type: USB
BD Address: 00:0A:3A:6F:0A:76 ACL MTU: 1017:8 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:7844 acl:182 sco:0 events:203 errors:0
TX bytes:3506 acl:161 sco:0 commands:61 errors:0
Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: ACCEPT MASTER
Name: 'malafeev-0'
Class: 0x000100
Service Classes: Unspecified
Device Class: Computer, Uncategorized
HCI Ver: 2.0 (0x3) HCI Rev: 0x2073 LMP Ver: 2.0 (0x3) LMP Subver: 0x4127
Manufacturer: Broadcom Corporation (15)
UP означает, что адаптер работает, если не работает то необходимо исправить файл
/etc/bluetooth/hcid.conf, вот то что у меня(я исправил autoinit,security,class 0x100 это компютер):

#
# HCI daemon configuration file.
#

# HCId options
options {
# Automatically initialize new devices
autoinit yes;

# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
#
security auto;

# Pairing mode
# none - Pairing disabled
# multi - Allow pairing with already paired devices
# once - Pair once and deny successive attempts
pairing multi;

# Default PIN code for incoming connections
passkey "1234";
}

# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "%h-%d";

# Local device class
class 0x100;

# Default packet type
#pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable;
pscan enable;

# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept,master;

# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
lp rswitch,hold,sniff,park;
}


Перезапускаем сервисы Bluetooth
# /etc/init.d/bluetooth restart
Restarting bluetooth: hcid sdpd rfcomm.

От обычного пользователя даём команду :
$ hcitool scan
Scanning ...
00:16:BC:D6:92:1D Nokia 6021
записываем mac-адрес телефона.
Связь с телефоном можно проверить так:
# l2ping 00:16:BC:D6:92:1D
Ping: 00:16:BC:D6:92:1D from 00:0A:3A:6F:0A:76 (data size 44) ...
0 bytes from 00:16:BC:D6:92:1D id 0 time 31.91ms
0 bytes from 00:16:BC:D6:92:1D id 1 time 9.62ms
0 bytes from 00:16:BC:D6:92:1D id 2 time 8.39ms

Список поддерживаемых профилей bluetooth можно получить с помощью команды:
$ sdptool browse phone_mac, где phone_mac-mac адрес телефона.

При связывании телефон запросит pin, этот-же pin необходимо ввести в компьютер, в старых версиях bluez использовалась утилита pin_helper, путь к которой прописывался в файле /etc/hcid.conf, в новых версиях используется утилита passkey-agent, идём в /usr/share/doc/bluez-utils/examples, распаковываем и собираем утилиту(от рута, понадобится пакет libdbus-1-dev), далее запускаем её
./passkey-agent --default 1234, она будет висеть и передавать в bluez указанный pin.


Далее начлось самое интересное, необходимо связать телефон с /dev/rfcommX , где X-номер порта, у меня X=0, это можно сделать двумя способами:
1) с помощью правки файла /etc/bluetooth/rfcomm.conf(необходимо внести mac-адрес телефона), что я и сделал, затем, выполнил команду
# echo ATZ > /dev/rfcomm0, телефон запросил pin, я ввёл 1234, телефон сказал подключено затем через несколько секунд отключено.
2)с помощью команды rfcomm connect :
rfcomm connect rfcomm0 00:16:BC:D6:92:1D 1
при первом подключении телефон запросит pin(passkey-agent должен быть запущен)

Далее необходима настройка pppd:
1)В файл /etc/ppp/peers/mts записываем
/dev/rfcomm0 57600
connect '/usr/sbin/chat -v -f /etc/ppp/chat/mts'
noauth
defaultroute
lock
debug
novjccomp
nopcomp
noaccomp
nodeflate
novj
nobsdcomp
default-asyncmap
ipcp-accept-local
ipcp-accept-remote
usepeerdns
user mts
nodetach
2) в /etc/ppp/chat/mts записываем
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATH
OK ATE1
OK AT+CGDCONT=1,"IP","internet.mts.ru"
OK ATD*99***1#
CONNECT
3) в файл /etc/ppp/pap-secrets записываем
mts ppp0 "mts"

подключаемся pppd call mts(от рута)