O ivman não tem interface gráfica e funciona como um daemon, assim como o hal (hald)
A minha idéia era usar o comando lshal --monitor para tentar "pegar"
alguma informação (quando você conectasse o dispositivo) que confirmasse que o
dispositivo está bloqueado.
Se isto for possível usaríamos esta informação para criar uma regra para o ivman.
Esta regra não precisa estar relacionada a nenhum programa com interface gráfica.
Ele poderia apenas tocar um som ou simplesmente não montar o dispositivo.
Então você saberia que ele está bloqueado e o desbloquearia antes de plugá-lo novamente.
Algo como isto:
<ivm:Match name="hal.block.status" value="bloqueado">
<ivm:Option name="mount" value="false" />
</ivm:Match>
Note que hal.block.status não existe, eu estou chutando.
Outra opção mais simples que eu acho que funcionaria é uma regra do ivman
para montar o mp3player como permissão de escrita de qualquer jeito.
Exemplo:
Monta qualquer coisa em fat com suporte a escrita para usuários do grupo com gid 100
<ivm:Match name="hal.volume.fstype" value="vfat">
<ivm:Option name="mountoption" value="umask=0007" />
<ivm:Option name="mountoption" value="gid=100" />
</ivm:Match>
Outro exemplo, um pouco redundante de propósito só pra exemplificar:
Monta com suporte a escrita se for um dispositivo de armazenamento, se for usb, se for fat,
se for seu mp3player e somente pra você
(onde XXX é o nome do seu mp3 player informado pelo lshal e YYYY é o id do seu usuário)
<ivm:Match name="hal.info.category" value="storage">
<ivm:Match name="hal.storage.bus" value="usb">
<ivm:Match name="hal.volume.fstype" value="vfat">
<ivm:Match name="hal.volume.label" value="XXXX">
<ivm:Option name="mountoption" value="umask=0007" />
<ivm:Option name="mountoption" value="uid=YYYY" />
</ivm:Match>
</ivm:Match>
</ivm:Match>
</ivm:Match>
Bom, mais simples do que isto só se você tentasse montar
o mp3 player com a opção -n, para que não escreva no mtab.
Quem sabe isto não resolve? É só um chute.
P.S.:
Módulo você descarrega com o comando rmmod nome_do_módulo