Crouton broken by Chrome OS security update – here’s a fix

A security update in Chrome OS 73 patches a security hole used to run the Crouton script. Luckily, it’s easy to work-around with a simple permission change on the Crouton file.

  • Use CTRL+SHIFT+T to open the terminal window like normal.
  • Then type shell like you normally would.
  • Enter the following to alter the permissions in order to allow you to run the Crouton script:
sudo install -Dt /usr/local/bin -m 755 ~/Downloads/crouton

You’re done! Now you can update Crouton or install targets as you would normally.

My article on how to setup Crouton and Steam on a Chromebook has been updated to reflect this change.

February security update for LG G7

The US Unlocked LG G7 ThinQ has received the February security update for Android. G710ULM

I’m not optimistic that LG will get the Android 9.0 Pie update out before the end of Q1 like they promised, despite the fact that it was already released in South Korea in January. In fact, the Korean software has just received a feature update and bugfix release. LG treats the world outside South Korea as second class customers and then wonders why their mobile division operates at a loss.

Neverwinter Nights Enhanced Edition produces black screen on Linux

I decided I wanted to start playing the new release of the classic game Neverwinter Nights, on my Chromebook using my Ubuntu Linux chroot. My download comes from GOG. While my install worked great on my Windows desktop and Fedora laptop, the game isn’t starting on my Chromebook. It just produces a black screen instead of the game’s main menu.

Another Beamdog re-release, Baldur’s Gate, works great on here. The solution for NWN should be pretty simple: turn off full screen mode. But how can you do that without entering the game?!

Easy:

  • Navigate to /home/<your user>/.local/share/Neverwinter Nights
  • Edit nwn.ini
  • Change the following:
FullScreen=0
FullScreenDesktopMode=1
Borderless=1

You’re done! The game won’t run in true full screen, but it will be a full-screen borderless window.

Possible missing firmware for module tg3

When recently updating my Debian 9 Stretch’s boot image, it produced the following warning:

W: Possible missing firmware /lib/firmware/tigon/tg3_tso5.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3_tso.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3

That doesn’t look good! Without this module, I suspect my network card will not work after reboot. What’s needed is the package firmware-linux-nonfree but it’s not available in the standard Debian free repos – you need the nonfree repo.

Edit your /etc/apt/sources.list and add the following:

deb http://ftp.de.debian.org/debian stretch main non-free

You can install firmware-linux-nonfree with apt-get, which will allow your adapter requiring the tg3 module to continue working.

September security update and camera+performance patch for LG G7 ThinQ

The carrier-unlocked version of the LG G7 ThinQ (G710ULM) has just received a new patch from LG that promises performance improvements, bug fixes, 4K 60fps video recording, and the September security update for Android.

The new version is v10g

Pi-hole logrotate parent directory has insecure permissions

My Pi-hole was producing this error every day:

Cron test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )

/etc/cron.daily/logrotate: error: skipping “/var/log/lighttpd/access.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.
error: skipping “/var/log/lighttpd/error.log” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.
run-parts: /etc/cron.daily/logrotate exited with return code 1

The solution to this was pretty easy:

  • sudo vi /etc/logrotate.d/lighttpd
  • Under /var/log/lighttpd/*.log { add the following line:

su www-data www-data

That’s it! You may want to do sudo systemctl restart cron to make it reload, and now the error should not reoccur.

Have root send as a different address using postfix

If you have scripts or other services that run as root that need to send to outside email addresses, via postfix, without being root@hostname, this is what you need to do:

    1.  sudo vi /etc/postfix/generic

      root name@tld.com

    2. sudo vi /etc/postfix/main.cf

      smtp_generic_maps = hash:/etc/postfix/generic

    3. sudo postmap /etc/postfix/generic
    4. sudo systemctl restart postfix

Done! Now root will send as name@tld.com instead. Substitute whatever you want for name@tld.com

Setting NTP settings on Windows Server

Here’s how to set your Windows server to sync its time with an NTP server.

  1. Open a Command Prompt as Administrator
  2. Enter: w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL
  3. Enter: net stop w32time
  4. Enter: net start w32time
  5. Initiate a sync: w32tm /resync
  6. Check the status: w32tm /query /status

You’re done! You can also now use this server as a time server for other devices on your network. Just follow the above steps and replace pool.ntp.org with your server’s IP address.

If your server is a VM, you may need to disable time syncing from your hypervisor. Otherwise, your sync efforts will be for naught, as the VM will keep syncing with its hardware host.

Camera and July security update for LG G7 ThinQ

My LG G7 ThinQ just received the camera update that delivers 4K 60fps and a more responsive camera app. Included in the update is the July security update for Android.

My G7 is the unlocked version, G710ULM. It brings my device to software version G710ULM10f.

Keep it up, LG!

LG710ULM

Home Assistant: Unable to find service notify.email

In my Home Assistant setup, I created an SMTP notification that would email my phone’s SMS gateway when certain conditions were met. Except it didn’t work.

When monitoring the log file, I found the following when the condition was supposed to trigger:

WARNING (MainThread) [homeassistant.core] Unable to find service notify/txt_smeg

When I did additional digging in the log file, I found this:

ERROR (Thread-6) [homeassistant.components.notify.smtp] Login not possible. Please check your setting and/or your credentials
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/notify/smtp.py", line 120, in connection_is_valid
    server = self.connect()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/notify/smtp.py", line 113, in connect
    mail.login(self.username, self.password)
  File "/usr/lib/python3.5/smtplib.py", line 729, in login
    raise last_exception
  File "/usr/lib/python3.5/smtplib.py", line 720, in login
    initial_response_ok=initial_response_ok)
  File "/usr/lib/python3.5/smtplib.py", line 641, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Error: authentication failed:')
 ERROR (MainThread) [homeassistant.components.notify] Failed to initialize notification service smtp

But everything in my configuration looked OK. I checked and the password works. Restarting the Home Assistant service resulted in the same error.

After seeing this discussion where a machine restart magically fixes this problem, I restarted my entire device. After it booted back up, the notification worked correctly. My only guess is that smtplib must keep a cache somewhere, or holds something in memory across application re-loads.