Archive for category PC Tweakage
It seems I do more typing than the good folks at Kinesis expected:
In round numbers, the keyboard is all of two years old and that little ridge is pretty much history.
The ultimate fix will likely involve a dab of epoxy, but a duct tape snippet should show me how much of a bump my fingers need to find the home keys without conscious thought:
Early returns suggest one layer isn’t quite prominent enough; some iteration will be in order.
And, yeah, I should yank the keycaps for some deep cleaning.
All those annoying CNN auto-play videos will vanish, along with any videos you might have wanted. For me, it’s a reasonable tradeoff, as most (useful) videos will be available on Youtube or elsewhere.
Mostly, I don’t get news from CNN, but occasionally a link will lead there, a video appears, and instantly gets muted.
Burn them. Burn them all.
Update: Some sites run auto-play videos through JW Player, which you kill thusly:
That blocks the source of the player, which seems to not depend on the site using it. So far, so good.
Come to find out Xubuntu 18.04 ratcheted the ImageMagick security settings up to a dangerous chattering whine:
convert p???.jpg "Machining D-bit Drills.pdf" convert-im6.q16: not authorized `Machining D-bit Drills.pdf' @ error/constitute.c/WriteImage/1037.
Fortunately, someone who understands this stuff encountered the problem before I did and posted a great description of the solution.
To forestall link rot, the process looks like:
cd /etc/ImageMagick-6/ sudo cp policy.xml policy.xml.base sudo nano policy.xml … change one line … policy domain="coder" rights="read|write" pattern="PDF"
It is completely unclear to me whether ImageMagick (as of ImageMagick 6.9.7-4 Q16 x86_64 20170114 ) requires or merely tolerates the vertical bar in place of commas, nor whether it’s in my best interest to replace
In any event, I can once again stuff bitmap images into PDF files.
The old Atom running LinuxCNC for the Sherline finally stopped booting, so I popped the Optiplex 760 off the stack and did a live-USB trial run. The latency / jitter worked out around 25 µs, slightly worse than before, but still Good Enough, and the StepConf utility coerced the motors into working OK.
What didn’t work was the old Eagle-to-HAL code defining the Logitch Gamepad as a Joggy Thing to allow smooth joystick jog control. Well, stuff changes over the course of eight years, but, in this case, the fix turned out to be a one-liner: the
probe_parport module isn’t needed nowadays.
With that out of the way, it runs fine:
The INI and HAL files defining the Sherline configuration as a GitHub Gist:
Over the years, various
xsetwacom incantations have confined the tablet stylus to the left-hand landscape monitor on my desk. Updating to Xubuntu 18.04 once again changed the monitors names (from
HEAD-0 back to
xsetwacom stopped working.
startup.sh script runs from Xubuntu’s “Application Autostart” list, so X is already running and
xsetwacom should do the right thing. Alas, even with
$DISPLAY set correctly (automagically by X),
xsetwacom still didn’t corral the cursor.
Some rummaging around the Intertubes suggested a delay would allow X to get up to speed and, indeed, sleeping for two seconds solved the problem:
logger "startup.sh - copying Xauthority values" whoami > /tmp/who cp /home/ed/.Xauthority /tmp/Xauthority.txt echo $XAUTHORITY > /tmp/XAUTHORITY.txt cp $XAUTHORITY /tmp/xauth.cp echo $DISPLAY > /tmp/DISPLAY.txt # xsetwacom needs an additional delay after $XAUTHORITY and $DISPLAY become correct logger "startup.sh - waiting aimlessly" sleep 2s logger "startup.sh - doing wacom setup" xsetwacom --verbose set "Wacom Graphire3 6x8 Pen stylus" MapToOutput "DP-1" xsetwacom --verbose set "Wacom Graphire3 6x8 Pen eraser" MapToOutput "DP-1"
Sheesh & similar remarks.
The complete Bash script as a GitHub Gist:
The cruft in there reminds me of previous fixes / workarounds / haxx, so it’s not entirely wasted space.
With none other than Troy Hunt recommending Pi-Hole, I got a Round Tuit:
unzip 2018-06-27-raspbian-stretch-lite.zip -d /tmp sudo dcfldd status=progress bs=1M of=/dev/sde if=/tmp/2018-06-27-raspbian-stretch-lite.img
Raspbian now arrives with
ssh disabled, so the first boot requires a keyboard and display:
Then do some configuration required to get a fresh Raspberry Pi ready for remote access:
sudo apt-get update sudo apt-get upgrade sudo apt-get install screen iotop sudo raspi-config # enable ssh ssh-keygen -t rsa cd ~/.ssh cp -a /my/public/key authorized_keys chmod go-rwx authorized_keys cd sudo nano /etc/ssh/sshd_config # unusual port, no root login, etc sudo service ssh restart
As the good folks at Pi-Hole say, “Piping to bash is controversial, as it prevents you from reading code that is about to run on your system.” I took a look, it’s beyond my comprehension, so just get it done:
curl -sSL https://install.pi-hole.net | bash
- Static IP: 192.168.1.2/24
- DNS using, say, Cloudflare’s 126.96.36.199
- DHCP turned off, which is the default
Configure the router’s DHCP to hand out the Pi-Hole’s IP, with, say, 188.8.131.52 as a backup.
Boot a few random PCs and whatnot to verify it works as expected, which it did the second time around, thus this particular post.
mkdir Downloads cd Downloads/ wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz tar zxvf cloudflared-stable-linux-arm.tgz sudo mkdir /opt/cloudflare sudo cp cloudflared /opt/cloudflare/
Start the daemon from within a
screen session, also as suggested:
sudo /opt/cloudflare/cloudflared proxy-dns --port 54 --upstream https://184.108.40.206/.well-known/dns-query --upstream https://220.127.116.11/.well-known/dns-query INFO Adding DNS upstream url="https://18.104.22.168/.well-known/dns-query" INFO Adding DNS upstream url="https://22.214.171.124/.well-known/dns-query" INFO Starting metrics server addr="127.0.0.1:37777" INFO Starting DNS over HTTPS proxy server addr="dns://localhost:54"
Contrary to the suggestions, you can configure Pi-Hole to use the DoH tunnel (or whatever it’s called) by tweaking its upstream DNS configuration:
Then set up
systemd to start the daemon automagically:
sudo nano /etc/systemd/system/dnsproxy.service
Because I put the daemon in
/opt/cloudflare, that file differs slightly from the suggestion:
[Unit] Description=CloudFlare DNS over HTTPS Proxy Wants=network-online.target After=network.target network-online.target [Service] ExecStart=/opt/cloudflare/cloudflared proxy-dns --port 54 --upstream https://126.96.36.199/.well-known/dns-query --upstream https://188.8.131.52/.well-$ Restart=on-abort [Install] WantedBy=multi-user.target
And then It Just Worked.
Controversies over the ethics of ad and tracker blocking will go nowhere here, as I’ve cleaned out enough Windows machines to have absolutely no sympathy with the unholy spawn of adtech (not just the company, which I didn’t know existed until just now, but, yeah, them too).
The Wyze Cam is a surprisingly inexpensive camera firmly lashed to the Wyze app, with no provision for ordinary IP camera streaming. It seems to be a generic camera with custom firmware and, unsurprisingly, one can commandeer the bootloader with different firmware from a MicroSD card, thereby adding missing functions and suppressing undesired actions.
Oddly, buying a genuine Wyze Cam directly from Wyze isn’t significantly more expensive than a generic from the usual eBay / Amazon sellers. Bonus: the legit camera arrives next week rather than in a month or two.
I found one of my few remaining 2 GB MicroSD cards, formatted it with a 512 MB (!) FAT32 partition (per the suggestions), set up the “custom firmware” bootloader, and installed it with no issues.
Installing the new firmware requires copying a directory tree, configuring the WiFi SSID and password in the usual
wpa_supplicant, and rebooting. Works fine and, yeah, the camera now runs Linux.
I told the router to assign a known IP address to the camera’s MAC address, set up port forwarding for port 8554 to that IP address, put the camera against the storm window in the kitchen, and rebooted everything to get it working:
Unfortunately, while it works more-or-less well with browsers on the local network, it’s apparently inaccessible from outside. The router manages a DDNS name-to-IP mapping to make itself findable, the port is open, the forwarding seems correct, no image data arrives to browsers outside, and they eventually time out.
Changing to port 8080 doesn’t help, nor does using MJPEG instead of H264 encoding.
Even more unfortunately, the router doesn’t do hairpin connections (inside to outside to inside), so I can’t debug this mess from the Comfy Chair.
This is a placeholder for what I’ve done while I accumulate more knowledge …