Estava muito curioso para saber como é o famoso Raspberry Pi. Comprei um usado no
PicaretaLivre MercadoLivre por R$100 no ano passado. Estava como novo e veio com um case transparente de brinde. É o modelo B Rev.2, com dois furos de fixação e 512MB de RAM.
Depois de muito fuçar no Raspibian e no hardware do Raspyberry Pi, decidi montar um servidor de arquivos. Modifiquei a placa retirando o conector de vídeo composto e áudio analógico e substituí o conector duplo USB por barra de pinos. Adicionei um dissipador de calor no SoC Broadcom BCM2835 para fazer
overclock. Aliás, muito interessante o encapsulamento do mesmo: uma memória RAM BGA em cima do SoC também BGA. O gabinete veio de um
receiver de TV via satélite com fonte chaveada, três botões em um conetor USB no painel.
|
Gabinete do receiver de TV por satélite reaproveitado. |
A fonte de alimentação, baseada no excelente IC da
Power Integrations TOP254, retirei os componentes das saídas desnecessárias de ±7,5V e 3,3V, modificando o circuito de realimentação para usar somente a saída de 5V restante, além de por um
trimpot para ajustar precisamente esta saída. Troquei também o conector de saída por um de três pinos. Substituí o interruptor por um com lâmpada neon.
|
Placa da fonte de alimentação chaveada. |
|
Detalhe mostrando os componentes retirados, a adição do trimpot e troca do conector. |
O cabo de alimentação interno, fiz com duas saídas: uma com o mini-USB para o Raspberry e outra para o HDD de 2,5" de 500GB. Sugiro usar HDD de 2,5", pois só usa 5V simplificando muito a montagem. Importante alimentar o HDD direto da fonte, não pela saída USB do Raspberry, pois esta pode não suportar a potência necessária ao HDD, ativando os circuitos de proteção.
Usei uma placa de
case de HDD USB-SATA para ligar o mesmo no Raspberry. Substitui o conector USB por barra de pinos e adicionei mais uma para o LED de atividade ligada ao painel do gabinete.
|
Detalhe da placa USB/SATA com o conector USB substituído por barra de pinos e a alimentação vinda direta da fonte. Há também os dois fios para o LED de acesso no painel. |
A interface Ethernet, cortei um cabo e usei um passa-cabos na parte traseira do gabinete, crimpando um conector novo. Para a saída HDMI, a mesma coisa, porém foi muito trabalhoso ressoldar todos os fios no conetor HDMI. Este cabo usa quatro pares diferenciais com blindagens individuais, difíceis de desencapar sem estragar os fios.
|
Cabo Ethernet com novo conector e cabo HDMI com o conector ressoldado. |
|
Cabos Ethernet e HDMI saindo pelos passa-cabos no lado de trás do gabinete. Note os adaptadores adicionais. |
|
Detalhe dos passa-cabos, aproveitando a furação original do gabinete. |
Neste gabinete, há uma placa no painel contendo três botões, dois LEDs, um display, um IC TTL e um
receiver infravermelho para controle remoto. Retirei tudo menos os botões. Os LEDs, substituí por um vermelho e outro azul de 2mm e adicionei mais um vermelho do adaptador USB-SATA. Há também um conector USB no painel que liguei no USB do Raspberry, assim posso ligar um teclado e mouse PS/2 com uma adaptador USB-PS/2.
|
Placa do painel modificada vista por trás. Note os resistores de pull-up e capacitores nos três botões. |
|
Conector frontal USB do gabinete. |
|
Esquema do conector do Raspberry Pi, mostrando a ligação dos botões POWER, UP e DOWN bem como os LEDs. O barramento I²C comentarei em um futuro post. |
Por hora, apesar de os três botões estarem ligados ao Raspberry Pi, somente o botão POWER está em uso. Ao ser pressionado, roda um
script em Python que executa o comando "sudo shutdown -h now". Futuramente farei os botões UP e DOWN controlarem o volume.
|
Conectores USB do Raspberry Pi, um ligado ao conector USB do painel e outro no adaptador USB-SATA. |
|
Visão geral do interior do gabinete. Para fixar o HDD e o Raspberry Pi, furei a chapa e fixei-os com parafusos e espaçadores. Note a bateria de Lítio do RTC ligado ao barramento I²C. Neste barramento ainda sai um cabo para ligar um futuro display OLED no Painel. |
Num equívoco, achando que daria mais performance ao servidor de arquivos, usei o sistema de arquivos exFAT, ficando muito lento. Depois testei com FAT32, um pouco menos lento, com NTFS tendo problemas de permissão e performance e finalmente com o nativo do Linux: o EXT4 que funcionou com a performance esperada. Recomendo usar este, os outros funcionam mas com muita dificuldade e limitações. Com o EXT4 e rede Ethernet de 100Mbits, consigo transferir arquivos a pouco mais de 8Mbytes/s, condizente para uma rede de 100Mbits/s. Testei o acesso com Wi-Fi pelo roteador e mesmo conectado a 72Mbit o desempenho é triste: mal consegue transferir 1Mbyte/s. É um problema que tenho notado em redes domésticas com Wi-Fi: o desempenho pífio mesmo conetado a mais de 100Mbit/s. Pesquisei muito e ainda não consegui uma resposta satisfatória.
Para funcionar como servidor, usei o SAMBA. Tive bastante dificuldade no início por não saber muito de Linux, do SAMBA e de permissões de arquivos no EXT4.
Ajustes e oveclock: abaixo está o config.txt simplificado (sem os comentários) que usei no servidor. Desabilitei a saída de vídeo composto e fixei a resolução da saída HDMI em 1360x768 60Hz. Fiz o overclock do BCM2835 para 900MHz e habilitei o power-saver (quando ocioso, o clock cai para 450MHz). Habilitei a interface I²C, SPI e UART. Alterei o LED de atividade para a gpio25.
disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=2
hdmi_cvt=1366 768 60 3 0 0 0
hdmi_drive=2
initial_turbo=60
arm_freq=900
arm_freq_min=450
core_freq=333
core_freq_min=175
sdram_freq=450
sdram_freq_min=250
over_voltage=2
gpu_mem=128
boot_delay=0
disable_splash=1
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=100000
dtparam=spi=on
dtparam=uart0=on
dtoverlay=lirc-rpi
dtoverlay=i2c-rtc, ds3231
dtoverlay=pps-gpio,gpiopin=23
dtparam=act_led_activelow=on
dtparam=act_led_gpio=25
dtoverlay=bmp085_i2c-sensor
audio=on
Futuramente pretendo trocar a placa do Raspberry para o 3, com processador
quad-core e 64bits.