O SmartRouter PROJECT é um sistema bem pequeno e limpo. Tendo um objetivo específico, não inclui ferramentas de uso geral. Por isso é bastante frequente que os usuários queiram usar a “build-tree” para compilar software adicional. Mas a “build-tree” foi feita para usar em outra distribuição Linux, num ambiente chroot. Então temos dois problemas: 1) Muita gente usa Windows; e 2) Não sei porque, mas não funciona em versões recentes do Ubuntu e derivados (no meu caso, Linux Mint 12).
Uma solução seria rodar uma distribuição Linux numa máquina virtual e colocar a “build-tree”. Mas máquina virtual consome bastante memória e processamento, então precisamos de uma versão pequena do Linux para economizar recursos. Espera ai, o SmartRouter é uma versão pequena do Linux. Vamos usar ele então. Não importa se máquina virtual ou real, usando Windows ou Linux, o que importa é ter acesso a um SmartRouter – o que você provavelmente já tem.
Baixe a srp-build.tar.bz2 e extraia em /partition. Para começar a usar a “build-tree” precisamos modificar o setdevel.sh para rodar o comando chroot da própria “build-tree”, porque no próprio SmartRouter não tem. Eu gosto de mudar também para “fixar” o caminho da “build-tree” assim não ficando dependendo de ir ao diretório dela para depois chamar o setdevel.sh. Outra coisa que gosto de acrescentar é o setdevel.sh ao PATH para chamar de qualquer lugar sem especificar o caminho. E por último, gosto de me livrar daquele menu que aparece ao fazer login, já que eu vou ficar fazendo login toda hora aquilo fica bem incômodo.
Primeiro o setdevel.sh, substitua por isso:
#!/bin/sh
DEVDIR=/partition/srp-build
$DEVDIR/usr/sbin/chroot $DEVDIR /etc/setdevel-script
O restante deveria ser feito modificando o arquivo /root/.profile, mas esse arquivo é bem difícil de mudar e nem sempre resolve o problema. Então prefiro colocar alguns comandos no /etc/rc.d/rc.local para fazer isso. Acrescente os seguintes comandos (se já tem algo lá, mantenha apenas acrescente):
ln -s /partition/srp-build/setdevel.sh /usr/bin
sed -i /menu/d /root/.profile
Faça backup. Se você não quer reiniciar, execute estes mesmos comandos que você inseriu no rc.local. Ou execute o rc.local, se você não tiver mais nada lá.
Pronto, agora você já pode chamar o setdevel.sh de qualquer lugar e começar a compilar software no próprio SmartRouter. Agora como transformar o que você compilou num addon já é assunto separado. Por enquanto, se for algo simples, você pode ir usando o truque de colocar eles em /partition e usar o rc.local para criar links nos locais certos.