TheSin- / rpi-img-builder

Scripts to create custom images for RaspberryPi
MIT License
107 stars 30 forks source link

MythTV image #14

Closed rajil closed 6 years ago

rajil commented 6 years ago

Hello,

I would like to build a custom image for MythtvLight for Raspbian Stretch following instructions here and here.

Is this the correct way to setup the repository?

# cat repos/MythTV/multistrap.list.in 
[MythTV]
packages=mythtv-light
source=http://dl.bintray.com/bennettpeter/deb
components=main
suite=__SUITE__
omitdebsrc=true

How can i pull in the gpg package key?

TheSin- commented 6 years ago

I wouldn't put the packages in there, that means they are required for bootstrapping which isn't the case. Make a plugin for the packages.

since it's a file gpg you'll need to add that to the plugin.

see https://github.com/TheSin-/rpi-img-builder/tree/master/plugins/Foundation/apt-key for an example of hose this is done.

rajil commented 6 years ago

Ok, i created the plugin as follows:

$ cat plugins/mythtvlight/apt-key/preinst 
#!/usr/bin/env bash
set -e
wget https://bintray.com/user/downloadSubjectPublicKey\?username=bintray -O rootfs/apt-keys/bintray-keyring.asc

$ cat plugins/mythtvlight/packages 
mythtv-light

Where do i specify the repo source (deb http://dl.bintray.com/bennettpeter/deb/ stretch myth29)?

rajil commented 6 years ago

I specified the repo details as follows:

$cat plugins/mythtvlight/apt-key/preinst 
#!/usr/bin/env bash
set -e

wget https://bintray.com/user/downloadSubjectPublicKey\?username=bintray -O rootfs/apt-keys/bintray-keyring.asc
echo "deb http://dl.bintray.com/bennettpeter/deb/ stretch myth29" >> rootfs/etc/apt/sources.list

But my build bombed,

Building dependency tree... Done
E: Unable to locate package mythtv-light
rootfs.mak:108: recipe for target '/home/rs4/rpi/rpi-img-builder/rootfs' failed
make[1]: *** [/home/rs4/rpi/rpi-img-builder/rootfs] Error 100
Makefile:21: recipe for target 'build-rootfs' failed
make: *** [build-rootfs] Error 2
TheSin- commented 6 years ago

no you need to keep the repo how you had it just remove the packages= line. So not write to sources.list directly so remove the echo line form the inst script.

in your repo .in file change components=main to components=myth29

then in your make line remember that REPOS should be "Raspbian MythTV"

rajil commented 6 years ago

Thanks, the image is building now.

I need to do a few more steps:

I need to copy file called mysql.txt at /home/pi/.mythtv. If i create a file in the plugins directory would that do the trick?

$ ls mythtvlight/files/home/pi/.mythtv/mysql.txt 
mythtvlight/files/home/pi/.mythtv/mysql.txt

In /boot/config.txt, i need "gpu_mem=256 ". How can this be specified?

TheSin- commented 6 years ago

yes it would

just include you're own version of config.txt in the files as well, copy the one from the base and modify it how you like.

so make files/home/pi/.mthtv/mysql.txt and files/boot/config.txt in your plugin

rajil commented 6 years ago

The files/home/pi/.mthtv/mysql.txt was created on the pi but its permission was set to root:root. The uid:gid should be set to 1000:1000, do i need to create a postint like so?

$plugins/mythtvlight/postinst
#!/bin/sh
chown -R pi:pi /home/pi
TheSin- commented 6 years ago

yes sadly it would be root, in the postinst you can change it though do a chown -r pi: /home/pi or something

rajil commented 6 years ago

Kodi refuses to install for me with an error:

The following information may help to resolve the situation:

The following packages have unmet dependencies:
 kodi : Depends: kodi-bin (>= 2:17.3-1~jessie) but it is not going to be installed
        Depends: kodi-bin (< 2:17.3-1~jessie.1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
rootfs.mak:108: recipe for target 'rpi/rpi-img-builder/rootfs' failed

I was building using make REPO="Raspbian MythTV". Any idea why is that?

By the way do i need Foundation in the REPO as well?

rajil commented 6 years ago

I tried to use another kodi repo with files here. Unfortunately, I am not getting the repo definition right:

My repo definition is

# cat repos/Kodi/multistrap.list.in 
[Kodi]
source=http://pipplware.pplware.pt/pipplware
components=main
suite=__SUITE__
omitdebsrc=true

It fails as follows:

Get:8 http://archive.raspberrypi.org jessie/ui armhf Packages [58.9 kB]                                                                  
Err http://pipplware.pplware.pt stretch/main armhf Packages                                                                              
  404  Not Found
Ign http://pipplware.pplware.pt stretch/main Translation-en_US                                                                                                                                               
Ign http://pipplware.pplware.pt stretch/main Translation-en                                                                                                                                                  
Ign http://archive.raspberrypi.org jessie/main Translation-en_US                                                                                                                                             
Ign http://archive.raspberrypi.org jessie/main Translation-en                                                                                                                                                
Ign http://archive.raspberrypi.org jessie/ui Translation-en_US 
TheSin- commented 6 years ago

I don't know what Kodi uses, but make sure you use the right suite and components for each repo

rajil commented 6 years ago

The Foundation repo file is set to suite=jessie while Raspbian default is stretch. It seems that a bug. Shouldnt both be the same.