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]

Responder a