Feeds:
Записи
Комментарии

К своему ноутбуку я часто подключаю два сменных носителя: обычную флэшку (на ней fat) и usb-винчестер от Western Digital (на нём, по техническим причинам, стоит ntfs). XFCE неплохо автомонтирует флэшку — он подключает её во что-то типа /media/disk, и с ней можно отлично работать. Но вот с винчестером всё хуже — он подключается тоже в /media/(что-то там), но при этом не отображаются русские буквы. Отмонтировать его нормально тоже не получается: пишет, что для этого нужны права root’а.

Как работает автомонтирование в XFCE — одному Богу известно. Поэтому я решил написать несколько правил для udev — там всё более доступно простому человеку.

Первый шаг — выяснить параметры отбора, по которым udev будет понимать, что к нему только что подключилось. Делается это так: подключим устройство, подождём пару секунд, а потом в консоли выполним udevinfo -a -p $(udevinfo -q path -n ). В моём случае путь — /dev/sdb1. В консоль вывалится большой список. В нём есть куча параметров типа ATTRS. Их-то и можно запихивать в правила для udev. Примеры приведены ниже.

1. Заведём в /etc/udev/rules.d файл 10-local.rules.
2. Обработаем флэшку с fat:
SUBSYSTEM==»block», KERNEL==»sd[a-z]1″, ACTION==»add», ATTRS{vendor}==»JetFlash», NAME=»%k», GROUP=»users», SYMLINK+=»flash», RUN+=»/usr/bin/sudo -u igor /usr/bin/pmount -c utf8 /dev/flash»

Что здесь происходит? Обработка флэшки осуществляется по атрибуту ATTRS{vendor}==»JetFlash». Действие, записанное в RUN, требует установленного pmount (это обёртка для mount, чтобы ничего в fstab не писать, и чтобы никаких папок не создавать вручную. Pmount сам создаёт точку монтирования в /media и удаляет её, когда устройство вытащено). В качестве параметра необходимо указать кодировку — иначе файлы с русскими буквами рискуют превратиться в тыкву. Фокусы с sudo — костыль, но я пока не придумал, как сделать это лучше. Если не использовать sudo, в папку /media/flash пользователю будет не попасть.

3. А вот с ntfs я помучился. Занятная ситуация: одна и та же команда, выполненная в консоли и записанная в правило для udev, давала разные результаты — в последнем случае русские буквы не отображались. А ведь я для этого всё и затеял! Победить хитрый драйвер ntfs-3g получилось переписав файл /sbin/mount.ntfs-3g (исходно — символическая ссылка на /bin/ntfs-3g). Переписанный mount.ntfs-3g можно найти здесь. Там ничего страшного, просто вызов ntfs-3g с некоторыми опциями для кириллицы. Сам файл я нашёл где-то на просторах инета, кажется, в ArchLinux Wiki.

Итого, строка в udev выглядит так: SUBSYSTEM==»block», KERNEL==»sd[a-z]1″, ACTION==»add», ATTRS{product}==»External HDD», NAME=»%k», GROUP=»users», SYMLINK+=»western», RUN+=»/usr/bin/sudo -u igor /usr/bin/pmount /dev/western»

Всё то же самое, только правило отбора другое: ATTRS{product}==»External HDD».

Linux и bluetooth телефон

Завести встроенный bluetooth в ноутбуке от Toshiba (у меня, например, Toshiba A200 14D Satellite) по силам только тому, кто прочитал отличный мануал. Мне помогло значение ectype=12 (это один из параметров модуля, с которым его надо подгружать в ядро). И вот, bluetooth работает, в чём можно убедиться командой hcitool scan (входит в пакет bluez-utils). У меня простенький телефон: Motorola L2. Но в нём есть bluetooth, а значит, он должен работать. И действительно: поставим мобилу в режим обнаружения, и hcitool scan выдаст её адрес в формате xx:xx:xx:xx:xx:xx. Именно этот адрес и будем использовать в дальнейшем.

Отредактируем конфиги. В случае Mandriva 2008 они лежат в /etc/bluetooth. Там три файла: hcid.conf, pin, rfcomm.conf. Самый простой — pin: это просто несколько цифр с пин-кодом для спаривания телефона и компьютера. Впишите туда понравившиеся четыре цифры.

hcid.conf тоже придётся менять по-минимуму: в графе passkey впишите тот же самый пин-код. А вот с rfcomm.conf нужно чуть больше возни: в раздел «device» надо вбить тот самый адрес телефона, который выдало сканирование. После этого можно перезапустить службу bluetooth: /etc/init.d/bluetooth restart.

Для удобства я бы поставил ещё что-нибудь типа kbluetooth. Запустим это приложение.

Попробуем соединиться с телефоном: rfcomm connect hci0. Телефон, а за ним и Kbluetooth, спросит пин–код. Если всё введено верно — устройства спарены. Теперь можно использовать телефон в качестве gprs–модема или просто бэкапить его содержимое с помощью gammu.

Bash–completion и urpme

В Mandriva, которую я использую уже несколько лет, есть удобный менеджер пакетов urpmi. Всем он хорош, да только автодополнение по tab выключено. Поставим сначала пакет bash-completion:
$urpmi bash-completion

Теперь автодополнение будет работать в urpmi (при установке пакетов), но по-прежнему не будет в urpme (удалении). Чтобы исправить это досадное неудобство, нужно под рутом в файле /root/.bash-completion присвоить переменной COMP_RPM_DATABASE значение true:
COMP_RPM_DATABASE = 1

Вот и всё, теперь автодополнение работает везде.

Грамотные настройки lftp

Для того, чтобы в консоли путешествовать по ftp-ресурсам (например, в пределах локальной сети), очень хорошо подходит lftp (в Mandriva: urpmi lftp). Одна проблема: изначально он не справляется с кодировкой cp1251 (которая стоит на ftp у подавляющего большинства). Чтобы это исправить, пишем в /etc/lftp.conf (ну или в ~/.lftp) такую строчку:

set ftp:charset cp1251

Вроде бы всё; только грамотный пользователь заметит, что после этого папки и файлы с буквой «я» будут скачиваться некорретно. Это связано с особенностями ftp–протокола. Для того, чтобы исправить это недоразумение, стоит дописать ещё одну строчку:

set ftp:use-telnet-iac no

Для удобства при выполнении команды mirror (зеркалирование и/или реверсное зеркалирование) рекомендуется ещё прописать

set mirror:set-permissions off

Вот и всё, наш lftp полностью готов к работе во вражеском windows–окружении.

PSCyr и TeTeX

Имеется хорошая коллекция кириллических шрифтов, называется PSCyr. Взять его можно, например, здесь. Процедура установки подробно описана в readme, если вкратце, то она сводится к запуску скрипта install.sh (от рута). После этого начинается самое интересное.

Выясняется, что надо добавить файл с картой шрифтов (pscyr.map) во все конфиги, иначе он не будет виден. Именно, надо прописать в config.ps (у меня он находится в папке /usr/share/texmf/dvips/config/) в конец такую строчку:

p /usr/share/texmf/dvips/config/pscyr.map

Также нужно добавить информацию в файл updmap.cfg (у меня он лежит в /usr/share/texmf/web2c/): в конец файла дописать

Map pscyr.map

После этого следует (опять-таки, от рута) выполнить updmap и texhash.

Всё, TeXовское дерево обновлено, теперь надо пользоваться этими шрифтами. Пишем в преамбулу

\usepackage{pscyr}

Теперь пакет pscyr подключён. Теперь включим какой-нибудь шрифт — например, гарнитуру «Лазурская»:

\renewcommand{\rmdefault}{flz}

Весь документ теперь будет набран этой гарнитурой.

В документации к PSCyr есть демонстрационный файл fonts-ex.tex, показывающий, как менять в тексте стили начертания. Написан он довольно хорошо, поэтому я не буду здесь повторяться.

Latex2html

Чтобы заставить работать latex2html (скрипт, перегоняющий tex в html, превращая формулы в картинки формата png), надо сделать следующее: в файле, который в Mandriva находится по адресу /usr/bin/pstoimg заменить код ‘gray***’ на ‘#d9d9d9′.