Seguindo a dica do Max eu criei a
/etc/hal/fdi/policy/vfat-policy.fdi seguinte:
?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="volume.fstype" string="vfat">
<merge key="volume.policy.mount_option.iocharset=utf8"
type="bool">true</merge>
</match>
</device>
</deviceinfo>
Chequei que é reconhecida pelo hal conectando um pendrive e dando um
/usr/bin/libhal com o seguinte resultado:
volume.fstype = 'vfat' (string)
volume.fsusage = 'filesystem' (string)
volume.fsversion = 'FAT16' (string)
volume.ignore = false (bool)
volume.is_disc = false (bool)
volume.is_mounted = true (bool)
volume.is_mounted_read_only = false (bool)
volume.is_partition = false (bool)
volume.label = 'USBSLACK' (string)
volume.linux.is_device_mapper = false (bool)
volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime',
'nodiratime', 'relatime', 'noexec', 'quiet', 'remount', 'exec', 'utf8',
'shortname=', 'codepage=', 'iocharset=', 'umask=', 'dmask=', 'fmask=',
'uid=', 'flush'} (string list)
volume.mount_point = '/media/USBSLACK' (string)
volume.num_blocks = 1952256 (0x1dca00) (uint64)
volume.policy.mount_option.iocharset=utf8 = true (bool)
volume.size = 999555072 (0x3b940000) (uint64)
volume.unmount.valid_options = {'lazy'} (string list)
volume.uuid = '4BF0-AC62' (string)
Entretanto um check em /proc/mounts mostra as opções efetivas em que o
pendrive foi montado:
/dev/sdd /media/USBSLACK vfat
rw,nosuid,nodev,relatime,uid=1000,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=winnt,errors=remount-ro
0 0
o iocharset de montagem foi o padrão iso8859-1 e não o utf8 definido pela
minha vfat-policy.fdi.
Já procurei no Google e na documentação do hal e fique sem resposta. O
que aconteceu? Porque o hal reconhece a policy mas não obedece a ela.
Talvez o Max possa ajudar com alguma sugestão.
Gilcio
Em 06/07/10 00:46, Max Miorim escreveu:
> 2010/7/5 Isaac Filho <[email protected]>:
> >
> >> Eu uso UTF8 também, o problema que tu tem com o nome dos arquivos pode
> >> ser porque tu não monta o filesystem do pendrive usando a codificação
> >> certa, na man mount(8) diz quais as opções para os sistemas de
> >> arquivos usarem outra codificação, geralmente o nome do parâmetro para
> >> passar para o mount é iocharset. Em alguns sistemas de arquivos tu
> >> pode definir no kernel qual a codificação padrão.
> >>
> >
> > Isso seria setado no FSTAB? É que nunca faço alteração, uso do jeito que vem
> > mesmo, montando automático e tal. Nesse caso eu teria que ficar usando o
> > comando mount e tal?
> >
> > Abraços
> >
> > --
> > yzak
>
> Depende de como tu faz a montagem "automágica". Se é algo baseado no
> HAL, tu tem que fazer uma policy, tipo isso:
>
> <device>
> <match key="volume.fstype" string="vfat">
> <merge key="volume.policy.mount_option.iocharset=utf8"
> type="bool">true</merge>
> </match>
> </device>
>
> OBS: Isso tem que ser salvo em /etc/hal/fdi/policy como algumnome.fdi,
> depois tu tem que reiniciar o rc.haldaemon e provavelmente o X também.
>
> Se tu monta as coisas com algo baseado na fstab, tem que colocar
> iocharset=utf8 na linha do /etc/fstab.
>
> Se usar o comando mount para montar, tu tem que passar -o
> iocharset=utf8 como qualquer outra opção do mount.
>
> --
> GUS-BR - Grupo de Usuários de Slackware Brasil
> http://www.slackwarebrasil.org/
> http://groups.google.com/group/slack-users-br
>
> Antes de perguntar:
> http://www.istf.com.br/perguntas/
>
> Para sair da lista envie um e-mail para:
> [email protected]
--
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br
Antes de perguntar:
http://www.istf.com.br/perguntas/
Para sair da lista envie um e-mail para:
[email protected]