Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suporte a compilação usando SDK #23

Open
allgood opened this issue Apr 6, 2020 · 5 comments
Open

Suporte a compilação usando SDK #23

allgood opened this issue Apr 6, 2020 · 5 comments

Comments

@allgood
Copy link

allgood commented Apr 6, 2020

É interessante se tiver suporte para compilação usando SDK, de forma que a compilação se dá em menos tempo e gera pacotes compatíveis com os releases binários oficiais do openwrt.

Eu tentei fazer com o seguinte roteiro, mas tive problemas de dependência recursiva, e após ajustado manualmente com esse commit ( allgood@d977335 ), e após instalados os pacotes, não consegui rodar o teste.

obtain the sdk

add the feed

echo "src-git simetbox https://github.com/simetnicbr/simetbox-openwrt-feed.git" >> feeds.conf.default

install source packages

./scripts/feeds update -a
./scripts/feeds install -p simetbox -a

create signing key

./staging_dir/host/bin/usign -G -s ./key-build -p ./key-build.pub -c "SIMETBOX Build signing key"

build

make

Note: To speed up the build you can add -j5 if you have a quad-core CPU or -j9 if you have a octa-core CPU

build index

make package/index

publish

After the last command, folder ./bin/packages/<arch>/simetbox/ will have the built packages, it can be published on any URL like "https:///simetbox/packages//simetbox/"

use repository on an openwrt installation

1. get key fingerprint with

From SDK folder, use the command

./staging_dir/host/bin/usign -F -p ./key-build.pub

2. copy content of key-build.pub into device

obtain the content of key-build.pub with

cat key-build.pub

Paste it into the device with the fingerprint obtained on previous command, on folder /etc/opkg/keys/, example: /etc/opkg/keys/1301dcaaf2d17be3

3. install desired packages

On the device shell
opkg install simetbox-openwrt-luci

@hmh
Copy link
Member

hmh commented Apr 6, 2020

O suporte a buildbot (e provavelmente junto com ele, ao modo SDK) está no nosso mapa, mas estamos terminando algumas altreações de altíssima prioridade antes.

Entretanto, atentar para as dificuldades em ter um busybox "custom", o SDK não te salva deste requerimento. Nem sempre é possível resolver com defines no Makefile...

@allgood
Copy link
Author

allgood commented Apr 6, 2020

Qual é a necessidade no busybox? alguma opção que não está no build default?

@hmh
Copy link
Member

hmh commented Apr 6, 2020

Várias, a mais "gritante" é traceroute por ICMP, tem uma gigantesca operadora que quebrou o traceroute em UDP. Existem outras. Em geral estão todas documentadas ou como depends (o build falha se não estiverem ligadas).

@allgood
Copy link
Author

allgood commented Apr 6, 2020

Em outro projeto eu fiz uma versão modificada do dnsmasq, com código, patches e opções diferentes do "oficial" mas que substitui ele. Não seria uma boa ideia fazer um pacote busybox-simet que conflita com e subsitui o "principal" e é dependência dos scripts do simet?

Imagino que no caso do busybox pode ser complicado porque é ele mesmo que roda os scripts de atualização dos pacotes, de repente durante a troca o sistema pode acabar quebrado a ponto de não conseguir se recuperar, mas de repente a ideia serve.

@hmh
Copy link
Member

hmh commented Oct 14, 2020

Estamos utilizando o SDK para gerar imagens agora, então em tese poderíamos disponibilizar a "nossa versão do SDK" que utiliza o nosso "fork" do openwrt (em geral, com backports extras) e configuração do BusyBox (habilita mais coisa).

Para utilizar os pacotes e SDKs do próprio OpenWrt, teríamos duas dificuldades a princípio:

  • Direcionar para as nossas versões de pacotes com backports relevantes
  • Configuração do BusyBox.

Um pacote renomeado com config diferente em tese funciona, embora seja um peso permanente de manutenção. Só que o BusyBox é meio "especial" de tão fundamental, e de qualquer forma, apenas o OpenWrt 19.07 está em situação de funcionar de forma razoavelmente estável sem precisar ficar fazendo backport ou alterações.

Parece que duas soluções agregariam valor suficiente para justificar o esforço:

  • Feed com pacotes simetbox compatível com OpenWrt 19.07 que funcionasse com o OpenWrt oficial (mesmo que isso cause restrições de funcionalidade)
  • SDK do SIMETBox (que é só o SDK do openwrt compilado a partir do nosso fork + nossas feeds).

Está em estudo, junto com alguma Web-GUI ou TUI para operar o SDK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants