<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>mk</title>
    <link>https://blog.markusklein.cc/mk/</link>
    <description></description>
    <pubDate>Fri, 17 Apr 2026 13:19:16 +0200</pubDate>
    <item>
      <title>Install ffmpeg manually via macOS Terminal</title>
      <link>https://blog.markusklein.cc/mk/install-ffmpeg-manually-via-macos-terminal</link>
      <description>&lt;![CDATA[When there is a binary available for macOS, this can be installed manually via the command line of macOS. Here is how it’s done.&#xA;&#xA;!--more--&#xA;&#xA;Youtube-dl can use FFmpeg to convert and merge videos after download. But when you do not want to install ffmpeg via homebrew or macports, there is a binary of ffmpeg available under https://evermeet.cx/ffmpeg (found via the official website of ffmpeg).&#xA;&#xA;1. Privileges&#xA;&#xA;Maybe you need to know how to switch the roles in the terminal:&#xA;&#xA;sudo -s admin lets you switch to the admin account, and with&#xA;&#xA;sudo -s you switch to root.&#xA;&#xA;2. Download binaries&#xA;&#xA;Check out https://evermeet.cx/ffmpeg and download the archived binary (i used the release, not the snapshot).&#xA;&#xA;3. Install on system&#xA;&#xA;Move the extracted binary to the local bin path:&#xA;&#xA;mv ffmpeg /usr/local/bin/&#xA;&#xA;And done, youtube-dl should now find ffmpeg and work flawlessly :)]]&gt;</description>
      <content:encoded><![CDATA[<p>When there is a binary available for macOS, this can be installed manually via the command line of macOS. Here is how it’s done.</p>



<p>Youtube-dl can use FFmpeg to convert and merge videos after download. But when you do not want to install ffmpeg via homebrew or macports, there is a binary of ffmpeg available under <a href="https://evermeet.cx/ffmpeg" rel="nofollow">https://evermeet.cx/ffmpeg</a> (found via the <a href="https://ffmpeg.org/download.html" title="official website of ffmpeg" rel="nofollow">official website of ffmpeg</a>).</p>

<h1 id="1-privileges" id="1-privileges">1. Privileges</h1>

<p>Maybe you need to know how to switch the roles in the terminal:</p>

<p><code>sudo -s admin</code> lets you switch to the admin account, and with</p>

<p><code>sudo -s</code> you switch to root.</p>

<h1 id="2-download-binaries" id="2-download-binaries">2. Download binaries</h1>

<p>Check out <a href="https://evermeet.cx/ffmpeg" rel="nofollow">https://evermeet.cx/ffmpeg</a> and download the archived binary (i used the release, not the snapshot).</p>

<h1 id="3-install-on-system" id="3-install-on-system">3. Install on system</h1>

<p>Move the extracted binary to the local bin path:</p>

<p><code>mv ffmpeg /usr/local/bin/</code></p>

<p>And done, youtube-dl should now find ffmpeg and work flawlessly :)</p>
]]></content:encoded>
      <guid>https://blog.markusklein.cc/mk/install-ffmpeg-manually-via-macos-terminal</guid>
      <pubDate>Sat, 26 Aug 2023 16:24:22 +0200</pubDate>
    </item>
    <item>
      <title>Cleaning Archlinux - How to free up some space</title>
      <link>https://blog.markusklein.cc/mk/cleaning-archlinux-how-to-free-up-some-space</link>
      <description>&lt;![CDATA[When the root-disk is a little bit stuffed, pacman does not want to install updates anymore. Here is how to fix this.&#xA;&#xA;!--more--&#xA;&#xA;On ArchWiki - System Maintenance, some information on how to clean the filesystem can be found:&#xA;&#xA;1. Delete orphan packages&#xA;&#xA;Check ArchWiki - Pacman/Tips and tricks &#34;ArchWiki - Pacman/Tips and tricks&#34;)  for more info&#xA;&#xA;Type pacman -Qtdq | pacman -Rns - for recursively removing orphans and their configuration files.&#xA;&#xA;2. Clean the package cache&#xA;&#xA;See ArchWiki - Pacman/Cleaning the package cache for more info&#xA;&#xA;Type paccache -rk1 to delete all cached packages except one (the most current) version.&#xA;&#xA;And Type pacman -Sc to remove all the cached packages that are not currently installed.]]&gt;</description>
      <content:encoded><![CDATA[<p>When the root-disk is a little bit stuffed, pacman does not want to install updates anymore. Here is how to fix this.</p>



<p>On <a href="https://wiki.archlinux.org/title/System_maintenance#Clean_the_filesystem" title="ArchWiki - System Maintenance" rel="nofollow">ArchWiki – System Maintenance</a>, some information on how to clean the filesystem can be found:</p>

<h2 id="1-delete-orphan-packages" id="1-delete-orphan-packages">1. Delete orphan packages</h2>

<p>Check <a href="https://wiki.archlinux.org/title/Pacman/Tips_and_tricks#Removing_unused_packages_(orphans)" title="ArchWiki - Pacman/Tips and tricks" rel="nofollow">ArchWiki – Pacman/Tips and tricks</a>  for more info</p>

<p>Type <code>pacman -Qtdq | pacman -Rns -</code> for recursively removing orphans and their configuration files.</p>

<h2 id="2-clean-the-package-cache" id="2-clean-the-package-cache">2. Clean the package cache</h2>

<p>See <a href="https://wiki.archlinux.org/title/Pacman#Cleaning_the_package_cache" title="ArchWiki - Pacman/Cleaning the package cache" rel="nofollow">ArchWiki – Pacman/Cleaning the package cache</a> for more info</p>

<p>Type <code>paccache -rk1</code> to delete all cached packages except one (the most current) version.</p>

<p>And Type <code>pacman -Sc</code> to remove all the cached packages that are not currently installed.</p>
]]></content:encoded>
      <guid>https://blog.markusklein.cc/mk/cleaning-archlinux-how-to-free-up-some-space</guid>
      <pubDate>Sun, 30 Apr 2023 22:29:11 +0200</pubDate>
    </item>
    <item>
      <title>Repair broken linux-kernel installation</title>
      <link>https://blog.markusklein.cc/mk/repair-broken-linux-kernel-installation</link>
      <description>&lt;![CDATA[Sometimes, update via pacman failed and the linux kernel may not be installed properly. This can end in grub trying to boot, but without a Kernel grub shows the error-message to load the kernel first. Here is how to fix this.&#xA;&#xA;!--more--&#xA;&#xA;While updating via pacman, the computer shut down unexpected, so the update did not finish properly. After this, grub could not boot to the kernel and showed the error:&#xA;&#xA;  error: file &#39;vmlinuz-linux&#39; not found.&#xA;  Loading initial ramdisk ...&#xA;  error: you need to load the kernel first.&#xA;    Press any key to continue&#xA;&#xA;The solution is to boot arch from an external media (thumbdrive etc.), mount the volumes, change the root and reinstall linux via pacman.&#xA;&#xA;1. Download and make livedisk&#xA;&#xA;The image for archlinux can be downloaded here: https://archlinux.org/download/ (scroll down to country-mirrors for direct download).&#xA;&#xA;To create the bootable drive, check this: https://wiki.archlinux.org/title/USBflashinstallationmedium&#xA;&#xA;1.1 Use mac for livedisk&#xA;&#xA;If using macOS, the linux commands do not work. Important are the following ones:&#xA;&#xA;su $adminUsername to switch to root user in terminal, found here: https://support.apple.com/guide/terminal/enter-administrator-commands-apd5b0b6259-a7d4-4435-947d-0dff528912ba/mac&#xA;&#xA;diskutil list to list all mounted Volumes, found here: https://osxdaily.com/2009/12/01/list-all-mounted-drives-and-their-partitions-from-the-terminal/&#xA;&#xA;diskutil unmountDisk force /dev/disk# to force unmount of Volume if it is busy, found here: https://superuser.com/questions/906513/get-rid-of-resource-busy-message-on-mac-os-x&#xA;&#xA;2. Check and mount volumes&#xA;&#xA;Boot arch from livedisk and show all devices via lsblk. Check used partition scheme, e.g.:&#xA;&#xA;  /sda1 = 100MB Windows Boot&#xA;    /sda2 = 250GB Windows&#xA;    /sda3 = 1.51GB boot&#xA;    /sda4 = 630GB cryptlvm&#xA;    /sda6 = 52 GB /&#xA;&#xA;Open cryptvolume with cryptsetup open /dev/sda4 cryptlvm and unlock it with the password.&#xA;&#xA;Mount / and /boot:&#xA;&#xA;  mount /dev/mapper/cryptvol-root /mnt&#xA;    mount /dev/sda3 /mnt/boot&#xA;&#xA;3. Change root and reinstall kernel&#xA;&#xA;Change root to new mount, see https://wiki.archlinux.org/title/Chroot for more info:&#xA;&#xA;  arch-chroot /mnt/boot&#xA;&#xA;Reinstall linux-kernel with pacman -Syu linux linux-headers&#xA;&#xA;Maybe first we need to rm /var/lib/pacman/db.lck since pacman did not close correctly, for more info see https://wiki.archlinux.org/title/Pacman#%22Failedtoinittransaction(unabletolockdatabase)%22_error&#xA;&#xA;4. Finish update&#xA;&#xA;After this it could also be useful to&#xA;&#xA;  mkinitcpio -p linux&#xA;    grub-mkconfig -o /boot/grub/grub.cfg&#xA;&#xA;And maye restart the pacman update.&#xA;&#xA;This should fix the error and linux should boot without problems anymore. Yay!]]&gt;</description>
      <content:encoded><![CDATA[<p>Sometimes, update via pacman failed and the linux kernel may not be installed properly. This can end in grub trying to boot, but without a Kernel grub shows the error-message to load the kernel first. Here is how to fix this.</p>



<p>While updating via <code>pacman</code>, the computer shut down unexpected, so the update did not finish properly. After this, <code>grub</code> could not boot to the kernel and showed the error:</p>

<blockquote><p>error: file &#39;vmlinuz-linux&#39; not found.
Loading initial ramdisk ...
error: you need to load the kernel first.</p>

<p>Press any key to continue</p></blockquote>

<p>The solution is to boot arch from an external media (thumbdrive etc.), mount the volumes, change the root and reinstall linux via pacman.</p>

<h2 id="1-download-and-make-livedisk" id="1-download-and-make-livedisk">1. Download and make livedisk</h2>

<p>The image for archlinux can be downloaded here: <a href="https://archlinux.org/download/" rel="nofollow">https://archlinux.org/download/</a> (scroll down to country-mirrors for direct download).</p>

<p>To create the bootable drive, check this: <a href="https://wiki.archlinux.org/title/USB_flash_installation_medium" rel="nofollow">https://wiki.archlinux.org/title/USB_flash_installation_medium</a></p>

<h3 id="1-1-use-mac-for-livedisk" id="1-1-use-mac-for-livedisk">1.1 Use mac for livedisk</h3>

<p>If using macOS, the linux commands do not work. Important are the following ones:</p>

<p><code>su $adminUsername</code> to switch to root user in terminal, found here: <a href="https://support.apple.com/guide/terminal/enter-administrator-commands-apd5b0b6259-a7d4-4435-947d-0dff528912ba/mac" rel="nofollow">https://support.apple.com/guide/terminal/enter-administrator-commands-apd5b0b6259-a7d4-4435-947d-0dff528912ba/mac</a></p>

<p><code>diskutil list</code> to list all mounted Volumes, found here: <a href="https://osxdaily.com/2009/12/01/list-all-mounted-drives-and-their-partitions-from-the-terminal/" rel="nofollow">https://osxdaily.com/2009/12/01/list-all-mounted-drives-and-their-partitions-from-the-terminal/</a></p>

<p><code>diskutil unmountDisk force /dev/disk&lt;#&gt;</code> to force unmount of Volume if it is busy, found here: <a href="https://superuser.com/questions/906513/get-rid-of-resource-busy-message-on-mac-os-x" rel="nofollow">https://superuser.com/questions/906513/get-rid-of-resource-busy-message-on-mac-os-x</a></p>

<h2 id="2-check-and-mount-volumes" id="2-check-and-mount-volumes">2. Check and mount volumes</h2>

<p>Boot arch from livedisk and show all devices via <code>lsblk</code>. Check used partition scheme, e.g.:</p>

<blockquote><p>/sda1 = 100MB Windows Boot</p>

<p>/sda2 = 250GB Windows</p>

<p>/sda3 = 1.51GB boot</p>

<p>/sda4 = 630GB cryptlvm</p>

<p>/sda6 = 52 GB /</p></blockquote>

<p>Open cryptvolume with <code>cryptsetup open /dev/sda4 cryptlvm</code> and unlock it with the password.</p>

<p>Mount <code>/</code> and <code>/boot</code>:</p>

<blockquote><p>mount /dev/mapper/cryptvol-root /mnt</p>

<p>mount /dev/sda3 /mnt/boot</p></blockquote>

<h2 id="3-change-root-and-reinstall-kernel" id="3-change-root-and-reinstall-kernel">3. Change root and reinstall kernel</h2>

<p>Change root to new mount, see <a href="https://wiki.archlinux.org/title/Chroot" rel="nofollow">https://wiki.archlinux.org/title/Chroot</a> for more info:</p>

<blockquote><p>arch-chroot /mnt/boot</p></blockquote>

<p>Reinstall linux-kernel with <code>pacman -Syu linux linux-headers</code></p>

<p>Maybe first we need to <code>rm /var/lib/pacman/db.lck</code> since pacman did not close correctly, for more info see <a href="https://wiki.archlinux.org/title/Pacman#%22Failed_to_init_transaction_(unable_to_lock_database)%22_error" rel="nofollow">https://wiki.archlinux.org/title/Pacman#%22Failed_to_init_transaction_(unable_to_lock_database)%22_error</a></p>

<h2 id="4-finish-update" id="4-finish-update">4. Finish update</h2>

<p>After this it could also be useful to</p>

<blockquote><p>mkinitcpio -p linux</p>

<p>grub-mkconfig -o /boot/grub/grub.cfg</p></blockquote>

<p>And maye restart the pacman update.</p>

<p>This should fix the error and linux should boot without problems anymore. Yay!</p>
]]></content:encoded>
      <guid>https://blog.markusklein.cc/mk/repair-broken-linux-kernel-installation</guid>
      <pubDate>Wed, 15 Mar 2023 21:14:27 +0100</pubDate>
    </item>
    <item>
      <title>tor.service does not start properly</title>
      <link>https://blog.markusklein.cc/mk/tor-service-does-not-start-properly</link>
      <description>&lt;![CDATA[Sometimes, nyx says that tor is not running. This may be because tor must be started as user &#34;tor&#34;, otherwise starting of \tor.service\ fails and exits with errors. Here is how to fix this.&#xA;&#xA;!--more--&#xA;&#xA;Diagnostics&#xA;&#xA;First we should check for more info why tor does not start properly. For this, check systemctl status tor and - if this does not help - journalctl -xe. In the journal, this error appears:&#xA;&#xA;  \[warn\] /var/lib/tor is not owned by this user (root, 0) but by tor (43). Perhaps you are running Tor as the wrong user?&#xA;&#xA;Solution: Run tor.service as user tor&#xA;&#xA;Edit /usr/lib/systemd/system/tor.service and make sure that in the [Service]-section, the User and Group is included:&#xA;&#xA;  \[Service\]&#xA;    Type=notify&#xA;    User=tor&#xA;    Group=tor&#xA;    NotifyAccess=all&#xA;    ExecStartPre=/usr/bin/tor -f /etc/tor/torrc --verify-config&#xA;&#xA;Then save tor.service&#xA;&#xA;Reload tor.service and start tor&#xA;&#xA;Reload tor.service with systemctl daemon-reload and try to start it with systemctl start tor.&#xA;&#xA;Tor.service should start without errors, and also nyx should work now. Yay!]]&gt;</description>
      <content:encoded><![CDATA[<p>Sometimes, nyx says that tor is not running. This may be because tor must be started as user “tor”, otherwise starting of `tor.service` fails and exits with errors. Here is how to fix this.</p>



<h1 id="diagnostics" id="diagnostics">Diagnostics</h1>

<p>First we should check for more info why tor does not start properly. For this, check <code>systemctl status tor</code> and – if this does not help – <code>journalctl -xe</code>. In the journal, this error appears:</p>

<blockquote><p>[warn] /var/lib/tor is not owned by this user (root, 0) but by tor (43). Perhaps you are running Tor as the wrong user?</p></blockquote>

<h1 id="solution-run-tor-service-as-user-tor" id="solution-run-tor-service-as-user-tor">Solution: Run tor.service as user tor</h1>

<p>Edit <code>/usr/lib/systemd/system/tor.service</code> and make sure that in the <code>[Service]</code>-section, the <code>User</code> and <code>Group</code> is included:</p>

<blockquote><p>[Service]</p>

<p>Type=notify</p>

<p>User=tor</p>

<p>Group=tor</p>

<p>NotifyAccess=all</p>

<p>ExecStartPre=/usr/bin/tor -f /etc/tor/torrc —verify-config</p></blockquote>

<p>Then save <code>tor.service</code></p>

<h1 id="reload-tor-service-and-start-tor" id="reload-tor-service-and-start-tor">Reload tor.service and start tor</h1>

<p>Reload <code>tor.service</code> with <code>systemctl daemon-reload</code> and try to start it with <code>systemctl start tor</code>.</p>

<p>Tor.service should start without errors, and also <code>nyx</code> should work now. Yay!</p>
]]></content:encoded>
      <guid>https://blog.markusklein.cc/mk/tor-service-does-not-start-properly</guid>
      <pubDate>Sat, 11 Feb 2023 18:39:01 +0100</pubDate>
    </item>
    <item>
      <title>My first blog post - Welcome back to the internet :)</title>
      <link>https://blog.markusklein.cc/mk/my-first-blog-post-welcome-back-to-the-internet</link>
      <description>&lt;![CDATA[The internet is for connecting with people. WriteFreely helps to reach them no matter where they live online.&#xA;&#xA;!--more--&#xA;&#xA;Everyone can read this blog without creating yet another account online. It is available via browser, email or RSS, on e-readers, and on federated platforms like Mastodon (well okay, I deactivated federation since I just want a blog).&#xA;&#xA;Focus on writing&#xA;&#xA;WriteFreely and Write.as are a pared-down blogging platform — a distraction-free place to write, and a clean space for anyone to read.&#xA;&#xA;Instead of content management, the focus is on writing. You&#39;ll see our editor screen first, every time you open the app. You can write in Markdown or switch to our friendly Rich Text editor. Your work is automatically saved to your browser as you write.&#xA;&#xA;Stay independent&#xA;&#xA;With WriteFreely, this Blog is a home for my writing, outside of walled gardens and locked-down platforms.&#xA;&#xA;I on my own keep control of this web presence. There is no tracking, cookies or similar :). Keep the internet open!&#xA;&#xA;Learn more about WriteFreely and Write.as&#xA;&#xA;WriteFreely is an open source platform for building a writing space on the web.&#xA;Write.as is part of Musing Studio, a suite of simple tools for creating and sharing on the open web. You can also gather writing submissions with Submit.as, share photos with Snap.as, and socialize with Remark.as.&#xA;&#xA;Read about the company behinde Write.as and their principles, and subscribe to their blog.&#xA;&#xA;ToDo&#xA;&#xA;Learn formatting with markdown according to https://writefreely.org/docs/latest/writer/writing&#xA;&#xA;Change theme to dark one according to https://writefreely.org/docs/latest/writer/css&#xA;&#xA;Read the Documentation of WriteFreely :) https://writefreely.org/docs/latest/writer&#xA;&#xA;Hopefully there I will learn how to default open my blog and not the login page...&#xA;   Et Voilà, changing the default landing page in  config.ini  works :)&#xA;&#xA;Update the about and privacy pages]]&gt;</description>
      <content:encoded><![CDATA[<p>The internet is for connecting with people. <a href="https://writefreely.org" rel="nofollow">WriteFreely</a> helps to reach them no matter where they live online.</p>



<p>Everyone can read this blog without creating yet another account online. It is available via browser, email or RSS, on e-readers, and on federated platforms like Mastodon (well okay, I deactivated federation since I just want a blog).</p>

<h2 id="focus-on-writing" id="focus-on-writing">Focus on writing</h2>

<p>WriteFreely and Write.as are a pared-down blogging platform — a distraction-free place to write, and a clean space for anyone to read.</p>

<p>Instead of content management, the focus is on writing. You&#39;ll see our editor screen first, every time you open the app. You can write in Markdown or switch to our friendly Rich Text editor. Your work is automatically saved to your browser as you write.</p>

<h2 id="stay-independent" id="stay-independent">Stay independent</h2>

<p>With WriteFreely, this Blog is a home for my writing, outside of walled gardens and locked-down platforms.</p>

<p>I on my own keep control of this web presence. There is no tracking, cookies or similar :). Keep the internet open!</p>

<h2 id="learn-more-about-writefreely-and-write-as" id="learn-more-about-writefreely-and-write-as">Learn more about WriteFreely and Write.as</h2>

<p><a href="https://writefreely.org" rel="nofollow">WriteFreely</a> is an open source platform for building a writing space on the web.
<a href="https://write.as/" rel="nofollow">Write.as</a> is part of <a href="https://musing.studio/" rel="nofollow">Musing Studio</a>, a suite of simple tools for creating and sharing on the open web. You can also gather writing submissions with <a href="https://submit.as/" rel="nofollow">Submit.as</a>, share photos with <a href="https://snap.as/" rel="nofollow">Snap.as</a>, and socialize with <a href="https://remark.as/" rel="nofollow">Remark.as</a>.</p>

<p>Read about the company behinde <a href="https://write.as/about/company" rel="nofollow">Write.as</a> and their <a href="https://write.as/principles" rel="nofollow">principles</a>, and subscribe to their <a href="https://write.as/blog/" rel="nofollow">blog</a>.</p>

<h2 id="todo" id="todo">ToDo</h2>
<ol><li><p>Learn formatting with markdown according to <a href="https://writefreely.org/docs/latest/writer/writing" rel="nofollow">https://writefreely.org/docs/latest/writer/writing</a></p></li>

<li><p>Change theme to dark one according to <a href="https://writefreely.org/docs/latest/writer/css" rel="nofollow">https://writefreely.org/docs/latest/writer/css</a></p></li>

<li><p>Read the Documentation of WriteFreely :) <a href="https://writefreely.org/docs/latest/writer" rel="nofollow">https://writefreely.org/docs/latest/writer</a></p></li>

<li><p>Hopefully there I will learn how to default open my blog and not the login page...
Et Voilà, changing the default landing page in <code>config.ini</code>  works :)</p></li>

<li><p>Update the about and privacy pages</p></li></ol>
]]></content:encoded>
      <guid>https://blog.markusklein.cc/mk/my-first-blog-post-welcome-back-to-the-internet</guid>
      <pubDate>Sun, 29 Jan 2023 17:36:14 +0100</pubDate>
    </item>
  </channel>
</rss>