Primeiras Experiências de Verdade com o TS7300
Rec 27-jan-2008 15:11
Apesar de ser meio antigo, o
kernel2.4.26 que vem por padrão
com o
TS7300 seria perfeitamente usável se não fosse pelo fato de vir meio desequipado --
ele não vem nem com o iptables. Compilar um novo
kernel 2.4.26 não foi muito difícil -- há um
toolchain pré-empacotado para compilação cruzada
bem bonzinho. Ativei todas as opções relacionadas ao iptables, apliquei o patch para acrescentar
suporte ao
ebtables e o ativei, compilei tudo e funcionou
bem direitinho.
Adicionar o
smbfs
me fez tropeçar numa falha devido a uma função
do_div64
faltando.
Pegando uma dica no
blog do Matt Godbolt's,
copiei o arquivo
linux/arch/arm/lib/div64.S
pra dentro do diretório do
smbfs
, ajustei o
Makefile
para incluí-lo no
build e tudo funcionou ok.
Na
Tempest, usamos
kernels 2.6 cheio de personalizações, tais
como
vservers,
grsecurity,
IMQ,
DRBD,
truecrypt e outras bonanças. Eu queria ver quantos recursos
similares eu conseguiria atochar naquele
kernel 2.4. Achei
uma dentre muitas implementações do IMQ cujo
patch se aplicou
quase perfeitamente (eu tive de fazer um pequeno ajuste relativo a um
#include
que estava faltando), mas, fora isso, funcionou perfeitamente. O DRBD-0.7 também funcionou sem
nenhum problema, apesar de eu ter tido de habilitar manualmente o suporte à função
find_next_bit
genérica (sem otimizações específicas para o processador/arquitetura).
(O DRBD-8, por outro lado, só funciona em
kernels 2.6 mesmo.) Agora, o TrueCrypt não funciona
no 2.4, mas o
loop-AES provê funcionalidade semelhante e funcionou de cara, sem eu nem precisar
mexer em nada.
Um
patch antigo do
vservers-1.28
compilou sem grandes crises, mas não consegui compilar os utilitários
userspace. Talvez eu tente
de novo depois compilando tudo em modo
auto-hospedado
ao invés de por
compilação cruzada -- nesse ponto
eu estava mais explorando por brincadeira do que trabalhando de verdade, posto que pelo menos por
enquanto para a minha aplicação não haverá necessidade dos recursos do vservers. Também
não testei o grsec, apesar de estar curioso pra saber se ele funciona na arquitetura ARM (ele
funcionava na arquitetura SPARC, em uma antiga Ultra 5 que eu tinha.)
Então, se você quer um
kernel 2.4.26 com iptables, ebtables, IMQ e módulos pré-prontos
para o DRBD-7 e o loop-AES para um TS7300, seus problemas acabram! Baixe aqui os
binários do kernel e módulos pré-compilados (
vmlinux.bin
+
/lib/modules/2.4.26-ts11-k2
) ou um
patch
em relação à versão
ts11
da Technologic Systems.
Uma coisa que não funcionou pra mim foi o utilitário
bootload
-- um combinado utilitário
userspace +
módulo de
kernel que provê funcionalidade semelhante ao
kexec
-- ele nos permite dar partida em
outro sistema operacional (Linux ou não) de dentro do próprio Linux. Talvez eu esteja cometendo
algum erro bem trivial, pois li vários relatos de que funcionava perfeitamente. Eu tenho usado o
método tedioso de dar um
dd
do
vmlinux.bin
na primeira partição do cartão SD.
Outra coisa que não funcionou direito foi meu minimodem GSM -- mesmo depois de eu fazer um
cabo USB com fonte de alimentação própria. Eu fico obtendo mensagens repetidas de conexão/desconexão:
hub.c: new USB device not_pci-1, assigned address 4
ttyACM0: USB ACM device
usb.c: USB disconnect on device not_pci-1 address 4
hub.c: new USB device not_pci-1, assigned address 5
ttyACM0: USB ACM device
usb.c: USB disconnect on device not_pci-1 address 5
hub.c: new USB device not_pci-1, assigned address 6
ttyACM0: USB ACM device
usb.c: USB disconnect on device not_pci-1 address 6
hub.c: new USB device not_pci-1, assigned address 7
Isso é bem mau, pois conectividade GRPS/EDGE é um dos meus requisitos.
Preciso pensar em um plano B.
Também descobri que a Technologic Systems oferece um produto baseado
no TS7300 chamado
TS-COMBOX
com 25 portas seriais -- precisamente o que eu queria fazer reprogramando
a FPGA. Eu ainda posso fazer isso, mas teria de recomeçar do zero --
as 8 UARTs, o cartão SD e o vídeo implementadas na FPGA são proprietárias;
o
código Verilog postado no site do projeto OpenCores
só tem o
MAC ethernet.
Como já dizia o célebre Capitão Nascimento: "quem disse que a vida é fácil?"...
topo