pmeerw's blog

Mon, 27 Aug 2018

Lexmark, good and WTF?!

Lexmark puts out security security updates for it's printers, also for my oldish ms415dn model; the latest firmware was released in June 2018 (LW70.TL2.P022) -- that's good, it fixes 10 CVEs (KRACK), updates OpenSSL, and adds SMBv3 support.

Yet the detailed release notes fail to mention that the new firmware also disables 3rd party toner cartridges (resulting in error code 32.46, unsupported cartridge). And Lexmark makes in rather difficult to diagnose the problem and downgrade the firmware, leaving you with a non-functional printer at an inopportune time (a.k.a. weekend) -- WTF?

Here's how to get the printer back:

  1. Find old firmware (not that I recommend Softpedia). Lexmark doesn't seem to offer it anymore, arrgh.
  2. The printer won't accept flashing a firmware downgrade via the web interface, WTF?
  3. Learn that there is a USB recovery mode: press 2,7,8 on power up until 'USB recovery' appears on the small screen next to the panel.
  4. Obtain Lexmark's USB flash utility. It didn't work on Windows 10 for me, at least the DOS (WTF!) tool worked in a virtualized Windows XP running on Ubuntu. Almost zero output from the tool in the shell, but the progress bar on the printer's screen goes up if it works.

All information is there, just a pain-in-the-ass to find. Lexmark, you can do better!

Lexmark, if you disable toner cartridges for whatever reason, say so in the release notes! I might even understand... but stop this foul play; communicate openly.

posted at: 12:31 | path: /rant | permanent link

Tue, 12 Jun 2018

Henry on stage (green screen)

Playing with a green screen (chroma keying) and recording with Open Broadcaster Software (OBS Studio).

Using two USB webcams and my Alpine email window as video sources.

There is a video recording as well.

posted at: 23:57 | path: /fun | permanent link

Fri, 01 Jun 2018

How to use an Xmas tree stand in summer?

... by crafting an universal converter and turning it into an umbrella holder :-)

Perfect for installing an umbrella on the balcony!

posted at: 13:36 | path: /projects | permanent link

Thu, 24 May 2018

Adding space to a Linux LVM volume

The steps can be done when the disk is online; only creating the partition required a reboot for me.

Growing the filesystem
  1. Create a physical LVM volume: pvcreate /dev/sdaN; check using pvdisplay
    $ pvcreate /dev/sdaN
      Physical volume "/dev/sdaN" successfully created
    $ pvdisplay
       --- Physical volume ---
      PV Name               /dev/sda1
      VG Name               vg-name
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               vg-name
      "/dev/sdaN" is a new physical volume of "100.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdaN
      VG Name
      PV Size               100.00 GiB
      Allocatable           NO
      PE Size               0
      Total PE              0
      Free PE               0
      Allocated PE          0
  2. Extend the volume group: vgextend vg-name /dev/sdaN; check using lvdisplay
    $ vgextend vg-name /dev/sdaN
      Volume group "vg-name" successfully extended
    $ lvdisplay
      --- Logical volume ---
      LV Name                /dev/vg-name/root
      VG Name                vg-name
  3. Extend the logical volume to all free space available: lvextend -l+100%FREE /dev/vg-name/root
    $ lvextend -l+100%FREE /dev/vg-name/root
  4. Resize the file system: resize2fs /dev/mapper/vg--name-root
    $ resize2fs /dev/mapper/vg--name-root
Partition type code for LVM is 8e.

Some more useful commands
lvmdiskscan -l to scan for LVM physical volumes
vgdisplay -v to summarize lot of information about a volume group
lvs to find the logical volumes and there size; also try the --segments argument

posted at: 11:16 | path: /configuration | permanent link

Wed, 23 May 2018

let's encrypt: auto-renew

Note to myself about let's encrypt auto-renew: Put letsencrypt in /etc/cron.weekly, edit the services that need to be restarted. The first snippet is for a relatively modern, systemd-enabled, system (Ubuntu 16.04), the second snippet target an ancient system (Ubuntu 14.04): The script assumes that the letsencrypt tool in installed (via Ubuntu PPA).

Recent systems:
letsencrypt renew --pre-hook "systemctl stop apache2" --post-hook "systemctl start apache2"
res=$(find /etc/letsencrypt/live/ -type l -mtime -1)
if [ -n "$res" ]; then
  echo "letsencrypt: new keys"
  systemctl restart apache2
  systemctl restart postfix
  systemctl restart dovecot
  echo "letsencrypt: nothing to do"
Ancient systems:
letsencrypt renew --pre-hook "/etc/init.d/apache2 stop" --post-hook "/etc/init.d/apache2 start"
res=$(find /etc/letsencrypt/live/ -type l -mtime -1)
if [ -n "$res" ]; then
  echo "letsencrypt: new keys"
  /etc/init.d/apache2 restart
  #/etc/init.d/postfix restart
  #/etc/init.d/dovecot restart
  echo "letsencrypt: nothing to do"

posted at: 10:37 | path: /configuration | permanent link

Made with PyBlosxom