GeistHaus
log in · sign up

https://feeds.feedburner.com/blogspot/TPQSS

atom
25 posts
Polling state
Status active
Last polled May 19, 2026 02:19 UTC
Next poll May 20, 2026 05:45 UTC
Poll interval 86400s
Last-Modified Sat, 16 May 2026 11:31:58 GMT

Posts

PiZero OTG: Host or Peripheral
otgpizeroraspberrypiusb
Show full content
BackgroundAn OTG (On-The-Go) device is a device that can act as both a host and a peripheral on a USB network. The PiZero is an OTG device. This guide pertains specifically to the PiZero and PiZero 2, but similar concepts also apply to other Raspberry Pi products (more information here).Host mode
  • Used for connecting the PiZero to a USB peripheral, eg. USB keyboard, mouse, etc
  • PiZero is the OTG A device (supplying power to USB)
  • USB keyboard, mouse is the OTG B device
Peripheral mode
(a.k.a. device mode, gadget mode)
  • Used for connecting the PiZero to a host computer, eg. PC, phone
  • The host computer is the OTG A device (supplying power to USB)
  • PiZero is the OTG B device
Micro USB ports on the PiZeroThere are two micro USB ports on the PiZero. There is only one micro USB data port (labeled USB), and it is capable of supporting OTG. The second micro USB port is used for power delivery and does not support OTG.Controlling OTG modeThere are two methods to control whether the data port operates in host or peripheral mode.
  1. Cable method
  2. Software method
Cable methodThe USB cable consists of one end being a USB Micro-B male and the other being a USB-A female.
Whether the data port operates as host or peripheral can be controlled with the type of USB cable used. A USB cable may or may not support OTG.
  • If the ID pin on the USB Micro-B is shorted to ground, PiZero operates in host mode (cable usually known as an OTG cable)
  • If the ID pin on the USB Micro-B is not shorted to ground (left floating), PiZero operates in peripheral mode
Software methodSpecify the following setting in config.txt.
  • peripheral mode: dtoverly=dwc2,dr_mode=peripheral
  • host mode: dtoverly=dwc2,dr_mode=host
  • otg mode: dtoverly=dwc2,dr_mode=otg (default: forces the PiZero to follow the ID pin functions)
What if the cable method conflicts with the software methodTBD @thagrol suggested the following.My experience is that when you force the mode to either host or peripheral the ID pin in the microUSB socket is ignored. It is only when you set dr_mode=otg or don't include dr_mode at all (because the default is otg) that the ID pin functions.Checking the modeDetermining state of USB OTG-ID signal on Zero
tag:blogger.com,1999:blog-6815733.post-2440673164408444339
Extensions
Pi Zero 2 W micro USB Journey
raspberrypiraspbian
Show full content

I've been using a RPi4 for running Pi-hole. The RPi4 is way overpowered for Pi-hole so I decided to switch to using the Pi Zero 2 W. The Pi Zero 2 supports WiFi but does not come with an ethernet port. WiFi works perfectly well for Pi-hole, but for personal reasons, I wanted to use ethernet instead. I've read many posts that setting up an ethernet USB dongle is as easy as plugging it in. I decided to purchase the TP-Link UE300, because a poster had given the thumbs up that the UE300 works on the Pi Zero 2 W. The UE300 has an USB A plug.

Through many attempts, I was more and more convincing myself that the USB (data) micro port on the Pi Zero 2 W was faulty. Some folks have floated this idea in the Raspberry Pi Forums. I eventually did find a solution, and I'm detailing my experience below.

Before I start, I am running thte lastest Raspberry Pi OS (64-bit) Lite for the Pi Zero 2 W installed using the Raspberry Pi Imager. I also want to mention that there are two USB micro ports on the Pi Zero 2 W. One is dedicated to providing only power while the second provides both power and data. Please ensure you are using the right port. 

I didn't have a USB A to micro USB adapter but had the parts on hand so I decided put together a DIY adapter. The wiring is pretty simple because the sequence of signals on the pins of the USB A aligned with the sequence of signals on the pins of the micro USB. The USB A has 4 pins while the micro USB has 5 pins. The extra pin on the micro USB is the ID pin which I first ignored (left floating) but will touch on later.

Attempt 1:

My first attempt invovled not using the ID pin. I wired up only the V, D-, D+, and G pins between the USB A and micro USB plugs. When I plugged in the UE300 adapter, I did not see the ethernet interface. I should mention that I also tried plugging in an USB keyboard and mouse but none showed any signs of functionality. I decided to dig into this issue and found a number of posts saying that I should use an OTG cable. OTG stands for "On the Go", and it's a special adapter that treats the Pi Zero as a host to the USB device that it is connected to (I do not know the full specifications of when an OTG cable is is needed).

Attempt 2:

My second attempt involved making an OTG cable. This is easily accomplished by shorting the ID pin and the G pin on the micro USB. Again, when I plugged in the UE300 adapter, I did not see the ethernet interface. It was now that I was starting to think whether the USB micro port was faulty given what I read from the Raspberry Pi Forums.

Validation:

I tried the UE300 adapter on a Windows machine and the machine recognized the adapter. I thought that perhaps the Raspberry Pi OS didn't support this adapter so I tried it on a RPi4 and it also recognized the adapter. At this point, I concluded that the UE300 was not misbehaving.

I needed a way to check if the micro USB data port was faulty. I learned that it was possible to connect the Pi Zero 2 W to a Windows machine by treating the Pi Zero W 2 as a OTG device. Don't confuse this concept with the OTG adapter mentioned above. The OTG concept here means that we can turn the Pi Zero 2 W into a OTG device which allows a connection to the Pi Zero 2 W using ethernet over USB. Anyway, I followed the instructions on the page below. Because the Pi Zero 2 W showed up as only a COM device on my Windows system, and I needed to install the RNDIS driver.

https://www.factoryforward.com/pi-zero-w-headless-setup-windows10-rndis-driver-issue-resolved/

After installing the driver, I was able to see the ethernet device and putty into the Pi Zero 2 W. This validated that the micro USB data port was functional.

Attempt 3:

Having validated the functionality of the UE300 and the Pi Zero 2 W's USB micro data port, I decided to look at the dmesg output on the Pi Zero 2 W when I plugged in the UE300.

[ 204.742680] Indeed it is in host mode hprt0 = 00021501
[ 204.952584] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 204.952825] Indeed it is in host mode hprt0 = 00001101
[ 205.162556] usb 1-1: device descriptor read/64, error -71
[ 205.282811] Indeed it is in host mode hprt0 = 00001101
[ 205.492506] usb 1-1: device descriptor read/64, error -71
[ 205.612548] Indeed it is in host mode hprt0 = 00001101
[ 205.822445] usb 1-1: new high-speed USB device number 3 using dwc_otg
[ 205.822743] Indeed it is in host mode hprt0 = 00001101
[ 206.032416] usb 1-1: device descriptor read/64, error -71
[ 206.152692] Indeed it is in host mode hprt0 = 00001101
[ 206.362359] usb 1-1: device descriptor read/64, error -71
[ 206.482400] usb usb1-port1: attempt power cycle
At least I was getting an indication when I plugged in the adapter. However, the highlighted text caught my attention. I googled this and came across several posts that offered different solutions. I tried them one by one. I'm not lisitng all of them but instead mentioning the one setting that worked for me. I'm convinced what setting you need is dependent on the USB peripheral that you are using.
For me, the solution was to add"dwc_otg.speed=1" to /boot/cmdline.txt
There are more options described on this page.https://raspberrypi.stackexchange.com/questions/1886/what-kernel-parameters-are-available-for-fixing-usb-problems
Upon booting, I now see this in dmesg.
[ 850.956370] Indeed it is in host mode hprt0 = 00021501
[ 851.166317] usb 1-1: new full-speed USB device number 3 using dwc_otg
[ 851.166517] Indeed it is in host mode hprt0 = 00021501
[ 851.406722] usb 1-1: not running at top speed; connect to a high speed hub
[ 851.407623] usb 1-1: New USB device found, idVendor=2357, idProduct=0601, bcdDevice=30.00
[ 851.407636] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ 851.407645] usb 1-1: Product: USB 10/100/1000 LAN
[ 851.407652] usb 1-1: Manufacturer: TP-Link
[ 851.407659] usb 1-1: SerialNumber: 000001
[ 851.413636] Indeed it is in host mode hprt0 = 00021501
[ 851.616299] usb 1-1: reset full-speed USB device number 3 using dwc_otg
[ 851.616444] Indeed it is in host mode hprt0 = 00021501
I should mention that I tried using the OTG micro USB adapter and non-OTG micro USB adapter, and both work flawlessly for the UE300. In my case, I did not need an OTG micro USB adapter for the UE300.
Summary:
I'm using a non-OTG micro USB adapter to connect the UE300 to the Pi Zero 2 W. I'm running the latest Raspberry Pi OS. I had to add "dwc_otg.speed=1" to /boot/cmdline.txt to get the OS to recognize the UE300. I am convinced that the OS for the Pi Zero 2 W requires tweaking for your peripherals to work. Don't assume your micro USB port is faulty.
Good luck.
tag:blogger.com,1999:blog-6815733.post-7392011120084856426
Extensions
Cycle Through Emacs Themes
emacs
Show full content

I wrote a library that lets you cycle through the available themes in Emacs. F10 and shift-F10 keys will cycle forward and backward through the themes. The theme name is printed for reference.

https://github.com/tsengf/theme-cycle

Installation
Download theme-cycle.el into ~/.emacs.d.

Add the following to your Emacs configuration

(add-to-list 'load-path (expand-file-name "~/.emacs.d)
(require 'theme-cycle)
;; Load as many themes as you are interested in exploring.
(use-package doom-themes)
(use-package ef-themes)
(use-package modus-themes)
(use-package solarized-themes)

To Use

Use F10 to cycle forward through the themes. Use shift-F10 to cycle backward through the themes.


tag:blogger.com,1999:blog-6815733.post-7088681207395988945
Extensions
Preventing Emacs Window Resizing on Startup
emacs
Show full content

If you set the geometry of your Emacs window in elisp, you may find that the window redraws itself upon resizing. Note that I try to avoid using Xresources to set the geometry which is another solution to this problem. I'd like to control all of my settings in Emacs elisp.

To do this, we will replace default-frame-alist by setting it in the set-initial-frame function which will be associated with the before-init-hook. This hook is run before the frame is drawn preventing the window to resize.

In this example, I set the font to RobotoMono. The width is 170 characters wide and the height is y resolution of the screen less 200 pixels. I also disable other parts of the window like the menu bar, tool bar, and scroll bars.

It would be great if I can control the default background color before my theme kicks in.

(defun set-initial-frame ()
  "Defines and center the frame window"
  (let* ((width-chars 170)
         (height-buffer 200)
         (setq my-font "RobotoMono Nerd Font")
         (monitor-width (x-display-pixel-width))
         (monitor-height (- (x-display-pixel-height) height-buffer)))
    (setq default-frame-alist
          `((width . ,width-chars)
            (height . (text-pixels . ,monitor-height))
            (font . ,my-font)
            ;; Prevent the glimpse of un-styled Emacs by disabling these UI elements early.
            (menu-bar-lines . 0)
            (tool-bar-lines . 0)
            (horizontal-scroll-bars . nil)
            (vertical-scroll-bars . nil)))))

(add-hook 'before-init-hook #'set-initial-frame)

tag:blogger.com,1999:blog-6815733.post-2038786009952455424
Extensions
Using use-package to bootstrap quelpa and quelpa-use-package
emacs
Show full content

I use use-package and wanted to use it to bootstrap quelpa and loading quelpa-use-package. The project pages had instructions without use-package. Here is what I had to do.

(require 'package)
(setq package-archives
      '(("melpa" . "https://melpa.org/packages/"))
      use-package-always-ensure t)

(package-initialize)

(require 'use-package-ensure)

(use-package quelpa
  :ensure)

(use-package quelpa-use-package
  :demand
  :config
  (quelpa-use-package-activate-advice))

;; Now, you can take advantage of the :quelpa keyword.
(use-package copilot
  :quelpa (copilot :fetcher github
                   :repo "zerolfx/copilot.el"
                   :branch "main"
                   :files ("dist" "*.el"))
  :hook (prog-mode . copilot-mode)
  :bind (:map copilot-completion-map
              ("<tab>" . copilot-accept-completion)))

tag:blogger.com,1999:blog-6815733.post-1045420150787829762
Extensions
My Minimalist ZSH Prompt
linux
Show full content

I have experimented with using many ZSH prompts. On some slow systems, the latency of rendering the prompt matters. I ended up going with the following solution which is by far the fastest prompt I have come across.

function git_prompt_info() {
    ref=$(git-branch-name -q -h 12 -b 64) || return
    echo " ${ref}"
}

function git_prompt() {
    #BRANCH=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/*\(.*\)/\1/')
    BRANCH="$(git_prompt_info)"
    if [ ! -z $BRANCH ]; then
        echo -n "%F{yellow}$BRANCH"
        if [ ! -z "$(git status --short)" ]; then
            echo " %F{red}?"
        fi
    fi
}

setopt PROMPT_SUBST
PROMPT=$'%F{blue}%~$(git_prompt)\n%F{244}%# %F{reset}'

I use git-branch-name (https://github.com/itchyny/git-branch-name) to improve the speed of retrieving the branch name. If you won't wish to use git-branch-name, toggle the comment of the two BRANCH lines.


tag:blogger.com,1999:blog-6815733.post-2127391409478908976
Extensions
FreshTomato Resources for Netgear Nighthawk AC1900 R7000 WiFi Router
wrt
Show full content

FreshTomato is an alternative firmware for routers. It runs very well on the Netgear R7000. Here is a list of useful FreshTomato resources for the Netgear R7000.

Here is a list of firmware available for the Netgear R7000.

AdvancedTomato (download)
dd-wrt (info | download)
FreshTomato (download)
Netgear (download)
OpenWrt (info)
Tomato RAF Firmware (download)
XWrt-Vortex (download)

tag:blogger.com,1999:blog-6815733.post-6084377900416702762
Extensions
Power Raspberry Pi 4 over HDMI
raspberrypi
Show full content

I was setting up a new system. When I disconnected the USB-C power connector, the RPi4 retained its power from the HDMI cable.



tag:blogger.com,1999:blog-6815733.post-1232273834198155033
Extensions
Freshtomato Not Broadcasting 5GHz SSID After Setting Wireless Country
freshtomato
Show full content

If you have set your Wireless Country / Region to USA and lose the broadcast of your 5GHz radio, make sure you also set your Country Rev to 0.

References

https://wiki.freshtomato.org/doku.php/wireless?s[]=%2Aregion%2A#country_region

tag:blogger.com,1999:blog-6815733.post-386694531194129418
Extensions
Bash Script to Print All Unicode Characters to the Terminal
Show full content
Here's a bash script that loops through 4-digit codes and prints the Unicode character associated with the code. Make sure your terminal supports Unicode characters
Referenceshttps://unix.stackexchange.com/questions/65803/why-is-printf-better-than-echohttps://stackoverflow.com/questions/5517500/generating-hex-numbers-of-a-certain-range
tag:blogger.com,1999:blog-6815733.post-7339429105933964753
Extensions
USB MCE Remote Not Working in LibreELEC 9
libreelec
Show full content

If you have a USB MCE remote and it stopped working in LibreELEC 9, it could be due to interaction with a feature on the TV called CEC.

If your television supports CEC and it is enabled on the television, make sure that support for CEC is also enabled in LibreELEC.

On LibreELEC, you can find this setting in System->Settings->System->Input Devices->Peripherals->CEC
Select CEC and enable CEC.

If CEC is disabled on the television, disable CEC in LibreELEC.

tag:blogger.com,1999:blog-6815733.post-3510276154490203513
Extensions
BgInfo for Linux
linux
Show full content

BgInfo is a utility that updates your Windows desktop image with relevant static information about the system. Linux has a similar utility called Conky. Conky supports updating your background with dynamic information such as CPU load and memory usage.

tag:blogger.com,1999:blog-6815733.post-6464302200856277756
Extensions
Compiling Jivelite on Raspbian
raspbian
Show full content

Jivelite is a visualization application.

Install the git and luajit development packages.

apt install git libluajit-5.1-dev

Install additional dependencies

apt install git libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libexpat1-dev

Clone the repository

git clone git@github.com:ralph-irving/jivelite.git

cd jivelite

Update the path to the luajit header files.

find . -type f -iname '*' -exec sed -i 's/include\/luajit-2.0/include\/luajit-2.1/' "{}" +;

Update some outdated definitions in the source.

find . -type f -iname '*' -exec sed -i 's/luaL_reg /luaL_Reg /' "{}" +;

In lib-src/lua-cjson-2.1.0/lua_cjson.c, change

static void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup)

to

void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup)

Build it.

make PREFIX=/usr

You should have a binary in

bin/jivelite

Jivelite uses SDL which disables external screensavers by default. To bypass this behavior, create shell script wrapper jivelite.sh containing the following.

#!/bin/sh

export SDL_VIDEO_ALLOW_SCREENSAVER=1
/home/pi/jivelite/bin/jivelite


tag:blogger.com,1999:blog-6815733.post-1372431935064556100
Extensions
Kiosk Setup on Raspbian
raspberrypiraspbian
Show full content

The following instructions document how to enable a kiosk setup on Raspbian with the following requirements.

  • utilize the lightweight Matchbox window manager
  • utilize the Chromium browser to render a webpage in fullscreen mode
  • remove the X cursor
  • turn off the display after 10 minutes of inactivity

Install the latest Raspbian Lite image. Note, this is the barebone image for server setup.

Install packages

apt install matchbox-window-manager xinit

Use raspi-config to enable auto login into the console with user pi

raspi-config

Add the following to the bottom of /home/pi/.bashrc.

if [ -z "${SSH_TTY}" ]; then
  exec startx /home/pi/startup.sh -- -nocursor
fi

Install a browser that can run fullscreen.

apt install chromium-browser -y

Create the file /home/pi/startup.sh.

#!/bin/sh

# Tweak the energy settings to your liking
xset dpms 0 0 600
xset s off

# Start the Matchbox window manager
matchbox-window-manager -use_cursor no -use_titlebar no &

# Start the web browser full screen
/usr/bin/chromium-browser --app=http://your-site \
  --kiosk \
  --noerrdialogs \
  --disable-session-crashed-bubble \
  --disable-infobars \
  --check-for-update-interval=604800 \
  --disable-pinch

tag:blogger.com,1999:blog-6815733.post-7638120207426454818
Extensions
Identifying IP of New Raspbian Host
raspberrypiraspbian
Show full content

Here's a handy command if you have an available linux system.

arp -a

Look for the hostname raspberrypi.

tag:blogger.com,1999:blog-6815733.post-7613105136345587235
Extensions
Disabling WiFi on Raspbian
raspbian
Show full content

 If you've set up wifi on Raspbian and want to disable it, add the following line in /etc/wpa_supplicant/wpa_supplicant.conf.

disabled=1

tag:blogger.com,1999:blog-6815733.post-1797687584437263495
Extensions
Mail from Command Line on Raspbian
raspbian
Show full content
The following instructions are the minimum steps required to enable sending email on Raspbian using Postfix and Gmail as the SMTP relay.Enable "Less Secure Apps" in your Google account.Google Account -> Security -> Less secure app access -> Turn on access -> OffSetup Raspbianapt install mailutils postfix libsasl2-modules
When the Postfix Configuration dialog box comes up, select Internet Site.
Update /etc/postfix/main.cf with the following lines.

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:username@gmail.com:password
smtp_sasl_security_options =
smtp_tls_security_level = encrypt

Restart the Postfix service.

service postfix restart

Send some email.

echo Hello | mail username@gmail.com

tag:blogger.com,1999:blog-6815733.post-144958889540434061
Extensions
Configuring FreshTomato for Pi-hole
freshtomatopihole
Show full content

There are several ways to enable Pi-hole on your network. If you are running FreshTomato, the easiest way is to update the DNS server setting of FreshTomato.

First, assign a static IP to your Pi-hole server. You will need the MAC address for the network interface you are using. Assign an IP to Pi-hole, eg. 192.168.1.250. Under Basic->Static DHCP/ARP/IPT, add the static IP assignment. Save the settings. You may need to restart your Pi-hole server to get the correct static IP.

Second, point the DNS server to the Pi-hole server. Under Basic->Network->WAN Settings, select Manual under DNS Server. Set DNS 1 to 192.168.1.250, and set DNS 2 to 0.0.0.0. Save the settings.

That's it.

tag:blogger.com,1999:blog-6815733.post-7183119971951438413
Extensions
BMW X1 Blinker Light
bmwcarx1
Show full content

A couple of days ago, the blinker indicator inside the X1 started clicking at twice the speed. Furthermore, the broken light warning indicator came up on the driver dash. I thought that the bulb had gone out and would be an easy fix. Upon disassembling the broken bulb, I noticed that the bulb housing looked like it had partially melted. The filament on the bulb looked intact.


At this point, I thought that the vehicle may have a short around this contact. I took out the multimeter and confirmed that the bulb and the bulb housing were still intact electrically. Upon further inspection, I noticed that the contact was recessed into the plastic housing. Using a small screwdriver, I raised the contact by prying it away from the housing.


At this point, I cleaned the bulb and reinstalled it. The fixed worked.

I suspect the cause of the original issue is this. The contact was poorly designed. It was not high enough to maintain a robust contact with the main housing. Over time through each use of the bulb, minor sparks may have resulted due to gaps between the contacts. These sparks slowly deformed the plastic bulb housing. The proper fix for this may be to buy a new bulb housing.

tag:blogger.com,1999:blog-6815733.post-3442363614775908753
Extensions
Raspberry Pi Audio Streaming Server
raspberrypi
Show full content

There are many prepackaged audio streaming servers available for the Raspberry Pi. Between Moode, Volumio, and piCorePlayer, piCorePlayer is very rich in its capabilities. It can access local media as well as a huge list of free online streaming content including TuneIn. piCorePlayer has also been the most stable where stable is defined to the quality of having a longer uptime. Although piCorePlayer is the most stable, I have occasionally encountered a loss of connectivity to the pi system (through the web interface and SSH). piCorePlayer also touts having a fast boot due to the use of Tiny Core Linux, but I experienced boot delays of greater than 30 seconds.

Granted that I could have spent time debugging why I lost connectivity and why boots took longer than 30 seconds, I decided to take another approach. Rather than using the prepackaged piCorePlayer which is convenient with its one-button push approach, I manually installed Logitech Media Server and Squeezelite player on Raspbian.

Here are some of the differences I see versus piCorePlayer.

  • I can access the LMS web interface using the hostname rather than the IP. ie. I don't need to assign a static IP to the server. See Resolve Linux Hostnames in Windows.
  • Booting the system takes less than <10 seconds.
  • The server has been rock solid.

Here are the steps for the setup.

Install Base RaspbianInstall the base Raspbian distribution. There are many instructions on the web on how to do this. If you want to be able to access LMS web interface using the host name, make sure you assign a host name to the system during setup.Install SqueezeliteInstall the Squeezelite package.

sudo apt-get install squeezelite

Identify the desired audio output device for Squeezelite.squeezelite -lCreate a squeezelite service file.sudo vi /etc/systemd/system/squeezelite.servicePaste the following contents into the file.[Unit]Description=Squeezelite
After=network.target
[Service]ExecStart=/usr/bin/squeezelite -o hw:CARD=T1E,DEV=0 -n living_room -s 127.0.0.1
[Install]WantedBy=multi-user.target
Here hw:CARD=T1E,DEV=0 is the name of the ALSA output device, living_room is the name assigned to the Squeezelite player, and 127.0.0.1 is the IP of the LMS server. Since Squeezelite and LMS will run on the same system, I'm using the loopback address.
Start the new service on boot.sudo systemctl enable squeezelite.serviceInstall LMSsudo apt-get install libio-socket-ssl-perl libnet-libidn-perl libnet-ssleay-perl perl-openssl-defaultscdmkdir lmscd lmswget http://downloads.slimdevices.com/nightly/8.0/lms/5949ad56255da8462b0e9f9fd6153acba5a7a7b3/logitechmediaserver_8.0.0~1600144351_all.debsudo dpkg -i 8.0.0~1600144351_all.deb

I'm running LMS 8.0 as of this writing.Final SetupReboot your system.

sudo reboot

Point your web browser to the following URL.

http://<hostname or IP>:9000

Upgrading LMSsudo dpkg -r logitechmediaserversudo dpkg -i logitechmediaserver_<xxx>_all.debReferencesLMS Beta Downloads 8.0Installation Instructions from John's Tech Blog
Installation Instructions from Winko Erades' Blog
Latest Squeezelite Builds
tag:blogger.com,1999:blog-6815733.post-6639384037193164117
Extensions
Whitelisting Gmail Emails
gmail
Show full content

Emails from certain domains are aggressively identified by Gmail as spam, although being legitimate. I've been trying to train the spam filter by flagging the false positives using the "Not Spam" button. However, the efforts do not appear to be helping. It is possible to whitelist emails are not spam. To do this, create a filter for the email. One of the actions for the filter is "Never send it to Spam."

tag:blogger.com,1999:blog-6815733.post-7508981518594202583
Extensions
Popular Routers Running Tomato
wrt
Show full content

Have you ever wondered what router models running Tomato software are popular? It turns out there is a way to extract this information. Tomato users have the option of registering their router with the TomatoAnon database. Here is the count of the number of routers registered. One model appears to be the winner: Netgear R7000.

tag:blogger.com,1999:blog-6815733.post-8012528151552174863
Extensions
0 and 1 Politics
politics
Show full content

How effective protective gear is ranges from non-effective to completely effective and all points in between. Let's assign this range to the numbers between 0 and 1. I agree that we are not 100% protected unless we wear an Infectious Disease Protection suit. Anything that we can do to curb the virus should be done in a pandemic. As a society, we should recognize that putting on a simple face mask helps avoid the spread of the virus more than not wearing a mask. That is, 0.1 > 0. We should be doing what is right from a scientific and common sense standpoint. Republicans have politicized this issue to the point where they are harming the public. Just because wearing a mask doesn't completely prevent transmission, doesn't mean one should not wear a mask.

The problem with politics is that everyone has an alternate agenda and sometimes it disagrees with scientific and common sense reasoning. The truth is contorted to advance the political agenda often at the cost of the public. What can be easily understood and mapped to a number between 0 and 1 ends up being either 0 or 1.

tag:blogger.com,1999:blog-6815733.post-2602623575906148066
Extensions
Raspberry Pi 4 4GB and USB Audio
raspberrypi
Show full content
There have been a number of reports of issues with USB on the Raspberry Pi 4. I am however encountering an USB audio-related issue that has not been described. I'm running Raspberry Pi OS (32-bit) Lite Version:May 2020. I've connected a USB speaker to the Pi. Sometimes when I play an audio file, aplay complains that it cannot open the audio device. In the terminal output below, you can see that the first two commands were successful but fails on the third. The state of audio system remains in this state indefinitely.
I have attempted the same exercise on the Raspberry Pi 3, and aplay never fails. If anyone has a solution, please let me know.
root@jazz:~# aplay piano2.wavPlaying WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereoroot@jazz:~# alsamixerroot@jazz:~# aplay piano2.wavPlaying WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereoroot@jazz:~# aplay piano2.wavALSA lib pcm_direct.c:1271:(snd1_pcm_direct_initialize_slave) unable to install hw paramsALSA lib pcm_dmix.c:1120:(snd_pcm_dmix_open) unable to initialize slaveaplay: main:828: audio open error: Broken piperoot@jazz:~# aplay piano2.wavALSA lib pcm_direct.c:1271:(snd1_pcm_direct_initialize_slave) unable to install hw paramsALSA lib pcm_dmix.c:1120:(snd_pcm_dmix_open) unable to initialize slaveaplay: main:828: audio open error: Broken pipe
I have attempted using the Ubuntu Raspberry Pi OS as well as limiting the memory of the 4GB Pi to 3GB. None of these attempts were successful.
tag:blogger.com,1999:blog-6815733.post-6421760090975319108
Extensions
Remove Configuration Files Left Over From "apt remove"
raspbian
Show full content
The following command will list the packages with leftover configuration files.
dpkg -l | grep ^rc

Hence, send the output to apt purge to remove all such packages.
apt purge `dpkg -l | grep ^rc |awk '{print $2}'|xargs`

In the future, to avoid having the configuration files leftover after removing a package, use
apt purge <PACKAGE>
tag:blogger.com,1999:blog-6815733.post-7598000975004269682
Extensions