Como instalar o Tvheadend em um set-top-box rodando Linux baseado no OpenEmbedded

0

Contexto

Eu tenho um set-top-box Octagon SF4008 , que é projetado para executar distribuições Linux baseadas no OpenEmbedded . Eu atualmente tenho openATV instalado nele.

Normalmente, os usuários desejam conectar a saída de vídeo desses decodificadores a um monitor e, em seguida, querem assistir aos canais por meio de uma GUI de front-end, como Enigma2 .

Meu caso de uso é diferente. Eu gostaria de transmitir os canais pela rede de computadores. Eu poderia usar o Enigma2 para isso, mas eu considero que o Tvheadend seja mais fácil de usar e mais rico em recursos.

Pergunta

Eu gostaria de rodar o Tvheadend diretamente no set-top-box e estou procurando uma maneira simples de instalá-lo lá.

Opções

O gerenciador de pacotes usado pelo openATV é opkg . Os repositórios pré-configurados contêm muitos pacotes específicos do Enigma2, mas apenas alguns genéricos como perl , python , vim e similares. Não há nenhum pacote Tvheadend lá, nem em qualquer outro repositório compatível com opkg para a arquitetura compatível (armv7l / armhf) que eu conheço.

Os repositórios pré-configurados não contêm ferramentas de compilação como make , nenhum compilador e nenhuma versão de desenvolvimento das bibliotecas básicas. Portanto, compilar o Tvheadend diretamente no set-top-box exigiria uma configuração bastante complexa. É definitivamente possível e talvez mais fácil compilar em outro lugar. No entanto, eu preferiria usar binários pré-compilados.

Eu sei que o Tvheadend fornece repositórios APT com pacotes Debian para a arquitetura armhf compatível. Eu também descobri que o opkg pode manipular a instalação de arquivos .deb . No entanto, devido às dependências de tempo de execução, os pacotes externos só funcionariam corretamente quando todas as dependências nativas também estivessem instaladas.

Talvez eu possa instalar o Debian diretamente no set-top-box. Existe um procedimento que inclui reescrever a imagem do kernel e extrair um arquivo do sistema de arquivos raiz. Eu não estou familiarizado com o bootloader e não sei se ou como ele precisa ser modificado para inicializar adequadamente um kernel Linux padrão. Além disso, os drivers de hardware personalizados podem primeiro precisar ser extraídos do kernel Linux atualmente em execução.

Problema

As opções acima mencionadas podem funcionar, mas considero-as desnecessariamente complexas. Eu acredito que deveria haver uma maneira mais simples. Talvez as opções já mencionadas possam ser simplificadas. Ou talvez haja uma maneira muito mais simples da qual eu não estou ciente.

    
por Peter Bašista 28.12.2017 / 23:11

1 resposta

0

Existe uma maneira mais simples.

Em vez de tentar inicializar em uma distribuição Linux diferente, use o kernel Linux existente e um ambiente chroot. Não há necessidade de modificar o bootloader ou de portar os drivers de hardware personalizados para um novo kernel.

Uma das maneiras simples de criar um ambiente chroot adequado é inicializar um sistema limpo. A comunidade Debian fornece uma ferramenta exatamente para esse propósito. É chamado de debootstrap .

    
por 28.12.2017 / 23:11