Fedora 31 Upgrade: Obstacles Overcome

Filed under: — Stormwind @ 11:00 pm

Some obstacles I had to overcome when upgrading to Fedora 31:

  1. My network interface renaming udev rules stopped working and I couldn’t get them working again. Instead, I had to remove the interface renaming udev rules from /etc/udev/rules.d/ and instead add equivalent systemd.link files to /etc/systemd/network/, then rebuild the initramfs files via:
    dracut --regenerate-all --force
  2. My ipv6 connectivity stopped working.  I had to add the accept_ra_defrtr sysctl to /etc/sysctl.conf for my external interface ext1 so that it would set the default route from the upstream route advertisements:
    net.ipv6.conf.ext1.accept_ra_defrtr = 1
  3. A bunch of non-packaged and local Python code had to be switched to using “/usr/bin/env python2” instead of “/usr/bin/env python” since default Python is now Python 3 and that code had not been ported from Python 2 to Python 3 yet.
    /usr/bin/env python2

And of course a reboot (or at least a restart of all services and processes depending on the above settings and processes) afterward is needed.

Hope this information helps someone (or at least reduces the time fighting through these issues compared to the time I spent)!


Support Texas parks – vote Yes for Prop. 5 on Nov. 5th!

Filed under: — Stormwind @ 11:27 am

(For my Texas friends:) Support Texas parks and nature: Vote Yes on Prop. 5 on Nov 5th!

From 1993 to 2017, the state has collected nearly $2.5 billion in revenues from the Sporting Goods Sales Tax that was supposed to go to parks, yet only 40 percent has been spent on state and local parks. Prop. 5 will prevent those funds from being diverted every year.

For more info, see the Texas Coalition for State Parks .


Build a Network PoE Speaker System

Filed under: — Stormwind @ 5:33 pm

I recently built a networked PoE (Power over Ethernet) speaker system and installed it in the wall at the top of the stairs. By using PoE, I only had to run one cable to the device – a Cat6A ethernet cable that provided data and power.

Fun LEGO case holding the Pi, DAC/AMP, and PoE boards (in the attic)

I used the following components:

The $236 cost was lower priced for better quality than pre-existing devices I considered, with the major expenses being:

  • $35 for the Raspberry Pi
  • ~$65 (converted from UK Pounds) for the Pi-DigiAmp+
  • $36 for the POE-161S PoE splitter
  • $100 for the pair of speakers
  • (I already had the cable)

The general assembly steps are:

  • Connect the IQaudIO Pi-DigiAmp+ to the Raspberry Pi SBC following IQaudIO’s directions.
  • Optional: Remove the internals of the PLANET POE-161S PoE splitter and put it in a custom case along with the Raspberry Pi SBC and the Pi-DigiAmp+ board.
    • I didn’t find a good way to connect the PoE board to the other boards, so I put an insulator between them and made a case out of LEGO bricks to hold all three components.
  • Run Cat6A ethernet cable from a 802.3at PoE switch or PoE injector to the PLANET POE-161S PoE splitter – but don’t connect it yet (until the speakers are connected)!
    • Make sure to use a 803.3at PoE+ switch or injector (or better) since the Pi-DigiAmp+ needs the 25.5W of power (but don’t max the volume output or the Pi will reboot due to lack of enough power – 75% seems okay).
    • The Pi-DigiAmp+ can actually use 2*40W of power for the amplified speaker output, so a newer 802.3bt Type 3 (55 W) or Type 4 (up to 90-100 W) switch/injector and splitter would be better – but they cost much more currently.
  • Connect the PoE splitter
    • Set the PoE splitter for 12V output (which the Pi-DigiAmp+ expects as input)
    • Connect the PoE splitter’s power output to the Pi-DigiAmp+ (NOT the Raspberry Pi SBC, since the Pi-DigiAmp+ will pass power to the Raspberry Pi SBC)
    • Connect the PoE splitter’s ethernet output the the Raspberry Pi’s ethernet input.
  • Install the speakers and connect the speaker outputs of the Pi-DigiAmp+ to the speakers.
  • Install Raspbian to an SD card and install it into the Pi.
  • Plug the Cat6A cable into the PoE switch or injector – the device should boot up!
Raspberry Pi 3 B+, IQaudIO Pi-DigiAmp+ DAC/AMP, and cables (in the attic)

Now configure the device to act as a network speaker:

  • Install and configure PulseAudio. Run it in system mode, and copy the auth key to any device you want to play audio from via PulseAudio clients
  • To support AirPlay from iOS devices, install and configure Shairport-Sync.
  • Configure the firewall to allow the appropriate ports from your network.
Installed speakers

Now test and use your new network speakers! We’ve found many uses for the device, including:

  • Playing music and radio broadcasts (like the news) audible from the whole upstairs (and even downstairs).
  • Our smart doorbell triggers playback of a doorbell audio file, replacing the old traditional doorbell.
  • Integrating it into the home security system, playing loud alarms and other sounds when needed.


Home Automation Improvements!

Filed under: — Stormwind @ 9:47 am


I went on a home automation improvement kick recently! The changes include:

OpenHAB – I switched from Misterhouse to OpenHAB for home automation. Why? OpenHAB has a cleaner codebase, more active development community, more efficient event-driven model, increasing device support, a better UI, charting, and a functional mobile client. I completed most of the conversion in a few hours, and further lingering issues within few days.

WeeWX – instead of WView for my weather station. WeeWX uses the same DB format as WView so all the historical data is still present. WeeWX has a more active development community, lacks a rainfall bug that was plaguing me in WView, and supports MQTT (see below) allowing me to get weather station data from WeeWX to OpenHAB.

MQTT – an IoT (Internet of Things – another buzzword) message bus becoming more common in home automation. It allows publishing of data and subscription to data channels, decoupling devices enough to make it easier to connect devices lacking explicit support for each other.

DoorBird – a video intercom, motion-sensing doorbell with a documented local (non-cloud) API and hard-wired power (no batteries to worry about). I integrated it into my OpenHAB instance – here are example instructions.

Garage door automation – I added garage door controllers and sensors, so now when I ask “did I remember to close the garage door?” after driving 30 (or 300) miles I can check, and close it if I did forget.

More intelligence – Decorative lights come on at dusk instead of a fixed time, adapting to the season automatically. The container herb garden on the back porch skips drip irrigation if it has rained more than 0.2 inches in the last 24 hours. A reminder is pushed to our phones if the garage door has been left open for more than 30 minutes. If motion is detected on the front porch, a photo is taken by the doorbell camera and archived.

Whew! I have a few more ideas too, but I better wait a little bit and have a burn in period before making more changes – and trying OpenHAB 2.0.


Workaround to Drupal 8.1.x “Call to a member function get() on a non-object” error

Filed under: — Stormwind @ 2:53 pm


Trouble getting Drupal 8.1.x development branch to install due to the following error or similar?

PHP Fatal error: Call to a member function get() on a non-object in Drupal.php on line 285

There is a workaround – go to your site’s /core/install.php URL directly.

SplashID Safe mobile sync corrupt your password DB?

Filed under: — Stormwind @ 2:26 pm

SplashID Safe icon

Was your SplashID Safe database corrupted with many duplicate and non-ASCII character entries?

It happened to me multiple times when syncing between the mobile and desktop SpashID Safe clients – so I created a script to remove the entries, reducing my DB size from 2500 entries back to the actual 900 entries.

I put the quick script on GitHub in case anyone else finds it useful. It is based on linuxsquad’s Convert-SplashID-to-KeePassX scripts.

(I started using SplashID Safe during the PalmOS days and have not since switched – though I’ve considered KeePass and KeePassX.)


Hacking the Neato XV-11 robotic vacuum cleaner

Filed under: — Stormwind @ 8:50 pm

Have a Neato XV-11 robotic vacuum cleaner with an intriguing USB port?

Check out Hash’s post at the Random Workshop about connecting to the XV-11’s built-in serial subsystem via USB to send and receive commands and data from the vacuum.   I’m using a Linux box and minicom.  🙂

Now I just need a miniature embedded Linux platform with wifi so I can wirelessly communicate with the robot while it vacuums so I can try to create images from the LIDAR data as it maps the house…


Styrofoam recycling in Austin

Filed under: — Stormwind @ 10:22 am

Melissa from Hunters Chase pointed out that Cycled Plastics in Austin recycles foam products, which are not taken and recycled as part of the single stream recycling from the City of Austin and Texas Disposal Services.

From their website at http://www.cycledplastics.com/Services.html :

Public Drop Off Site: Cycled Plastics maintains a public drop point at it’s facility in Austin (at 10200 McKalla Place). The following items are accepted Monday through Friday, 7am – 5pm. (click here for a map)

  • Packaging Foams free of dirt or food contamination (EPS #6, PP #5, LDPE #4)
  • #2 HDPE curbside bottles that have been rinsed with caps removed
  • #1 PET curbside bottles that have been rinsed with the caps removed
  • #2 HDPE flower pots that have been lightly washed to remove most of the dirt
  • #4 LDPE bags that have had no food contact and have no paper contamination (labels, stickers)


Fedora 12 to 14 Upgrade

Filed under: — Stormwind @ 11:17 am

I upgraded Fedora 12 to Fedora 14 over the weekend using PreUpgrade for the first time.   (I tried a direct yum distro-sync upgrade first but it got stuck in infinite dependency loops.)

Overall I was impressed with the download size reduction and the install speed after rebooting the system for the anaconda installer to apply the new packages.  I liked the reduction in system downtime resulting from downloading all the packages before the reboot and the smaller set of packages that were installed.

Some extra steps I had to deal with:

  1. There are a couple bugs in the version of PreUpgrade that is part of Fedora 12.   This post on The Wily Blog contains the fixes to the preupgrade-cli script needed for it to run.
  2. preupgrade-cli needed /etc/sysconfig/i18n to exist but it was missing on my system.   I created the file with the default values from the Fedora docs to get past this issue.

It also seemed like the install asked a few redundant questions it could have figured out before the reboot to start the install:

  1. The installer asked whether to do a fresh install or an upgrade, where a PreUpgrade is obviously an upgrade.
  2. The installer asked which filesystem’s installation to upgrade (there was only one on the system), and then again asked which filesystem to add to the “upgrade” list.  I believe it could have assumed the same filesystem for both questions, and even possibly set default values for all of them based on the filesystems in use when PreUpgrade was run before the reboot.
  3. The installer asked which interface provided the internet connection for downloading additional packages and images, which PreUpgrade could have figured out before the reboot and passed it along.

This upgrade was the most painless Fedora or Red Hat upgrade I’ve done in years!  Almost all of my services worked afterward with no reconfiguration.  A big thanks and hats off the the Fedora team for PreUpgrade!


Chevy Volt test drive

Filed under: — Stormwind @ 11:34 am

At the Chevy Volt test drive, waiting in line…

Previous Posts

|| RSS 2.0 || Comments RSS 2.0 || XHTML || Powered by WordPress ||