<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Dell - soban</title>
	<atom:link href="https://soban.pl/pl/category/dell/feed/" rel="self" type="application/rss+xml" />
	<link>https://soban.pl/pl/category/dell/</link>
	<description>IT, Linux, Servers, Security</description>
	<lastBuildDate>Sun, 18 Jan 2026 21:17:53 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Dell WD19/WD19S: aktualizacja firmware na Proxmox/Debian bez timeoutów USB (fwupd + autosuspend fix)</title>
		<link>https://soban.pl/pl/dell-wd19s-firmware-update-proxmox-debian-usb-timeout-fix/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Sun, 18 Jan 2026 21:00:19 +0000</pubDate>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Dell]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=666</guid>

					<description><![CDATA[<p>Jeśli próbujesz aktualizować firmware stacji dokującej Dell WD19/WD19S na Proxmoxie (albo Debianie) przez fwupdmgr, możesz trafić na klasyczny błąd typu Operation timed out podczas etapu Erasing…. W praktyce update sypie się przez zarządzanie energią USB (autosuspend). Poniżej masz prosty, skuteczny fix oraz gotowy skrypt do odpalenia na serwerze/laptopie. Objawy problemu Najczęściej w trakcie aktualizacji docka [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/dell-wd19s-firmware-update-proxmox-debian-usb-timeout-fix/">Dell WD19/WD19S: aktualizacja firmware na Proxmox/Debian bez timeoutów USB (fwupd + autosuspend fix)</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="669" src="https://soban.pl/wp-content/uploads/2026/01/image-1024x669.png" alt="" class="wp-image-667" style="aspect-ratio:1.5306645407436934;width:654px;height:auto" srcset="https://soban.pl/wp-content/uploads/2026/01/image-1024x669.png 1024w, https://soban.pl/wp-content/uploads/2026/01/image-300x196.png 300w, https://soban.pl/wp-content/uploads/2026/01/image-768x502.png 768w, https://soban.pl/wp-content/uploads/2026/01/image.png 1113w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>Jeśli próbujesz aktualizować firmware stacji dokującej Dell WD19/WD19S na Proxmoxie (albo Debianie) przez <code>fwupdmgr</code>, możesz trafić na klasyczny błąd typu <em>Operation timed out</em> podczas etapu <strong>Erasing…</strong>. W praktyce update sypie się przez zarządzanie energią USB (autosuspend). Poniżej masz prosty, skuteczny fix oraz gotowy skrypt do odpalenia na serwerze/laptopie.</p>



<h2 class="wp-block-heading">Objawy problemu</h2>



<p>Najczęściej w trakcie aktualizacji docka (WD19/WD19S) pojawia się błąd podobny do:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">failed to write-firmware: failed to erase bank: failed after 5 retries: failed to SetReport: USB error: Operation timed out [-7]</pre></div>



<p>Wtedy <code>fwupdmgr</code> może pokazywać urządzenie WD19S jako <strong>Update State: Failed</strong> albo stale informować o <strong>pending activation</strong>, ale sam flash nie przechodzi do końca.</p>



<h2 class="wp-block-heading">Dlaczego tak się dzieje?</h2>



<p>Dock podczas flashowania wykonuje długie operacje, a gdy system próbuje oszczędzać energię na USB (autosuspend), kontrolne transfery USB mogą się wysypywać. Efekt: timeout dokładnie na etapie kasowania banku flash (<em>erase bank</em>).</p>



<h2 class="wp-block-heading">Szybki fix: wyłącz autosuspend USB na czas aktualizacji</h2>



<p>Najprostsze rozwiązanie to tymczasowe ustawienie autosuspend na <code>-1</code> (czyli wyłączenie). To ustawienie obowiązuje do rebootu (chyba że zrobisz je na stałe w kernel cmdline), ale w zupełności wystarczy na czas update.</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">echo -1 &gt; /sys/module/usbcore/parameters/autosuspend</pre></div>



<p>Następnie uruchom aktualizację:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">fwupdmgr refresh --force
fwupdmgr update</pre></div>



<h2 class="wp-block-heading">Po update: „pending activation” i wymagane odłączenie kabla</h2>



<p>Po udanej instalacji firmware dla WD19/WD19S <code>fwupdmgr</code> często wypisuje komunikat:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">The update will continue when the device USB cable has been unplugged.
WD19S is pending activation; use fwupdmgr activate to complete the update.</pre></div>



<p>Wtedy zrób to w tej kolejności:</p>



<ul class="wp-block-list">
<li>Odłącz kabel USB-C od docka (od laptopa).</li>



<li>(Opcjonalnie) Odłącz zasilanie docka na 10–15 sekund i podepnij ponownie.</li>



<li>Podepnij USB-C z powrotem.</li>



<li>Wykonaj aktywację:</li>
</ul>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">fwupdmgr activate</pre></div>



<p>Na końcu sprawdź status:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">fwupdmgr get-updates
fwupdmgr get-devices | less</pre></div>



<h2 class="wp-block-heading">Gotowy skrypt: install + update + wyłączenie autosuspend (z restore)</h2>



<p>Poniżej masz gotowy skrypt, który:</p>



<ul class="wp-block-list">
<li>instaluje <code>fwupd</code></li>



<li>odświeża metadane LVFS</li>



<li>tymczasowo wyłącza autosuspend USB (żeby WD19S nie wywalał timeoutów)</li>



<li>uruchamia aktualizacje</li>



<li>przywraca poprzednią wartość autosuspend po zakończeniu (nawet jeśli update się wywali)</li>
</ul>



<p>Skrypt możesz wkleić ręcznie z artykułu, ale jeśli wolisz szybciej: możesz go pobrać bezpośrednio z:</p>



<p><strong>https://soban.pl/bash/dell_updage.sh</strong></p>



<p>Przykład pobrania i uruchomienia:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">cd /root/scripts
curl -fsSL https://soban.pl/bash/dell_updage.sh -o dell_updage.sh
chmod +x dell_updage.sh
./dell_updage.sh</pre></div>



<p>Jeśli chcesz, możesz też podejrzeć treść przed uruchomieniem:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">curl -fsSL https://soban.pl/bash/dell_updage.sh | less</pre></div>



<p>Jeżeli nie masz <code>less</code> w systemie:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">apt update
apt install -y less</pre></div>



<h2 class="wp-block-heading">Skrypt (pełna treść)</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">#!/bin/bash
set -euo pipefail

# dell upgrade:
# - installs fwupd
# - refreshes metadata
# - runs fwupdmgr update
# - TEMPORARILY disables USB autosuspend to avoid WD19/WD19S timeouts
# - restores autosuspend setting after update

echo "[INFO] Installing fwupd..."
apt update
apt install -y fwupd

echo "[INFO] Refreshing firmware metadata..."
fwupdmgr refresh --force
fwupdmgr get-updates || true

# Save current autosuspend value (if exists)
AUTOSUSPEND_PATH="/sys/module/usbcore/parameters/autosuspend"
OLD_AUTOSUSPEND=""

if [[ -f "$AUTOSUSPEND_PATH" ]]; then
  OLD_AUTOSUSPEND="$(cat "$AUTOSUSPEND_PATH" || true)"
  echo "[INFO] Current usbcore autosuspend: ${OLD_AUTOSUSPEND}"
else
  echo "[WARN] autosuspend sysfs file not found: $AUTOSUSPEND_PATH"
fi

restore_autosuspend() {
  if [[ -f "$AUTOSUSPEND_PATH" &amp;&amp; -n "${OLD_AUTOSUSPEND}" ]]; then
    echo "[INFO] Restoring usbcore autosuspend back to: ${OLD_AUTOSUSPEND}"
    echo "${OLD_AUTOSUSPEND}" &gt; "$AUTOSUSPEND_PATH" || true
  fi
}
trap restore_autosuspend EXIT

# Disable autosuspend to prevent USB timeout during dock firmware erase/write
if [[ -f "$AUTOSUSPEND_PATH" ]]; then
  echo "[INFO] Disabling USB autosuspend (set to -1) to avoid dock update timeouts..."
  echo -1 &gt; "$AUTOSUSPEND_PATH"
fi

read -p "Czy chcesz zaktualizowac wszystkie urzadzenia? (y/n): " answer
if [[ "$answer" == "y" || "$answer" == "Y" ]]; then
  echo "[INFO] Running fwupdmgr update..."
  fwupdmgr update || {
    echo "[ERROR] fwupdmgr update failed."
    echo "[HINT] If this is Dell dock (WD19/WD19S), try: unplug USB-C, replug, then run: fwupdmgr activate"
    exit 1
  }

  echo "[INFO] Update finished."
  echo "[INFO] If you updated a Dell dock and it says 'pending activation':"
  echo "       1) Unplug USB-C cable from the dock"
  echo "       2) (Optional) Unplug dock power for 10 seconds, plug back"
  echo "       3) Run: fwupdmgr activate"
else
  echo "[INFO] Skipping firmware update."
fi

echo "[INFO] Done."</pre></div>



<h2 class="wp-block-heading">Uruchomienie skryptu</h2>



<p>Najprościej:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">chmod +x dell_updage.sh
./dell_updage.sh</pre></div>



<h2 class="wp-block-heading">Najczęstsze pytania i tipy</h2>



<ul class="wp-block-list">
<li><strong>Update dalej się sypie?</strong> Odłącz wszystkie peryferia od docka (monitory/LAN/USB), zostaw tylko zasilanie i USB-C, zrób hard reset docka (odłącz prąd na 30s) i spróbuj ponownie.</li>



<li><strong>„pending activation” po update</strong> – to normalne dla WD19/WD19S. Musisz wypiąć USB-C, podpiąć ponownie i zrobić <code>fwupdmgr activate</code>.</li>



<li><strong>To aktualizuje BIOS laptopa?</strong> Nie zawsze. <code>fwupdmgr</code> pokaże osobno „System Firmware” (BIOS/UEFI) i osobno dock. W tym artykule skupiamy się na docku i problemie z USB timeout.</li>
</ul>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p>Jeśli firmware Dell WD19/WD19S wywala się na Proxmox/Debian podczas <em>Erasing…</em>, to w większości przypadków wystarczy na czas aktualizacji wyłączyć autosuspend USB. Skrypt powyżej robi to automatycznie, a potem przywraca poprzednie ustawienie, żeby system dalej działał normalnie.</p>



<p></p>
<p>Artykuł <a href="https://soban.pl/pl/dell-wd19s-firmware-update-proxmox-debian-usb-timeout-fix/">Dell WD19/WD19S: aktualizacja firmware na Proxmox/Debian bez timeoutów USB (fwupd + autosuspend fix)</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
