Onde a trava para o modo somente leitura é aplicada com cartões SD? Isso é feito dentro do próprio cartão fisicamente, no firmware dos leitores ou no sistema operacional? (Algum outro lugar?)
Se você ler a especificação simplificada da camada física das especificações SD, parte 1 , a seção 4.3.6 "Gerenciamento de proteção contra gravação" diz
Três métodos de proteção contra gravação são suportados no cartão de memória SD, como segue:
- Chave mecânica de proteção contra gravação (somente responsabilidade do host
)
- Proteção interna contra gravação do cartão (responsabilidade do cartão) - Operação de bloqueio do cartão de proteção por senha.Interruptor de proteção contra gravação mecânica
Uma mesa deslizante mecânica na lateral do cartão (consulte os Adendos Mecânicos da Parte 1) será usada pelo usuário para indicar que um determinado cartão está protegido contra gravação ou não. Se a mesa deslizante estiver posicionada de forma a abrir a janela, significa que o cartão está protegido contra gravação. Se a janela estiver fechada, o cartão não está protegido contra gravação. Um interruptor adequado e correspondente no lado do soquete indicará ao host que o cartão está protegido contra gravação ou não. É de responsabilidade do host proteger o cartão. A posição do interruptor de proteção contra gravação é desconhecida no circuito interno do cartão.
(minha ênfase)
Uma especificação do cartão SD da TOSHIBA diz
CMD28 SET_WRITE_PROT - A proteção contra gravação interna não está implementada.
CMD29 CLR_WRITE_PROT - A proteção contra gravação interna não está implementada.
CMD30 SEND_WRITE_PROT - A proteção contra gravação interna não está implementada.
...
2) Funções não suportadas:
Proteção interna contra gravação do cartão (opcional em ESPECIFICAÇÃO DE CAMADA FÍSICA 4.3.5.)
No meu trabalho, usamos cartões SD em um sistema incorporado. Se tentarmos inicializar com uma placa que está bloqueada, teremos um pânico no kernel. Isso não foi grande coisa até termos um lote de cartões SD com interruptores de gravação muito frouxos: o ato de inserir o cartão no leitor às vezes era suficiente para mover o comutador e travar o cartão. Muitas pessoas começaram a tentar opções mecânicas para evitar isso, como colar um pedaço de fita em cada cartão SD, mas no final, consertamos isso alterando uma linha de código-fonte no kernel do Linux. Agora, quando um cartão SD é detectado com o comutador configurado como somente leitura, simplesmente ignoramos o comutador e gravamos dados no cartão sempre que desejamos.
Isso é do nosso louco quebra de backports, então duvido que esse patch se aplique de maneira limpa em qualquer lugar, mas se você quiser experimentar seu próprio kernel, este é um bom ponto de partida:
Se você não deseja aplicar patches e criar um kernel Linux, mas possui uma câmera Canon P&S, pode usar o CHDK para gravar arquivos (fotos) em um cartão SD protegido contra gravação (quando a câmera é ligada, o OF verifica estado do comutador; quando definido como RO, ele carrega automaticamente o firmware do cartão SD. Isso permite que os usuários inicializem diretamente no CHDK; depois, o CHDK ignora o estado do comutador para que ainda possa gravar imagens no cartão; consulte, por exemplo, http : //chdk.wikia.com/wiki/Bootable_SD_card ).
Você também pode gravar em um cartão SD protegido contra gravação no Linux desativando o sinalizador somente leitura
hdparm
e remontando o cartão:fonte
Depende do leitor. O leitor pode ignorar a guia de proteção contra gravação. O leitor pode ter um firmware que desabilite a gravação se a guia de proteção contra gravação estiver ativada. O leitor pode ter um driver de software que desabilite a gravação se a guia de proteção contra gravação estiver ativada. Na prática, a grande maioria dos leitores faz isso no firmware.
fonte
É um switch baseado em hardware. É um recurso que apenas bloqueia qualquer operação de gravação.
Se alternado, você não pode:
Mover arquivos de ou para o cartão SD
Remova os arquivos do cartão SD
Copie arquivos para o cartão SD
Formate o cartão SD
EDIT Leia mais aqui .
fonte