
O Raspberry Pi é um dispositivo incrivelmente popular, conhecido por sua acessibilidade, versatilidade, recursos e comunidade vibrante. É fácil encontrar sites e artigos para fãs, mas a maioria das pessoas não conhece suas fraquezas até que elas próprias sofram delas e procurem informações nos fóruns.
Vou tentar falar sobre alguns problemas que encontrei pessoalmente, bem como sobre alguns problemas típicos que geralmente aparecem em pessoas que não suspeitam de nada. E, finalmente, por que não recomendo o Pi para alguns aplicativos, em particular serviços de NAS, como o NextCloudPi e o Open Media Vault. Espero que isso me poupe tempo, para não repetir tudo isso nos fóruns.
Eu tive muitos Raspberry Pi e os utilizo há muitos anos. Quando o primeiro modelo apareceu em 2012, tornou-se um marco importante no mercado de placa única. Embora várias pranchas boas já existissem, como Beagleboard e Odroid, elas eram muito caras, e somente fãs de hardcore podiam comprá-las e testá-las.
O Pi não é tão poderoso em comparação com eles, mas, devido ao incrível preço baixo, literalmente explodiu o mercado. Blogs, cartões de expansão, muitos projetos pessoais, toneladas de bibliotecas ... O Raspberry Pi foi o primeiro a conseguir tudo isso, e até hoje uma comunidade próspera é a maior vantagem do Pi em relação a outras placas.
Mas agora é 2019 e é hora de olhar em volta novamente. Na minha opinião, existem alternativas mais abertas de melhor qualidade pelo mesmo preço. Vou tentar explicar
Desempenho

O Raspberry Pi reduz o preço cortando cantos. Como resultado, o conselho não é produtivo o suficiente para algumas tarefas, comparado aos concorrentes. Em particular, é pouco adequado para tarefas de rede e funcionalidade USB.
Aqui está o
chip SMSC LAN9514 , que se conecta ao SoC com um canal USB, atuando como um adaptador USB-Ethernet e hub USB ao mesmo tempo. Assim, Ethernet e USB ficam no mesmo canal e competem entre si, o que contradiz o uso típico do NAS, quando algo é baixado pela rede e armazenado em uma unidade USB, sem mencionar a adição de RAID aqui.
Pelo mesmo motivo, mesmo quando eles finalmente lançaram um modelo habilitado para Gigabit Ethernet no ano passado, o desempenho real da rede nunca chegou nem perto do gigabit, mas era um
máximo de 40 MB / s em velocidade líquida e um máximo de 20 MB / s se Transferindo para um dispositivo USB . Naquela época, já havia placas baratas com Gigabit Ethernet e USB3 reais.
De fato, o Wi-Fi
não passa pelo SMSC , mas se conecta ao chip BCM4343 via
SDIO ; portanto, esse gargalo pode ser evitado usando o Wi-Fi. No entanto, o chip Wi-Fi não é onipotente, ele terá que lidar com interferências circundantes, portanto, essa não é uma alternativa ideal.
Por esses motivos, eu não recomendaria o uso do Pi como um NAS, seja o Open Media Vault ou o Nextcloud.
Real Brain Pi - Fonte fechada
Se você esteve envolvido em disputas de liberdade de software, o principal problema em nossos sistemas Linux são blobs binários de código fechado. Não vou entrar em detalhes, mas o problema é que essas partes do sistema não podem ser verificadas e elas têm acesso a tudo o que acontece no dispositivo. Isso gerou grandes projetos de código aberto, como o
Android Replicant , projetado para libertar nossos sistemas de qualquer bolha binária: um processo doloroso, tedioso e lento.
Um problema semelhante ocorre com o Raspberry Pi, onde a CPU e a GPU estão integradas no mesmo chip
BCM2837B0 . O processador central é um ARM A53 quad-core de 64 bits a 1400 MHz (no Pi 3B) e o processador gráfico é um VideoCore IV de 32 bits e núcleo duplo de 32 bits com uma frequência de 400 MHz. A integração de CPU e GPU é popular no mundo móvel porque reduz o preço e o consumo de energia. Os concorrentes NXP iMX e Allwinner usam uma abordagem semelhante.
Assim, no último Pi, existem seis núcleos, mas apenas quatro deles são ARM. O Linux é executado no processador, mas pode surpreendê-lo que o Linux neste dispositivo seja um cidadão de segunda classe. Os núcleos de GPU são executados no sistema operacional ThreadX em tempo real. Este sistema operacional de código fechado gerencia o sistema sem o conhecimento do kernel do Linux.
No início do download, o processador Raspberry Pi é completamente desativado (tecnicamente em um estado de
redefinição ) e é a GPU que inicia o sistema. Você pode dar uma olhada na pasta
/boot
e encontrará blobs binários com os quais a GPU inicia o processador e seu próprio sistema operacional ThreadX (
bootcode.bin e
start.elf ). Leia mais sobre o processo de download
aqui .
É a GPU que monta o cartão SD, baixa esses blobs e lê a configuração do
arquivo de texto config.txt , que editamos para ajustar as configurações de vídeo ou fazer overclock da GPU. O Linux não está envolvido aqui.
Quando a GPU permite que a CPU carregue o kernel do Linux, ela não sai do palco, funcionando apenas como um
processador gráfico . Não, a GPU ainda é a principal. Você já pensou em quem exibe esses logotipos quando o Pi se conecta ao HDMI? Ou esses
símbolos de raio ou temperatura estão nos ícones de aviso? Exatamente, é isso que o sistema ThreadX faz na GPU e o Linux não sabe o que está acontecendo.
Talvez não conheçamos todas as funcionalidades da GPU, mas sabemos algo pelo qual ele é responsável. Para este artigo, é importante que o ThreadX monitore a queda de tensão - um problema generalizado, como veremos mais adiante, e reduza a frequência do processador para evitar falhas e congelamentos. Portanto, em humanos, os dispositivos operam a uma frequência de 600 MHz em vez de 1400 MHz, na melhor das hipóteses. Essa regulagem começa em 4,65 V e também pode ser acionada pela temperatura. Ao mesmo tempo, o Linux ainda pensa que o sistema está operando normalmente na frequência total.
Isto é exatamente o que vemos. Como o sistema operacional principal é proprietário, não temos como saber o que mais ele está fazendo ou é capaz de fazer, portanto, sempre há um problema de privacidade.
Há pelo menos uma patente incluída no blob de código fechado que proíbe a abertura do código
até pelo menos 2025 , mas ainda não sabemos se isso será feito. Houve tentativas de
fazer engenharia reversa do VideoCore IV e criar firmware de código aberto para ele. Infelizmente, o
projeto morreu antes de trazer algo útil. Tal como acontece com os blobs do Android, este é um trabalho incrivelmente difícil.
Problemas nutricionais

Este não é um erro técnico do Raspberry Pi, mas um erro típico do usuário.
O primeiro modelo mal utilizou 80 mA, mas cada nova geração se tornou cada vez mais poderosa e, por esse motivo, mais intensiva em energia. Além disso, muitos usuários conectam dispositivos USB que também consomem energia se eles não vêm com suas próprias fontes de alimentação.
O conector microUSB foi originalmente projetado apenas para 1,8 A e, embora seja um padrão antigo, e você pode encontrar carregadores que oferecem mais, muitas pessoas tentam usar carregadores de telefone 1 A antigos ou comprar adaptadores baratos na Internet para alimentar seus Framboesa. Mas o Pi é um computador e requer uma fonte de alimentação estável e de alta qualidade que forneça 5 V na entrada com uma força de corrente de até 2,5 A. Não apenas é necessário um transformador decente, mas também uma conexão de alta qualidade (ou ocorrerá uma queda de tensão), mas mais importante que você precisa de um bom
cabo ; caso contrário, a tensão entrará em queda considerável. Os cabos defeituosos são ainda mais comuns que as fontes de tensão instáveis; portanto, use um bom cabo: talvez
20AWG ou similar, ou apenas compre uma fonte de energia oficial. A conclusão é que nem todo carregador USB funcionará corretamente, mesmo que seja 2.5A 5V.
Adicione isso ao que discutimos na última seção e você começará a entender o quadro geral. A maioria dos usuários trabalha em seus dispositivos com uma frequência reduzida, e a GPU esconde isso deles, então eles realmente trabalham com uma frequência reduzida de 600 MHz: quase o mesmo que o ARMv6 no primeiro Pi.
Em muitos casos, os esforços da GPU são insuficientes e o sistema trava ou congela aleatoriamente, possivelmente corrompendo os dados ou danificando o cartão SD. Isso geralmente acontece
sob carga , ou seja, quando os transistores requerem potência máxima. Então o usuário chega aos fóruns e reclama:
minha fonte de alimentação está em ordem, eu executei isto e aquilo, e nada falhou . Obviamente, isso não é verdade, mas muitas vezes eles não acreditam nisso.
Na minha opinião, eis o que os japoneses podem chamar de
Poka Yoke , ou seja, devemos projetar sistemas que,
por seu design , não permitam que o usuário atire no próprio pé. Mais uma vez, a fonte de energia oficial é de muito boa qualidade por seu preço, e eu recomendo.
Não gosto que um sistema proprietário oculto diminua a frequência além do nosso controle. Seria melhor se o sistema congelasse: você poderá ver imediatamente o que está acontecendo e uma pessoa poderá substituir a fonte de alimentação. Na minha opinião, é melhor do que enganar os usuários e fazê-los reclamar
por toda a Internet . É difícil imaginar a razão pela qual os desenvolvedores do Pi teriam feito isso se não tivessem escondido o problema do Poka Yoke.
Verifique se há problemas de energia
Demorou muito, mas
ainda conseguimos registrar o problema no nível do kernel. Se
você vir essa mensagem nos logs do sistema:
kern: crit: [1701.464833 2.116656] Subtensão detectada! (0x00050005)
kern: info: [1707.668180 6.203347] Tensão normalizada (0x00000000
então você tem uma diminuição na tensão. É bom que agora o Linux capture pelo menos essas informações, mas se quisermos saber mais, precisamos de acesso direto à GPU.
O comando vcgencmd pode obter informações do sistema no firmware do ThreadX.
Você pode usar os
vcgencmd measure_clock arm
e
vcgencmd measure_volts
para verificar a frequência e a tensão reais. Aqui está um exemplo de saída de um
script de monitoramento tkaiser.
Conclusão
Eu realmente acho que o Raspberry Pi se tornou um evento muito importante na história dos computadores de placa única, mas hoje está atrasado em termos de qualidade, desempenho e abertura. Existem alternativas acessíveis em que os desenvolvedores prestaram mais atenção a esses problemas.
Apesar disso, ainda uso o Raspberry Pi,
ajudando os usuários a configurar sua própria hospedagem em nuvem. Dada a popularidade deste fórum, faz sentido mantê-lo enquanto for útil para as pessoas.