|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> X11
—> AutoMount
Автомонтирование флэшек и CD-ROM в KDE с перекодировкой
Автор: lissyara.
Тема была поднята в форуме, начал разбираться - оказалось интересно (да-да, а ещё жена пинала, типа неплохобы диски смотреть без бамажки, на которой было написано как смонтировать-отмонтировать сидиром :))) - вот кто истинный двигатель прогресса). Посему для начала немного теории, нарытой на просторах интернета.
Автомонтирование, с недавних версий kde (с каких точно - не скажу, не знаю, но совсем недавно) осуществляется через приблуду одолженную в гноме - HAL (Hardware Abstraction Layer). С её помощью, при подключении устройства его параметры передаются другим приложениям. В данном случае - konqueror. После чего уже эти приложения решают что делать.
Собственно, на этом моменте и выходит первый затык поднятого вопроса - hal честно передаёт детектированные параметры, и те что у него я прописал в конфигурации. А вот KDE начало косячить (тоже спорный вопрос - будет рассмотрено позже) - передаваемые параметры по тихому игнорировались, а возможность задать свои появится лишь в KDE4. Вот так. :)
Итак. Автомонтирование как таковое работает с полпинка без особых настроек. Мучать будем KDE 3.5.6 - последняя на сегодня версия, из портов. Локаль у меня - koi8-r. Для начала надо убедиться, что оно установлено с поддержкой HAL:
lissyara$ pkg_info -r kdebase-3.5.6_2 | grep hal
Dependency: hal-0.5.8.20070403_1
lissyara$
| Если это не так - унывать не стоит - всё равно пересобирать :) А вот счастливые обладатели kde с hal (по дефолту именно так в последних версиях) могут влёт врубать автомонтирование. Для этого надо запустить службы, стартовые скрипты от которых выляются в /usr/local/etc/rc.d, для чего прописываем в /etc/rc.conf следующие строки:
# For kde
hald_enable="YES"
# для отладки - я смотрел цепляются ли мои файлы кодировок
#hald_flags="--use-syslog --verbose=yes --daemon=yes"
dbus_enable="YES"
polkitd_enable="YES"
| До кучи, необходимо добавить пользователей, которым надо будет чё-то монтировать, в группу "operator", и закомментировать в /etc/fstab строку про CD-ROM - больше она не нужна:
pw groupmod operator -m lissyara # добавил себя
| Можно запустить соответствующих даемонов руками, можно перезагрузить машину (последнее лучше - ибо мне не удалось заставить систему понять, что я теперь есть и в группе "operator" - тока через перезагрузку). После чего при вставке CD-диска лезет красивое окошко, как на картинке, и диски монтируются автоматически. Отмонтирование происходит по правой мыши, или нажатем конопки на сидюке - после чего он выезжает. Красота!
Тоже самое и с флэшками. Если ничёне вылезает, проверьте, запущена ли такая служба:
Однако, если бы всё было так просто, я бы даже не стал чё-то расписывать. Всё оказалось немного сложнее, поэтому и была вводная про параметры, которые не принимает KDE.
Итак. Первая же флэшка, что попалась в руки (не моя - мои все в UFS и монтировались без проблем), была сделана хорошим человеком по моей просьбе - и имела она русскую метку тома, набор файлов с русскими именами внутри, до кучи одно имя файла было стишком - про папу, Васю, и достижения в области математики... Короче - очень длинное имя файла :). Разумеется она не смонтировалась :) Проблема была понятна сразу - русская метка тома, и умничающий KDE, который пытался смонтировать её по пути /media/русская метка тома. Ему бы это вполне удалось, если бы ещё кодировка метки нормально детектнулась - однако, там были нечитаемые символы.
Эта проблема решается легко. Топаем в порты, и пересобираем hal.
lissyara$ cd /usr/ports/sysutils/hal
lissyara$ make config
| В вылезшем окошке поставить галочку:
Options for hal 0.5.8.20070403_1
[X] FIXED_MOUNTPOINTS use fixed mountpoints
| После чего сносим текущий hal, и собирем новый:
lissyara$ pkg_delete -f hal-0.5.8.20070403_1
pkg_delete: package 'hal-0.5.8.20070403_1' is required by these other packages
and may not be deinstalled (but I'll delete it anyway):
eel-2.18.0.1
gnome-desktop-2.18.1_1
gnome-menus-2.18.0
gnome-mount-0.6_2
gnome-vfs-2.18.1
hal-device-manager-0.5.8.20070403
kde-3.5.6
kdeartwork-3.5.6_1
kdebase-3.5.6_2
kdepim-3.5.6_2
kdesdk-3.5.6
kdeutils-3.5.6
kdevelop-3.4.0_2
kdewebdev-3.5.6,2
kmplayer-0.9.3_1,2
libbonoboui-2.18.0
libgnome-2.18.0
libgnomeui-2.18.1
nautilus-2.18.1
openoffice.org-2.0.4
py24-gnome-2.18.2
tracker-0.5.4_1
pkg_delete: unable to completely remove directory '/usr/local/share/hal'
pkg_delete: unable to completely remove directory '/usr/local/etc/hal/fdi/policy'
pkg_delete: unable to completely remove directory '/usr/local/etc/hal/fdi'
pkg_delete: unable to completely remove directory '/usr/local/etc/hal'
pkg_delete: couldn't entirely delete package (perhaps the packing list is
incorrectly specified?)
lissyara$ make install clean
| Запускаем hal:
lissyara$ /usr/local/etc/rc.d/hald restart
hald not running? (check /var/run/hald/hald.pid).
Starting hald.
lissyara$
| и недолго радуемся жизи - устройства стали монтироваться по имени устройства, но сильно легче не стало - не в силах показать содержимое флэшки, ни ls ни конкверрор непоказывают вообще ничего.
Рысканья по инету дали патч для kdebase, правда писанный под линух, и никаких опций кроме линуксовых непонимающий. Немного работы напильником, и был наструган патч для FreeBSD. Итого, кладём такой файлик /usr/ports/x11/kdebase3/files/patch-z-hal.diff, и пересобираем kdebase, не забыв про поддержку hal:
patch for kdebase3
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
1974
|
2.5kb
|
2007-04-25
|
Патч для возможности монтирования msdosfs с перекодировкой.
|
|
Пока оно пересобирается, кладём такой фалик:
lissyara# more /usr/local/etc/hal/fdi/policy/20-flash.fdi
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="volume.fstype" string="vfat">
<merge key="volume.policy.mount_option.-L=ru_RU.KOI8-R" type="bool">true</merge>
<merge key="volume.policy.mount_option.-D=CP866" type="bool">true</merge>
</match>
</device>
</deviceinfo>
| А также, добавляем такие строки (с запасом - для всех поддерживаемых файловых систем) в конфиг лоадера:
lissyara# grep iconv /boot/loader.conf
libiconv_load="YES"
msdosfs_iconv_load="YES"
cd9660_iconv_load="YES"
ntfs_iconv_load="YES"
udf_iconv_load="YES"
lissyara#
| После пересборки, перезапускаем hal, перезапускаем KDE, грузим модули руками (можно просто перезагрузить машину). Всё. Флэшки нормально монтируются и с русскими именами.
P.S. Если кто-то в состоянии подпилить патч до цивильного состояния, - сделайте это, и пошлите портдевелоперам. Может включат в порты - будет щассье всем.
Пара примечаний.
1. Используемая опция hal - mount_option - она устарела, и разработчики hal хотят от неё отказаться. Соответствено - описанное перестанет работать. Остаётся лишь надеяться, что к тому времени допилят KDE на тему возможности задавать опции монтирования. Кстати - вот линк на обсуждение. Там есть патч, чтобы можно было добавлять дополнительные опции через гуя, но их набор фиксированный.
2. Не забываем обновить порты.
3. Добавлять переменные sysctl (vfs.usermount=1) не надо. Можете добавить, но у меня и без них пашет.
4. Добавляется "виндовое" поведение - это когда после вставки диска иксы тупанули на пару секунд :)
5. Не надо выдёргивать флэшки на ходу - неотмонтированными. Система упадёт, хоть и не сразу...
6. Вопросы - в форум.
2007-07-08: В kde-3.5.7 - патчей не надо, всё нормально, кроме точки монтирования. Поэтому остаётся только собирать hal с фиксированной точкой монтирования и всё.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=8&t=3284.
размещено: 2007-04-25,
последнее обновление: 2008-05-20,
автор: lissyara
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
|
Комментарии пользователей [11 шт.]