N5095 iGPU
First we need to find the iGPU type
lspci | grep VGA
This should return something like 00:02.0 VGA compatible controller: Intel Corporation Device 4e55 (rev 01)
Add the following to /etc/modprobe.d/i915.conf, replace 4e55 with your type
options i915 enable_guc=3 options i915 force_probe=4e55 Now to we need to rebuild the initramfs to add the above
update-initramfs -u
Install the required firmware files
You need to enable the non-free source
apt install -y firmware-misc-nonfree intel-media-va-driver-non-free
Proxmox Fun
A few fun tips for Proxmox
How to migrate VM to new host not in cluster Create NFS share on a system
Add NFS share as backup endpoint on new and old server
Run a backup of the system you want to migrate, I shut the VM down, but it’s no needed
On new host go to the NFS storage in the GUI and go to backups
You will see the backed up data
Xiaomi Opple Battery Replacement
Below is how to replace the battery on the Opple remote. It’s not as easy as it is with the others, but it’s still pretty simple. You can use a spudger or a flat head screw driver
First remove the middle key with the spudger, if you push down on one of the sides it makes it easier to lift the other
Now remove the screw from the middle.
Now remove the top button.
Grafana with Screenly OSE
To use Grafana Bearer tokens you need to be able to inject headers which you can’t do in the OSS version of Screenly. To get around this you can just run a NGiNX proxy on the host and reverse proxy to the Grafana server and use NGiNX to inject the required headers.
I HAVEN’T TESTED THIS YET ON SCREENLY OSE, BUT SINCE IT’S JUST RUNNING ON RAPSBERRY PI OS THERE SHOULDN’T BE AN ISSUE, I WILL BE TESTING EVENTUALLY
rsync Fun
Only copy specific file extentions in folder
rsync -a --include '*/' --include '*.mp3' --exclude '*' source/ target/
Speed up rsync over SSH without needed to change any configs. arcfour is faster, but no longer enabled by default meanwhile aes128-ctr is
rsync -avhP -e "ssh -c aes128-ctr" /src/ [email protected]:/dst/
rsync ssh with non standard port
rsync -avhP -e "ssh -p number" /src/ [email protected]:/dst/
rsync ssh with non standard port and show full progress
Headscale with Android
I based this post on HERE
Just for reference, the things I did to make it work:
git clone https://github.com/tailscale/tailscale-android.git
nano tailscale-android/cmd/tailscale/backend.go
change:
func (b *backend) Start(notify func(n ipn.Notify)) error { b.backend.SetNotifyCallback(notify) return b.backend.Start(ipn.Options{ StateKey: "ipn-android", }) } to:
func (b *backend) Start(notify func(n ipn.Notify)) error { b.backend.SetNotifyCallback(notify) prefs := ipn.NewPrefs() prefs.ControlURL = "https://myheadscale.domain.com" opts := ipn.Options{ StateKey: "ipn-android", UpdatePrefs: prefs, } return b.backend.Start(opts) } nano Dockerfile
Add the below to the file:
SystemD Fun
Show logs from when systemd service last restarted. (This needs systemd > v232)
journalctl _SYSTEMD_INVOCATION_ID=$(systemctl show -p InvocationID --value SERVICE_NAME.service) | head -n15
NFS Mount with NFS and /etc/fstab
From all of my reading over the years it’s always been said to add _netdev to the /etc/fstab mount, but that never worked for me. After more reading it appears that was for SystemV which is dead. I figured it out after much Googleing.
Headscale with Windows
This is how to get the Windows client with headscale. I’m happy to finaly get it working.
Headscales docs are HERE, but I’m adding some more info since I wasn’t able to get it to work the first time
If you’ve already installed tailscale on the machine make sure to delete the C:\Users\<USERNAME>\AppData\Local\Tailscale directory
Download the Official Windows Client HERE and install it.
You can either do option A or B Option A Manually edit the registry
WP-Cli Tips and tricks
Install wp-cli curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
Install new wordpress domain using wp-cli Make sure directory has permisisons for web user
cd "WEB_DIRECTORY"
sudo -u www-data wp core download
sudo -u www-data wp config create --dbname=DATABASE_NAME --dbuser=DATABASE_USER --dbpass=DATABASE_PASSWORD --dbhost=DATABASE_HOST
sudo -u www-data wp core install --url=URL_INCLUDING_HTTPS --title=SITE_TITLE --admin_user=ADMIN_USERNAME --admin_password=ADMIN_PASSWORD --admin_email=ADMIN_EMAIL --skip-email
sudo -u www-data wp plugin delete 'hello'
sudo -u www-data wp plugin delete 'akismet'
FFMPEG/OwnCast/HDHomeRun
If you’re wanting to stream HDHomeRun channel to your own OwnCast server
I’m using Debian like everything else I do
apt install -y ffmpeg
ffmpeg -i "http://IP_OF_HDHR:5004/auto/vCH.N" -c:v libx264 -c:a aac -b:v 512K -maxrate 512K -bufsize 1M -f flv rtmps://OWNCAST_URL:PORT/live/STREAM_KEY
You can now go to your owncast URL and it should be streaming
SystemD Service
nano /etc/systemd/system/hdhomerun-stream.service
[Unit] Description=HDHR Daemon After=network.target [Service] User=plex EnvironmentFile=-/etc/default/hdhomerun Group=plex Type=simple wExecStart=/usr/bin/ffmpeg -i "${CHANNEL}" -c:v libx264 -c:a aac -b:v 512K -maxrate 512K -bufsize 1M -f flv "${URL}:${PORT}/live/${KEY}" Restart=on-failure [Install] WantedBy=multi-user.