Acabo de confirmar que a simples instalação de firmware através de pendrive não sobreescreve o conteúdo do diretório /usr/local/etc. Fiz uma reinstalação do firmware original e tanto o irfake quanto o jukebox sobreviveram.
Isso é bastante vantajoso, porque hacks feitos via Telnet não precisam ser refeitos caso você faça um upgrade do firmware, mas tem vários efeitos negativos:
- Se você fizer uma besteira grande (como corromper o arquivo rcS de forma que DvdPlayer não rode) reinstalar o firmware não vai consertar o problema.
- Qualquer comportamento esquisito ou incômodo provocado por suas modificações também perdurará.
- Instalar um firmware modificado e depois instalar o original pode também deixar o aparelho inoperante se o firmware modificado depender do irfake.
- Modificações feitas diretamente no firmware em /usr/local/etc podem não ser instaladas quando você instalar esse firmware via pendrive;
A solução para o problema está no blog de Shantic:
http://dpi.mx/s9mod/2011/05/easier-installation-test/Basta rodar via Telnet o comando:
echo “ ” | dd of=/dev/mtdblock/0 bs=2048 seek=8192
E reiniciar o S9. A princípio eu achei que não tinha funcionado, porque o aparelho simplesmente ficou parado na tela preta inicial. Mas depois de um longo tempo ele reiniciou sozinho e começou a carregar o firmware no pendrive.
Note que no segundo parágrafo Shantic explica o problema:
when you select upgrade from the menu it triggers a special command “kill -6 1″ that will put the system in upgrade mode, this will read the FW from the pendrive and install it to the nand, the problem with custom FW (or at least mine) is that a lot of the info (moServices) goes into the /usr/local/etc/ path, and this path gets completely ignored by the “upgrade” so big part of the custom firmware will not get installed :( as far as I know there is no way to “force” the installation of the new /usr/local/etc/ if this was possible then this problem would not exist
Se o firmware não tiver acesso Telnet você vai estar encrencado. Existe outro método, mas requer que você tenha o cabo serial.