Estou tendo um problema estranho com o gadget g_mass_storage, em que os arquivos excluídos do PC não estão "realmente" sendo excluídos, o que causa mais problemas durante a indexação.
Aqui está o procedimento:
- monte a partição para o dispositivo linux:
$ mount /dev/mmcblk1p3 /mnt/data
- inicie o gadget g_mass_storage:
$ modprobe g_mass_storage file=/dev/mmcblk1p3 removable=y
- escreve um arquivo na partição montada no dispositivo linux:
$ echo "hello world" > /mnt/data/hello.txt
- conecte o OTG USB - > PC
- abra o arquivo montado no seu pc para verificar o texto
- exclua o hello.txt do seu pc (shift - delete)
- remova o usb do PC
- aguarde até que o armazenamento usb esteja novamente disponível
(no meu alvo, o estado pode ser visto em /sys/class/udc/ci_hdrc.0/state)
- observe que o sistema de arquivos não contém mais o arquivo hello.txt (isso não ocorre)
$ ls /mnt/data/
$ stat hello.txt
File: hello.txt
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 58 Links: 1
Access: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
Access: 2022-08-21 05:57:00.000000000
Modify: 2022-08-21 05:57:00.000000000
Change: 2022-08-21 05:57:00.000000000
- cat o 'arquivo invisível'
$ cat hello.txt
hello world
O que está acontecendo? Se eu tentar editar o arquivo invisível, ele funcionará ONCE e o sistema de arquivos se tornará somente leitura. para o qual a correção é montar novamente o sistema de arquivos.
Como faço para permitir que o host do PC exclua arquivos permanentemente?
EDITAR:
Eu descobri basicamente que os sistemas de arquivos estão fora de sincronia, o que o IMO é bobo, como o que mais é o ponto do dispositivo de armazenamento em massa, se é acessível apenas a partir do host do PC. Basta usar um Thumbdrive USB e depois ...
Eu consegui hackear algo que desmonta / monta o sistema de arquivos do alvo dependendo da conexão USB, no entanto, no futuro, atualizarei a lógica para forçar o usuário a ativar a conexão USB.