PMS Packaging 07-2022 update - Forum Preview & Testing

PMS Packaging 07-2022 - Forum Preview & Testing.

The purpose of this preview is to confirm the changes presented below work under all known conditions.

After initial testing with AMD64 CPUs, all DEB packages will be built and tested.

  1. Confirm CPU detection logic:
    a. Continues correct operation for all Intel CPUs, Sandy Bridge through TigerLake
    b. Properly detects newer variable-length CPU naming starting with the AlderLake processor family.
    c No improper selection of Beignet/OpenCL on CometLake and above Processors.

  2. Confirm package signing key automatically upgrades to GPG signing and
    works successfully after upgrading on Ubuntu 20.04+ and Debian 10.0+

Changed in this update:

  1. CPU detection logic updated:
    a. Intel CPU identification parsing update to correctly identify newer CPUs which use variable length identification string.
    b. Intel N and G series CPUs (series 5-8) now identified correctly.

  2. Plex signing key updated to support gpg keyrings for Ubuntu 20+ / Debian 10+
    a. Packaging will automatically upgrade existing repository definition
    b. Packaging will ensure Plex signing key always current (self updating)

  3. Internal changes to significantly reduce use of subprocesses. (80%)

  4. Apt β€œpurge” support enabled. Purging will remove default package correctly.
    Metadata stored in alternate locations will not be touched.

Build 2 (10-Jul-2022)

Fixes:

  1. CPU identification logic failed with some (12th Gen) CPUs - Fixed.
  2. Intel N and G CPU identification logic - rewritten to use new mechanism.
  3. Minor adjustments to shell variable processing (clean up)

–Build redacted–

Final build - Submitted to QA:

2 Likes

I installed the deb, followed the instructions to manually install all the Intel packages and then ran the installer again and it looks like it confirms everything correctly. Turned on HDR tone mapping and HW looks like it’s still working. Is it not feasible for the install script to handle downloading and installing those intel packages for the user, though?

But with tone mapping enabled, the transcode speed reported by Tautulli is like fully halved. Is that normal?

@BinaryJay

No, it’s not possible.

If you watch when you run updates, apt will assert a lock file.
( have you seen the messages about waiting for pid xxxxx ?)

It is for this reason I cannot install another package while PMS itself is being installed by apt.

I cannot speak to Tautulli.

My focus here is solely the packaging. PMS issues / 3rd party issues are outside my focus.

May I ask your HW, OS, configuration? I’m curious what the host environment is so I can keep track of what remains to be confirmed.

@ChuckPa

22.04 (KVM in Proxmox, iGPU passed through), i5-7500

My question wasn’t so much about Tautulli but of the expected performance impact of enabling HDR tone mapping on QuickSync. I did not expect transcoding performance to be impacted so much. Plex is reporting HW for both decode and encode.

Jay,
When hardware tone mapping is enabled, there is an added load on the CPU’s internal databus.

There are PCI links between the QSV ASIC and the GPU (which does the tone mapping).

The HW transcode + tone mapping process involves:

  1. Read frame from file
  2. QSV HW decode the input frame to raw video
  3. send the raw frame to the GPU
  4. Allow OpenCL-Beignet / Intel Compute Runtime/Intel OpenCL to process the frame
  5. Send the completed frame back to the QSV ASIC for output encoding.
  6. Multiplex audio & video β†’ Send to device

Compare this with regular HW transcoding

  1. Read frame from file
  2. Point QSV ASIC at the input buffer and invoke transcode. (decode + encode in one operation)
  3. Multiplex output audio (still in the same location) with audio β†’ Send to device.

If you look at the logs, you’ll see a lot of β€˜Zero Copy’ operations.
These are where the data is operated on in the same buffer (no copying to a new buffer)

When tone mapping, the simple load of pushing the data to the GPU and back is what we see as β€˜decreased performance’.

As example,

  1. Intel i7-7700 can HW transcode about 600 Mbps
  2. Same Intel i7-7700 can HW transcode + tonemap about 400 Mbps
    (Reference: My QNAP TVS-1282 i7-7700)

If this is what you’re seeing in Tautulli then it’s perfectly understandable.

Tonemapping does exact a price.

As long as you’re transcoding better than 1:1, you’re good.
Typically, I see 4:1 performance (I can run 4 streams with ease)

To the point of this thread,

How well did this package install for you?
Being in a container is detected and skips 99% of the logic.

Package installed fine with no problems and nothing unexpected. Detected everything I didn’t have during first run, and then detected everything was installed and correct afterwards on the second run. It’s not running in a container, it’s in a virtual machine (so it shouldn’t matter as far as you’re concerned).

Do you have the file /tmp/plexinstaller.log please?

Plex Media Server installation configuration info: Thu 07 Jul 2022 12:59:34 PM EDT

Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=β€œβ€
PlexUser=β€œplex”
PlexGroup=β€œplex”
VideoGroup=β€œvideo”
AppSuppDir=β€œ/var/lib/plexmediaserver/Library/Application Support”
PlexTempDir=β€œ/tmp”
LangEncoding=β€œen_US.UTF-8”
ExistingVersion=12700
DistroName=β€œubuntu”
DistroVersion=β€œ2204”
HaveHardware=1
HaveTranscoderPref=0
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=1
HaveIntelXeon=0
HaveIntelCeleron=0
HaveIntelPentium=0
Havei915=1
HaveNvidia=0
CPUSKU=7500
NeedOpenCL=0
NeedBeignet=0
NeedIntelCompute=1
HaveBeignet=0
HaveOpenCL=1
HaveIntelGmmlib=1
HaveIntelIGCCore=1
HaveIntelIGCOpenCL=1
HaveIntelOpenCL=1
HaveIntelCompute=1
RequiredIntelGmmlib=β€œ21.3.3”
RequiredIntelIGCCore=β€œ1.0.9441”
RequiredIntelIGCOpenCL=β€œ1.0.9441”
RequiredIntelOpenCL=β€œ21.49.21786”
VersionIntelGmmlib=β€œ21.3.3”
VersionIntelIGCCore=β€œ1.0.9441”
VersionIntelIGCOpenCL=β€œ1.0.9441”
VersionIntelOpenCL=β€œ21.49.21786”
Platform=β€œStandard PC (i440FX + PIIX, 1996)”
Processor=β€œi5-7500T”
Distro=β€œUbuntu 22.04 LTS”
Kernel=β€œLinux binaryplex 5.15.0-40-generic #43-Ubuntu SMP Wed Jun 15 12:54:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux”

Thank you. That looks great.

Can you confirm the package signing key installed correctly ?

Yes, apt no longer emits the warning about the plex repo.

Excellent. Thank you for confirming.

try to install

sudo dpkg -i pms-packaging-preview-build-1-amd64.deb
Selecting previously unselected package plexmediaserver.
(Reading database … 178316 files and directories currently installed.)
Preparing to unpack pms-packaging-preview-build-1-amd64.deb …
PlexMediaServer install: Pre-installation Validation.
dpkg: error processing archive pms-packaging-preview-build-1-amd64.deb (–install):
new plexmediaserver package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
pms-packaging-preview-build-1-amd64.deb

Ubuntu Desktop 22.04
Intel i5-12500

@OneNightEntertainment

Would you mind breaking open the package and running just the preinstall script to see where it’s failing for you?

How do I do that ?

  1. create a subdirectory and cd into it
  2. copy / move the DEB file into the subdir
  3. ar x name-of-file.deb
  4. tar xf control.tar.gz

Now you’ll see the preinstall script

run that with sudo .

It will print errors / give console output .
check the status return echo $? when it finishes.

~/Downloads$ sudo ./preinst
PlexMediaServer install: Pre-installation Validation.

/Downloads$ echo $?
1

I got this

Would you please now edit the preinstall and add -x to bash?

#!/bin/bash -x

Look down a few lines and see if you have set -e.
If so, remove that line.

Now save and exit the editor.

Give it a spin and see where it stops

  • Init=0
  • Systemd=0
  • LinuxContainer=0
  • Custom=0
  • NewInstall=1
  • PlexUser=plex
  • PlexGroup=plex
  • AppSuppDir=β€˜/var/lib/plexmediaserver/Library/Application Support’
  • PlexTempDir=/tmp
  • LangEncoding=en_US.UTF-8
  • VideoGroup=video
  • NeedGroup=1
  • NeedUser=1
  • Errors=0
  • ExistingVersion=0
  • Fail=0
  • HaveHardware=0
  • CPUSKU=0
  • HaveIntel=0
  • HaveIntelCore=0
  • HaveIntelXeon=0
  • HaveIntelCeleron=0
  • HaveIntelPentium=0
  • Havei915=0
  • HaveNvidia=0
  • HaveOverride=0
  • HaveTranscoderPref=0
  • NeedVideo=0
  • OverrideDir=
  • OverrideFile=
  • Running=0
  • Verbose=1
  • Warnings=0
  • NeedIntelCompute=0
  • NeedBeignet=0
  • NeedOpenCL=0
  • BeignetAvailable=0
  • HaveBeignet=0
  • HaveOpenCL=0
  • HaveIntelGmmlib=0
  • HaveIntelIGCCore=0
  • HaveIntelIGCOpenCL=0
  • HaveIntelOpenCL=0
  • HaveIntelCompute=0
  • RequiredIntelGmmlib=21.3.3
  • RequiredIntelIGCCore=1.0.9441
  • RequiredIntelIGCOpenCL=1.0.9441
  • RequiredIntelOpenCL=21.49.21786
  • DistroName=
  • DistroVersion=
  • InstConfig=/tmp/plexinstaller.log
  • FindCommands
  • local Location
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation cat
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/cat β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/cat β€˜]’
    ++ β€˜[’ -e /bin/cat β€˜]’
    ++ Location=/bin/cat
    ++ β€˜[’ -e /usr/bin/cat β€˜]’
    ++ Location=/usr/bin/cat
    ++ β€˜[’ -e /sbin/cat β€˜]’
    ++ β€˜[’ -e /usr/sbin/cat β€˜]’
    ++ echo /usr/bin/cat
  • Location=/usr/bin/cat
  • β€˜[’ /usr/bin/cat β€˜!=’ β€˜β€™ β€˜]’
  • alias cat=/usr/bin/cat
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation chmod
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/chmod β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/chmod β€˜]’
    ++ β€˜[’ -e /bin/chmod β€˜]’
    ++ Location=/bin/chmod
    ++ β€˜[’ -e /usr/bin/chmod β€˜]’
    ++ Location=/usr/bin/chmod
    ++ β€˜[’ -e /sbin/chmod β€˜]’
    ++ β€˜[’ -e /usr/sbin/chmod β€˜]’
    ++ echo /usr/bin/chmod
  • Location=/usr/bin/chmod
  • β€˜[’ /usr/bin/chmod β€˜!=’ β€˜β€™ β€˜]’
  • alias chmod=/usr/bin/chmod
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation chown
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/chown β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/chown β€˜]’
    ++ β€˜[’ -e /bin/chown β€˜]’
    ++ Location=/bin/chown
    ++ β€˜[’ -e /usr/bin/chown β€˜]’
    ++ Location=/usr/bin/chown
    ++ β€˜[’ -e /sbin/chown β€˜]’
    ++ β€˜[’ -e /usr/sbin/chown β€˜]’
    ++ echo /usr/bin/chown
  • Location=/usr/bin/chown
  • β€˜[’ /usr/bin/chown β€˜!=’ β€˜β€™ β€˜]’
  • alias chown=/usr/bin/chown
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation cp
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/cp β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/cp β€˜]’
    ++ β€˜[’ -e /bin/cp β€˜]’
    ++ Location=/bin/cp
    ++ β€˜[’ -e /usr/bin/cp β€˜]’
    ++ Location=/usr/bin/cp
    ++ β€˜[’ -e /sbin/cp β€˜]’
    ++ β€˜[’ -e /usr/sbin/cp β€˜]’
    ++ echo /usr/bin/cp
  • Location=/usr/bin/cp
  • β€˜[’ /usr/bin/cp β€˜!=’ β€˜β€™ β€˜]’
  • alias cp=/usr/bin/cp
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation find
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/find β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/find β€˜]’
    ++ β€˜[’ -e /bin/find β€˜]’
    ++ Location=/bin/find
    ++ β€˜[’ -e /usr/bin/find β€˜]’
    ++ Location=/usr/bin/find
    ++ β€˜[’ -e /sbin/find β€˜]’
    ++ β€˜[’ -e /usr/sbin/find β€˜]’
    ++ echo /usr/bin/find
  • Location=/usr/bin/find
  • β€˜[’ /usr/bin/find β€˜!=’ β€˜β€™ β€˜]’
  • alias find=/usr/bin/find
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation getent
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/getent β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/getent β€˜]’
    ++ β€˜[’ -e /bin/getent β€˜]’
    ++ Location=/bin/getent
    ++ β€˜[’ -e /usr/bin/getent β€˜]’
    ++ Location=/usr/bin/getent
    ++ β€˜[’ -e /sbin/getent β€˜]’
    ++ β€˜[’ -e /usr/sbin/getent β€˜]’
    ++ echo /usr/bin/getent
  • Location=/usr/bin/getent
  • β€˜[’ /usr/bin/getent β€˜!=’ β€˜β€™ β€˜]’
  • alias getent=/usr/bin/getent
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation grep
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/grep β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/grep β€˜]’
    ++ β€˜[’ -e /bin/grep β€˜]’
    ++ Location=/bin/grep
    ++ β€˜[’ -e /usr/bin/grep β€˜]’
    ++ Location=/usr/bin/grep
    ++ β€˜[’ -e /sbin/grep β€˜]’
    ++ β€˜[’ -e /usr/sbin/grep β€˜]’
    ++ echo /usr/bin/grep
  • Location=/usr/bin/grep
  • β€˜[’ /usr/bin/grep β€˜!=’ β€˜β€™ β€˜]’
  • alias grep=/usr/bin/grep
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation groupadd
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/groupadd β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/groupadd β€˜]’
    ++ β€˜[’ -e /bin/groupadd β€˜]’
    ++ β€˜[’ -e /usr/bin/groupadd β€˜]’
    ++ β€˜[’ -e /sbin/groupadd β€˜]’
    ++ Location=/sbin/groupadd
    ++ β€˜[’ -e /usr/sbin/groupadd β€˜]’
    ++ Location=/usr/sbin/groupadd
    ++ echo /usr/sbin/groupadd
  • Location=/usr/sbin/groupadd
  • β€˜[’ /usr/sbin/groupadd β€˜!=’ β€˜β€™ β€˜]’
  • alias groupadd=/usr/sbin/groupadd
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation head
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/head β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/head β€˜]’
    ++ β€˜[’ -e /bin/head β€˜]’
    ++ Location=/bin/head
    ++ β€˜[’ -e /usr/bin/head β€˜]’
    ++ Location=/usr/bin/head
    ++ β€˜[’ -e /sbin/head β€˜]’
    ++ β€˜[’ -e /usr/sbin/head β€˜]’
    ++ echo /usr/bin/head
  • Location=/usr/bin/head
  • β€˜[’ /usr/bin/head β€˜!=’ β€˜β€™ β€˜]’
  • alias head=/usr/bin/head
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation mkdir
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/mkdir β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/mkdir β€˜]’
    ++ β€˜[’ -e /bin/mkdir β€˜]’
    ++ Location=/bin/mkdir
    ++ β€˜[’ -e /usr/bin/mkdir β€˜]’
    ++ Location=/usr/bin/mkdir
    ++ β€˜[’ -e /sbin/mkdir β€˜]’
    ++ β€˜[’ -e /usr/sbin/mkdir β€˜]’
    ++ echo /usr/bin/mkdir
  • Location=/usr/bin/mkdir
  • β€˜[’ /usr/bin/mkdir β€˜!=’ β€˜β€™ β€˜]’
  • alias mkdir=/usr/bin/mkdir
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation stat
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/stat β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/stat β€˜]’
    ++ β€˜[’ -e /bin/stat β€˜]’
    ++ Location=/bin/stat
    ++ β€˜[’ -e /usr/bin/stat β€˜]’
    ++ Location=/usr/bin/stat
    ++ β€˜[’ -e /sbin/stat β€˜]’
    ++ β€˜[’ -e /usr/sbin/stat β€˜]’
    ++ echo /usr/bin/stat
  • Location=/usr/bin/stat
  • β€˜[’ /usr/bin/stat β€˜!=’ β€˜β€™ β€˜]’
  • alias stat=/usr/bin/stat
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation tail
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/tail β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/tail β€˜]’
    ++ β€˜[’ -e /bin/tail β€˜]’
    ++ Location=/bin/tail
    ++ β€˜[’ -e /usr/bin/tail β€˜]’
    ++ Location=/usr/bin/tail
    ++ β€˜[’ -e /sbin/tail β€˜]’
    ++ β€˜[’ -e /usr/sbin/tail β€˜]’
    ++ echo /usr/bin/tail
  • Location=/usr/bin/tail
  • β€˜[’ /usr/bin/tail β€˜!=’ β€˜β€™ β€˜]’
  • alias tail=/usr/bin/tail
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation useradd
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/useradd β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/useradd β€˜]’
    ++ β€˜[’ -e /bin/useradd β€˜]’
    ++ β€˜[’ -e /usr/bin/useradd β€˜]’
    ++ β€˜[’ -e /sbin/useradd β€˜]’
    ++ Location=/sbin/useradd
    ++ β€˜[’ -e /usr/sbin/useradd β€˜]’
    ++ Location=/usr/sbin/useradd
    ++ echo /usr/sbin/useradd
  • Location=/usr/sbin/useradd
  • β€˜[’ /usr/sbin/useradd β€˜!=’ β€˜β€™ β€˜]’
  • alias useradd=/usr/sbin/useradd
  • for i in cat chmod chown cp find getent grep groupadd head mkdir stat tail useradd usermod
    ++ FindLocation usermod
    ++ local Location
    ++ Location=
    ++ β€˜[’ -e /usr/local/bin/usermod β€˜]’
    ++ β€˜[’ -e /usr/local/sbin/usermod β€˜]’
    ++ β€˜[’ -e /bin/usermod β€˜]’
    ++ β€˜[’ -e /usr/bin/usermod β€˜]’
    ++ β€˜[’ -e /sbin/usermod β€˜]’
    ++ Location=/sbin/usermod
    ++ β€˜[’ -e /usr/sbin/usermod β€˜]’
    ++ Location=/usr/sbin/usermod
    ++ echo /usr/sbin/usermod
  • Location=/usr/sbin/usermod
  • β€˜[’ /usr/sbin/usermod β€˜!=’ β€˜β€™ β€˜]’
  • alias usermod=/usr/sbin/usermod
  • rm -f /tmp/plexinstaller.log
  • Output β€˜Pre-installation Validation.’
  • Message=β€˜PlexMediaServer install: Pre-installation Validation.’
  • β€˜[’ β€˜β€™ = 1 β€˜]’
  • echo β€˜PlexMediaServer install: Pre-installation Validation.’
    PlexMediaServer install: Pre-installation Validation.
  • β€˜[’ β€˜Pre-installation Validation.’ = β€˜β€™ β€˜]’
  • β€˜[’ 0 -eq 1 β€˜]’
  • echo β€˜PlexMediaServer install: Pre-installation Validation.’
  • logger
    ++ cat /proc/1/comm
  • β€˜[’ systemd = systemd β€˜]’
    ++ which systemctl
  • β€˜[’ /usr/bin/systemctl β€˜!=’ β€˜β€™ β€˜]’
  • Systemd=1
  • β€˜[’ 1 -eq 0 β€˜]’
  • β€˜[’ 1 -eq 1 β€˜]’
  • β€˜[’ -e /etc/systemd/system/plexmediaserver.service β€˜]’
  • OverrideDir=/etc/systemd/system/plexmediaserver.service.d
  • β€˜[’ -d /etc/systemd/system/plexmediaserver.service.d β€˜]’
    ++ grep -zi β€˜^container=.+$’ /proc/1/environ
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • β€˜[’ 0 -eq 1 β€˜]’
    ++ GetPref TranscoderTempDirectory β€˜/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml’
    ++ Retval=
    ++ β€˜[’ -e β€˜/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml’ β€˜]’
    +++ grep TranscoderTempDirectory β€˜/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml’
    +++ wc -l
    ++ β€˜[’ 0 -gt 0 β€˜]’
    ++ echo β€˜β€™
  • PrefTempDir=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
    ++ getent passwd plex
    ++ wc -l
  • β€˜[’ 1 -gt 0 β€˜]’
  • NeedUser=0
    ++ getent group plex
    ++ wc -l
  • β€˜[’ 1 -gt 0 β€˜]’
  • NeedGroup=0
  • β€˜[’ -d β€˜/var/lib/plexmediaserver/Library/Application Support’ β€˜]’
  • β€˜[’ 0 -eq 0 β€˜]’
  • β€˜[’ 0 -eq 0 β€˜]’
  • NewInstall=0
  • β€˜[’ 0 -eq 0 β€˜]’
    ++ GetUID plex
    ++ Retval=-1
    +++ getent passwd plex
    ++ UserString=plex:x:999:998::/var/lib/plexmediaserver:/usr/sbin/nologin
    ++ β€˜[’ plex:x:999:998::/var/lib/plexmediaserver:/usr/sbin/nologin β€˜!=’ β€˜β€™ β€˜]’
    +++ echo plex:x:999:998::/var/lib/plexmediaserver:/usr/sbin/nologin
    +++ awk -F: β€˜{print $3}’
    ++ Retval=999
    ++ echo 999
  • PlexUserUID=999
    ++ stat -L --format=%U β€˜/var/lib/plexmediaserver/Library/Application Support’
  • Owner=plex
    ++ stat -L --format=%u β€˜/var/lib/plexmediaserver/Library/Application Support’
  • OwnerUID=999
  • β€˜[’ 999 β€˜!=’ 999 β€˜]’
  • β€˜[’ -f /usr/share/doc/plexmediaserver/README.Debian β€˜]’
    ++ head -1 /usr/share/doc/plexmediaserver/README.Debian
    ++ awk -F- β€˜{print $2}’
    ++ sed -e β€˜s/./ /g’
    ++ awk β€˜{printf β€œ%d%2.2d%2.2d”, $1,$2,$3}’
  • ExistingVersion=12702
    ++ cat /proc/cpuinfo
    ++ grep β€˜model name’
    ++ uniq
    ++ awk '-F: ’ β€˜{print $2}’
  • Model=β€˜12th Gen Intel(R) Coreβ„’ i5-12500’
    ++ cat /proc/cpuinfo
    ++ grep β€˜model name’
    ++ uniq
    ++ awk -F ': ’ β€˜{print $2}’
    ++ awk β€˜{print $3}’
  • Processor=β€˜Intel(R)’
    ++ echo β€˜12th Gen Intel(R) Coreβ„’ i5-12500’
    ++ grep -c Intel
  • β€˜[’ 1 -gt 0 β€˜]’
  • HaveIntel=1
    ++ echo 12th Gen β€˜Intel(R)’ β€˜Coreℒ’ i5-12500
    ++ grep -c Core
  • β€˜[’ 1 -gt 0 β€˜]’
  • HaveIntelCore=1
    ++ echo 12th Gen β€˜Intel(R)’ β€˜Coreℒ’ i5-12500
    ++ grep -c Xeon
  • β€˜[’ 0 -gt 0 β€˜]’
    ++ echo 12th Gen β€˜Intel(R)’ β€˜Coreℒ’ i5-12500
    ++ grep -c Celeron
  • β€˜[’ 0 -gt 0 β€˜]’
    ++ echo 12th Gen β€˜Intel(R)’ β€˜Coreℒ’ i5-12500
    ++ grep -c Pentium
  • β€˜[’ 0 -gt 0 β€˜]’
    ++ echo /sys/module/i915/drivers/pci:i915/0000:00:02.0
  • β€˜[’ /sys/module/i915/drivers/pci:i915/0000:00:02.0 β€˜!=’ β€˜/sys/module/i915/drivers/pci:i915/::.’ β€˜]’
  • Havei915=1
    ++ uname -m
  • Architecture=x86_64
  • β€˜[’ x86_64 = x86_64 β€˜]’
    ++ echo β€˜/sys/module/nvidia/drivers/pci:nvidia/::.’
  • β€˜[’ β€˜/sys/module/nvidia/drivers/pci:nvidia/::.’ β€˜!=’ β€˜/sys/module/nvidia/drivers/pci:nvidia/::.’ β€˜]’
  • β€˜[’ 1 -gt 0 β€˜]’
  • Index=1
  • CPUSKU=
  • β€˜[’ 1 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$1}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=2
  • β€˜[’ 2 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$2}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=3
  • β€˜[’ 3 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$3}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=4
  • β€˜[’ 4 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$4}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=5
  • β€˜[’ 5 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$5}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=6
  • β€˜[’ 6 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$6}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=7
  • β€˜[’ 7 -lt 8 β€˜]’
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ echo β€˜Intel(R)’
    ++ awk β€˜{print$7}’
    ++ grep -
  • CPUCode=
  • β€˜[’ β€˜β€™ β€˜!=’ β€˜β€™ β€˜]’
  • Index=8
  • β€˜[’ 8 -lt 8 β€˜]’
  • CPUSKU=
  • CPUSKU=
  • β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
  • CPUSKU=0
    ++ grep β€˜^ID=’ /etc/os-release
  • DistroName=ID=ubuntu
  • DistroName=ubuntu
    ++ grep β€˜^VERSION_ID=’ /etc/os-release
  • DistroVersion=β€˜VERSION_ID=β€œ22.04”’
  • DistroVersion=β€˜22.04"’
  • DistroVersion=2204
  • β€˜[’ ubuntu = ubuntu β€˜]’
  • β€˜[’ 2204 -lt 2100 β€˜]’
  • β€˜[’ ubuntu = debian β€˜]’
  • β€˜[’ 1 -gt 0 β€˜]’
  • β€˜[’ 0 -eq 1 β€˜]’
  • β€˜[’ 1 -gt 0 β€˜]’
  • β€˜[’ 0 -ge 7000 β€˜]’
  • β€˜[’ 1 -gt 0 β€˜]’
  • β€˜[’ 0 -ge 10000 β€˜]’
  • β€˜[’ 0 -gt 0 β€˜]’
  • β€˜[’ 0 -gt 0 β€˜]’
  • β€˜[’ 0 -gt 0 β€˜]’
    ++ GetVersion beignet-opencl-icd
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W beignet-opencl-icd
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=
    ++ β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ Version=β€˜Not Installed’
    ++ echo β€˜Not Installed’
  • β€˜[’ β€˜Not Installed’ β€˜!=’ β€˜Not Installed’ β€˜]’
    ++ GetVersion ocl-icd-libopencl1
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W ocl-icd-libopencl1
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=2.2.14
    ++ β€˜[’ 2.2.14 = β€˜β€™ β€˜]’
    ++ echo 2.2.14
  • β€˜[’ 2.2.14 β€˜!=’ β€˜Not Installed’ β€˜]’
  • HaveOpenCL=1
    ++ GetVersion intel-gmmlib
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W intel-gmmlib
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=
    ++ β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ Version=β€˜Not Installed’
    ++ echo β€˜Not Installed’
  • VersionIntelGmmlib=β€˜Not Installed’
  • β€˜[’ β€˜Not Installed’ = 21.3.3 β€˜]’
    ++ GetVersion intel-igc-core
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W intel-igc-core
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=
    ++ β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ Version=β€˜Not Installed’
    ++ echo β€˜Not Installed’
  • VersionIntelIGCCore=β€˜Not Installed’
  • β€˜[’ β€˜Not Installed’ = 1.0.9441 β€˜]’
    ++ GetVersion intel-igc-opencl
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W intel-igc-opencl
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=
    ++ β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ Version=β€˜Not Installed’
    ++ echo β€˜Not Installed’
  • VersionIntelIGCOpenCL=β€˜Not Installed’
  • β€˜[’ β€˜Not Installed’ = 1.0.9441 β€˜]’
    ++ GetVersion intel-opencl-icd
    ++ local Version
    +++ dpkg-query -f β€˜${source:Upstream-Version}\n’ -W intel-opencl-icd
    +++ sed -e β€˜s/[+_-].*//’
    ++ Version=
    ++ β€˜[’ β€˜β€™ = β€˜β€™ β€˜]’
    ++ Version=β€˜Not Installed’
    ++ echo β€˜Not Installed’
  • VersionIntelOpenCL=β€˜Not Installed’
  • β€˜[’ β€˜Not Installed’ = 21.49.21786 β€˜]’
  • β€˜[’ 0 -gt 0 β€˜]’
  • β€˜[’ -e /dev/dri/renderD128 β€˜]’
  • HaveHardware=1
  • NeedVideo=0
  • β€˜[’ -e /dev/dri/renderD128 β€˜]’
    ++ stat --format=%G /dev/dri/renderD128
  • β€˜[’ render β€˜!=’ root β€˜]’
    ++ stat --format=%G /dev/dri/renderD128
  • VideoGroup=render
    ++ getent group render
    ++ grep plex
    ++ wc -l
  • β€˜[’ 1 -eq 0 β€˜]’
  • β€˜[’ 0 -eq 1 β€˜]’
  • β€˜[’ -e /sys/class/dmi/id/product_name β€˜]’
    ++ cat /sys/class/dmi/id/product_name
  • Platform=β€˜B660M DS3H DDR4’
  • β€˜[’ -e /etc/os-release β€˜]’
    ++ cat /etc/os-release
    ++ grep PRETTY_NAME
    ++ sed -e β€˜s/^.*=//’
    ++ tr -d β€˜"’
  • Distro=β€˜Ubuntu 22.04 LTS’
  • β€˜[’ -e /bin/uname β€˜]’
    ++ uname -a
  • Kernel=β€˜Linux mediaserver 5.15.0-40-generic #43-Ubuntu SMP Wed Jun 15 12:54:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux’
  • β€˜[’ -e /bin/free β€˜]’
    ++ free -m
    ++ grep β€˜^Mem’
    ++ awk β€˜{print $2, $3, $4}’
  • Memory=β€˜31881 3287 21416’
    ++ ps -ef
    ++ grep β€˜Plex Media Server’
    ++ grep -v grep
    ++ wc -l
  • β€˜[’ 1 -gt 0 β€˜]’
  • Running=1
    ++ free -m
    ++ tail -2
    ++ head -1
    ++ awk β€˜{print $2,$3,$4 }’
  • Memory=β€˜31881 3287 21416’
  • β€˜[’ 0 -eq 0 β€˜]’
  • rm -f /tmp/plexinstaller.log
  • touch /tmp/plexinstaller.log
    ++ stat -L --format=%u /tmp/plexinstaller.log
  • owner=0
    ++ stat -L --format=%g /tmp/plexinstaller.log
  • group=0
  • β€˜[’ 0 -ne 0 β€˜]’
  • β€˜[’ 0 -ne 0 β€˜]’
    ++ date
  • echo β€˜# Plex Media Server installation configuration info: Sat Jul 9 07:02:43 PM EDT 2022’
  • echo Init=0
  • echo Systemd=1
  • echo Custom=0
  • echo LinuxContainer=0
  • echo NewInstall=0
  • echo HaveOverride=0
  • echo β€˜OverrideFile=β€œβ€β€™
  • echo β€˜PlexUser=β€œplex”’
  • echo β€˜PlexGroup=β€œplex”’
  • echo β€˜VideoGroup=β€œrender”’
  • echo β€˜AppSuppDir=β€œ/var/lib/plexmediaserver/Library/Application Support”’
  • echo β€˜PlexTempDir=β€œ/tmp”’
  • echo β€˜LangEncoding=β€œen_US.UTF-8”’
  • echo ExistingVersion=12702
  • echo β€˜DistroName=β€œubuntu”’
  • echo β€˜DistroVersion=β€œ2204”’
  • echo HaveHardware=1
  • echo HaveTranscoderPref=0
  • echo NeedUser=0
  • echo NeedGroup=0
  • echo NeedVideo=0
  • echo Verbose=1
  • echo Running=1
  • echo Errors=0
  • echo Warnings=0
  • echo HaveIntel=1
  • echo HaveIntelCore=1
  • echo HaveIntelXeon=0
  • echo HaveIntelCeleron=0
  • echo HaveIntelPentium=0
  • echo Havei915=1
  • echo HaveNvidia=0
  • echo CPUSKU=0
  • echo NeedOpenCL=0
  • echo NeedBeignet=0
  • echo NeedIntelCompute=0
  • echo HaveBeignet=0
  • echo HaveOpenCL=1
  • echo HaveIntelGmmlib=0
  • echo HaveIntelIGCCore=0
  • echo HaveIntelIGCOpenCL=0
  • echo HaveIntelOpenCL=0
  • echo HaveIntelCompute=0
  • echo β€˜RequiredIntelGmmlib=β€œ21.3.3”’
  • echo β€˜RequiredIntelIGCCore=β€œ1.0.9441”’
  • echo β€˜RequiredIntelIGCOpenCL=β€œ1.0.9441”’
  • echo β€˜RequiredIntelOpenCL=β€œ21.49.21786”’
  • echo β€˜VersionIntelGmmlib=β€œNot Installed”’
  • echo β€˜VersionIntelIGCCore=β€œNot Installed”’
  • echo β€˜VersionIntelIGCOpenCL=β€œNot Installed”’
  • echo β€˜VersionIntelOpenCL=β€œNot Installed”’
  • echo β€˜Platform=β€œB660M DS3H DDR4”’
  • echo β€˜Processor=β€œIntel(R)”’
  • echo β€˜Distro=β€œUbuntu 22.04 LTS”’
  • echo β€˜Kernel=β€œLinux mediaserver 5.15.0-40-generic #43-Ubuntu SMP Wed Jun 15 12:54:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux”’
  • echo β€˜Memory=β€œ31881 3287 21416”’
  • β€˜[’ 0 -eq 0 β€˜]’
  • Output β€˜Pre-installation Validation complete.’
  • Message=β€˜PlexMediaServer install: Pre-installation Validation complete.’
  • β€˜[’ β€˜β€™ = 1 β€˜]’
  • echo β€˜PlexMediaServer install: Pre-installation Validation complete.’
    PlexMediaServer install: Pre-installation Validation complete.
  • β€˜[’ β€˜Pre-installation Validation complete.’ = β€˜β€™ β€˜]’
  • β€˜[’ 1 -eq 1 β€˜]’
  • echo β€˜MESSAGE=PlexMediaServer install: Pre-installation Validation complete.’
  • logger --journald
  • exit 0

Would you please run this script for me and show me the output ?

[chuck@lizum ~.2004]$ cat cpusku
#!/bin/bash

# find Intel CPUSKU anywhere in model name
Processor="$(cat /proc/cpuinfo | grep 'model name' | uniq)"
Index=1
CPUSKU=""

# Find the xx-yyyyy CPUSKU
while [ $Index -lt 8 ] && [ "$CPUSKU" = "" ];
do
  CPUCode="$(echo $Processor | awk \{print\$$Index\} | grep \\-)"
  [ "$CPUCode" != "" ] && CPUSKU="$CPUCode"
  Index=$((Index + 1))
done

# Trim off all pre-dash and alpha characters
CPUSKU="${CPUSKU//[^-]*-/}"
CPUSKU="${CPUSKU//[A-Z]/}"
[ "$CPUSKU" = "" ] && CPUSKU=0

echo CPUSKU=\"$CPUSKU\"

I found the problem. This sample script should work correctly.