بنقرة واحدة
dell-fw-download
Dell ファームウェアダウンロード。Playwright で dl.dell.com から BIN を取得し firmimg.d7 を抽出する。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Dell ファームウェアダウンロード。Playwright で dl.dell.com から BIN を取得し firmimg.d7 を抽出する。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
別の tmux ペインで動いている Claude Code インスタンスを、このセッションから tmux send-keys / capture-pane で駆動するオーケストレーション。プランモード投入 → プラン再点検 (1 回目の検証) → ユーザ承認ゲート → auto mode 実装 → レポート未記載追記 → レポート矛盾再チェック (2 回目の検証) の定型フロー。長時間タスクをもう 1 体の claude に「ダブルチェック付きで」実行させ、要所だけ自分が監督したいときに使う。
PXE/netboot 経由で Debian + HW RAID10 を自動インストール (OpenWrt ローカル TFTP + embed ipxe.efi + IPv4 リテラル mirror)。BMC USB redirector が累積劣化した機種 (TX1320 M3 等) や、 cross-site 拠点の install に使う。phase 19 で training-tx1320 で完遂、 物理操作なしで自力 SSH まで到達。
Fujitsu iRMC S4 (TX1320 M3 等) の電源・BIOS・RAID 操作 + BIOS 設定リファレンス。Redfish (HTTPS + SECLEVEL=0) 経由の電源/ブート操作 + iRMC Web UI/KVM 経由の手動 BIOS/RAID 操作手順 + 全 BIOS 設定項目の網羅リファレンス (bios/)。training-tx1320 対応。
Debian + Proxmox VE OS自動セットアップ。BMC VirtualMedia経由でpreseedインストール、PVEインストールまでを実行する。
Supermicro X11DPU/X10DRT-P BIOS Setup 操作。KVM スクリーンショット + キーストロークで BIOS メニューを操作する。BIOS 設定変更、確認、保存を行う。4-6号機 + 10号機対応。
iDRAC7 基本操作。SSH 経由で racadm コマンドを実行し、サーバ管理を行う。
| name | dell-fw-download |
| description | Dell ファームウェアダウンロード。Playwright で dl.dell.com から BIN を取得し firmimg.d7 を抽出する。 |
| argument-hint | <driver-id> <save-dir> |
Playwright で Dell サポートサイトから FW BIN ファイルをダウンロードし、iDRAC 用の firmimg.d7 を抽出する。
| 項目 | 値 |
|---|---|
| ダウンロード元 | dl.dell.com (Akamai CDN) |
| ツール | Playwright (headless Chromium) |
| 出力形式 | firmimg.d7 (iDRAC FW イメージ) |
| 前提スキル | playwright |
.venv/bin/python が利用可能であることhttps://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=<DRIVER-ID>
| バージョン | Driver ID | ファイル名 |
|---|---|---|
| 1.66.65 | 992WY | iDRAC-with-Lifecycle-Controller_Firmware_VV01T_LN_1.66.65_A00.BIN |
| 2.20.20.20 | 4P5PF | iDRAC-with-Lifecycle-Controller_Firmware_XTPX4_LN_2.20.20.20_A00.BIN |
| 2.65.65.65 | Y9YPN | iDRAC-with-Lifecycle-Controller_Firmware_0JKKT_LN_2.65.65.65_A00.BIN |
tmp/<session-id>/dell-download.py として保存:
import os, sys, time
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '.venv', 'lib'))
from playwright.sync_api import sync_playwright
DRIVER_ID = sys.argv[1] # e.g. "Y9YPN"
SAVE_DIR = sys.argv[2] # e.g. "tmp/<session-id>"
DRIVER_URL = f"https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid={DRIVER_ID}"
with sync_playwright() as p:
browser = p.chromium.launch(
headless=True,
args=["--no-sandbox", "--disable-gpu"],
)
context = browser.new_context(
accept_downloads=True,
locale="en-US",
extra_http_headers={"Accept-Language": "en-US,en;q=0.9"},
user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
)
page = context.new_page()
page.add_init_script(
"Object.defineProperty(navigator, 'webdriver', {get: () => undefined});"
)
# Dell ドライバページを訪問してセッション確立
# 注意: GEO IP により日本語ページにリダイレクトされることがある
# en-us URL を強制し、cookie 同意バナーがあれば閉じる
print(f"Visiting driver page: {DRIVER_URL}", file=sys.stderr)
page.goto(DRIVER_URL, wait_until="domcontentloaded", timeout=60000)
time.sleep(3)
# Cookie 同意バナーを閉じる (表示されている場合)
try:
reject_btn = page.locator('button:has-text("Reject"), button:has-text("すべて拒否")')
if reject_btn.count() > 0:
reject_btn.first.click()
time.sleep(1)
except Exception:
pass
# GEO リダイレクトで日本語ページになった場合、en-us URL に再アクセス
if "/en-us/" not in page.url:
print(f"Redirected to {page.url}, forcing en-us URL", file=sys.stderr)
page.goto(DRIVER_URL, wait_until="domcontentloaded", timeout=60000)
time.sleep(3)
# ダウンロードボタンをクリック
dl_btn = page.locator('a:has-text("Download")')
if dl_btn.count() > 0:
with page.expect_download(timeout=300000) as download_info:
dl_btn.first.click()
download = download_info.value
save_path = os.path.join(SAVE_DIR, download.suggested_filename)
download.save_as(save_path)
print(f"Downloaded: {save_path}")
else:
# 直接 DL URL パターン
dl_url = f"https://dl.dell.com/FOLDER00000000/{DRIVER_ID}.BIN"
with page.expect_download(timeout=300000) as download_info:
page.goto(dl_url)
download = download_info.value
save_path = os.path.join(SAVE_DIR, download.suggested_filename)
download.save_as(save_path)
print(f"Downloaded: {save_path}")
browser.close()
実行:
.venv/bin/python tmp/<session-id>/dell-download.py <DRIVER-ID> tmp/<session-id>
注意: Dell CDN は curl 直接ダウンロードを Akamai ボット検知でブロック (403 Access Denied) する。必ず Playwright 経由でダウンロードすること。
Dell の Linux BIN ファイルは自己展開型シェルスクリプト。内部に #####Startofarchive##### マーカーがあり、その後に gzip tar アーカイブが続く。
tmp/<session-id>/extract-bin.py として保存:
import gzip
import io
import os
import sys
import tarfile
bin_path = sys.argv[1] # e.g. "tmp/<session-id>/firmware.BIN"
output_dir = sys.argv[2] # e.g. "tmp/<session-id>/fw-extracted"
MARKER = b"#####Startofarchive#####"
with open(bin_path, "rb") as f:
data = f.read()
idx = data.find(MARKER)
if idx == -1:
print("ERROR: Archive marker not found", file=sys.stderr)
sys.exit(1)
# マーカー行の次の改行以降がアーカイブ
archive_start = data.index(b"\n", idx) + 1
archive_data = data[archive_start:]
print(f"Archive found at offset {archive_start} ({len(archive_data)} bytes)")
os.makedirs(output_dir, exist_ok=True)
gz = gzip.GzipFile(fileobj=io.BytesIO(archive_data))
tar = tarfile.open(fileobj=gz, mode="r:")
tar.extractall(path=output_dir)
tar.close()
# firmimg.d7 の場所を表示
for root, dirs, files in os.walk(output_dir):
for name in files:
if name == "firmimg.d7":
fpath = os.path.join(root, name)
fsize = os.path.getsize(fpath)
print(f"Found: {fpath} ({fsize} bytes)")
実行:
python3 tmp/<session-id>/extract-bin.py tmp/<session-id>/firmware.BIN tmp/<session-id>/fw-extracted
fw-extracted/
payload/
firmimg.d7 ← iDRAC FW アップデートで使用するファイル
package.xml
...
.venv/bin/python tmp/<session-id>/dell-download.py <DRIVER-ID> tmp/<session-id>python3 tmp/<session-id>/extract-bin.py tmp/<session-id>/<BIN-file> tmp/<session-id>/fw-extractedchmod 644 tmp/<session-id>/fw-extracted/payload/firmimg.d7/ja-jp/) にリダイレクトされ「ドライバーはご利用いただけません」と表示されることがある。locale="en-US" + Accept-Language ヘッダ + cookie 同意バナー閉じ + en-us URL 強制で対処する#####Startofarchive##### はファイルによって位置が異なる。バイナリ検索で動的に検出するchmod 644 を忘れないこと (tftp-server スキル参照)