Hi there!
I am quite new to the topic of containerization and stuffβ¦
I managed to run kodi --standalone
in a ubuntu 20.04 container.
Here are my container infos:
Name: kodicont1
Status: RUNNING
Type: container
Architecture: x86_64
PID: 137824
Created: 2022/03/01 00:33 UTC
Last Used: 2022/03/19 21:37 UTCResources:
Processes: 68
Disk usage:
root: 1.66GiB
CPU usage:
CPU usage (in seconds): 82
Memory usage:
Memory (current): 434.59MiB
Memory (peak): 747.05MiB
Network usage:
eth0:
Type: broadcast
State: UP
Host interface: vethe497055d
MAC address: 00:16:3e:d5:e2:50
MTU: 1500
Bytes received: 92.41kB
Bytes sent: 41.59kB
Packets received: 271
Packets sent: 322
IP addresses:
inet: 10.128.122.227/24 (global)
inet6: fd42:50c5:e295:34d7:216:3eff:fed5:e250/64 (global)
inet6: fe80::216:3eff:fed5:e250/64 (link)
lo:
Type: loopback
State: UP
MTU: 65536
Bytes received: 12.39kB
Bytes sent: 12.39kB
Packets received: 116
Packets sent: 116
IP addresses:
inet: 127.0.0.1/8 (local)
inet6: ::1/128 (local)
i use the follwing script to fire up X (wait_for_x.sh):
#!/bin/bash
waitForX [ [ β¦]]
Wait for X Server to be ready, then run the given command once X server
is ready. (Or simply return if no command is provided.)
Source: wait for an X11 server to be ready (good for running under XVFB when testing chrome) Β· GitHub
function LOG {
# echo $(date -R): $0: $*
echo $*
}if [ -z β$DISPLAYβ ]; then
LOG βFATAL: No DISPLAY environment variable set. No X.β
exit 13
fiLOG βWaiting for X Server $DISPLAY to be availableβ
MAX=120 # About 60 seconds
CT=0
while ! xdpyinfo >/dev/null 2>&1; do
sleep 0.50s
CT=$(( CT + 1 ))
if [ β$CTβ -ge β$MAXβ ]; then
LOG βFATAL: $0: Gave up waiting for X server $DISPLAYβ
exit 11
fi
doneLOG βX is availableβ
if [ -n β$1β ]; then
exec β$@β
fi#eof
and the systemd services:
/etc/systemd/system/xorg.service
[Unit]
Description=X11 Server[Service]
ExecStartPost=/root/wait_for_x.sh
Type=simple
Environment=βDISPLAY=:0β
ExecStart=/usr/bin/Xorg -nolisten tcp :0 vt7[Install]
WantedBy=multi-user.target
and kodi.service
[Unit]
Description=Kodi media center
Requires=xorg.service
After=xorg.service[Service]
Type=simple
Environment=βDISPLAY=:0β
ExecStart=/usr/bin/kodi --standalone
Restart=on-success
User=ubuntu
Group=ubuntu[Install]
WantedBy=multi-user.target
When i start the container kodi boots perfectly but i cannot get the imput devices to work.
What i have tried: Used a small script to add all the /dev/imput/events to the container:
#/bin/bash!
for i in {0β¦20β¦1}
do
lxc config device add kodicont1 event$i unix-char source=/dev/input/event$i path=/dev/input/event$i required=false mode=0666 major=13 minor=$[64 + $i]
done
But that doesnβt help. Still i cannot use mouse or keyboard in kodi.
Can someone help my with the input devices? How do I get them to work in the container?
Thanks, Benjamin.
Here is the container config:
lxc config show kodicont1
architecture: x86_64
config:
image.architecture: amd64
image.description: ubuntu 20.04 LTS amd64 (release) (20220118)
image.label: release
image.os: ubuntu
image.release: focal
image.serial: β20220118β
image.type: squashfs
image.version: β20.04β
security.privileged: βtrueβ
volatile.base_image: 44650bc10c092105a5695a240307f518b9f5a6f3a6c8094f340d663331191e48
volatile.eth0.host_name: vethe497055d
volatile.eth0.hwaddr: 00:16:3e:d5:e2:50
volatile.idmap.base: β0β
volatile.idmap.current: ββ
volatile.idmap.next: ββ
volatile.last_state.idmap: ββ
volatile.last_state.power: RUNNING
volatile.uuid: fa8ea563-cba4-4dbf-bb38-8733b5e3849b
devices:
allusb:
mode: β666β
type: usb
event0:
major: β13β
minor: β64β
mode: β0666β
path: /dev/input/event0
required: βfalseβ
source: /dev/input/event0
type: unix-char
event1:
major: β13β
minor: β65β
mode: β0666β
path: /dev/input/event1
required: βfalseβ
source: /dev/input/event1
type: unix-char
event2:
major: β13β
minor: β66β
mode: β0666β
path: /dev/input/event2
required: βfalseβ
source: /dev/input/event2
type: unix-char
event3:
major: β13β
minor: β67β
mode: β0666β
path: /dev/input/event3
required: βfalseβ
source: /dev/input/event3
type: unix-char
event4:
major: β13β
minor: β68β
mode: β0666β
path: /dev/input/event4
required: βfalseβ
source: /dev/input/event4
type: unix-char
event5:
major: β13β
minor: β69β
mode: β0666β
path: /dev/input/event5
required: βfalseβ
source: /dev/input/event5
type: unix-char
event6:
major: β13β
minor: β70β
mode: β0666β
path: /dev/input/event6
required: βfalseβ
source: /dev/input/event6
type: unix-char
event7:
major: β13β
minor: β71β
mode: β0666β
path: /dev/input/event7
required: βfalseβ
source: /dev/input/event7
type: unix-char
event8:
major: β13β
minor: β72β
mode: β0666β
path: /dev/input/event8
required: βfalseβ
source: /dev/input/event8
type: unix-char
event9:
major: β13β
minor: β73β
mode: β0666β
path: /dev/input/event9
required: βfalseβ
source: /dev/input/event9
type: unix-char
event10:
major: β13β
minor: β74β
mode: β0666β
path: /dev/input/event10
required: βfalseβ
source: /dev/input/event10
type: unix-char
event11:
major: β13β
minor: β75β
mode: β0666β
path: /dev/input/event11
required: βfalseβ
source: /dev/input/event11
type: unix-char
event12:
major: β13β
minor: β76β
mode: β0666β
path: /dev/input/event12
required: βfalseβ
source: /dev/input/event12
type: unix-char
event13:
major: β13β
minor: β77β
mode: β0666β
path: /dev/input/event13
required: βfalseβ
source: /dev/input/event13
type: unix-char
event14:
major: β13β
minor: β78β
mode: β0666β
path: /dev/input/event14
required: βfalseβ
source: /dev/input/event14
type: unix-char
event15:
major: β13β
minor: β79β
mode: β0666β
path: /dev/input/event15
required: βfalseβ
source: /dev/input/event15
type: unix-char
event16:
major: β13β
minor: β80β
mode: β0666β
path: /dev/input/event16
required: βfalseβ
source: /dev/input/event16
type: unix-char
event17:
major: β13β
minor: β81β
mode: β0666β
path: /dev/input/event17
required: βfalseβ
source: /dev/input/event17
type: unix-char
event18:
major: β13β
minor: β82β
mode: β0666β
path: /dev/input/event18
required: βfalseβ
source: /dev/input/event18
type: unix-char
event19:
major: β13β
minor: β83β
mode: β0666β
path: /dev/input/event19
required: βfalseβ
source: /dev/input/event19
type: unix-char
event20:
major: β13β
minor: β84β
mode: β0666β
path: /dev/input/event20
required: βfalseβ
source: /dev/input/event20
type: unix-char
gpu:
type: gpu
hdiraw0:
mode: β0666β
path: /dev/hdiraw0
required: βfalseβ
source: /dev/hdiraw0
type: unix-char
hdiraw1:
mode: β0666β
path: /dev/hdiraw1
required: βfalseβ
source: /dev/hdiraw0
type: unix-char
inp2:
gid: β107β
path: /dev/input/event1
type: unix-char
uid: β0β
inp5:
gid: β107β
path: /dev/input/event4
type: unix-char
uid: β0β
inp6:
gid: β107β
path: /dev/input/event5
type: unix-char
uid: β0β
inp7:
gid: β107β
path: /dev/input/event6
type: unix-char
uid: β0β
inp11:
gid: β107β
path: /dev/input/mice
type: unix-char
uid: β0β
inp16:
gid: β107β
path: /dev/input/event0
type: unix-char
uid: β0β
inpa:
gid: β107β
path: /dev/input/event2
type: unix-char
uid: β0β
inpb:
gid: β107β
path: /dev/input/event3
type: unix-char
uid: β0β
keyboard:
productid: β8000β
type: usb
vendorid: 0c40
mice:
mode: β0666β
path: /dev/input/mice
required: βfalseβ
source: /dev/input/mice
type: unix-char
myport8080:
connect: tcp:127.0.0.1:8080
listen: tcp:0.0.0.0:8080
type: proxy
myport9090:
connect: tcp:127.0.0.1:9090
listen: tcp:0.0.0.0:9090
type: proxy
myport9777:
connect: tcp:127.0.0.1:9777
listen: tcp:0.0.0.0:9777
type: proxy
rcv:
gid: β126β
mode: β0660β
productid: β8000β
type: unix-hotplug
uid: β0β
vendorid: 0c40
root:
path: /
pool: lxcpool
type: disk
snd1:
gid: β29β
path: /dev/snd/controlC0
type: unix-char
uid: β0β
snd2:
gid: β29β
path: /dev/snd/hwC0D0
type: unix-char
uid: β0β
snd3:
gid: β29β
path: /dev/snd/hwC0D2
type: unix-char
uid: β0β
snd4:
gid: β29β
path: /dev/snd/pcmC0D0c
type: unix-char
uid: β0β
snd5:
gid: β29β
path: /dev/snd/pcmC0D0p
type: unix-char
uid: β0β
snd7:
gid: β29β
path: /dev/snd/pcmC0D10p
type: unix-char
uid: β0β
snd9:
gid: β29β
path: /dev/snd/pcmC0D3p
type: unix-char
uid: β0β
snd11:
gid: β29β
path: /dev/snd/pcmC0D7p
type: unix-char
uid: β0β
snd12:
gid: β29β
path: /dev/snd/pcmC0D8p
type: unix-char
uid: β0β
snd13:
gid: β29β
path: /dev/snd/pcmC0D9p
type: unix-char
uid: β0β
snd14:
gid: β29β
path: /dev/snd/seq
type: unix-char
uid: β0β
snd15:
gid: β29β
path: /dev/snd/timer
type: unix-char
uid: β0β
tty7:
gid: β5β
mode: β620β
path: /dev/tty7
source: /dev/tty7
type: unix-char
uid: β0β
ephemeral: false
profiles:
- default
stateful: false
description: ββ