Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  AutoMount
  laptop battery
  root-tail
  desktopbsd-tools
  QTFW
  KNemo
  klaptopdaemon
  Десктоп c FreeBSD
  Печать из фри в винду
  FluxBox
  NSPluginWrapper
  xorg 7.3 + xdriinfo
  kde и smb
  Programming
Очумелые Ручки
OpenBSD
Cisco
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
файл скачан размер размещён примечание
patch-z-hal.diff
1622 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

оценить статью:





Хостинг HOST-FOOD

2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
Подробное руководство по ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 61 чел.
За последние 30 мин было: 240 человек
За сегодня было
15924 показов,
1801 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.114 секунд
Из них PHP: 50%; SQL: 50%; Число SQL-запросов: 80 шт.
Исходный размер: 96025; Сжатая: 20751