OpenEmbedded 기반 Linux를 실행하는 셋톱박스에 Tvheadend를 설치하는 방법

OpenEmbedded 기반 Linux를 실행하는 셋톱박스에 Tvheadend를 설치하는 방법

문맥

셋톱박스가 있어요팔각형 SF4008, 실행되도록 설계되었습니다.오픈 임베디드Linux 기반 배포. 나는 현재개방형 모든 지형 차량그것에 설치되었습니다.

일반적으로 사용자는 이러한 셋톱박스의 비디오 출력을 모니터에 연결하고 프런트엔드 GUI를 통해 채널을 시청하기를 원합니다.미스터리 2.

내 사용 사례는 다릅니다. 컴퓨터 네트워크를 통해 채널을 스트리밍하고 싶습니다. Enigma2를 사용할 수 있지만 제 생각에는TV 프런트엔드더욱 사용자 친화적이고 기능이 풍부합니다.

질문

셋톱박스에서 직접 Tvheadend를 실행하고 싶은데 다음을 찾고 있습니다.단순한거기에 설치하는 방법.

옵션

openATV에서 사용하는 패키지 관리자는 다음과 같습니다.옵케. 사전 구성된 저장소에는 많은 Enigma2 관련 패키지가 포함되어 있지만 , 및 perl이와 유사한 몇 가지 범용 패키지만 포함되어 있습니다 . 내가 아는 한, Tvheadend 패키지나 호환 아키텍처(armv7l/armhf)를 위한 다른 opkg 호환 저장소는 없습니다.pythonvim

사전 구성된 저장소에는 와 같은 빌드 도구가 포함되어 있지 않으며 make컴파일러도 포함되어 있지 않으며 기본 라이브러리의 개발 버전도 포함되어 있지 않습니다. 따라서 셋톱박스에서 직접 Tvheadend를 컴파일하려면 상당히 복잡한 설정이 필요합니다. 다른 곳에서 크로스 컴파일하는 것이 확실히 가능하고 더 쉬울 수도 있습니다. 그러나 나는 미리 컴파일된 바이너리를 사용하는 것을 선호합니다.

Tvheadend에서 제공하는 혜택을 알고 있습니다.APT 저장소호환되는 아키텍처를 갖춘 armhf데비안 패키지 . 나도 찾았어opkg는 설치 .deb 파일을 처리할 수 있습니다.. 그러나 런타임 종속성으로 인해 외부 패키지는 모든 기본 종속성이 설치된 경우에만 제대로 작동합니다.

어쩌면 셋톱박스에 데비안을 직접 설치할 수도 있을 것 같습니다. 커널 이미지를 다시 작성한 다음 루트 파일 시스템의 아카이브를 추출하는 새로 고침 프로세스가 있습니다. 저는 부트로더를 처음 접했고 표준 Linux 커널을 올바르게 부팅하기 위해 부트로더를 수정하는 방법이나 수정 방법을 모릅니다. 또한 현재 실행 중인 Linux 커널에서 먼저 사용자 정의 하드웨어 드라이버를 추출해야 할 수도 있습니다.

질문

위의 옵션은 모두 작동할 수 있지만 불필요하게 복잡하다고 생각합니다. 나는 더 쉬운 방법이 있어야 한다고 믿습니다. 아마도 이미 언급된 옵션은 단순화될 수 있습니다. 아니면 제가 모르는 더 쉬운 방법이 있을 수도 있습니다.

답변1

더 쉬운 방법이 있습니다.

다른 Linux 배포판으로 부팅하지 말고 대신 기존 Linux 커널 및 chroot 환경을 사용하십시오. 부트로더를 수정하거나 사용자 정의 하드웨어 드라이버를 새 커널로 포팅할 필요가 없습니다.

적절한 chroot 환경을 만드는 간단한 방법 중 하나는 클린 시스템을 부팅하는 것입니다. 데비안 커뮤니티는 이 목적을 위해 특별히 도구를 제공합니다. 그것은 알려져있다부팅 방지 프로그램.

답변2

크로스 컴파일이 허용되는 경우 한 가지 방법은 oe-alliance 빌드 환경을 사용하는 것입니다.

  1. git복제 용빌드 환경저장소를 만들고 최근 분기로 전환합니다 4.3.
  2. Bitbake 레시피가 있는지 확인하세요 tvheadend. 존재 meta-openembedded/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb하지 않는 경우 해당 하위 모듈을 포함해야 하는 meta-openembedded최신 master분기 로 업데이트하세요.origin
  3. 예를 들어 다음을 사용하여 빌드 종속성을 설치합니다.이것오픈임베디드의 안내입니다.
  4. 예를 들어 아래와 같이 Octagon SF4008에 대해 선호하는 이미지를 구축합니다 MACHINE=sf4008 DISTRO=openatv DISTRO_TYPE=release make image. 이 작업을 완료하는 데 몇 시간이 걸리지만 완료되면 builds/openatv/release/sf4008/tmp/deploy/images/sf4008/openatv-6.3-sf4008-20181219_usb.zip.
  5. 다음과 유사한 명령을 사용하여 bitbake 빌드 환경을 활성화합니다.

    $ cd builds/openatv/release/sf4008/
    $ . env.source
    
  6. 를 실행하여 tvheadend종속성 없이 빌드합니다 bitbake -b tvheadend. 다음과 유사한 위치에 ipk 패키지를 생성해야 합니다.tmp/deploy/ipk/cortexa15hf-neon-vfpv4/tvheadend_4.3+git10608+dd37467-r0_cortexa15hf-neon-vfpv4.ipk

그러면 생성된 패키지를 수신기에 직접 설치할 수 있습니다. 해당 종속성 중 일부가 업스트림 저장소에서 누락되었을 수 있습니다. 이 경우에는 bitbake -b package_namebitbake(즉)를 사용하여 컴파일한 다음 수동으로 설치하세요.

사용자 정의 이미지를 사용하면 tvheadend의 런타임 종속성이 충족됩니다. 그러나 미리 만들어진 이미지를 사용하는 것도 가능합니다.

관련 정보