{"id":19423,"date":"2026-11-12T12:46:00","date_gmt":"2026-11-12T19:46:00","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=19423"},"modified":"2026-11-12T12:46:00","modified_gmt":"2026-11-12T19:46:00","slug":"updating-allstarlink-v3-bookworm-to-trixie","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/11\/12\/updating-allstarlink-v3-bookworm-to-trixie\/","title":{"rendered":"Updating Allstarlink v3 Bookworm to Trixie"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">N8EI put out a nice post on how to upgrade your ASL3 from Bookworm to Trixie, and you can get the new WebUI, which is automatically installed if running their image, or manually install if you added ASL3 to Raspberry Pi OS yourself.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/11\/image-6-1024x662.png\" alt=\"\" class=\"wp-image-19424\" srcset=\"https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/11\/image-6-1024x662.png 1024w, https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/11\/image-6-300x194.png 300w, https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/11\/image-6-768x497.png 768w, https:\/\/jasonsblog.ddns.net\/wp-content\/uploads\/2026\/11\/image-6.png 1424w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">WebUI<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Note, my ASL3 box has a Raspberry Pi 3A with only 512MB of ram, so mine crashed and rebooted towards the end of the upgrade portion, so I tried to run the command again after logging back in and it gave me the dpkg command to run below, which seemed to have picked up and finished just fine saving me from having to use the image and transfer over the configuration.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dpkg --configure -a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Also, if you have the old Skywarn Plus installed on your node, there is one more step I got from the bottom post.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install --break-system-packages audioop-lts pydub<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Someone was working on an updated version of Skywarn Plus as the original programmer archived the project with no further development, so eventually we may need to change over. Hopefully the Allstarlink guys will add it to the repository as a package and make installation easier, as they&#8217;ve been doing great work with Allstarlink v3, and this is a valuable package for people where there is severe weather, which is much of the country.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/community.allstarlink.org\/t\/asl-ui-on-bookworm\/25171\/2\">https:\/\/community.allstarlink.org\/t\/asl-ui-on-bookworm\/25171\/2<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_0c2d559a-b8f7-42b6-8190-b2c884a51f49\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<h5 class=\"wp-block-heading\">N8EI ASL Community Admin<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">No, it does not. WebUI is not going to be backported to Debian 12 Bookworm. However you can do an in-place upgrade to Trixie. The basic steps are:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Login to your node via SSH or through the Cockpit terminal.<\/li>\n\n\n\n<li>Become root with <code>sudo -s<\/code><\/li>\n\n\n\n<li>Run a backup of your node through the current <code>asl-menu<\/code> CLI tool<\/li>\n\n\n\n<li>Run the following commands ONE AT A TIME DO NOT COPY AND PASTE ALL OF THEM: \n<ol class=\"wp-block-list\">\n<li><code>apt update apt upgrade -y <\/code><\/li>\n\n\n\n<li><code>perl -pi -e 's\/bookworm\/trixie\/g' \/etc\/apt\/sources.list \/etc\/apt\/sources.list.d\/* <\/code><\/li>\n\n\n\n<li><code>apt update apt upgrade -y apt dist-upgrade -y<\/code> <\/li>\n\n\n\n<li>At some point, you may be asked to accept a Debian version change. Always answer <code>Y<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Reboot your node<\/li>\n\n\n\n<li>Login to your node via SSH or through the Cockpit terminal.<\/li>\n\n\n\n<li>Run the following commands ONE AT A TIME DO NOT COPY AND PASTE ALL OF THEM: \n<ol class=\"wp-block-list\">\n<li><code>apt remove dahdi-dkms -y <\/code><\/li>\n\n\n\n<li><code>apt autoremove -y <\/code><\/li>\n\n\n\n<li><code>apt purge $(dpkg -l | grep -E '^rc' | awk '{print $2}')<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>You should now be running on Debian Trixie. \n<ol class=\"wp-block-list\">\n<li><code># cat \/etc\/debian_version 13.7<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>If you aren&#8217;t running ASL3 Appliance, install <strong>asl-web-ui<\/strong>: \n<ol class=\"wp-block-list\">\n<li><code>apt install -y asl-web-ui<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>If you aren&#8217;t running the appliance, you&#8217;ll need to add your local user to the group. Assuming it&#8217;s KC1NE then run \n<ol class=\"wp-block-list\">\n<li><code>usermod -aG asl-web-ui KC1NE<\/code>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;ll take a bit on a Pi using an SD card (Assuming that&#8217;s what you&#8217;re running).<\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_8101278b-0f73-4774-9547-50f8117d2645\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/raw.githubusercontent.com\/KD5FMU\/ASL3_Multi_App_Install\/refs\/heads\/main\/swp-install-trixie.patch\" target=\"_blank\" rel=\"noopener\">https:\/\/raw.githubusercontent.com\/KD5FMU\/ASL3_Multi_App_Install\/refs\/heads\/main\/swp-install-trixie.patch<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">From: Jory A. Pratt &lt;geekypenguin@gmail.com&gt;\nSubject: [PATCH] Add Debian Trixie compatibility for pydub installation\n\nThis patch adds automatic detection and handling for pydub installation\non Debian Trixie systems where python3-pydub is not available due to\nPython 3.13 removing the audioop module.\n\nChanges:\n- Removed direct python3-pydub installation via apt\n- Added logic to detect if python3-pydub is available in system packages\n- Falls back to installing audioop-lts and pydub via pip when system\n  package is unavailable (required for Python 3.13 compatibility)\n\nThis ensures SkywarnPlus works correctly on both Debian Bookworm (where\npython3-pydub is available) and Debian Trixie (where it must be\ninstalled via pip).\n\n---\ndiff --git a\/swp-install b\/swp-install\nindex acd6234..9e64c4b 100644\n--- a\/swp-install\n+++ b\/swp-install\n@@ -111,7 +111,18 @@ install_dependencies() {\n             apt install -y unzip python3 python3-pip ffmpeg\n             pip3 install ruamel.yaml requests python-dateutil pydub\n         else\n-            apt install -y unzip python3 python3-pip ffmpeg python3-ruamel.yaml python3-requests python3-dateutil python3-pydub\n+            # Check Debian version to determine if we need to install pydub via pip\n+            # python3-pydub is not available in Debian 13 (Trixie) due to Python 3.13 compatibility\n+            apt install -y unzip python3 python3-pip ffmpeg python3-ruamel.yaml python3-requests python3-dateutil\n+            \n+            # Try to install python3-pydub, if it fails (not available in Trixie), use pip instead\n+            if apt install -y python3-pydub 2&gt;\/dev\/null; then\n+                echo \"Installed python3-pydub from system packages\"\n+            else\n+                echo \"python3-pydub not available in system packages (likely Debian Trixie)\"\n+                echo \"Installing audioop-lts and pydub via pip (required for Python 3.13 compatibility)\"\n+                pip3 install --break-system-packages audioop-lts pydub\n+            fi\n         fi\n     elif [ \"$OS\" = \"arch\" ]; then\n         pacman -Syu --noconfirm\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>N8EI put out a nice post on how to upgrade your ASL3 from Bookworm to Trixie, and you can get the new WebUI, which is automatically installed if running their image, or manually install if you added ASL3 to Raspberry Pi OS yourself. Note, my ASL3 box has a Raspberry Pi 3A with only 512MB [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-19423","post","type-post","status-publish","format-standard","hentry","category-ham"],"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/19423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=19423"}],"version-history":[{"count":1,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/19423\/revisions"}],"predecessor-version":[{"id":19425,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/19423\/revisions\/19425"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=19423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=19423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=19423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}