<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Volodymyr Mutel</title>
  <link>https://muwlgr.dreamwidth.org/</link>
  <description>Volodymyr Mutel - Dreamwidth Studios</description>
  <lastBuildDate>Fri, 06 Mar 2026 16:32:48 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>muwlgr</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/55268.html</guid>
  <pubDate>Fri, 06 Mar 2026 16:32:48 GMT</pubDate>
  <title>Rebuilding LUbuntu 18.04 desktop over Debian 13 Trixie</title>
  <link>https://muwlgr.dreamwidth.org/55268.html</link>
  <description>This is an update to my older post at &lt;a href=&quot;https://muwlgr.dreamwidth.org/52029.html&quot;&gt;muwlgr.dreamwidth.org/52029.html&lt;/a&gt; .&lt;br /&gt;I still have one remote Ubuntu 18.04 32-bit (i386) instance which is waiting for its CPU or MoBo upgrade. My older version of &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/upgrade-lubuntu3264.sh&quot;&gt;upgrade-lubuntu3264.sh&lt;/a&gt; had too many special cases to prevent it from failing when upgrading our real Ubuntu 18.04 installations, which had quite a lot of side-addons, such as Canon printer drivers, Remmina from Ubuntu PPA, and the like. To simplify the script, I installed 32-bit LUbuntu 18.04 into a virtual machine and tested the script by applying it to the initial 32-bit snapshot until I became satisfied with the upgrade results with a noticeably shorter script version (-43 lines).&lt;br /&gt;The script &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/upgrade-bionic-to-bookworm.sh&quot;&gt;upgrade-bionic-to-bookworm.sh&lt;/a&gt; has been renamed into &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/upgrade-bionic-to-trixie.sh&quot;&gt;upgrade-bionic-to-trixie.sh&lt;/a&gt; , with added step of upgrading Debian BookWorm to Trixie.&lt;br /&gt;The script &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/build-lubuntu-on-bookworm.sh&quot;&gt;build-lubuntu-on-bookworm.sh&lt;/a&gt; has been renamed into &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/build-lubuntu-on-debian.sh&quot;&gt;build-lubuntu-on-debian.sh&lt;/a&gt; and gained logic for downloading Bionic &lt;tt&gt;.deb&lt;/tt&gt; and source packages from within &lt;tt&gt;debootstrap&lt;/tt&gt;ped Bionic &lt;tt&gt;chroot&lt;/tt&gt;, since updated &lt;tt&gt;apt&lt;/tt&gt; in Trixie stopped supporting &lt;tt&gt;SHA1&lt;/tt&gt; signature verification. Also, more patching and rebuilding of Bionic packages has been added to reflect the changed structure of LXDE menus and required Debian/Ubuntu packages. As before, it creates a &lt;tt&gt;.tar&lt;/tt&gt; archive in &lt;tt&gt;/tmp/&lt;/tt&gt; folder which you then need to copy onto any Ubuntu system recently upgraded to Debian and unpack it there.&lt;br /&gt;The script &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/install-lubuntu-on-bookworm.sh&quot;&gt;install-lubuntu-on-bookworm.sh&lt;/a&gt; has been renamed into &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/install-lubuntu-on-debian.sh&quot;&gt;install-lubuntu-on-debian.sh&lt;/a&gt; and requires having &lt;tt&gt;.deb&lt;/tt&gt; packages unpacked from the above mentioned &lt;tt&gt;.tar&lt;/tt&gt; in the same folder where the script is run.&lt;br /&gt;All these complex procedures became necessary to preserve the familiar experience of working with the system for not overly experienced users. As we remember, LUbuntu did not have essential changes from 10.04 up till 18.04, after which Canonical decided to migrate it to LXQt.&lt;br /&gt;Most probably, after upgrading my last Ubuntu system to Debian, further development of these scripts will be stopped and they will become only historical curiosities, maybe useful for some borrowing and customization but not for direct use.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=55268&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/55268.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/54809.html</guid>
  <pubDate>Tue, 10 Feb 2026 06:35:12 GMT</pubDate>
  <title>some walkthrough on my GitHub scripts for Live Debian installation</title>
  <link>https://muwlgr.dreamwidth.org/54809.html</link>
  <description>In my previous article at &lt;a href=&quot;https://muwlgr.dreamwidth.org/54748.html&quot;&gt;muwlgr.dreamwidth.org/54748.html&lt;/a&gt; I moved most my in-line scripts to GitHub&lt;br /&gt;to save your efforts on properly copying and pasting them into your terminal window.&lt;br /&gt;Now probably it is worth to briefly explan what is happening inside them.&lt;br /&gt;&lt;br /&gt;The script at &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/debootstrap/populate.sh&quot;&gt;github.com/muwlgr/scripts/blob/main/debootstrap/populate.sh&lt;/a&gt; which you dot-include into your current session&lt;br /&gt;creates initial folder structure, removes leftover Linux kernel and &lt;tt&gt;grub&lt;/tt&gt; files from previous installs,&lt;br /&gt;and fetches a copy of &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/debootstrap/mount-linux.sh&quot;&gt;github.com/muwlgr/scripts/blob/main/debootstrap/mount-linux.sh&lt;/a&gt;&lt;br /&gt;which could be used for mounting the &lt;tt&gt;debootstrap&lt;/tt&gt;ped system and accessing it from the host.&lt;br /&gt;&lt;br /&gt;Then it allocates loop image files of given size and creates ext4 fs and swap space within them.&lt;br /&gt;Then it mounts the root fs image and runs &lt;tt&gt;debootstrap&lt;/tt&gt; on it to populate the initial system.&lt;br /&gt;Before running &lt;tt&gt;debootstrap&lt;/tt&gt; it copies &lt;tt&gt;eatmydata&lt;/tt&gt; bins and libs if they are present on the host,&lt;br /&gt;to speed up file operations which is especially useful on slow USB flash drives.&lt;br /&gt;After running &lt;tt&gt;debootstrap&lt;/tt&gt; the user is asked to change the host name of the bootstrapped system,&lt;br /&gt;to be different from the one of the creating host.&lt;br /&gt;&lt;br /&gt;Then some more folders are mounted into the target fs (&lt;tt&gt;boot&lt;/tt&gt; , &lt;tt&gt;boot/efi&lt;/tt&gt; if needed, and &lt;tt&gt;host&lt;/tt&gt;), &lt;tt&gt;&lt;br /&gt;apt&lt;/tt&gt; proxy configuration is copied from host into target if present,&lt;br /&gt;and scripts &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/debootstrap/runme.sh&quot;&gt;github.com/muwlgr/scripts/blob/main/debootstrap/runme.sh&lt;/a&gt;&lt;br /&gt;and &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/debootstrap/complete-stable.sh&quot;&gt;github.com/muwlgr/scripts/blob/main/debootstrap/complete-stable.sh&lt;/a&gt;&lt;br /&gt;are copied into the &lt;tt&gt;root&lt;/tt&gt; folder of the target.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;runme.sh&lt;/tt&gt; script is used to bind-mount system folder such as &lt;tt&gt;/dev&lt;/tt&gt; , &lt;tt&gt;/proc&lt;/tt&gt; , &lt;tt&gt;/sys&lt;/tt&gt; and others&lt;br /&gt;from the host into the target and run &lt;tt&gt;root&lt;/tt&gt; session in the target using &lt;tt&gt;chroot&lt;/tt&gt;&lt;br /&gt;Then the user is asked to continue system setup by dot-including &lt;tt&gt;complete-stable.sh&lt;/tt&gt; into this &lt;tt&gt;root&lt;/tt&gt; session.&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;complete-stable.sh&lt;/tt&gt; is doing the bulk of setup work which requires &lt;tt&gt;root&lt;/tt&gt; permissions and is more convenient to be done from within the &lt;tt&gt;debootstrap&lt;/tt&gt;ped target, than from the non-root session on the host.&lt;br /&gt;&lt;br /&gt;First, it converts &lt;tt&gt;apt&lt;/tt&gt; &lt;tt&gt;sources.list&lt;/tt&gt; into &lt;tt&gt;stable.sources&lt;/tt&gt; corresponding to Debian Stable instance freshly installed in standard Debian way,&lt;br /&gt;and runs &lt;tt&gt;apt update&lt;/tt&gt; using network interface provided by the host.&lt;br /&gt;Then it installs some essential packages like &lt;tt&gt;locales&lt;/tt&gt; , &lt;tt&gt;tzdata&lt;/tt&gt; and &lt;tt&gt;console-setup&lt;/tt&gt; and asks the user to configure them.&lt;br /&gt;&lt;br /&gt;Then it prepares the environment and configuration for &lt;tt&gt;grub&lt;/tt&gt; installation&lt;br /&gt;and adds needed entries to &lt;tt&gt;fstab&lt;/tt&gt;.&lt;br /&gt;And then it installs &lt;tt&gt;grub&lt;/tt&gt; :&lt;br /&gt;first, &lt;tt&gt;grub-pc&lt;/tt&gt; is installed to get bootability on BIOS/CSM systems,&lt;br /&gt;then, if needed, it is replaced with &lt;tt&gt;grub-efi-amd64&lt;/tt&gt; to get bootability on UEFI/SecureBoot systems&lt;br /&gt;(without losing BIOS/CSM bootability left over after &lt;tt&gt;grub-pc&lt;/tt&gt; installation).&lt;br /&gt;&lt;br /&gt;Then comes the turn of &lt;tt&gt;initramfs-tools&lt;/tt&gt; config fixes:&lt;br /&gt;&lt;tt&gt;do_symlinks&lt;/tt&gt; in &lt;tt&gt;kernel-img.conf&lt;/tt&gt; is disabled, &lt;tt&gt;vfat&lt;/tt&gt; modules added to the explicit &lt;tt&gt;modules&lt;/tt&gt; list,&lt;br /&gt;and two drop-in scripts are copied from &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/initramfs/hostloop-premount&quot;&gt;github.com/muwlgr/scripts/blob/main/initramfs/hostloop-premount&lt;/a&gt;&lt;br /&gt;and &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/initramfs/hostloop-bottom&quot;&gt;github.com/muwlgr/scripts/blob/main/initramfs/hostloop-bottom&lt;/a&gt; into &lt;tt&gt;local-premount/&lt;/tt&gt; and &lt;tt&gt;local-bottom/&lt;/tt&gt; folders&lt;br /&gt;to implement &lt;tt&gt;loop=&lt;/tt&gt; option handling in the &lt;tt&gt;cmdline&lt;/tt&gt; of the booted kernel&lt;br /&gt;in the same way as it is done in Ubuntu fork of &lt;tt&gt;initramfs-tools&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Then finally it becomes possible to install &lt;tt&gt;linux-image-amd64&lt;/tt&gt;&lt;br /&gt;so that it gets configured perfectly with the above fixes for &lt;tt&gt;grub&lt;/tt&gt; and &lt;tt&gt;initramfs-tools&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Then &lt;tt&gt;complete-stable&lt;/tt&gt; is doing some package cleanup,&lt;br /&gt;and creating the simplest initial configuration for &lt;tt&gt;systemd-networkd&lt;/tt&gt; and &lt;tt&gt;wpa_supplicant&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Then, within the same &lt;tt&gt;chroot&lt;/tt&gt; &lt;tt&gt;root&lt;/tt&gt; session, the user is asked to create the first non-root user and add it to the &lt;tt&gt;sudo&lt;/tt&gt; group.&lt;br /&gt;Typical Debian installation asks the user to set &lt;tt&gt;root&lt;/tt&gt; password, then create a non-root user, and does not install &lt;tt&gt;sudo&lt;/tt&gt; at all.&lt;br /&gt;The approach with &lt;tt&gt;sudo&lt;/tt&gt; package and &lt;tt&gt;sudo&lt;/tt&gt; group I borrowed from Ubuntu as I liked it more : &lt;tt&gt;root&lt;/tt&gt; password is locked, &lt;tt&gt;root&lt;/tt&gt; operations are done only by a non-root user with &lt;tt&gt;sudo&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;You may look into Ubuntu&apos;s initramfs handling of &lt;tt&gt;loop=&lt;/tt&gt; option&lt;br /&gt;at &lt;a href=&quot;https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/initramfs-tools/tree/init?h=ubuntu/noble&quot;&gt;git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/initramfs-tools/tree/init?h=ubuntu/noble&lt;/a&gt;&lt;br /&gt;and &lt;a href=&quot;https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/initramfs-tools/tree/scripts/local?h=ubuntu/noble&quot;&gt;git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/initramfs-tools/tree/scripts/local?h=ubuntu/noble&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Compare it to Debian&apos;s original version&lt;br /&gt;at &lt;a href=&quot;https://salsa.debian.org/kernel-team/initramfs-tools/-/blob/v0.148.3/init&quot;&gt;salsa.debian.org/kernel-team/initramfs-tools/-/blob/v0.148.3/init&lt;/a&gt;&lt;br /&gt;and &lt;a href=&quot;https://salsa.debian.org/kernel-team/initramfs-tools/-/blob/v0.148.3/scripts/local&quot;&gt;salsa.debian.org/kernel-team/initramfs-tools/-/blob/v0.148.3/scripts/local&lt;/a&gt;&lt;br /&gt;to understand what functionality I have added by &lt;tt&gt;hostloop-premount&lt;/tt&gt; and &lt;tt&gt;hostloop-bottom&lt;/tt&gt; scripts .&lt;br /&gt;&lt;br /&gt;You may also look into &lt;a href=&quot;https://salsa.debian.org/grub-team/grub/-/blob/master/util/grub-mkconfig.in&quot;&gt;salsa.debian.org/grub-team/grub/-/blob/master/util/grub-mkconfig.in&lt;/a&gt;&lt;br /&gt;and &lt;a href=&quot;https://salsa.debian.org/grub-team/grub/-/blob/master/debian/patches/default-grub-d.patch&quot;&gt;salsa.debian.org/grub-team/grub/-/blob/master/debian/patches/default-grub-d.patch&lt;/a&gt;&lt;br /&gt;(or may be just look into your local copy of &lt;tt&gt;/usr/sbin/grub-mkconfig&lt;/tt&gt;)&lt;br /&gt;to understand the meaning of &lt;tt&gt;grub&lt;/tt&gt; fixes in &lt;tt&gt;complete-stable&lt;/tt&gt;.&lt;br /&gt;Start with the line &lt;tt&gt;GRUB_DEVICE=&lt;/tt&gt; and follow down to the end of loop including files from &lt;tt&gt;${sysconfdir}/default/grub.d/&lt;/tt&gt;&lt;br /&gt;to understand why &lt;tt&gt;/etc/default/grub.d/hostloop.cfg&lt;/tt&gt; should be created with its content.&lt;br /&gt;&lt;br /&gt;And also you may want to see my comment to &lt;a href=&quot;https://bugs.debian.org/700633&quot;&gt;bugs.debian.org/700633&lt;/a&gt; to understand &lt;tt&gt;eatmydata&lt;/tt&gt; performance optimization for &lt;tt&gt;debootstrap&lt;/tt&gt; (look for my surname &lt;b&gt;Mutel&lt;/b&gt; closer to the end of the page).&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=54809&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/54809.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/54748.html</guid>
  <pubDate>Fri, 30 Jan 2026 20:45:04 GMT</pubDate>
  <title>installing live Debian 13 (Trixie) amd64 on a FAT32 USB drive</title>
  <link>https://muwlgr.dreamwidth.org/54748.html</link>
  <description>This note is a kind of improvement over its earlier version at &lt;a href=&quot;https://muwlgr.dreamwidth.org/48219.html&quot;&gt;muwlgr.dreamwidth.org/48219.html&lt;/a&gt; .&lt;br /&gt;I created a Windows10 installation media on a 64GB(57.7GiB) USB&amp;nbsp;flash drive, where I still had &amp;gt;40GB of free space even after copying lots of additional useful software and drivers there.&lt;br /&gt;The FAT32 volume contains EFI folder with all needed subfolders for UEFI/SecureBoot booting.&lt;br /&gt;As well it has some boot code for BIOS/CSM systems not supporting UEFI.&lt;br /&gt;I plug the USB drive into a running Debian 13 system, mount it as &lt;tt&gt;/media/someone/ESD-USB&lt;/tt&gt; and &lt;tt&gt;cd&lt;/tt&gt; into this folder in &lt;tt&gt;bash&lt;/tt&gt; shell.&lt;br /&gt;All the following operations are done within this folder&lt;br /&gt;&lt;em&gt;Note, with this setup, your linux folder is going to take at least &lt;/em&gt;&lt;strong&gt;8 GB&lt;/strong&gt;&lt;em&gt; of storage space, most probably, closer to &lt;/em&gt;&lt;strong&gt;9..10GB&lt;/strong&gt; &lt;em&gt;on the FAT volume&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;font color=&quot;blue&quot;&gt;Later update: I moved most scripts into my GitHub repository to avoid repelling the reader with vast code blankets.&lt;br /&gt;More explanations on how they work you may read in the follow-up article at &lt;/font&gt;&lt;/em&gt;&lt;a href=&quot;https://muwlgr.dreamwidth.org/54809.html&quot;&gt;muwlgr.dreamwidth.org/54809.html&lt;/a&gt;.&lt;br /&gt;So, what is left to do now, is :&lt;pre&gt;
( cd /tmp 
  wget https://raw.githubusercontent.com/muwlgr/scripts/refs/heads/main/debootstrap/populate.sh )
. /tmp/populate.sh
&lt;/pre&gt;&lt;hr /&gt; You may be asked about re-creating ext4 fs over already-initialized loop image.&lt;br /&gt;Also you will be asked to set a new host name for a newly-&lt;tt&gt;debootstrap&lt;/tt&gt;ped system.&lt;br /&gt;Then a root session will be started in the chroot of &lt;tt&gt;debootstrap&lt;/tt&gt;ped system.&lt;br /&gt;And you will be asked (in &lt;font color=&quot;green&quot;&gt;green text&lt;/font&gt;) to run this :&lt;hr /&gt;&lt;pre&gt;
. root/complete-stable.sh
&lt;/pre&gt;&lt;hr /&gt;You will need to confirm a number of &lt;tt&gt;apt install&lt;/tt&gt;s and &lt;tt&gt;remove&lt;/tt&gt;s, as well as select your preferred &lt;tt&gt;locales&lt;/tt&gt;, time zone and console font.&lt;br /&gt;After the above steps, you should have a well configured Debian system, taking up to &lt;strong&gt;600MB&lt;/strong&gt; or &lt;strong&gt;15..16%&lt;/strong&gt; of &lt;strong&gt;4GB&lt;/strong&gt; root filesystem space&lt;br /&gt;and needing only to add a first user with &lt;tt&gt;sudo&lt;/tt&gt; rights, in Ubuntu style, that is, without &lt;tt&gt;root&lt;/tt&gt; password :&lt;pre&gt;
# the script will ask you in &lt;font color=&quot;green&quot;&gt;green text&lt;/font&gt; to do the following :
u=user # choose your preferred name
adduser $u # set your password and other details
adduser $u sudo # give this user sudo permissions
&lt;/pre&gt;&lt;hr /&gt;Now type&lt;pre&gt;
exit # wait for umounts ; paste the following commands separately&lt;/pre&gt;&lt;hr /&gt;&lt;pre&gt;
sudo umount -v $target
cd
umount -v $base&lt;/pre&gt;and try booting this newly-created system on a real or virtual hardware.&lt;hr /&gt;If your UEFI BIOS does not recognize Debian boot loader and only boots Windows instead, plug your USB back into the original host system, mount it, &lt;tt&gt;cd&lt;/tt&gt; into its root folder in &lt;tt&gt;bash&lt;/tt&gt; shell and do this: &lt;pre&gt;
[ -d efi ] &amp;amp;&amp;amp; { cd efi
 [ -d boot ] &amp;amp;&amp;amp; mv boot ms-boot
 cp -av debian boot
 cd boot
 cp -av shimx64.efi bootx64.efi
}&lt;/pre&gt; Umount and remove the USB media, plug it into the desired system and try booting again.&lt;br /&gt;If you want to restore Windows bootability, rename &lt;tt&gt;boot&lt;/tt&gt; into &lt;tt&gt;deb-boot&lt;/tt&gt; , and &lt;tt&gt;ms-boot&lt;/tt&gt; back into &lt;tt&gt;boot&lt;/tt&gt; .&lt;br /&gt;Or you might meet a sane BIOS capable of recognizing multiple boot loaders in one UEFI ESP&lt;br /&gt;See &lt;a href=&quot;https://wiki.debian.org/UEFI&quot;&gt;wiki.debian.org/UEFI&lt;/a&gt; and search for &lt;strong&gt;bootx64&lt;/strong&gt; in this page to learn more about this unpleasant topic.&lt;br /&gt;Below some useful next steps are described :&lt;hr /&gt; Suppose you have been able to log in to the booted system as the user you have added before.&lt;br /&gt;Ensure that you can run &lt;tt&gt;sudo id&lt;/tt&gt; , enter your password and see &lt;tt&gt;uid&lt;/tt&gt; and &lt;tt&gt;gid&lt;/tt&gt; equal to &lt;tt&gt;0&lt;/tt&gt;, which means that &lt;tt&gt;sudo&lt;/tt&gt; gives you &lt;tt&gt;root&lt;/tt&gt; access.&lt;br /&gt;If you have booted on some new/unfamiliar hardware, take a moment to review the printout of &lt;tt&gt;sudo dmesg | grep -i firm&lt;/tt&gt; to see whether any drivers were unable to find their firmware files.&lt;br /&gt;If you see messages about missing firmware files, find them using &lt;a href=&quot;https://packages.debian.org/&quot;&gt;packages.debian.org&lt;/a&gt; and install needed packages using &lt;tt&gt;apt install&lt;/tt&gt;&lt;br /&gt;&lt;p&gt;You may also want to install some useful packages to bring more familiar experience to yourself&lt;br /&gt; (add &lt;tt&gt;sudo&lt;/tt&gt; and &lt;tt&gt;eatmydata&lt;/tt&gt; before &lt;tt&gt;apt install&lt;/tt&gt; as needed - useful if your USB flash drive is slow on writes) :&lt;/p&gt;&lt;tt&gt;bash-completion&lt;/tt&gt; to improve &lt;tt&gt;Tab&lt;/tt&gt; completion in bash command line;&lt;br /&gt;&lt;tt&gt;command-not-found&lt;/tt&gt; to automate searching for not yet installed packages;&lt;br /&gt;&lt;tt&gt;man-db&lt;/tt&gt; to read invaluable documentation within your running system;&lt;br /&gt;&lt;tt&gt;openssh-server&lt;/tt&gt; to access your system remotely;&lt;br /&gt;&lt;tt&gt;rsync&lt;/tt&gt; to optimally copy local and remote files over the network (works over ssh);&lt;br /&gt;&lt;tt&gt;nmap&lt;/tt&gt; and &lt;tt&gt;tcpdump&lt;/tt&gt; to scan and diagnose your network, to discover its resources;&lt;br /&gt;&lt;tt&gt;icewm xdm xorg xterm&lt;/tt&gt; to get basic GUI environment in which you may run other GUI software&lt;br /&gt;&lt;tt&gt;x11vnc&lt;/tt&gt; to provide remote access to your locally-running GUI session&lt;br /&gt;And/or &lt;tt&gt;xvfb&lt;/tt&gt; to run GUI applications in headless mode (works over ssh port forwarding) and access them by &lt;tt&gt;x11vnc&lt;/tt&gt; as well&lt;br /&gt;Or maybe &lt;tt&gt;&lt;a href=&quot;https://github.com/Xpra-org/xpra/wiki&quot;&gt;xpra.org&lt;/a&gt;&lt;/tt&gt; to get more advanced remote access to persistent headless GUI applications (also works over ssh)&lt;br /&gt;&lt;tt&gt;pciutils usbutils lshw smartmontools&lt;/tt&gt; to discover, enumerate and learn more about the available hardware and its operation statistics&lt;br /&gt;&lt;tt&gt;sysstat iotop&lt;/tt&gt; to monitor storage i/o and its statistics, a useful addition to &lt;tt&gt;ps&lt;/tt&gt;, &lt;tt&gt;top&lt;/tt&gt; and &lt;tt&gt;vmstat&lt;/tt&gt; from &lt;tt&gt;procps&lt;/tt&gt; package&lt;br /&gt;&lt;tt&gt;iw rfkill wireless-tools wireless-regdb wpasupplicant&lt;/tt&gt; to take control over your WiFi adapter &lt;em&gt;&lt;font color=&quot;blue&quot;&gt;(already installed by the &lt;/font&gt;&lt;/em&gt;&lt;tt&gt;complete-stable&lt;/tt&gt;&lt;em&gt;&lt;font color=&quot;blue&quot;&gt; script)&lt;/font&gt;&lt;/em&gt;&lt;br /&gt;&lt;tt&gt;hostapd&lt;/tt&gt; instead of &lt;tt&gt;wpasupplicant&lt;/tt&gt; to turn your computer into a WiFi access point and router (ensure it has more than 1 network interface)&lt;br /&gt;&lt;tt&gt;dkms&lt;/tt&gt; to build out-of-kernel modules for your VGA or WiFi hardware&lt;br /&gt;&lt;tt&gt;module-assistant&lt;/tt&gt; for even better automation of the preceding task &lt;hr /&gt;You may be walking around with your bootable USB drive, plugging it into various computers, booting, logging in and trying to access the Internet.&lt;br /&gt;Your &lt;tt&gt;systemd-networkd&lt;/tt&gt; is configured for dynamic IP allocation for &lt;tt&gt;en*&lt;/tt&gt; and &lt;tt&gt;wl*&lt;/tt&gt; interfaces (see it by running &lt;tt&gt;grep . /etc/systemd/network/*.network&lt;/tt&gt; ).&lt;br /&gt;For &lt;tt&gt;en*&lt;/tt&gt; interfaces everything should work as expected, just run &lt;tt&gt;ip a&lt;/tt&gt; to see your allocated address.&lt;br /&gt;For &lt;tt&gt;wl*&lt;/tt&gt; interfaces there is additional configuration using &lt;tt&gt;wpa_supplicant&lt;/tt&gt;.&lt;br /&gt;First, a script in &lt;tt&gt;/root/wpa-networkd.sh&lt;/tt&gt; to start &lt;tt&gt;wpa_supplicant&lt;/tt&gt; for every found &lt;tt&gt;wl*&lt;/tt&gt; interface; see its source at &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/wpa/wpa-networkd.sh&quot;&gt;github.com/muwlgr/scripts/blob/main/wpa/wpa-networkd.sh&lt;/a&gt;.&lt;br /&gt;Next, a short udev rule in &lt;tt&gt;/etc/udev/rules.d/99-wpa-wl.rules&lt;/tt&gt; to start this script; see its source at &lt;a href=&quot;https://github.com/muwlgr/scripts/blob/main/wpa/99-wpa-wl.rules&quot;&gt;github.com/muwlgr/scripts/blob/main/wpa/99-wpa-wl.rules&lt;/a&gt;.&lt;br /&gt;It is attached to &lt;tt&gt;ACTION==&amp;quot;move&amp;quot;&lt;/tt&gt; since &lt;tt&gt;udev&lt;/tt&gt; usually renames (moves) the network interface the kernel initially names &lt;tt&gt;wlan0&lt;/tt&gt; after successful module and firmware loading.&lt;br /&gt;May be it is worth to attach it to &lt;tt&gt;ACTION==&amp;quot;add&amp;quot;&lt;/tt&gt; instead, testing will show.&lt;p&gt;If you see a &lt;tt&gt;wl*&lt;/tt&gt; interface in &lt;tt&gt;ip a&lt;/tt&gt; printout (with flags &lt;tt&gt;NO-CARRIER&lt;/tt&gt; and &lt;tt&gt;UP&lt;/tt&gt;), run &lt;tt&gt;sudo systemctl status | grep wpa&lt;/tt&gt; and ensure you see &lt;tt&gt;wpa_supplicate@wl...&lt;/tt&gt; service running for this interface.&lt;/p&gt;&lt;p&gt;Then you are ready to learn a minimal bit of knowledge on using &lt;tt&gt;wpa_cli&lt;/tt&gt; :&lt;/p&gt;Run it as &lt;tt&gt;root&lt;/tt&gt; : &lt;tt&gt;sudo wpa_cli&lt;/tt&gt; , and you will enter its command line with &lt;tt&gt;&amp;gt;&lt;/tt&gt; prompt&lt;br /&gt; Run &lt;tt&gt;scan&lt;/tt&gt; and after some pause &lt;tt&gt;scan_results&lt;/tt&gt; to see discovered wireless networks&lt;br /&gt; Run &lt;tt&gt;add_network&lt;/tt&gt; and remember the number of a newly-created empty network (denote it as &lt;tt&gt;&lt;i&gt;N&lt;/i&gt;&lt;/tt&gt;)&lt;br /&gt; Run &lt;tt&gt;set_network &lt;i&gt;N&lt;/i&gt; ssid &amp;quot;WiFiNetName&amp;quot;&lt;/tt&gt; and &lt;tt&gt;set_network &lt;i&gt;N&lt;/i&gt; psk &amp;quot;WiFiNetPassword&amp;quot;&lt;/tt&gt; to set some name and password known to you for this network&lt;br /&gt; Run &lt;tt&gt;enable_network &lt;i&gt;N&lt;/i&gt;&lt;/tt&gt; to let &lt;tt&gt;wpa_supplicant&lt;/tt&gt; connect to this network&lt;br /&gt; Run &lt;tt&gt;list_networks&lt;/tt&gt; to see if you are connected to any network (marked &lt;tt&gt;[CURRENT]&lt;/tt&gt;)&lt;br /&gt; Run &lt;tt&gt;save_config&lt;/tt&gt; to save your updated network list&lt;br /&gt;Run &lt;tt&gt;exit&lt;/tt&gt; or type &lt;tt&gt;Ctrl+D&lt;/tt&gt; to exit &lt;tt&gt;wpa_cli&lt;/tt&gt; and return back to your shell&lt;br /&gt;Then run &lt;tt&gt;ip a&lt;/tt&gt; to see what addresses your interface had received.&lt;p&gt;&lt;tt&gt;wpa_cli&lt;/tt&gt; together with &lt;tt&gt;systemd-networkd&lt;/tt&gt; allow you to use your wireless interfaces without heavyweight management tools such as &lt;tt&gt;NetworkManager&lt;/tt&gt;&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=54748&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/54748.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/54312.html</guid>
  <pubDate>Mon, 12 May 2025 11:46:32 GMT</pubDate>
  <title>An interesting case of Win11 healing</title>
  <link>https://muwlgr.dreamwidth.org/54312.html</link>
  <description>My neighbors bought a Lenovo&apos;s &amp;quot;gaming laptop&amp;quot; for their teenage son, on which I helped them install Win11, activating it in a well-known way (search: massgrave).&lt;br /&gt;Passed 2 or 3 months, they asked me if I can reinstall Win11 as the boy damaged it in some way during his gaming activities.&lt;br /&gt;I took the laptop to review its state (and possibly to avoid throwing out the whole system and reinstalling it anew).&lt;br /&gt;The symptoms I observed were :&lt;br /&gt;&lt;ul&gt; &lt;li&gt;Login takes too long after entering PIN or password, waiting for Desktop and Task Bar to appear&lt;/li&gt;&lt;li&gt;Inability to run any executable as Administrator using Windows File Explorer&lt;/li&gt;&lt;li&gt;Other mysterious effects, like invisible Windows Defender log items, among many others&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I tried to run &lt;strong&gt;Autoruns&lt;/strong&gt; or &lt;strong&gt;MBAM Antimalware&lt;/strong&gt; on it but &amp;quot;&lt;strong&gt;Run as Adminnistrator&lt;/strong&gt;&amp;quot; did not have any effect.&lt;br /&gt;I searched Google on how to run administrative process from the unprivileged command line and found a recipe at &lt;a href=&quot;https://learn.microsoft.com/en-us/answers/questions/1338912/how-to-run-powershell-as-administrator&quot;&gt;https://learn.microsoft.com/en-us/answers/questions/1338912/how-to-run-powershell-as-administrator&lt;/a&gt; , namely, &lt;b&gt;&lt;br /&gt;Start-Process powershell -Verb RunAs &lt;/b&gt; .&lt;br /&gt;But trying this on the broken system only gave me a long pause followed by &amp;quot;Permission denied&amp;quot; error.&lt;br /&gt;So I booted Linux from a USB&amp;nbsp;stick, mounted &lt;strong&gt;nvme0n1p3&lt;/strong&gt; and moved the existing Windows folders aside, that is: &lt;strong&gt;cd&lt;/strong&gt; into the mounted folder, make a subfolder named like &lt;strong&gt;save0&lt;/strong&gt;, and moved &lt;strong&gt;Program*&lt;/strong&gt;, &lt;strong&gt;Users&lt;/strong&gt; and &lt;strong&gt;Windows&lt;/strong&gt; folders from root level down into this folder.&lt;br /&gt;This I did in the hope of being able to reinstall a fresh Win11 into the same filesystem without removing or reforrmatting it, and then to exchange the original Windows folders back (that is, by saving newly-installed Windows folders under &lt;strong&gt;save1&lt;/strong&gt;/ and moving &lt;strong&gt;save0&lt;/strong&gt;/* contents back into the root.&lt;br /&gt;This approach often helped me restore Windows functionality in the past, starting probably from as long as WinXP.&lt;br /&gt;So I booted from Win11 installation USB in the hope of a successful reinstall, and it showed me the 3rd NVMe partition as having 0 bytes available (free) and not having NTFS file system on it.&lt;br /&gt;&amp;quot;&lt;strong&gt;Windows must be installed to a partition formatted as NTFS&lt;/strong&gt;&amp;quot;, you know ...&lt;br /&gt;What the &apos;ell, thought I, then how Linux was able to see the same NTFS&amp;nbsp;???&lt;br /&gt;After some fruitless Google search (where I found recipes to convert the GPT&amp;nbsp;drive into MBR&amp;nbsp;and/or back, or to fix up a protective MBR&amp;nbsp;partition size), and by looking at the behavior of Windows recovery tools (which also refused to show &lt;strong&gt;C:\&lt;/strong&gt; contents), I came upon an idea that something could be wrong with root NTFS folder permissions.&lt;br /&gt;Indeed, I found a really useful article at &lt;a href=&quot;https://superuser.com/questions/1754797&quot;&gt;https://superuser.com/questions/1754797&lt;/a&gt; which advised to save ACLs from a &amp;quot;good&amp;quot; system using &lt;strong&gt;icacls . /save &lt;/strong&gt;&lt;em&gt;file&lt;/em&gt; and restore them onto the &amp;quot;bad&amp;quot; system using &lt;strong&gt;icacls . /restore &lt;/strong&gt;&lt;em&gt;file&lt;/em&gt; .&lt;br /&gt;This approach really helped me: I copied the &amp;quot;bad&amp;quot; NTFS partition to an external USB&amp;nbsp;drive using &lt;strong&gt;gparted&lt;/strong&gt;+&lt;strong&gt;ntfsclone&lt;/strong&gt;, reformatted and reinstalled a new Win11 into the same space on the laptop&apos;s NVMe, then compared &lt;strong&gt;icacls&lt;/strong&gt; printout from &amp;quot;good&amp;quot; newly-installed &lt;strong&gt;C:\&lt;/strong&gt; and from its &amp;quot;bad&amp;quot; USB&amp;nbsp;copy visible in the same host as &lt;strong&gt;D:\&lt;/strong&gt; .&lt;br /&gt;What I found was, that &lt;strong&gt;BUILTIN\Users&lt;/strong&gt; and &lt;strong&gt;BUILTIN\Administrators&lt;/strong&gt; ACLs present on &lt;strong&gt;C:\&lt;/strong&gt; were in some unknown way removed from &lt;strong&gt;D:\&lt;/strong&gt; (4 entries in total).&lt;br /&gt;So I copied them using &lt;strong&gt;icacls /save&lt;/strong&gt;,&lt;strong&gt; /restore&lt;/strong&gt; and a text &lt;em&gt;file&lt;/em&gt; , and oh wonder, this resolved the situation !&lt;br /&gt;I only had to copy &lt;strong&gt;D:\&lt;/strong&gt; back into &lt;strong&gt;C:\&lt;/strong&gt; using Linux USB/&lt;strong&gt;gparted&lt;/strong&gt;/&lt;strong&gt;ntfsclone&lt;/strong&gt;, then ran a Win11 reinstall from its corresponding USB, then from Linux did the &lt;strong&gt;mv&lt;/strong&gt; trick with &lt;strong&gt;save1&lt;/strong&gt;&amp;amp;&lt;strong&gt;save0&lt;/strong&gt; , and oh wonder, the original Win11 booted intact within its entirety !&lt;br /&gt;&lt;strong&gt;Run as Administrator&lt;/strong&gt; worked perfectly for every executable downloaded before, WIndows defender log items have become visible again.&lt;br /&gt;Happy, I returned the laptop back to my neighbors and received a small monetary reward from them for that :&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=54312&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/54312.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/54139.html</guid>
  <pubDate>Thu, 02 Jan 2025 11:02:02 GMT</pubDate>
  <title>approximate Golden Ratio with Regular (5-smooth) Numbers</title>
  <link>https://muwlgr.dreamwidth.org/54139.html</link>
  <description>(code in Ruby)&lt;br /&gt;First, let&apos;s get a 64-bit IEEE754 approximation of &lt;i&gt;phi&lt;/i&gt;, and find a pair of Fibonacci numbers which approximate it well enough:&lt;br /&gt;&lt;pre&gt;
phi=(Math.sqrt(5)+1)/2
f1,f2=1,1
while f2.to_f/f1 != phi
 f1,f2=f2,f1+f2
end
p [f1,f2]
&lt;/pre&gt;With Ruby&apos;s &lt;i&gt;Floats&lt;/i&gt;, i.e. IEEE754 64-bit &lt;i&gt;doubles&lt;/i&gt;, you should get &lt;tt&gt;[102334155, 165580141]&lt;/tt&gt; as a result.&lt;br /&gt;&lt;tt&gt;f1&lt;/tt&gt; and &lt;tt&gt;f2&lt;/tt&gt; will be the numerator and denominator in our search of reg.number ratios.&lt;br /&gt;Next, generate regular (5-smooth) numbers, divide them by our &lt;i&gt;phi&lt;/i&gt; approximation, and check if the quotient is also in the regular set:&lt;br /&gt;&lt;pre&gt;
require &apos;algorithms&apos; # gem install algorithms
h=Containers::MinHeap.new([1]) # intermediate hash for reg.num.generation

require &apos;set&apos;
s=Set.new() # set of generated reg.numbers

i=0 # to have this variable in the outer scope to while
while i&amp;lt;f2+f2 # choose your own upper limit
 i=h.pop # get minimal item from the heap
 s &amp;lt;&amp;lt; i
 [2,3,5].each { |m| kk=i*m
                    h.push(kk) unless h.has_key?(kk) } # add its following reg.numbers to the heap
 j1=i*f1/f2 # truncated integer division
 j2=(i*f1+f2/2)/f2 # rounded, that is +1/2 then truncated
 Set[j1,j2].each { |k| p [i,k] if s.include?(k) and i.gcd(k) == 1 }
end
&lt;/pre&gt; &lt;tt&gt;j1&lt;/tt&gt; and &lt;tt&gt;j2&lt;/tt&gt; could be identical, so we construct a &lt;tt&gt;Set[j1,j2]&lt;/tt&gt; of their unique values&lt;br /&gt;Also we use &lt;tt&gt;.gcd&lt;/tt&gt; to drop non-unique representations of the ratio as &lt;tt&gt;(n*a)/(n*b)&lt;/tt&gt;&lt;br /&gt;This is the printout you should get as a result :&lt;br /&gt;&lt;br /&gt;&lt;tt&gt; [1, 1]&lt;br /&gt;[2, 1]&lt;br /&gt;[3, 1]&lt;br /&gt;[3, 2]&lt;br /&gt;[5, 3]&lt;br /&gt;[8, 5]&lt;br /&gt;[9, 5]&lt;br /&gt;[16, 9]&lt;br /&gt;[27, 16]&lt;br /&gt;[81, 50]&lt;br /&gt;[16384, 10125] &lt;/tt&gt;&lt;br /&gt; &lt;br /&gt;So as you see, 2&lt;sup&gt;14&lt;/sup&gt;/3&lt;sup&gt;4&lt;/sup&gt;/5&lt;sup&gt;3&lt;/sup&gt; would be a better approximation of &lt;i&gt;phi&lt;/i&gt; than 3&lt;sup&gt;4&lt;/sup&gt;/2/5&lt;sup&gt;2&lt;/sup&gt;.&lt;br /&gt;I would dream about a proof that there is no other regular numbers ratio even closer to &lt;i&gt;phi&lt;/i&gt;, but my knowledge of the higher mathematics is only limited to my university diploma.&lt;br /&gt;So you are on your own on what to do next with the reached conclusion :&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=54139&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/54139.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/54015.html</guid>
  <pubDate>Thu, 17 Oct 2024 10:06:58 GMT</pubDate>
  <title>Desulfator experience</title>
  <link>https://muwlgr.dreamwidth.org/54015.html</link>
  <description>This note is incomplete, as I did not have any more power outages since Sep 03rd 2024.&lt;br /&gt;So, I&amp;nbsp;received my desufator BR 12-72 600 and on Aug 31st I put it into the operation, just having clamped its leads to my 2*12v serial batteries.&lt;br /&gt;The next power outage I had on Sep 03rd, and my UPS lived 2.5h on my batteries. Earlier it was able to reach 2.5h using only its built-n batts.&lt;br /&gt;So, right now the situation is still &amp;quot;wait and see&amp;quot;. On Youtube, I saw a number of clips where authors advised to measure electrolyte density instead of battery voltage, and showed how this density grows up while voltage stays unchanged. Hope my deslufator would help with growing this density which I can&apos;t measure easily and exactly right now.&lt;br /&gt;&lt;br /&gt;[ update as of Nov 18th 2024 ]: after continuously running this beeping box connected to my batteries terminals for more than 2.5 months, on the next utility power downtime I had battery runtime of only 2h9mins. Which indicates that my sulfation case is more serious than that could be resolved with this device. Its manual advises to use it with fresh batteries to prolong their useful life, and does not guarantee any decided success with old/sulfated ones, only some chance of success.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=54015&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/54015.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/53675.html</guid>
  <pubDate>Tue, 24 Sep 2024 13:03:09 GMT</pubDate>
  <title>Качиний суп (переклад)</title>
  <link>https://muwlgr.dreamwidth.org/53675.html</link>
  <description>оригінал: &lt;a href=&quot;https://journalofethics.ama-assn.org/article/duck-soup/2002-06&quot;&gt;Audiey Kao, MD, PhD, 2002, June&lt;/a&gt; &lt;br /&gt;Слова пісні братів Маркс 1933 року &amp;quot;Країна йде на війну&amp;quot; звучать так: &amp;quot;Ми йдемо на війну. Я вважаю, що ми йдемо на війну&amp;quot;&lt;br /&gt;Кіноексперти вважають &amp;quot;Качиний суп&amp;quot; братів Маркс найвеличнішим та найсмішнішим витвором кіномистецтва. Це класична комедія, недовга (70 хвилин), але дуже гостра сатира про націоналізм та диктаторів, дипломатію та війну, міжнародні інтриги та шпіонаж. Коли її вперше випустили, вона не здобула ані комерційного, ані критичного успіху. Глядачі були приголомшені такою нахабною зневагою, осміянням та цинізмом щодо політики у часи політичної кризи. Відомо, що фашистський диктатор Італії Мусоліні заборонив фільм у своїй країні за глузування з його режиму. На щастя, фільм було наново віднайдено студентами 1960х років та багатьма іншими.&lt;br /&gt;&lt;p&gt;У фільмі діє місіс Тіздейл, мільйонерша, що збирається подарувати $20 мільйонів Фрідонії, Балканській державі, що збанкрутувала через неправильне керування, тільки якщо ця держава згодиться зробити Руфуса Файрфлая (якого грає Граучо Маркс) своїм диктатором. Трентіно, посол сусідньої Сільванії, винаймає красуню Веру Маркал, щоб вона звабила та відволікла Файрфлая, так щоб Трентіно зміг зблизитися з мс. Тіздейл, одружитися з нею за здобути контроль на Фрідонією. Для допомоги у своїх витівках Трентіно залучає продавця арахісу Чіколіні (якого грає Чіко Маркс) та його друга Пінкі (якого грає Харпо Маркс) у якості шпигунів. Згодом спалахує війна, і після багатьох карколомних співпадінь та змін, Фрідонія здобуваає у ній перемогу. Зеппо Маркс, ще один з братів,&amp;nbsp;грає у цьому останньому фільмі братів Маркс невелику роль Боба Роланда, помічника Файрфлая.&lt;/p&gt;&lt;p&gt;&amp;quot;Ми йдемо на війну. Я вважаю, що ми йдемо на війну&amp;quot;. Всі ми бачили по телевізору, читали в газеті або чули по радіо, що наша країна у війні. Більшість політичних та військових спеціалістів кажуть, що ця війна не схожа на будь-яку війну минулого, адже наші противники не мають армій солдатів у традиційному сенсі. І хоча ми не отримуватимемо тіла наших загиблих братів та сестер у великих пакунках, у нас все одно будуть жертви. Але для багатьох з нас, чи дійсно війна відбувається? Яку роль ми можемо відіграти як громадяни або як медичні спеціалісти у цій війні, яку обрані нами лідери та більшість з нас визнали справедливою ?&lt;br /&gt;&lt;br /&gt;У війнах минулого ми просили допомоги у громадян бататьма способами - постачайте їжу для наших бійців, переробляйте наші викиди, споживайте ощадливо, купуйте військові облігації, саджайте &amp;quot;сади перемоги&amp;quot;, йдіть на фабрики. Зараз, переважно, майже ніхто з нас не просить віддати забагато часу - чи дійсно зараз відбувається війна?&lt;br /&gt;&amp;nbsp;Багато наших колег-лікарів наражаються на небезпеку під час своєї служби у збройних сила США, і їх зусилля гідні усякої похвали. Нещодавно надійшли тривожні сповіщення про загрозу принципу медичної нейтральності, коли медичний персонал та споруди були вражені під час надання допомоги пораненим з обох боків конфлікту. Як професіонали, ми маємо засудити такі дії. Багато експертів вважають,&amp;nbsp;що варто очікувати не &lt;em&gt;чому&lt;/em&gt;,&amp;nbsp;а &lt;em&gt;коли&lt;/em&gt; наступна терористична атака трапиться на внутрішньому фронті. І наступного разу, атака може мати біологічну або хімічну дійову частину. Зважаючи на цю непозбувну імовірність, медики нестимуть велику відповідальність за її початкове виявлення та наступну турботу про тих, хто від неї потерпів. Як професіонали, ми маємо підтвердити наш обов&apos;язок піклуватися та лікувати хворих та постраждалих,&amp;nbsp;без упередження, хоча б під який ризик нас це не підводило.&lt;/p&gt;&lt;p&gt;Повертаюся трохи запізніло до моїх початкових коментарів. Для тих, кому цікаво, чому політичне шахрайство називається &amp;quot;Качиний суп&amp;quot;, згадаю такий рецепт від Граучо Маркса:&amp;nbsp;&amp;quot;Візьміть дві індички, одного гуся, чотири капустини, і жодної качки, і гарно їх перемішайте. Після першої ложки, ви ухилятиметесь від супу до кінця вашого життя&amp;quot;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=53675&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/53675.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/53307.html</guid>
  <pubDate>Sun, 18 Aug 2024 18:08:32 GMT</pubDate>
  <title>a very bad case of lead-acid battery capacity loss</title>
  <link>https://muwlgr.dreamwidth.org/53307.html</link>
  <description>In my past records (&lt;a href=&quot;https://muwlgr.dreamwidth.org/50292.html&quot;&gt;https://muwlgr.dreamwidth.org/50292.html&lt;/a&gt;), I noted that car batteries attached in parallel to my UPS internal batteries (after I drilled necessary openings to connect them) could greatly increase battery run-time of said UPS.&lt;br /&gt;But after my first test with its impressive 19h+ runtime, I have got a great disappointment.&lt;br /&gt;First of all, the charge my UPS&amp;nbsp;was able to deliver to my upgraded(parallelized) battery setup in &amp;gt;17h, was able to sustain its discharge only for &amp;lt;4.5h on the next power outage (discharge cycle).&lt;br /&gt;And on the next power cycles, it took 1h, 45m, and now it takes down of 45m on every test, that is 4.5A*h or 108 W*h at 24V.&lt;br /&gt;On the local market I purchased an UPS model working from external lead-acid batteries, 2 of them, serial, 12V of each, called &lt;a href=&quot;https://svc-power.com.ua/catalog/ibp/l-n-jno-nteraktivn-ch/SL-1KL-LCD_p326&quot;&gt;SVC SL-1KL&lt;/a&gt; .&lt;br /&gt;Its specified charge current was 10A, that is, about 1/6 of its C (capacity in A*h)&lt;br /&gt;I moved my car batteries from my APC SmartUPS 1000 to this SVC&amp;nbsp;UPS, and plugged it into the AC&amp;nbsp;socket first, and APC into its output.&lt;br /&gt;And this 45min runtime was exactly what I have achieved with this setup and multiple charge-discharge cycles.&lt;br /&gt;By watt-meter reading on the input and output of the SVC UPS, I concluded that it uses about 30..35W for its own purposes when feeding from AC utility socket (&amp;lt;75W output and ~105W average input). &lt;br /&gt;Working from batteries, it draws about 6A at 24V, that is 144W, with the same &amp;lt;75W on its output, which means its inverter efficiency is around 50% which I did not like at all.&lt;br /&gt;And when charging the fully-discharged batteries, the current does not reach even 6A (about 5.6..5.7A initially). In less than 2 hours, it drops to 0.24A, that is, &amp;quot;floating charge&amp;quot;.&lt;br /&gt;The current to/from batteries I&amp;nbsp;measured with a simple clamping meter from AliExpress.&lt;br /&gt;Currently I have ordered a &amp;quot;&lt;a href=&quot;https://www.aliexpress.com/w/wholesale-desulfator.html&quot;&gt;Battery Rejuvenator BR 12-72 600&lt;/a&gt;&amp;quot; from Aliexpress and am waiting for its delivery.&lt;br /&gt;It is said to dissolve PbSO4 using high-frequency electric impulses.&lt;br /&gt;There is even an experimental &lt;a href=&quot;https://www.researchgate.net/profile/Anthony-Ohajianya/publication/347929763_An_empirical_investigation_of_lead-acid_battery_desulfation_using_a_high-frequency_pulse_desulfator/links/5fe7b50792851c13fec4409b/An-empirical-investigation-of-lead-acid-battery-desulfation-using-a-high-frequency-pulse-desulfator.pdf&quot;&gt;paper&lt;/a&gt; from some Nigerian guys showing that it really has its stated effect on a battery pack.&lt;br /&gt;At the same time, I have received solar panels for my roof and am waiting for delivery of a solar inverter to improve my electric autonomy, as power outages in our area are going to get even worse in fall&amp;amp;winter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=53307&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/53307.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/53146.html</guid>
  <pubDate>Fri, 10 May 2024 04:39:08 GMT</pubDate>
  <title>Up/Down/Crossgrading Ubuntu 24.04 Noble and Debian 13 Trixie to Debian 12 Bookworm</title>
  <link>https://muwlgr.dreamwidth.org/53146.html</link>
  <description>I discovered that Debian 13 Trixie is not ready yet for everyday consumption, lacking not only packages bundled with Ubuntu such as &lt;tt&gt;sssd&lt;/tt&gt; and &lt;tt&gt;dmraid&lt;/tt&gt;, but also such my favorites as &lt;tt&gt;deborphan&lt;/tt&gt; and &lt;tt&gt;crack-attack&lt;/tt&gt;, which all are provided by Debian 12 Bookworm.&lt;br /&gt;So I concentrated my efforts on improving scripts morphing Noble and Trixie into Bookworm&lt;br /&gt;The steps are similar to those of upgrading Ubuntu 22.04 Jammy to Bookworm described at &lt;a href=&quot;https://muwlgr.dreamwidth.org/52552.html&quot;&gt;muwlgr.dreamwidth.org/52552.html&lt;/a&gt; :&lt;ul&gt;&lt;li&gt;Save initially-installed package lists and states, to be able to restore them in the future&lt;/li&gt;&lt;li&gt;Strip the system from non-essential packages to simplify upgrade of essential ones (small research on this topic can be seen at &lt;a href=&quot;https://muwlgr.dreamwidth.org/52742.html&quot;&gt;muwlgr.dreamwidth.org/52742.html&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Attach to Bookworm APT sources and disable sources for Trixie or Noble. Update package lists&lt;/li&gt;&lt;li&gt;Upgrade &lt;tt&gt;apt&lt;/tt&gt;, &lt;tt&gt;dpkg&lt;/tt&gt;, &lt;tt&gt;e2fsprogs&lt;/tt&gt;, &lt;tt&gt;gzip&lt;/tt&gt; to Bookworm-specific versions first, as they could break when upgraded along the rest packages.&lt;/li&gt;&lt;li&gt;Upgrade &lt;tt&gt;shim-signed&lt;/tt&gt; to allow it being temporarily removed on the next step&lt;/li&gt;&lt;li&gt;Upgrade &lt;tt&gt;libapt-pkg6.0&lt;/tt&gt;, watching for its potential loss of shared libraries, and reinstall manually-downloaded .deb with &lt;tt&gt;dpkg&lt;/tt&gt; if this happens.&lt;/li&gt;&lt;li&gt;Upgrade all the rest packages except &lt;tt&gt;base-files&lt;/tt&gt;, watching and fixing potentially missing shared libraries. Repeat this second time if needed&lt;/li&gt;&lt;li&gt;Remove t64 libs which are not provided by Bookworm&lt;/li&gt;&lt;li&gt;Upgrade &lt;tt&gt;base-files&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;Reinstall everything possible from saved lists&lt;/li&gt;&lt;li&gt;Install Debian&apos;s kernel and firmware packages&lt;/li&gt;&lt;li&gt;Remove running kernel&lt;/li&gt;&lt;li&gt;Remove extra packages pulled in by Debian&apos;s apt&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The scripts are at &lt;a href=&quot;https://github.com/muwlgr/scripts/raw/main/upgrade-noble-to-bookworm.sh&quot;&gt;github.com/muwlgr/scripts/raw/main/upgrade-noble-to-bookworm.sh&lt;/a&gt; and &lt;a href=&quot;https://github.com/muwlgr/scripts/raw/main/upgrade-trixie-to-bookworm.sh&quot;&gt;github.com/muwlgr/scripts/raw/main/upgrade-trixie-to-bookworm.sh&lt;/a&gt; , the latter being a minimal customization of the former, which I tested on Ubuntu 24.04 Noble Server, GNOME3 and Kubuntu/KDE virtual machines, as well as on my own laptop where I upgraded Kubuntu Noble to Trixie and then from Trixie to Bookworm.&lt;br /&gt;Probably I could restructure &lt;tt&gt;upgrade-jammy-to-bookworm.sh&lt;/tt&gt; into the same form as well.&lt;br /&gt;I have one important Jammy host with MySQL 8.0 server, and finally, recently we have got MySQL 8.0 built for Bookworm by its vendor, so it would be useful and instructive thing to do.&lt;br /&gt;&lt;br /&gt;Upgrade notes are mostly the same:&lt;ul&gt;&lt;li&gt;Special Debian account for &lt;tt&gt;gdm3&lt;/tt&gt;, different from that of Ubuntu&lt;/li&gt;&lt;li&gt;Separate step of &lt;tt&gt;shim-signed&lt;/tt&gt; upgrade to allow it to be removed/reinstalled later (Ubuntu version is marked critical and is not allowed to be removed)&lt;/li&gt;&lt;li&gt;&lt;tt&gt;gnome-session&lt;/tt&gt; in Debian instead of &lt;tt&gt;ubuntu-session&lt;/tt&gt; in Ubuntu&lt;/li&gt;&lt;li&gt;Split firmware packages in Debian, as well as differently-named &lt;tt&gt;linux-image&lt;/tt&gt; and &lt;tt&gt;linux-headers&lt;/tt&gt; packages&lt;/li&gt;&lt;li&gt;Apparmor configs need to be purged before installation of its lower version.&lt;/li&gt;&lt;li&gt;Some Bookworm libraries are not migrated to t64 (64-bit &lt;tt&gt;time_t&lt;/tt&gt;).&lt;br /&gt;When their lower non-t64 version is installed, it replaces .so files in higher t64 installed version.&lt;br /&gt;Later, when t64 version is removed, it removes these .so files according to its list, so they become unavailable to dependent packages.&lt;br /&gt;I added a step to handle this kind of failures, where all dynamically-linked ELF executables are checked with &lt;tt&gt;ldd&lt;/tt&gt; , all .so files not found by &lt;tt&gt;ldd&lt;/tt&gt; are traced to their packages, and these packages are reinstalled either by &lt;tt&gt;apt reinstall&lt;/tt&gt; or by &lt;tt&gt;dpkg -i&lt;/tt&gt; as with &lt;tt&gt;libapt-pkg6.0&lt;/tt&gt;.&lt;br /&gt;The worst offenders were &lt;tt&gt;libssl3&lt;/tt&gt; breaking &lt;tt&gt;systemd&lt;/tt&gt;, &lt;tt&gt;libgdbm6&lt;/tt&gt; breaking &lt;tt&gt;man-db&lt;/tt&gt;, and &lt;tt&gt;libdb5.3&lt;/tt&gt; breaking &lt;tt&gt;python3&lt;/tt&gt; , &lt;tt&gt;apt-utils&lt;/tt&gt; and don&apos;t remember what else&lt;/li&gt;&lt;li&gt;Beware that there could be times where important packages are temporarily uninstalled from your system (such as kernel, firmware, &lt;tt&gt;network-manager&lt;/tt&gt;, &lt;tt&gt;grub&lt;/tt&gt; or &lt;tt&gt;shim-signed&lt;/tt&gt;) so it could become unbootable or un-networked if you decide to reboot or reset it during these periods.&lt;/li&gt;&lt;li&gt;&lt;tt&gt;firefox-esr&lt;/tt&gt; provided by Debian stable is at older version and would not open profiles upgraded to higher Firefox versions.&lt;br /&gt;It is possible to use Firefox builds from Ubuntuzilla, from Mozilla itself and/or probably from LinuxMint&lt;/li&gt;&lt;li&gt;On the completion of upgrade script, review what has changed (&lt;tt&gt;etckeeper&lt;/tt&gt; would be helpful), what packages you might have lost (comparing current package lists with saved ones), what is left over from now-disconnected Ubuntu or Debian version (&lt;tt&gt;aptitude search &apos;~o&apos;&lt;/tt&gt;), what firmware is potentially missing after the reboot (&lt;tt&gt;dmesg | grep -i firm&lt;/tt&gt; , also look for &lt;tt&gt;update-initramfs&lt;/tt&gt; messages when it updates initrd files)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=53146&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/53146.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/52742.html</guid>
  <pubDate>Sat, 04 May 2024 09:24:40 GMT</pubDate>
  <title>Stripping down Ubuntu 24.04 before upgrading it to Debian</title>
  <link>https://muwlgr.dreamwidth.org/52742.html</link>
  <description>I have got a bit lost with development of my Noble-&amp;gt;Trixie upgrade script due to enromous package number installed with GNOME3 and KDE setups.&lt;br /&gt;The simplest setup to upgrade was Ubuntu Server whose initial state does not contain GUI stuff at all.&lt;br /&gt;So I decided to find a way to efficiently and significantly reduce package count on Ubuntu system, while still keeping it operating and accessible by network.&lt;br /&gt;First, I &lt;tt&gt;debootstrap&lt;/tt&gt;ped a Noble environment in a subfolder and &lt;tt&gt;chroot&lt;/tt&gt;ed into it.&lt;br /&gt;Then I added some useful packages and their dependencies: &lt;tt&gt;linux-image-generic&lt;/tt&gt; , &lt;tt&gt;shim-signed&lt;/tt&gt; , &lt;tt&gt;network-manager&lt;/tt&gt; , &lt;tt&gt;openssh-server&lt;/tt&gt; , &lt;tt&gt;screen&lt;/tt&gt; , &lt;tt&gt;less&lt;/tt&gt; and some others.&lt;br /&gt;Then I listed installed packages and saved the list (stripping architecture suffix from libraries):&lt;br /&gt;&lt;tt&gt;dpkg -l | grep &apos;^ii &apos; | awk &apos;{print $2}&apos; | awk -F: &apos;{print $1}&apos; &amp;gt; /tmp/pkglist&lt;/tt&gt;&lt;br /&gt;Then I copied the list to my experimental Ubuntu VM, and by running &lt;tt&gt;apt remove --dry-run&lt;/tt&gt; , found a package whose removal will remove the most of packages which depended on it directly or indirectly&lt;br /&gt;The search looked like this: &lt;pre&gt;
minr=1
for i in $(comm -23 &amp;lt;(dpkg -l | grep &apos;^ii &apos; | awk &apos;{print $2}&apos; | awk -F: &apos;{print $1}&apos; | 
                      sort -u) &amp;lt;(sort -u /tmp/pkglist) )
do newr=$(sudo eatmydata apt remove --dry-run $i 2&amp;gt;/dev/null | grep -cw Remv ) 
   [ $newr -lt $minr ] &amp;amp;&amp;amp; continue 
   [ $newr -gt $minr ] &amp;amp;&amp;amp; minr=$newr 
   echo &apos;!!!!&apos; $i $minr 
done&lt;/pre&gt;Initially it took quite a time, and the &amp;quot;champion&amp;quot; packages were found to be &lt;tt&gt;libxrender1&lt;/tt&gt; on GNOME3 and &lt;tt&gt;libfontconfig1&lt;/tt&gt; on KDE.&lt;br /&gt;Their removal, followed by&amp;nbsp;&lt;tt&gt;apt autoremove&lt;/tt&gt; , removed &amp;gt;1000 Ubuntu packages (to be later reinstalled with Debian versions).&lt;br /&gt;&lt;br /&gt;Then I repeated the search for next &amp;quot;champions&amp;quot;, having found, in descending usefulness, &lt;tt&gt;libgdbm6t64&lt;/tt&gt; , &lt;tt&gt;libavahi-common-data&lt;/tt&gt; , &lt;tt&gt;libasound2-data&lt;/tt&gt; , &lt;tt&gt;libsharpyuv0&lt;/tt&gt; ,  &lt;tt&gt;libdw1t64&lt;/tt&gt; , &lt;tt&gt;tpm-udev&lt;/tt&gt; , &lt;tt&gt;libdconf1&lt;/tt&gt; , &lt;tt&gt;libjson-glib-1.0-common&lt;/tt&gt; , &lt;tt&gt;libpcre2-16-0&lt;/tt&gt; , &lt;tt&gt;emacsen-common&lt;/tt&gt; , &lt;tt&gt;libcrack2&lt;/tt&gt; , &lt;tt&gt;libdrm-common&lt;/tt&gt; , &lt;tt&gt;libllvm18&lt;/tt&gt; , &lt;tt&gt;libstemmer0d&lt;/tt&gt; , &lt;tt&gt;pkexec&lt;/tt&gt; , &lt;tt&gt;python3-blinker&lt;/tt&gt; , &lt;tt&gt;python3-distro-info&lt;/tt&gt; , &lt;tt&gt;at-spi2-common&lt;/tt&gt; , &lt;tt&gt;liblmdb0&lt;/tt&gt; , &lt;tt&gt;liblzo2-2&lt;/tt&gt; , &lt;tt&gt;libtraceevent1&lt;/tt&gt; , &lt;tt&gt;x11-common&lt;/tt&gt; , &lt;tt&gt;xz-utils&lt;/tt&gt; , &lt;tt&gt;dmidecode&lt;/tt&gt; , &lt;tt&gt;libaccountsservice0&lt;/tt&gt; , &lt;tt&gt;libip4tc2&lt;/tt&gt; , &lt;tt&gt;libmagic-mgc&lt;/tt&gt; , &lt;tt&gt;libfcitx5*&lt;/tt&gt; , &lt;tt&gt;libproxy1v5&lt;/tt&gt; , &lt;tt&gt;pci.ids&lt;/tt&gt; .&lt;br /&gt;&lt;br /&gt;The rest is probably not worth attention, as they remove only 1 depending package with each of themselves:&lt;br /&gt; &lt;tt&gt;fuse3&lt;/tt&gt; , &lt;tt&gt;inetutils-telnet&lt;/tt&gt; , &lt;tt&gt;install-info&lt;/tt&gt; , &lt;tt&gt;libchewing3-data&lt;/tt&gt; , &lt;tt&gt;libgnome-menu-3-0&lt;/tt&gt; , &lt;tt&gt;libmarisa0&lt;/tt&gt; , &lt;tt&gt;libncurses6&lt;/tt&gt; , &lt;tt&gt;libnuma1&lt;/tt&gt; , &lt;tt&gt;libpinyin-data&lt;/tt&gt; , &lt;tt&gt;libunwind8&lt;/tt&gt; , &lt;tt&gt;libwhoopsie0&lt;/tt&gt; , &lt;tt&gt;linux-sound-base&lt;/tt&gt; , &lt;tt&gt;tnftp&lt;/tt&gt; , &lt;tt&gt;ubuntu-wallpapers-noble&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=52742&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/52742.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/52552.html</guid>
  <pubDate>Tue, 30 Apr 2024 18:05:25 GMT</pubDate>
  <title>Up/Downgrading Ubuntu 24.04 Noble to Debian 13 Trixie</title>
  <link>https://muwlgr.dreamwidth.org/52552.html</link>
  <description>&lt;p&gt;So, what to do if you had accidentally upgraded to Ubuntu 24.04 and found that you actively dislike it ?&lt;br /&gt;I made a script to upgrade it to Debian 13 Trixie which is now in Testing stage.&lt;br /&gt;The script can be had from &lt;s&gt;&lt;a href=&quot;https://github.com/muwlgr/scripts/raw/main/upgrade-noble-to-trixie.sh&quot;&gt;github.com/muwlgr/scripts/raw/main/upgrade-noble-to-trixie.sh&lt;/a&gt;&lt;/s&gt; .&lt;br /&gt;&lt;b&gt;(please read &lt;a href=&quot;https://muwlgr.dreamwidth.org/53146.html&quot;&gt;muwlgr.dreamwidth.org/53146.html&lt;/a&gt; for up-to-date upgrade script)&lt;/b&gt;&lt;br /&gt;I tested it on Ubuntu, KUbuntu and Ubuntu Server 24.04, with BIOS and UEFI boot loader, under QEMU/KVM virtual machine. &lt;br /&gt;Also used it to upgrade KUbuntu Noble on&amp;nbsp;my Lenovo IdeaPad 5.&lt;br /&gt;&lt;br /&gt;As Ubuntu development is following Debian Unstable (Sid), they often incorporate packages into their LTS releases which are newer than those in Debian Stable and even than in Testing.&lt;br /&gt;So to transform recently-released Ubuntu LTS into as recent Debian Testing, some packages will have to be downgraded. &lt;br /&gt;Their downgrade order is not obvious (not easily resolved by apt/dpkg facilities), and may break your system if followed improperly.&lt;br /&gt;I&amp;nbsp;found an adequate order by trial and errors on a virtual machine with easily-revertable qcow2 image snapshots.&lt;br /&gt;Commmon approaches implemented in my script are the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Disable Noble APT sources. Configure Trixie sources and update APT package lists&lt;/li&gt;&lt;li&gt;For every installed package, query its versions with &lt;tt&gt;apt-cache showpkg&lt;/tt&gt; and find version provided by Trixie package list, forming a list of explicit pairs &lt;i&gt;package=version&lt;/i&gt; for apt installation.&lt;/li&gt;&lt;li&gt;Initially, upgrade apt and dpkg using these explicit versions. I also upgrade eatmydata in this step, if required.&lt;/li&gt;&lt;li&gt;Then upgrade/downgrade most other packages, except libc6 and &lt;tt&gt;base-files&lt;/tt&gt;.&lt;br /&gt;Debian packages will be compatible with lower version of libc6.&lt;/li&gt;&lt;li&gt;Some Ubuntu libraries have migrated to t64 (64-bit time_t), while their Trixie counterparts have not.&lt;br /&gt;Need to find such pairs and install Trixie&apos;s non-t64 libs.&lt;/li&gt;&lt;li&gt;Then downgrade libc6 (libc6*, libc-*, locales)&lt;/li&gt;&lt;li&gt;Then upgrade/downgrade &lt;tt&gt;base-files&lt;/tt&gt;.&lt;br /&gt;I found that even unpacking Debian&apos;s &lt;tt&gt;base-files&lt;/tt&gt; when Ubuntu&apos;s libc6 is still installed instantly breaks all dynamically-linked executables installed on the host.&lt;br /&gt;That is, I became unable to run any of them and had to terminate my VM and to revert my qcow2 snapshot.&lt;/li&gt;&lt;li&gt;Then refer again to the original package list taken from Noble and try to reinstall all its packages which could have been removed explicitly or implicitly&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Some more upgrade notes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On gdm3 installation, Debian checks and/or creates user account and group called &apos;&lt;tt&gt;Debian-gdm&lt;/tt&gt;&apos;.&lt;br /&gt;Ubuntu creates the same with name &apos;gdm&apos;, also with the same home folder &lt;tt&gt;/var/lib/gdm3&lt;/tt&gt; owned by gdm.&lt;br /&gt;So before upgrading Ubuntu&apos;s gdm3 to Debian&apos;s one I explicitly/manually create &lt;tt&gt;Debian-gdm&lt;/tt&gt; user and group with the same numeric IDs as existing Ubuntu&apos;s gdm, to avoid permission conflicts.&lt;/li&gt;&lt;li&gt;&lt;tt&gt;shim-signed&lt;/tt&gt; is provided as a single package in Ubuntu but split into several packages in Debian.&lt;br /&gt;Its upgrade I made into a separate step with apt restart on unpacking/overwriting failure.&lt;/li&gt;&lt;li&gt;Debian Trixie does not provide sssd* packages right now.&lt;br /&gt;They exist in Bookworm and Sid but not in Trixie&lt;br /&gt;So your Active Directory integration will fall off during the upgrade.&lt;br /&gt;Hope this will be resolved before Trixie getting released as Stable.&lt;br /&gt;Similar absence was noticed for other smaller packages, like dmraid.&lt;/li&gt;&lt;li&gt;&lt;tt&gt;ubuntu-session&lt;/tt&gt; package is not provided by Debian, have to explicitly install &lt;tt&gt;gnome-session&lt;/tt&gt;.&lt;/li&gt;&lt;li&gt;Unlike Ubuntu all-in-one &lt;tt&gt;linux-firmware&lt;/tt&gt; package, Debian has multiple firmware packages split by different hardware vendors and types.&lt;br /&gt;In my script I try to install these packages for most popular hardware types found on the host.&lt;/li&gt;&lt;li&gt;Noble&apos;s kernel is newer than Trixie&apos;s (6.8 vs 6.7).&lt;br /&gt;With some setups I could not get into GRUB menu to choose Trixie&apos;s kernel before next boot, so I added logic to remove running/active Noble&apos;s kernel before the reboot.&lt;br /&gt;Be sure to respond &amp;quot;no&amp;quot; to the query &amp;quot;Abort kernel removal?&amp;quot;&lt;/li&gt;&lt;li&gt;Noble installs AppArmor v4, while Trixie is still at v3 wth incompatible config syntax.&lt;br /&gt;So, need to purge Noble&apos;s AppArmor together with its config files before downgrading it to v3.&lt;br /&gt;As well, some Ubuntu packages install their own AppArmor profiles as conffiles, which are not downgraded by Debian packages.&lt;br /&gt;The script now backs up conffiles of such packages and purges them before reinstallation, but from my observation, Trixie&apos;s profiles for cups, rsyslogd and &lt;tt&gt;man-db&lt;/tt&gt; are screwed in their own way.&lt;br /&gt;You will notice long [re]starts of these services with corresponding records in dmesg and journalctl.&lt;/li&gt;&lt;li&gt;Some Debian package pulls in &lt;tt&gt;gnome-user-share&lt;/tt&gt; which pulls in &lt;tt&gt;apache2-bin&lt;/tt&gt; , and some other package pulls in &lt;tt&gt;exim4-daemon-light&lt;/tt&gt;. I checked that Ubuntu did not install&amp;nbsp;&lt;tt&gt;gnome-user-share&lt;/tt&gt; at all&lt;br /&gt;In a separate step I remove these packages, provided they were absent in the initial Ubuntu &lt;tt&gt;dpkg -l&lt;/tt&gt; printout.&lt;br /&gt;Similar logic I added for lynx, mailcap, tk8.6, opensc and pcscd&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Other notes are mostly the same as in my previous posts like &lt;a href=&quot;https://muwlgr.dreamwidth.org/52430.html&quot;&gt;muwlgr.dreamwidth.org/52430.html&lt;/a&gt; : watch what has changed, check what is missing. &lt;br /&gt;Run &lt;tt&gt;aptitude search &apos;~o&apos;&lt;/tt&gt; to find what packages on your system are still from Ubuntu (that is, from now-unlisted sources)&lt;br /&gt;If you use a laptop or other less popular or more diverse hardware than just Intel/Realtek/NVidia, look into your dmesg for missing firmware files and find on the Internet where to get them (either from Debian packages, or from 3rd party sources).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=52552&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/52552.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/52430.html</guid>
  <pubDate>Thu, 25 Apr 2024 10:34:53 GMT</pubDate>
  <title>Upgrading Ubuntu 22.04 Jammy to Debian 12 Bookworm</title>
  <link>https://muwlgr.dreamwidth.org/52430.html</link>
  <description>Over the recent years, I have accumulated a number of dissatisfaction points with the way of Ubuntu development.&lt;br /&gt;When it was initially created in 2004 as a set of improvements and fixes to Debian, Ubuntu was very useful and quickly became popular.&lt;br /&gt;But in the course of its evolution, it has gained a number of unwanted marketing/advertising &amp;quot;inventions&amp;quot; which, to me, are just unacceptable.&lt;br /&gt;Most noticeable of them are: aggressive pushing of snaps&amp;amp;snapd, dropping 32-bit i386 architecture, switching Lubuntu from LXDE to LXQt, adding paid Ubuntu Pro and ESM services, and probably some smaller others.&lt;br /&gt;I created a few scripts to upgrade Ubuntu 18.04 Bionic to Debian 10 Buster and onwards to 11 Bullseye and to 12 Bookworm, which I described at &lt;a href=&quot;https://muwlgr.dreamwidth.org/52029.html&quot;&gt;https://muwlgr.dreamwidth.org/52029.html&lt;/a&gt; .&lt;br /&gt;With impending release of Ubuntu 24.04 Noble , I simplified and customized my previous script, &lt;tt&gt;upgrade-bionic-to-bookworm.sh&lt;/tt&gt; , for the purpose of upgrading Ubuntu 22.04 Jammy to Debian 12&amp;nbsp;Bookworm.&lt;br /&gt;The script can be had from &lt;a href=&quot;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-jammy-to-bookworm.sh&quot;&gt;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-jammy-to-bookworm.sh&lt;/a&gt; .&lt;br /&gt;The only specific steps of upgrading Jammy-&amp;gt;Bookworm was to downgrade signed GRUB and EFI&amp;nbsp;Shim, as well as gcc and its associated libraries (which Jammy upgraded independently of Debian stable).&lt;br /&gt;&lt;br /&gt;I&amp;nbsp;have successfully tested this script, upgrading Ubuntu to Debian on my desktop, 2 portable USB drives and two smaller&amp;amp;simpler servers. Going to test it on larger servers in the nearest future.&lt;br /&gt;&lt;br /&gt;After the upgrade and reboot, please review what packages have been removed now, and reinstall them from Debian sources.&lt;br /&gt;For this you may repeat 2 last commands in the script, one of which compares saved package lists and other looks for removed packages in dpkg.log .&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Upgrade note: &lt;/strong&gt;Ubuntu MySQL client can be replaced with MariaDB client from Debian, which provides almost perfectly compatible libraries and command-line tools.&lt;br /&gt;MySQL server 8.0 is not easily upgradable to MariaDB server, mysqldump upgrade is required.&lt;br /&gt;So far I&amp;nbsp;have installed&amp;nbsp;MySQL server 8.0 for Debian 11 Bullseye as described at &lt;a href=&quot;https://computingforgeeks.com/how-to-install-mysql-8-0-on-debian/&quot;&gt;https://computingforgeeks.com/how-to-install-mysql-8-0-on-debian/&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Upgrade note: &lt;/strong&gt;Firefox from snaps can be replaced with Debian&apos;s &lt;tt&gt;firefox-esr&lt;/tt&gt; package.&lt;br /&gt;If ESR &lt;tt&gt;firefox&lt;/tt&gt; creates a new empty profile on its first start, exit it and run &lt;tt&gt;firefox -P&lt;/tt&gt; to switch it back to your existing profile.&lt;br /&gt;&lt;strong&gt;Upgrade note: &lt;/strong&gt;I have a libvirt/qemu/kvm virtual machine created with Ubuntu 14.04 Trusty. &lt;br /&gt;To start it after libvirt upgrade to Debian 12, I had to&amp;nbsp;edit its .xml description under &lt;tt&gt;/etc/libvirt/qemu/&lt;/tt&gt; and change its emulator file name from &lt;tt&gt;/usr/bin/kvm-spice&lt;/tt&gt; to just &lt;tt&gt;/usr/bin/kvm&lt;/tt&gt; , and its machine architecture from &lt;tt&gt;pc-i440fx-trusty&lt;/tt&gt; to &lt;tt&gt;pc-i440fx-7.2&lt;/tt&gt;. &lt;br /&gt;All that I found by looking into journalctl startup logs where missing emulator and architecture were reported.&lt;br /&gt;&lt;strong&gt;Upgrade note:&lt;/strong&gt; &lt;tt&gt;isc-dhcp-server&lt;/tt&gt; does not work well with &lt;tt&gt;apparmor&lt;/tt&gt;. Remove &lt;tt&gt;apparmor&lt;/tt&gt; package, or disable it, or switch to complain-only mode. Migration to &lt;tt&gt;kea-dhcp4-server&lt;/tt&gt; would be useful in some future.&lt;br /&gt;&lt;br /&gt;My next step will be to upgrade Ubuntu 24.04 Noble to Debian 13 Trixie which is now in testing stage.&lt;br /&gt;On my laptop I followed the development of Noble so now it is my only system which is newer than Jammy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=52430&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/52430.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/52029.html</guid>
  <pubDate>Sat, 17 Feb 2024 11:47:21 GMT</pubDate>
  <title>Upgrading Ubuntu 18.04 from 32 to 64 bit (i386-&amp;gt;amd64) , to Debian 12, and back to lubuntu-desktop</title>
  <link>https://muwlgr.dreamwidth.org/52029.html</link>
  <description>In Aug 2018, I got a technical support side-job where I needed to maintain a &amp;quot;fleet&amp;quot; of 40+ moderately-to-quite old PCs with Linux.&lt;br /&gt;When I started reviewing and inventorying what I&amp;nbsp;have got, most of them had &amp;quot;UALinux LUbuntu Pack 14.04&amp;quot; installed.&lt;br /&gt;As I understood, UALinux was supposed to provide some improvements in Ukrainian&amp;amp;Russian language support compared to &amp;quot;plain&amp;quot; [L]Ubuntu, but even as of 14.04, most of their changes were, to my experience, only branding-related.&lt;br /&gt;On top of Lubuntu LXDE desktop, most used software included: Remmina for RDP access to Windows servers, PCManFM for access to local and networked file shares (using cifs-utils), LibreOffice, Firefox, simple-scan or other scanning software.&lt;br /&gt;Hardware included mostly socket-775 motherboards with i945G/G31/G41 chipset and DDR2 or (less often) DDR3 RAM, typically 2 GB per host.&lt;br /&gt;Some MoBos were really old, with socket 478 and DDR RAM, and some of them did not even have SATA ports.&lt;br /&gt;Some were newer, with H61/B65 and even H81/B85 chipsets and appropriate CPUs (and still with DDR3 RAM).&lt;br /&gt;All this stuff I&amp;nbsp;managed to upgrade to LUbuntu 16.04, then to 18.04, keeping their OS and software packages 32-bit (i386) to save RAM&amp;nbsp;with shorter pointer sizes, and enjoying the fact that LUbuntu LXDE environment did not have essential changes since probably LUbuntu 12.04.&lt;p&gt;Then, a number of unwanted changes were made from Ubuntu side.&lt;br /&gt;First, LUbuntu 18.10 decided to switch from LXDE to LXQt.&lt;br /&gt;Which could disappoint users and make them learn new less-familiar interface.&lt;br /&gt;At these times, LXQt and PCManFM-Qt were less stable and displayed some unfamiliar and unwanted behavior to an inexperienced user.&lt;br /&gt;Then, Ubuntu 19.10 dropped i386 support.&lt;br /&gt;That is, [L]Ubuntu 18.04 i386 was now left without a clear upgrade path.&lt;/p&gt;In this conservative mode, we stayed on LUbuntu 18.04 i386 for more than 5 years, up till early 2024.&lt;br /&gt;During that time, new hardware appeared which was not supported by old HPLIP.&lt;br /&gt;As well, lot of users demanded to have Viber or Skype on their desktops, which by then started to be provided in 64-bit(amd64) versions only.&lt;br /&gt;Also, Ubuntu started more aggressively promoting their money-making technologies such as snaps, ESM, and so on.&lt;br /&gt;Also they stopped building .deb-based Firefox and updating their 4.15 kernel, despite having promised to extend 18.04 support lifetime from 5 to 10 years (probably this was related only to Ubuntu Server parts, with paid Ubuntu Pro / ESM services).&lt;br /&gt;&lt;p&gt;Once, I decided that it is a time to &amp;quot;move the chip&amp;quot; and to implement my long-imagined plan.&lt;/p&gt;First, I created, tested and improved a script to upgrade i386 Ubuntu 18.04 to amd64, which can be had from &lt;a href=&quot;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-lubuntu3264.sh&quot;&gt;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-lubuntu3264.sh&lt;/a&gt; .&lt;br /&gt;This script will update your i386 system after a few iterations (restarts).&lt;br /&gt;However, in complex situations you will notice that it is restarting the same operations and failing in the same way again and again.&lt;br /&gt;Then you will probably need to intervene and to remove/upgrade problematic packages manually.&lt;br /&gt;As well, if you turn off checking the release name, this script could upgrade your i386 LinuxMint 19.3 &amp;quot;tricia&amp;quot; setup which was based on Ubuntu &amp;quot;bionic&amp;quot;, and which was the last LinuxMint version with i386 build.&lt;br /&gt;&lt;p&gt;Next script &lt;a href=&quot;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-bionic-to-bookworm.sh&quot;&gt;https://raw.githubusercontent.com/muwlgr/scripts/main/upgrade-bionic-to-bookworm.sh&lt;/a&gt; will upgrade Ubuntu Bionic 18.04 to Debian 10/Buster, 11/Bullseye and  12/Bookworm.&lt;br /&gt;One problem with this script is that it may cut you off the  DNS when resolvconf package is removed but systemd-resolved is not yet  installed.&lt;br /&gt;I just could not track down the exact place where this happens - it varied depending on what packages were installed.&lt;br /&gt;Hope, you know how to fix the situation.&lt;/p&gt;&lt;p&gt;My next step was to rebuild lubuntu-meta 0.94.1 source package from Ubuntu Bionic under Debian 12/Bookworm.&lt;br /&gt;The script can be had from &lt;a href=&quot;https://raw.githubusercontent.com/muwlgr/scripts/main/build-lubuntu-on-bookworm.sh&quot;&gt;https://raw.githubusercontent.com/muwlgr/scripts/main/build-lubuntu-on-bookworm.sh&lt;/a&gt; .&lt;br /&gt;It will drop or replace some Ubuntu-specific dependencies, build needed packages (lubuntu-desktop, lubuntu-gtk-core, lubuntu-gtk-desktop) and pack them into an archive lubuntu-bookworm.tgz , which you then may reuse to install familiar-looking LUbuntu 18.04 themes/icons/sessions on Debian 12/Bookworm.&lt;br /&gt;That is, you don&apos;t need to run this script anew on every system you have upgraded to Bookworm - just transfer and unpack this .tgz archive to any newly-upgraded Bookworm system.&lt;/p&gt;&lt;p&gt;And the last step, is to install rebuilt LUbuntu root packages on Debian Bookworm.&lt;br /&gt;The script is at &lt;a href=&quot;https://raw.githubusercontent.com/muwlgr/scripts/main/install-lubuntu-on-bookworm.sh&quot;&gt;https://raw.githubusercontent.com/muwlgr/scripts/main/install-lubuntu-on-bookworm.sh&lt;/a&gt; .&lt;br /&gt;Be sure to unpack your .tgz archive from the previous step so it could conclude its actions.&lt;br /&gt;The script is mostly problem-free, only sometimes it could autoremove cifs-utils.&lt;br /&gt;Hope you know how to reinstall them back.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;After these steps, the upgraded Debian 12 systems will look and behave surprisingly similar to the original LUbuntu 18.04.&lt;br /&gt;However, some problems could be heard from users, which, fortunately, could be easily fixed.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;we had cifs records in fstab with option sec=ntlm from previous setups.&lt;br /&gt;under kernel 6.1, this option had to be removed from the option list.&lt;/li&gt;&lt;li&gt;Ubuntu&apos;s language-pack* and *language-selector packages are not provided by Debian, so you have to run dpkg-reconfigure locales and to select all required locales to be generated (in our case, they were en_US, ru_RU, ru_UA, uk_UA, all with .UTF-8 encoding), as well as default LANG value for your runtime. This step I included into upgrade-bionic* script.&lt;/li&gt;&lt;li&gt;For certain versions of Windows RDP&amp;nbsp;server (2012R2 at least), connection properties in Remmina should be changed to set &amp;quot;Advanced/Security protocol negotiation&amp;quot; from &amp;quot;Automatic&amp;quot; to &amp;quot;RDP&amp;quot;. For xfreerdp, be sure to add &amp;quot;/sec:rdp&amp;quot; to its command line&lt;/li&gt;&lt;li&gt;we had to reinstall Canon CUPS drivers after i386-&amp;gt;amd64 upgrade, and in most cases, to remove and rediscover/reinstall the printer, as its backend file name was changed.&lt;br /&gt;Same actions had to be repeated for Kyocera printers/scanners&lt;/li&gt;&lt;li&gt;for HP printers and scanners handled by HPLIP/HPAIO, we had to reinstall HP&amp;nbsp;Plugin by running hp-plugin -i&lt;/li&gt;&lt;li&gt;Debian provides Firefox-ESR package which creates default-esr Firefox profile on its first run.&lt;br /&gt;To select former/existing profile, run firefox -P from the command line.&lt;/li&gt;&lt;li&gt;PCManFM started to ask if we want to open &amp;quot;untrusted&amp;quot; .desktop shortcuts.&lt;br /&gt;This can be turned off in PCManFM preferences.&lt;br /&gt;Or, &amp;quot;bad&amp;quot; desktop shortcuts can be removed from the Desktop and re-created from the Start Menu shortcuts (right-click on them to show the menu)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Among our current &amp;quot;fleet&amp;quot; we still have 2 or 3 32-bit-only CPUs, and 2 or 3 MoBos with 1 ot 1.5 GB of RAM.&lt;br /&gt;As only the first of my scripts is dependent on i386/amd64 architecture , the rest of them could probably be applied to i386 Ubuntu to upgrade it to i386 Bookworm and to install Lubuntu packages on it.&lt;br /&gt;I did not check this scenario but I believe it could work without additional issues.&lt;br /&gt;Hope, we would receive needed hardware upgrades earlier that this would be needed for real.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=52029&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/52029.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/51928.html</guid>
  <pubDate>Sat, 17 Feb 2024 06:49:59 GMT</pubDate>
  <title>comparing Item sets in PowerShell</title>
  <link>https://muwlgr.dreamwidth.org/51928.html</link>
  <description>Once I needed to write a not-that-complex script, which should copy &amp;quot;new&amp;quot; files from source folder into destination one, where &amp;quot;new&amp;quot; meant that files of the same name should be absent in both dest.folder, and backup folder, into which these files were moved after processing them by other software.&lt;br /&gt;In Unix/Linux&amp;amp;sh/bash, the tool of choice would of course be comm(1), while in Windows&amp;amp;PowerShell, Compare-Object is most often used. So I made these functions,&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;function union { Compare-object @( $args[0] ) @( $args[1] ) -PassThru -IncludeEqual  }&lt;br /&gt;&lt;br /&gt;function difference { Compare-Object @( $args[0] ) @( $args[1] ) | &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where {$_.sideIndicator -eq &apos;&amp;lt;=&apos;} | &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select -ExpandProperty InputObject }&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;, and shortly, after some experiments, I discovered that PS Item Objects, being kind of maps of named properties to their values, are not comparable by equality ($O1 -eq $O2) or by inclusion of an object into a list ($L -contains $O).&lt;br /&gt;you may check that by yourself in some non-empty folder:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$a=(Get-ChildItem -File)&lt;br /&gt;$b=(Get-ChildItem -File) # should be the same list, right ? wrong !&lt;br /&gt;$a # their printout would look the same&lt;br /&gt;$b # but this only confuses you more&lt;br /&gt;$a[0] -eq $b[0] # False&lt;br /&gt;$a -contains $b[0] # False&lt;br /&gt;&lt;/tt&gt;&lt;p&gt;you may select only a single property from these Item lists, like:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$a=(Get-ChildItem -File | Select-Object -Property Name )&lt;br /&gt;$b=(Get-ChildItem -File | Select-Object -Property Name )&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;but this would not improve your results as well.&lt;br /&gt;What is worse, for Item lists taken from the same folder, Compare-Object would return properly-looking results, that is, &amp;quot;no difference between lists, all items are equal&amp;quot;. But when you compare file lists taken from different folders, reviewing Compare-Object results would make you ask &amp;quot;What the hell?&amp;quot; (especially when you only select Name property from these Items).&lt;/p&gt;In short, to compare file name lists successfully, you should get them as honest list of strings, that is:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;function filelist { Get-ChildItem -Path $args[0] -File -Filter $args[1] | &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select -ExpandProperty Name }&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;file lists formed in this way finally were able to be properly unioned and differenced with the above functions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=51928&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/51928.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/51689.html</guid>
  <pubDate>Fri, 16 Feb 2024 20:17:38 GMT</pubDate>
  <title>KB951985 (RAID1/UEFI/GPT) and Windows Server upgrade</title>
  <link>https://muwlgr.dreamwidth.org/51689.html</link>
  <description>Windows NT Server 3.1 and later provided FTDisk.sys driver and &amp;quot;Disk Administrator&amp;quot; tool which allowed creation of software RAID sets from individual physical disks. &lt;br /&gt;As far as PCs used BIOS, everything was fine and comfortable, that is, adding mirror for boot volume C: automatically added &amp;quot;boot from secondary plex&amp;quot; item to the boot menu.&lt;br /&gt;But then, with Windows Vista SP1 and Server 2008 (non-R2), UEFI and GPT support had been introduced, which noticeably complicated boot volume mirroring, adding lot of manual steps.&lt;br /&gt;Microsoft described them in their &lt;a href=&quot;http://support.microsoft.com/kb/951985&quot;&gt;KB951985&lt;/a&gt; , later turned into an article on Microsoft Learn.&lt;br /&gt;An attentive reader would be able to perform all described steps and get his boot volume mirrored and tolerant to a loss of either of its halves.&lt;br /&gt;But then, an unpleasant surprise awaits him when he decides to upgrade his Windows Server to its next version (like, from Windows 2008 R2 to Windows 2012 R2). &lt;br /&gt;The upgrade process fails on its way, then gets reverted to the original Windows version. &lt;br /&gt;I had 4 Windows servers in my &amp;quot;fleet&amp;quot;, with identically configured mirroring, and their upgrade failed in the same way.&lt;br /&gt;They all have 2..3 TB of data on C: on 3.5&amp;quot; SATA drives like WD Red (WD20EFRX/WD30EFRX), which would be copied to a cleanly-installed Windows in 4..6 hours, but this long downtime is undesirable.&lt;br /&gt;&lt;p&gt;After some experiments I found a way how to proceed with upgrade: need just to start Windows with one of mirrored C: halves disconnected, so C: gets into degraded mode. &lt;br /&gt;Then it was possible to upgrade Windows 2008 R2 -&amp;gt; 2012 R2 -&amp;gt; 2016 -&amp;gt; 2019. &lt;br /&gt;After completion of this upgrade, I reconnected other half of the mirror, started Windows again and resynchronized mirrored volume C:, which went through transparently to other OS operaion (except reduced I/O performance during resync of C:).&lt;/p&gt;Apparently, when Windows upgrade finds more than one EFI boot partition, it fails and reverts the upgrade. &lt;br /&gt;But when you temporarily hide this partition (by disconnecting physical disk holding it), the upgrade goes on as smoothly as one would expect.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Btw, I once tried to upgrade a smaller 2008R2 server using full copying, that is, install a new 2k8R2 to an single empty drive, copy mirrored C: volume from the upgradeable system to that drive, boot from the copy, upgrade it from 2K8 to 2K12-&amp;gt;16-&amp;gt;19, then empty one of the original drives, install 2K19 on it, copy upgraded C: back to it, boot from this copy, add mirror to the other original drive by Microsoft&apos;s recommendation. It was even harder than with 2K8R2, as in addition to EFI&amp;nbsp; (EF00) and MSR (0C01) partitions, 2K19 setup creates Recovery partition of type 2700, which you could not re-create on the second drive, and when you try to recreate it using diskpart or gdisk, after that you could not convert the drive into Dynamic format. So my mirrored volume was added to the second drive with different partition offset than the first. Hope this would not bring any serious harm.&lt;/p&gt;&lt;p&gt;Overall, Windows Server upgrade on a temporarily-degraded mirrored boot volume was the simplest way among all others tried and/or imagined by me.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=51689&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/51689.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/51403.html</guid>
  <pubDate>Tue, 26 Sep 2023 21:03:40 GMT</pubDate>
  <title>Bringing up a [moderately] old 80386 PC/AT</title>
  <link>https://muwlgr.dreamwidth.org/51403.html</link>
  <description>In Aug 1991, Linus Torvalds rolled out to the world his creation, the Linux OS, which he developed and debugged on his PC/AT-386 with 4 MB&amp;nbsp;RAM.&lt;br /&gt;Long time since then, 80386SX with 2MB&amp;nbsp;RAM was the lowest specification allowing you to run a full-featured Unix-like OS.&lt;br /&gt;But to our great regret, with Linux 3.8 released at the beginning of 2013, 80386 support had been removed from its kernel.&lt;br /&gt;So you had to own at least 80486SX to run Linux which of course was much less encouraging for historically-curious IT hardware researchers.&lt;br /&gt;Moreover, in their respective times, 80386 support had also been removed from once-everywhere-portable NetBSD (since v5.0 in Apr 2009) and from BuildRoot (since 2016.05 in May 2016).&lt;br /&gt;&lt;br /&gt;Now it is a turn to tell about my personal part in this story.&lt;br /&gt;&lt;p&gt;In about Aug 2000, I had been donated a beautiful, Japan-designed, Chinese-made AT-386 PC of &amp;quot;Laser&amp;quot; brand. &lt;br /&gt;It worked since about 1992..1993 at a local FM&amp;nbsp;radio station. &lt;br /&gt;They donated it to me for Internet services I helped provide to them at that time, when they decommissioned this PC after some upgrade. &lt;br /&gt;It has a quite advanced motherboard, compared to most PCs of its epoch, with IDE/Floppy/COM/LPT ports built-in (while you had to plug an additional Multi-IO card into most of then-time MoBos). &lt;br /&gt;It has 16 30-pin SIMM slots, and I got it with 16 1-MB SIMMs plugged in, which is a significant amount of RAM for a system on which you would run MS-DOS, Novell Netware or Windows 3.11. &lt;br /&gt;It also has an 6-port ISA bus riser or a &amp;quot;fir-tree&amp;quot; as it was called in Russian/Ukrainian. &lt;br /&gt;The CPU is a real Intel 386DX, not some of AMD/Cyrix clones. Without 80387, there is a free socket for it. &lt;br /&gt;It has a sticker &amp;quot;Yes it runs with Netware&amp;quot; but surely you needed to plug your own Ethernet adapter to be able to do any networking. &lt;br /&gt;It had a Realtek RTG3105 VGA adapter, very typical for its times.&lt;br /&gt;To bring it back to life, I had to revive its DS1287 CMOS&amp;nbsp;chip (you know, file off its  plastic case over certain pins, where its built-in CMOS battery is  soldered, cut off the battery outputs, and solder your own external 3V  battery box with 1*CR2032 or 2*AA cells to the chip&apos;s inputs instead).&lt;br /&gt;For a very small money, I was able to buy a used Realtek 8019  NE2000-compatible 10BaseT Ethernet adapter (which, besides CAT5/RJ45,  has a BNC 10Base2 and a DIX 10Base5 connectors).&lt;br /&gt;Also I replaced its IDE&amp;nbsp;HDD with IDE-CF adapter and 32MB CF SSD plugged into it.&lt;/p&gt;&lt;p&gt;Having all this wealth at my hands, I started to think how to exploit it in the most advanced way.&lt;br /&gt;As a DOS platform, it worked perfectly, with DPMI your Doom or C&amp;amp;C would reasonably fly on it. &lt;br /&gt;But I&amp;nbsp;wanted to run something more modern.&lt;br /&gt;Somewhere in Apr..May 2012 I downloaded BuildRoot 2012.02 and was able to build Linux userland with uClibc, Busybox and OpenSSH 6.0, Linux kernel 3.3.2, SysLinux/EXTLinux, and boot it on this hardware. &lt;br /&gt;My host system was most probably Ubuntu 12.04 (Precise) with GCC&amp;nbsp;4.6.&lt;br /&gt;The target kernel failed on boot since it started blindly using 486&apos;s instructions not available on 386, so I had to do some patching to make it work on 386. To do this, I had to build the kernel with debug information and then find the crash places with objdump -d .&lt;br /&gt;Having achieved and enjoyed its bootability, network auto-configuration and even SSH&amp;nbsp;access, I stashed the whole system into my closet for another 10+ years.&lt;/p&gt;&lt;p&gt;Sorting out my legacy boxes in Sep 2023, I decided to check if this &amp;quot;Laser&amp;quot; still works. To my surprise, it only lost HDD geometry from its CMOS setup, but it kept almost the proper RTC date&amp;amp;time. The battery box had discharged to abot 2.9V but after re-entering HDD geometry (490C, 4H, 32S for a 32MB&amp;nbsp;CF card) it did not ever complain about discharged battery as it did before the &amp;quot;revival&amp;quot;.&lt;/p&gt;Now I&amp;nbsp;wanted to bring some improvements into the small system I built and put on a CF card. First problem I had in 2012 was that DropBear SSH&amp;nbsp;service did not start, having segmentation fault which I could neither easily debug on the target system, nor easily reproduce on my then-host (which had much more modern Core i3-380UM CPU with hardware virtualization and without these specific 80386 restrictions in its command set). Which is why I had to use heavier OpenSSH.&lt;br /&gt;&lt;p&gt;One more problem was that OpenSSH v6.0 which I had to use instead of  DropBear, used only SHA1 hash in key exchange, while OpenSSH v9.3 on  Ubuntu host required using SHA256. As a result, public-key SSH login  from host to target stopped working.&lt;/p&gt;&lt;p&gt;And the biggest problem was that Ubuntu 23.10 (Mantic), then heading to its soon initial release, had GCC v13 which was unable to build either older kernels including v3.7.9, or older GCC versions (v4.*, v5.*). I&amp;nbsp;got the oldest x86-i686-uclibc-2017.05 toolchain from &lt;a href=&quot;https://toolchains.bootlin.com/releases_x86-i686.html&quot;&gt;https://toolchains.bootlin.com/releases_x86-i686.html&lt;/a&gt; (gcc 5.4, uClibc-ng-1.0.24, binutils 2.27) which allowed me to complete building BuildRoot 2016.02, but as its uClibs used i686 commands, it was unable to run BusyBox/init on the target 80386.&lt;/p&gt;Fortunately I kept a copy of 2012.02 BuildRoot tree, unpacked, configured and built at these happy times in 2012 when everyone mostly honored 80386 architecture. So I&amp;nbsp;could bump DropBear version from 2012.55 up to 2022.83, rebuild it with needed options and update its installation on the CF card. After that, DropBear started working as expected, so I would not need OpenSSH anymore. Only had to replace OpenSSH host key with DropBear&apos;s in my known_hosts.&lt;br /&gt;&lt;p&gt;So now I am again able to update my target system over the network, instead of re-plugging its CF card between target and host every time. SSH login with a public key and running a short command ( like &lt;tt&gt;ssh user@target date&lt;/tt&gt; ) takes about 21 seconds. Definitely not a &amp;quot;speed demon&amp;quot; but still it allows more control and comfort. BogoMIPS value in dmesg is about 6.40 which probably corresponds to 33MHz CPU clock.&lt;/p&gt;&lt;p&gt;Some of my planned future steps for this ancient box would include: replacing its AT&amp;nbsp;PSU with ATX-AT adapter and a DC ATX PSU. Will compare its power consumption before and after. BTW, this will make the system completely fanless and solid-state. Then, I would replace its AT/DIN5 keyboard with PS/2-DIN5 adapter and a PS/2 keyboard which is more accessible in the local market. Also, bumping CF&amp;nbsp;card up to 512MB would not hurt. &lt;br /&gt;On the software side, it would be kernel upgrade to 3.7.9, and trying to find a way of building 80386-only uClibc+gcc+binutils toolchain which I could provide to BuildRoot 2016.02. Also I&amp;nbsp;am curious in enabling IPv6 support in the kernel to impress everyone interested remotely in this way :&amp;gt;&lt;/p&gt;&lt;strong&gt;Update from Oct 03rd&lt;/strong&gt;: I received &lt;a href=&quot;https://www.aliexpress.com/item/1005004720736325.html&quot;&gt;ATX-AT adapter&lt;/a&gt; and put it into work. For its power switch, I&amp;nbsp;used a tumbler button bought at local car parts market. For its ATX PSU, I&amp;nbsp;used LR1106 which performed poorly with my main ATX box. For its external 12V DC source, I used SC-120-12 and TS-IPS-V02 mentioned at &lt;a href=&quot;https://muwlgr.dreamwidth.org/50053.html&quot;&gt;https://muwlgr.dreamwidth.org/50053.html&lt;/a&gt; and some times before. The overall setup is quite stable, fanless, that&apos;s completely silent, and draws &amp;lt;24W when its SLA battery is fully charged.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update from Oct 17th&lt;/strong&gt;: I received &lt;a href=&quot;https://www.aliexpress.com/item/1005005250863044.html&quot;&gt;PS2-&amp;gt;AT convertor&lt;/a&gt; and was able to plug a PS2 keyboard into AT motherboard&apos;s DIN5 connector. AT/DIN5 keyboards are close to disappearing on the local market, while PS2 KBs are still sold readily.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=51403&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/51403.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/51150.html</guid>
  <pubDate>Tue, 26 Sep 2023 19:46:03 GMT</pubDate>
  <title>some optimizations in my home server&apos;s DC power feed</title>
  <link>https://muwlgr.dreamwidth.org/51150.html</link>
  <description>this is a follow up to &lt;a href=&quot;https://muwlgr.dreamwidth.org/50292.html&quot;&gt;https://muwlgr.dreamwidth.org/50292.html&lt;/a&gt; and &lt;a href=&quot;https://muwlgr.dreamwidth.org/50053.html&quot;&gt;https://muwlgr.dreamwidth.org/50053.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I removed an extra battery-powered PSU from my setup (that is, SC-120-12 and TS-IPS-V02/V04 connected to it)&lt;br /&gt;And I fed my network boxes (a switch and 2 copper-optical converters mentioned before) directly from my [old?] trusty LD-A300W, using one more Molex-&amp;gt;2Molex extender, a cut-inside Molex M-F cable,&amp;nbsp; and a pair of very simple but convenient clamping wire connectors instead of screwing ones.&lt;br /&gt;I needed only 5V and 12V, so it seemes reasonable to take them from ATX&amp;nbsp;PSU directly. By my Watt-meter indication, power consumption at the APC SmartUPS 1000 inlet had increased by 5..6 W, but it still did not reach 70 W, keeping around 68..69 W.&lt;br /&gt;&lt;br /&gt;We are entering a new season of potential rocket attacks and blackouts caused by them, so it would be interesting to check how long the whole setup will live on its extended batteries.&lt;br /&gt;&lt;br /&gt;Btw, I discovered that flooded lead-acid batteries do bubble on their charge at about 13.8V, which may be heard by unarmed ear. But as far as these sounds resemble bubbles in a carbonated drink or beer, it is safe. Worse is when they resemble boiling and are heard as hisses or whistles through gas-release openings of the battery.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=51150&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/51150.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/50913.html</guid>
  <pubDate>Mon, 10 Jul 2023 11:18:29 GMT</pubDate>
  <title>permutations between decimal numbers of miles and kilometers</title>
  <link>https://muwlgr.dreamwidth.org/50913.html</link>
  <description>Once I noticed that 4875 miles equals to 7845 kilometers.&lt;br /&gt;Surprised by this fact, I decided to find other pairs of such kind.&lt;br /&gt;Wrote a script in Ruby like this :&lt;pre&gt;
mmm=11*16*10*3*12*254/10 # 1609344 mm in 1 mile
(1000...6213).each{|i|
 mm=i*mmm/1000000 # convert mms into kms, dropping fractional part
 p [i,mm] if i.to_s.chars.sort == mm.to_s.chars.sort
}&lt;/pre&gt;Upon running it, I found that there are 14 pairs among 4-digit lengths in miles and kms.&lt;br /&gt;Then I scaled the range up to 10000...62137 and found 43 5-digit permutation pairs which included certain 4-digits originals together with their neighbors. Like,&amp;nbsp; [1625, 2615] and [1626, 2616] turned into [16247, 26147] and [16248, 26148], and so on. While some other permutations observed for 4-digits had simply disappeared for 5-digits. Like, [1138, 1831].&lt;br /&gt;Then I scaled the range further up to 100000...621371 and found 153 6-digit permutations which brought me back the pair like [113892, 183291] close to the one observed for 4-digits, as well as [4875, 7845] growing to [48741, 78441], [48742, 78442], [48756, 78465] and then to [486937, 783649], [487351, 784315], [487410, 784410], [487411, 784411]&lt;br /&gt;&lt;br /&gt;Then I reduced the range down to just 100...621 and found 4 pairs there, that is, [119, 191], [325, 523], [591, 951], [592, 952].&lt;br /&gt;No permutation pairs have been found in even smaller range, 10...62&lt;br /&gt;&lt;br /&gt;Probably these sets are worth to be plotted on some kind of 2d logarithmic scale, will try to do that later.&lt;br /&gt;&lt;br /&gt;[update:] translated it all into Python and created a Jupyter notebook at &lt;a href=&quot;https://colab.research.google.com/drive/1eL_lqvNBO1W9_lEGOrphM05SU4rcNu4h&quot;&gt;https://colab.research.google.com/drive/1eL_lqvNBO1W9_lEGOrphM05SU4rcNu4h&lt;/a&gt; with a kind of basic plot, also with a graph connecting shorter and longer numbers with similar mantissas. Please review and suggest your improvements&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=50913&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/50913.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/50579.html</guid>
  <pubDate>Mon, 01 May 2023 09:10:50 GMT</pubDate>
  <title>Держава як бур&apos;ян (1991, 2014, 2022)</title>
  <link>https://muwlgr.dreamwidth.org/50579.html</link>
  <description>Це не довге, проте дуже повчальне оповідання було написано у 1991-му році, коли Рад.союз вже рухався до припинення свого існування. &lt;br /&gt;Вперше я прочитав його, певно, у 1992-му, і воно мені запам&apos;яталося. &lt;br /&gt;Після подій 2014 року я знайшов його текст у букіністів та виклав його на домашньому сервері ( &lt;a href=&quot;https://muwlgr.dreamwidth.org/41292.html&quot;&gt;https://muwlgr.dreamwidth.org/41292.html&lt;/a&gt; ). &lt;br /&gt;І от через 9 років, коли ми вже маємо і повномасштабне вторгнення, і ChatGPT, і інші прояви штучного інтелекту повсюди, я перечитав його знову, виправив декілька дрібних друкарських помилок, і знову раджу його перечитати всім зацікавленим.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=50579&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/50579.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/50292.html</guid>
  <pubDate>Sun, 30 Apr 2023 10:27:50 GMT</pubDate>
  <title>Further observations and experience from AC/DC power improvements</title>
  <link>https://muwlgr.dreamwidth.org/50292.html</link>
  <description>One unpleasant effect I noticed when running my home PC setup from LR1106, was its instability in powering SATA HDDs. &lt;br /&gt;I tuned my input 12V level so that BIOS reported 12V + a small fraction, but 5V level was barely observed and often fell down to 4.92 or 4.96 V.&lt;br /&gt;May be this, or may be some unwanted variance of its voltages at higher frequencies, caused my SATA HDDs to behave unstably. &lt;br /&gt;One particularly old WD20EARX, bought somewhere in Autumn 2011 (and so, produced most probably before Thailand floods which had affected HDD production facilities), started reporting &amp;quot;SATA link slow to respond/reducing link speed&amp;quot; and similar messages in Linux dmesg, audially this was heard as its motor spinning down and then back up, and one newer WD40EFRX sometimes reported numerous SMART errors collecting in its log, which disappeared from smartctl printout after its full power-cycle (that is, with powering down the whole ATX PSU). &lt;br /&gt;So I put back my older but full-scale FSP&amp;nbsp;ATX400PNF, and SATA HDD&amp;nbsp;behavior restored back to its normal stability. &lt;br /&gt;Also I&amp;nbsp;ordered a different DC&amp;nbsp;ATX&amp;nbsp;PSU from AliExpress, marked RGEEK 300L or LD-A300W, with stated ATX output power of 300W.&lt;br /&gt;Also I finally found a time to attach 2*12V car batteries, each of 62A*h stated capacity, in parallel to my existing 2*14A*h internal UPS&amp;nbsp;batteries. &lt;br /&gt;Had to drill 2 openings in the side wall of the UPS case, and run through them 2*6mm2 cables to connect external batts to the internal ones. &lt;br /&gt;Then found some time to test the runtime of the resulting setup, and got 19h36m which approximately corresponds to ~5* capacity growth (14+62=76A*h at 2*12V, that is up to 1824 W*h DC), correcting this by higher power draw of FSP ATX400PNF, and by the fact that I re-powered my network gear back from their bundled AC-DC PSUs, since I&amp;nbsp;relocated the whole setup into a different corner of the room and put them higher and closer to the room&apos;s ceiling.&lt;br /&gt;To get fully charged back, the resulting battery setup took &amp;gt;17 hours, but APC&amp;nbsp;SmartUPS 1000 completed this process without complains. &lt;br /&gt;The resulting voltage settled at 27.58V (well balanced as 13.78..13.79V on individual batts) and did not grow further. &lt;br /&gt;apcaccess reported its usual number 28.1V (who knows how it got this number, but it was made in 1998 after all).&lt;br /&gt;After some time I received my LD-A300W from the post office, and several days later my FSP ATX-400PNF started triggering power surge protection on my ASUS B85M-G motherboard (which is in its 9th year of almost continuous 24*365 operation as my home server).&lt;br /&gt;So I decided that the time has come to put LD-A300W into its production operation (did not even test it preliminarily), and put it into my box instead of FSP. &lt;br /&gt;External 12V DC I&amp;nbsp;took from the same S-120W-12V mentioned at &lt;a href=&quot;https://muwlgr.dreamwidth.org/49507.html&quot;&gt;https://muwlgr.dreamwidth.org/49507.html&lt;/a&gt; . &lt;br /&gt;Did not even adjust its output voltage, and the BIOS happily reported both +12V and +5V with small added fractions. &lt;br /&gt;The motherboard, HDDs and additional PCIe and USB adapters worked expectedly stable after system boot, and SATA errors observed with LR1106 did not happen again.&lt;br /&gt;Load% reported by apcaccess reduced from 6.3% to 5.2% (a step back from what I achieved at &lt;a href=&quot;https://muwlgr.dreamwidth.org/50053.html&quot;&gt;https://muwlgr.dreamwidth.org/50053.html&lt;/a&gt;, just need to improve packing of my PSUs and one more battery to more confidently put them under the ceiling).&lt;br /&gt;Battery runtime with the current setup will test in some future.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=50292&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/50292.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/50053.html</guid>
  <pubDate>Wed, 18 Jan 2023 11:42:14 GMT</pubDate>
  <title>Powering my network boxes with DC instead of AC</title>
  <link>https://muwlgr.dreamwidth.org/50053.html</link>
  <description>My next step after &lt;a href=&quot;https://muwlgr.dreamwidth.org/49507.html&quot;&gt;https://muwlgr.dreamwidth.org/49507.html&lt;/a&gt; was to replace 3 separate AC &amp;quot;wall-warts&amp;quot; powering my network boxes with more centralized PSU, potentially wasting less heat, and backed-up by a separate battery (to reduce AC load on SmartUPS 1000).&lt;br /&gt;To this end, I took an [Carspa?] SC-120-12 battery-backed PSU from my initial experiments described at &lt;a href=&quot;https://muwlgr.dreamwidth.org/47435.html&quot;&gt;https://muwlgr.dreamwidth.org/47435.html&lt;/a&gt; , with 12V 14A*h SLA battery connected to it. &lt;br /&gt;To its output, I connected a [Tusotek?] TS-IPS-V02 buck-boost DC-DC convertor which I screwed to output 12V, and [Tusotek?] TS-IPS-V04 buck-only convertor, screwed to output 5V. &lt;br /&gt;For 12V output I used boost-buck convertor because when working from battery, SC-120-12 would output less than 12V, down to 8V when the battery is deeply discharged. &lt;br /&gt;To its output, I connected a cable with appropriate plug  (found among broken PSUs I collected from my past), from which I powered an ONU1GEZ GPON Ether-to-optic convertor.&lt;br /&gt;The great feature of TS-IPS-V04 is its built-in volt-meter which can show either output or input voltage, selectable by pressing a tiny button.&lt;br /&gt;To its 5V output I connected a pair of cables with appropriate plugs, from which I powered a D-Link DGS 1100-08 GbE switch, and a Step4Net Ether-to-optic convertor.&lt;br /&gt;AC-DC PSUs provided for these 3 boxes by their respective vendors, I just plugged out off my SmartUPS output.&lt;br /&gt;After these moves, SmartUPS load reported by &lt;tt&gt;apcaccess&lt;/tt&gt; went down to 4.6%&lt;br /&gt;I was able to reduce it even more, down to 3.6%, by running &lt;tt&gt;powertop&lt;/tt&gt; and switching all its &amp;quot;tunables&amp;quot; from &amp;quot;Bad&amp;quot; to &amp;quot;Good&amp;quot;.&lt;br /&gt;Then I found that &lt;tt&gt;powertop&lt;/tt&gt; provides a startup script with &lt;tt&gt;--auto-tune option&lt;/tt&gt;, so I just run &lt;tt&gt;systemctl enable powertop&lt;/tt&gt; to have it started on next boots.&lt;br /&gt;After the previous step (replacing an integrated AC ATX PSU with separate AC-DC rectifier/stabilizer and DC ATX PSU), battery run time for my main PC box had extended from about 2h45m up to a hefty 4h. [update: Recently I&amp;nbsp;had a power outage of 5h47m, of which, the PC box lived on battery for 4h38m. ]&lt;br /&gt;&lt;br /&gt;I still have to measure AC power consumption by some decent watt-meter in a number of places, at least, before the SmartUPS; between the SmartUPS and DC ATX; before the SC-120-12; and before the AC extender when all 3 network boxes are powered with their provided &amp;quot;wall-warts&amp;quot;.&lt;p&gt;By the hand touch, SC-120-12 is getting noticeably warm during its continuous operation. I put SLA battery on its top, which is getting warm too. So when working from AC, there could be no power saving at all, but the added battery backup could be worth it. [update: on recent long power outage, the battery on SC-120-12 has been barely discharged; probably I should join it to DC feed for LR1106 in some way, to reduce SmartUPS&amp;nbsp;load even further, I&amp;nbsp;just did not measure the power draw for network boxes]&lt;/p&gt;Next step would be to remove AC invertors and rectifiers between the SmartUPS and the PC but I don&apos;t have it thought out clearly enough yet.&lt;br /&gt;Know there are some LVC (low-voltage cutout) modules used to protect chemical batteries from deep discharge, but need to avoid cutting my consumers off the UPS battery earlier than getting &amp;quot;low battery&amp;quot; signal from the UPS. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=50053&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/50053.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/49738.html</guid>
  <pubDate>Fri, 06 Jan 2023 21:22:12 GMT</pubDate>
  <title>Сльози-3</title>
  <link>https://muwlgr.dreamwidth.org/49738.html</link>
  <description>Надзвичайно сумні і прикрі сни про собак снилися мені і раніше ( &lt;a href=&quot;https://muwlgr.dreamwidth.org/9870.html&quot;&gt;https://muwlgr.dreamwidth.org/9870.html&lt;/a&gt; ), і от недавно, в ніч з 29 на 30 грудня (2022), такий сон прийшов до мене знов.&lt;br /&gt;За моїми подальшими роздумами, сюжет цього сну мені навіяла нещасна історія собаки на ім&apos;я Крим, який единий вижив з поміж свого людського колективу під час обстрілу 15 липня 2022, але був контужений та осліплений, і через деякий час сконав у вет.лікарні.&lt;br /&gt;Отже, у своєму сні я бачу, що є якісь діти, у яких був улюблений собака Джек, з яким вони любили грати. І цей Джек загинув під час обстрілу. Тоді ці діти взяли санчата, зліпили на них снігову фігуру сидячого Джека у натуральну величину, і почали катати ті санчата з фігурою і всім розповідати, який цей Джек був класний, як він любив їздити на санчатах та їсти сніг. &amp;quot;А сніг зараз, перед святами, як раз такий, як він любив - чистий, пухкий, ну просто святковий!&amp;quot; - казали діти.&lt;br /&gt;І щось мене ця історія так розклеїла, так мені стало шкода того Джека, що я буквально прокинувся серед ночі, наче здригаючись від ридань. Давно таких вражень за собою не помічав.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=49738&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/49738.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/49507.html</guid>
  <pubDate>Fri, 06 Jan 2023 20:11:04 GMT</pubDate>
  <title>Putting DC ATX PSU into &quot;production&quot;</title>
  <link>https://muwlgr.dreamwidth.org/49507.html</link>
  <description>In my earlier post, &lt;a href=&quot;https://muwlgr.dreamwidth.org/47435.html&quot;&gt;https://muwlgr.dreamwidth.org/47435.html&lt;/a&gt; , I described my initial experiments with [Realan?] LR1106 250W DC&amp;nbsp;ATX&amp;nbsp;PSU.&lt;br /&gt;I found that it required really stable 12V on its DC input, and preferred it to be adjustable within some limits (I checked BIOS reporting of its measured 12V voltage).&lt;br /&gt;So, when conditions pushed me to putting this PSU&amp;nbsp;into &amp;quot;production&amp;quot; use (probably you heard something about this full-scale Russian invasion into Ukraine and associated blackouts), I decided that it is time to move.&lt;br /&gt;Earlier, my power supply chain included : 220V 50Hz mains socket -&amp;gt; APC SmartUPS 1000 -&amp;gt; FSP ATX400PNF -&amp;gt; Asus B85M-G (with Core i3-4130T CPU , 3*3.5&amp;quot; SATA HDDs, 1*5.25 SATA DVD-RW and some smaller add-on boards and devices).&lt;br /&gt;When our blackouts got quite long (4+ hours), I found that my FSP&amp;nbsp;ATX&amp;nbsp;PSU, having got cooled down, can not start the Asus motherboard properly on AC&amp;nbsp;power resuming, triggering its protection against power surges. Probably it just showed its age, as I&amp;nbsp;bought it in 2007. So I replaced it with older ATX&amp;nbsp;PSU Enlight ENP-0730 (made around 2000), which provided proper cold starts, but had lower efficiency and so, higher wasted heat and reduced life on UPS&amp;nbsp;batteries.&lt;br /&gt;From the &amp;quot;apcaccess&amp;quot; printout, I saw that FSP&amp;nbsp;PSU created 7.8% load, ENP PSU, about 9.3%, and LR1106 - less than 6% (5.2% as usual).&lt;br /&gt;Now my power chain looks like : 220V 50Hz mains socket -&amp;gt; APC SmartUPS 1000 -&amp;gt; S-120W-12V AC/DC PSU -&amp;gt; LR1106 ATX&amp;nbsp;PSU -&amp;gt; Asus B85M-G with the same add-ons as before.&lt;br /&gt;As LR1106 has only a single Molex, SATA and floppy power outputs, I&amp;nbsp;had to buy 1-&amp;gt;2 Molex and 1Molex-&amp;gt;5SATA extenders from the local market.&lt;br /&gt;The next step would be, to feed my smaller boxes (a switch and a pair of optical-to-Ethernet convertors) from a battery-backed-up [Carspa?] SC-120W-12V PSU I mentioned in my previous post, so as to move them off SmartUPS feed and to reduce its load even further.&lt;br /&gt;The ultimate step would be, to eliminate SmartUPS AC invertor and pre-ATX&amp;nbsp;AC rectifier from the chain, to get even more efficiency, but I am not sure if I could find anybody who knows proprietary APC circuitry well enough to attach to it in the proper place (so that the DC voltage is cut off on low battery charge, not discharging them down into the ground). Or may be, to attach a pair of big 12V car accumulators to the UPS instead of its smaller internal batteries, to make mains AC downtimes negligible compared to its increased battery life.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=49507&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/49507.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/49295.html</guid>
  <pubDate>Sun, 20 Nov 2022 21:41:32 GMT</pubDate>
  <title>Щоденник негідника</title>
  <link>https://muwlgr.dreamwidth.org/49295.html</link>
  <description>&lt;p&gt;І спонукало ж мене щось відвідати виставу нашого театру драми та комедії (колишнього театру руської драми ім. Горького)...&lt;br /&gt;&lt;br /&gt;Вистава називалася &amp;quot;Щоденник негідника&amp;quot;, і згідно анонсу на https://gorod.dp.ua/afisha/event/55684 , вона виглядала досить непогано і навіть інтригуюче.&lt;br /&gt;&lt;br /&gt;Дружня до мене і геть непогано виглядаюча жінка забажала, щоб я її розважив наприкінці тижня, то ж я замовив два квитки у партер, щоб насолодитися цією виставою.&lt;br /&gt;&lt;br /&gt;Початок вистави був досить новаторським та видовищним. Обертова сцена нашого ТРДГ/ТДК була прикрашена стильними та концептуальними фонами та декораціями у кожній своїй чверті. Артисти спочатку поводилися модерново та сучасно, наче їх дійсно цікавила сьогоденна проблематика.&lt;/p&gt;&lt;p&gt;Але згодом ... На тлі сучасних звуків, фонів та декорацій, на тлі новаторського та креативного використання реквізиту на кшталт велосипедного насосу, на тлі вбрання релігійної провидиці з німбом та крильцями, безпомилково впізнаваного у стилі &amp;quot;Містерії-Буфф&amp;quot; Маяковського, до мене почали вкрадатися сумніви, чи дійсно сюжет цієї п&apos;єси настільки інноваційний та оригінальний ?&lt;br /&gt;&lt;br /&gt;Мене трохи здивувало, коли після перших двох годин, які промайнули як одна мить, оголосили антракт на 15 хвилин. На gorod.dp.ua тривалість заходу була вказана 2 години. При більш&amp;nbsp; детальному перегляді, на сайті dramicom.dp.ua тривалість була вказана як 3 години. Що ж, подумав я,&amp;nbsp;не шкода висидіти і додаткову годину, аби розгадати секрет того, що відбувалося на сцені.&lt;br /&gt;&lt;br /&gt;Тоді я як раз, незважаючи на рваний сюжет оповіді, спотворений величезною кількістю спецефектів, почав відстежувати імена найбільш помітних її персонажів. Релігійну провидицю звали Манефа, а прізвище головного протагоніста (якому я спочатку приписував навіть деякі позитивні якості) - Глумов.&lt;/p&gt;&lt;p&gt;Отже, на моєму смартфоні я вбив у пошук Гугла &amp;quot;манефа глумов&amp;quot; - і отримав такий результат, який отримав би кожний із вас, якби повторив мій &amp;quot;обчислювальний експеримент&amp;quot;.&lt;br /&gt;&lt;br /&gt;Я одразу згадав мої шкільні роки, під час яких ми мали набагато більше годин на вивчення саме російської літератури та драматургії, аніж української. Я згадав наше вивчення отих безмежно нудних та похмурих п&apos;єс Островського, таких як &amp;quot;Гроза&amp;quot; (&amp;quot;Катерина - промінь світла у темному царстві&amp;quot;, пам&apos;ятаєте?), або, наприклад,&amp;nbsp;Горького - &amp;quot;На дне&amp;quot; (це,&amp;nbsp;певно, ще депресивніше; добре, що я так і не дочитав її до кінця)&lt;/p&gt;Дійсно, п&apos;єса &amp;quot;Щоденник негідника&amp;quot; виявилася здавна відомою п&apos;єсою О. Островського &amp;quot;На всякого мудреца довольно простоты&amp;quot;, яку співробітники ТДК/ТРДГ намагалися підфарбувати та осучаснити в міру свого скромного таланту.&lt;br /&gt;&lt;br /&gt;Протягом багатьох років я бачив цю п&apos;єсу у репертуарі ТРДГ під її оригінальною назвою, і саме це наче відштовхувало мене від ідеї піти та переглянути це дійство. Це ж буде нудятина смертна, ви що, не пам&apos;ятаєте, яки всі ми разом &amp;quot;Грозу&amp;quot; у школі вивчали ?&lt;br /&gt;&lt;br /&gt;І от саме тепер, у часи постмодерну та симулякрів, театр зміг провести настільки вдалий ребрендінг давно відомої вистави, щоб привабити до перегляду безмежно нудної класики навіть такого її противника,&amp;nbsp;яким був я.&lt;br /&gt;&lt;br /&gt;У майбутньому треба бути набагато більш обачним, ніж я був усе життя до цього доленосного моменту :&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=49295&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/49295.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://muwlgr.dreamwidth.org/48978.html</guid>
  <pubDate>Tue, 28 Dec 2021 21:28:41 GMT</pubDate>
  <title>Movies which shaped my world perception, evaluation, and reaction to</title>
  <link>https://muwlgr.dreamwidth.org/48978.html</link>
  <description>During Gorbachev&apos;s Perestroika, numerous &amp;quot;video salons&amp;quot; had started their operation everywhere across all of the Soviet space, as a form of private business which had stopped to be oppressed by the State. Just a year or two before, you could read an article in the all-Union &amp;quot;Crocodile&amp;quot; magazine of satire and humor, about how our brave law enforcers had discovered and neutralized a nest of deadly sins, that is, an underground/illegal video salon where viewers were molested by viewing smuggled VHS tapes with soft or not so soft erotica. Anyway, by the end of 1987, and clearly over the whole 1988 and beyond, this sin had stopped being deadly, and spending a ruble or three to watch some hot and interesting movie became a typical weekend entertainment for a teenager like me (I was 15 y.o. in 1988).&lt;br /&gt;Modest and cheap video salons provided just a color CRT TV with 61 cm / 24 inch diagonal, connected to a VHS player, and 12..20 viewer seats. Better equipped salons provided a component RGB projector on a large white screen, and up to 100 or even more viewer seats. Often these were based in existing cinema halls. Of course, copyright (US copyright in part) was blatantly neglected. And after USSR dissolution, it continued to be neglected in independent Ukraine at least until September of 1996, when Inter TV channel was formed and the copyright started being enforced at least by Ukrainian TV. Earlier, you could easily see the same movies on TV in the late nights as you could see in video salons before.&lt;br /&gt;Watching one movie after another, I started to develop my own taste and preferences in what movies to see. I understood that I liked horror movies, but not &amp;quot;serious&amp;quot; ones; I liked fantasies, frightenings, thrillers and slashers, but only when they had a good dose of black humor and only very low seriousity; I liked comedies and parodies sometimes, but they had to be really dark and mocking.&lt;br /&gt;In the list below, I mostly go from the most valuable and impressive movies (to my perception) to less valuable (but not less fun). Sometimes, I place a separate group or a sequence of movies by certain director, screenwriter or producer.  Some of these movies I saw in video salons in my city (Dnipro, Ukraine) or in summer resort hotels, some of them - on TV, some of them I downloaded by torrents and watched much later, but  I would so much appreciate if I saw them in these early Perestroika times.&lt;br /&gt;I put here references to Wikipedia articles; finding the real content for the viewing is left as an exercise to the reader.&lt;br /&gt;So, the list is following below, enjoy as you could -&lt;br /&gt;&lt;br /&gt;The real all-times movie, still good for whole-family viewing, provided your kid have reached 9 y.o. or later, and would not cry for a person of color impaled with a tabourette leg, is definitely Commando (1985) - &lt;a href=&quot;https://en.wikipedia.org/wiki/Commando_%281985_film%29&quot;&gt;https://en.wikipedia.org/wiki/Commando_%281985_film%29 &lt;/a&gt;. Its only name speaks for itself. And notice that it did not have sequels, which to me is a sign of perfection :&amp;gt;&lt;br /&gt;&lt;br /&gt;[later addition:] How could I&amp;nbsp;miss the first issue of &lt;a href=&quot;https://en.wikipedia.org/wiki/Police_Academy_(film)&quot;&gt;en.wikipedia.org/wiki/Police_Academy_(film)&lt;/a&gt; (1984) ? Its iconic scene of &amp;quot;podium blowjob&amp;quot; caused unstoppable giggles from sexually-oppressed Soviet teenagers. And surely, the movie was much more relaxed, joyful and pleasant to view than those of yesteryear, like &lt;a href=&quot;https://en.wikipedia.org/wiki/Red_Dawn&quot;&gt;en.wikipedia.org/wiki/Red_Dawn&lt;/a&gt; . You may try to watch 1 or 2 sequels of the initial Pol.Acad., but most probably you would lose your excitement quite soon.&lt;br /&gt;&lt;br /&gt;If your kid is older, or if you are alone, choose the first ROTLD (1985) - &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Return_of_the_Living_Dead&quot;&gt;en.wikipedia.org/wiki/The_Return_of_the_Living_Dead&lt;/a&gt;&lt;br /&gt;(I am sure its numerous sequels are not worth viewing, don&apos;t touch them)&lt;br /&gt;&lt;br /&gt;Demoni (1985) is a perfect sample of Euro-horror, or Yellow-movie in Italian. Definitely recommended - &lt;a href=&quot;https://en.wikipedia.org/wiki/Demons_%281985_film%29&quot;&gt;en.wikipedia.org/wiki/Demons_%281985_film%29&lt;/a&gt; !&lt;br /&gt;You may also want to watch other movies by Argento, like Suspiria (1977) and Inferno (1980), but I am not sure they would interest you that much. Suspiria has particularly good color work, read about this in Wikipedia. But Demoni (1985) are really perfect in my view, and I would say, practically nothing after that have become more perfect.&lt;br /&gt;&lt;p&gt;These wonderful and mysterious pieces of 1982 (the year when Brezhnev died, and I was 9, and I remember this event very well)&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Xtro&quot;&gt;en.wikipedia.org/wiki/Xtro&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Creepshow&quot;&gt;en.wikipedia.org/wiki/Creepshow&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Thing_%281982_film%29&quot;&gt;en.wikipedia.org/wiki/The_Thing_%281982_film%29&lt;/a&gt;&lt;/p&gt;&lt;p&gt;These later hits are particularly good for teenager entertainment -&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Fright_Night&quot;&gt;en.wikipedia.org/wiki/Fright_Night&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Howard_the_Duck_%28film%29&quot;&gt;en.wikipedia.org/wiki/Howard_the_Duck_%28film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Masters_of_the_Universe_%28film%29&quot;&gt;en.wikipedia.org/wiki/Masters_of_the_Universe_%28film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Elvira:_Mistress_of_the_Dark_%28film%29&quot;&gt;en.wikipedia.org/wiki/Elvira:_Mistress_of_the_Dark_%28film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/My_Stepmother_Is_an_Alien&quot;&gt;en.wikipedia.org/wiki/My_Stepmother_Is_an_Alien&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice how fruitful 1985 was for its widely-ranged plot lines, and that will be continued later!&lt;br /&gt;&lt;br /&gt;A separate serie is devoted to Mel Brooks,&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Producers_%281967_film%29&quot;&gt;en.wikipedia.org/wiki/The_Producers_%281967_film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Blazing_Saddles&quot;&gt;en.wikipedia.org/wiki/Blazing_Saddles&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Spaceballs&quot;&gt;en.wikipedia.org/wiki/Spaceballs&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Robin_Hood%3A_Men_in_Tights&quot;&gt;en.wikipedia.org/wiki/Robin_Hood%3A_Men_in_Tights&lt;/a&gt;&lt;br /&gt;Mel Brooks had also numerous other movies, but these listed I count the most perfect of him.&lt;br /&gt;&lt;br /&gt;A separate serie for my strange love, Gene Wilder/Jerome Silberman/Jeffrey Jones -&lt;a href=&quot;https://en.wikipedia.org/wiki/See_No_Evil,_Hear_No_Evil&quot;&gt;&lt;br /&gt;en.wikipedia.org/wiki/See_No_Evil,_Hear_No_Evil&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Out_on_a_Limb_%281992_film%29&quot;&gt;&lt;br /&gt;en.wikipedia.org/wiki/Out_on_a_Limb_%281992_film%29&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Mom_and_Dad_Save_the_World&quot;&gt;&lt;br /&gt;en.wikipedia.org/wiki/Mom_and_Dad_Save_the_World&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A separate serie is devoted to Terry Gilliam and his creative group, Monty Python :&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Monty_Python_and_the_Holy_Grail&quot;&gt;en.wikipedia.org/wiki/Monty_Python_and_the_Holy_Grail&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Monty_Python&amp;#39;s_The_Meaning_of_Life&quot;&gt;en.wikipedia.org/wiki/Monty_Python&apos;s_The_Meaning_of_Life&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Brazil_%281985_film%29&quot;&gt;en.wikipedia.org/wiki/Brazil_%281985_film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/12_Monkeys&quot;&gt;en.wikipedia.org/wiki/12_Monkeys&lt;/a&gt;&lt;br /&gt;You may also want to watch &amp;quot;The Zero Theorem&amp;quot; (2013) but I am not sure you will be pleased that much&lt;br /&gt;&lt;br /&gt;Also an immortal classic with Jack Nicholson, the Shining (1980) - &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Shining_%28film%29&quot;&gt;en.wikipedia.org/wiki/The_Shining_%28film%29&lt;/a&gt;&lt;br /&gt;Nothing similarly impressive was shot  either before or after that.&lt;br /&gt;&lt;br /&gt;Do you know a movie where Johnny Depp and Sarah Jessica Parker played together ? &lt;br /&gt;There is only one of them, &lt;a href=&quot;https://en.wikipedia.org/wiki/Ed_Wood_%28film%29&quot;&gt;en.wikipedia.org/wiki/Ed_Wood_%28film%29&lt;/a&gt;&lt;br /&gt;And if you liked this one, you may also want to see the masterpiece of Ed Wood Jr., &lt;a href=&quot;https://en.wikipedia.org/wiki/Plan_9_from_Outer_Space&quot;&gt;en.wikipedia.org/wiki/Plan_9_from_Outer_Space&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the avid readers of Russian classic, I would propose &lt;a href=&quot;https://en.wikipedia.org/wiki/Love_and_Death&quot;&gt;en.wikipedia.org/wiki/Love_and_Death&lt;/a&gt;&lt;br /&gt;And if you liked it, please immediately watch &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Great_%28TV_series%29&quot;&gt;en.wikipedia.org/wiki/The_Great_%28TV_series%29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;God forbid anyone to miss or forget this ominous movie, else they would have to live through it with their own bodies and senses - &lt;a href=&quot;https://en.wikipedia.org/wiki/They_Live&quot;&gt;en.wikipedia.org/wiki/They_Live&lt;/a&gt;&lt;br /&gt;&amp;quot;Matrix&amp;quot; is just nervously smoking in the corner when compared to this movie shot 11 years before it.&lt;br /&gt;&lt;br /&gt;An earlier masterpiece from the famous author of Tolkien&apos;s screenings, is &lt;a href=&quot;https://en.wikipedia.org/wiki/Braindead_%28film%29&quot;&gt;en.wikipedia.org/wiki/Braindead_%28film%29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A separate list is devoted to Brian Yuzna and Stuart Gordon,&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Re-Animator&quot;&gt;en.wikipedia.org/wiki/Re-Animator&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/From_Beyond_%28film%29&quot;&gt;en.wikipedia.org/wiki/From_Beyond_%28film%29&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Society_%28film%29&quot;&gt;en.wikipedia.org/wiki/Society_%28film%29&lt;/a&gt;&lt;/p&gt;And some much later released movie which strongly reminded me the ROTLD(1985), is &lt;a href=&quot;https://en.wikipedia.org/wiki/Shaun_of_the_Dead&quot;&gt;en.wikipedia.org/wiki/Shaun_of_the_Dead&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And some of the very late movies, telling about crypto- and zombie- Nazies, are&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Iron_Sky&quot;&gt;en.wikipedia.org/wiki/Iron_Sky&lt;/a&gt; (there was also Iron Sky 2, but I did not watch it, so you are on yourself). [Btw, I eagerly awaited this movie to be shown in Dnipro cinemas, but it was for some reason many times postponed and then cancelled at all. Glad that I could catch the show of &lt;a href=&quot;https://en.wikipedia.org/wiki/Sinister_(film)&quot;&gt;en.wikipedia.org/wiki/Sinister_(film)&lt;/a&gt; by the end of 2012]&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Dead_Snow&quot;&gt;en.wikipedia.org/wiki/Dead_Snow&lt;/a&gt; , after which you should immediately watch&lt;br /&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Dead_Snow_2:_Red_vs._Dead&quot;&gt;en.wikipedia.org/wiki/Dead_Snow_2:_Red_vs._Dead&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This list is to be continued; your suggestions/updates/corrections are welcomed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=muwlgr&amp;ditemid=48978&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://muwlgr.dreamwidth.org/48978.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
