diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md index 6eaddff2..6db645fc 100644 --- a/family/how-to/home-automation.md +++ b/family/how-to/home-automation.md @@ -353,6 +353,7 @@ Z2M **остановлен** с 2026-09-15 (стик отдан ZHA), данны > ⚠️ **ПЕРЕМЕРЯТЬ `head -3 /proc/meminfo` + `dmesg | grep e820` при КАЖДОМ разборе инцидента**, > не доверять записанному. `dmidecode` на t610 **НЕТ** — заполненность слотов даёт > `dmesg | grep "Memory slots"`, объём каждой планки — только BIOS setup. +> 🔧 **Процедура (флешка memtest + прошивка BIOS + UMA) — [[family/tech/t610-bios-and-memtest]].** ``` MemTotal: 3 470 792 kB = 3.31 ГиБ ← столько видит ядро (замер 2026-09-15) diff --git a/family/tech/t610-bios-and-memtest.md b/family/tech/t610-bios-and-memtest.md new file mode 100644 index 00000000..daba51f5 --- /dev/null +++ b/family/tech/t610-bios-and-memtest.md @@ -0,0 +1,284 @@ +--- +title: "🧰 t610: прошивка BIOS и тест памяти (memtest86+) — процедура" +aliases: + - t610 BIOS update + - t610 memtest + - memtest86+ флешка + - HP_TOOLS флешка + - UMA frame buffer t610 + - обновление BIOS HP t610 +tags: [family, tech, smarthome, t610, howto, bios, memory] +updated: 2026-09-17 +related: + - '[[family/tech/t610-hang-investigation]]' + - '[[family/how-to/home-automation]]' + - '[[family/how-to/t610-backup-to-truenas]]' +--- + +# t610 — обновление BIOS и тест памяти (memtest86+) + +> **Зачем:** HP t610 периодически зависает насмерть, помогает только сброс питанием. Из 4 ГБ памяти система видит 1.44 ГиБ — карта памяти от BIOS обрывается на `0x5e7fffff`, то есть память теряется **на уровне BIOS**, до ядра. +> **Что даёт эта процедура:** (1) проверка, сколько памяти видит BIOS и сколько поднимает из каждого слота; (2) поиск неисправной планки; (3) подъём BIOS с K30 v01.07 (2012) до актуальной; (4) правка UMA Frame Buffer — на t610 эта настройка крадёт до ~650 МБ памяти сверх номинала. +> **Родительская дока расследования:** [[family/tech/t610-hang-investigation]] — там формулировка задачи, факты момента смерти, что опровергнуто, кандидаты и приоритеты. **Эта дока — процедурная: как физически сделать тест памяти и обновить BIOS.** +> Связанные: [[family/how-to/home-automation]] (§3.1 RCU stall, §3.5 ограничения аддона, §3.9 память), [[family/how-to/t610-backup-to-truenas]] +> +> 🕐 **Статус 2026-09-17:** образы memtest скачаны и **SHA256 сверены** (§0). **Флешка НЕ записана** — в системе нет внешних физических дисков (только `disk0` 2 ТБ системный и `disk6` SanDisk512 NTFS). **BIOS-softpaq НЕ скачан** — номер не установлен, HP блокирует скрипты. + +--- + +## 0. Что уже скачано + +Каталог на Mac: **`~/Downloads/t610-bios-memtest/`** + +| Файл | Размер | SHA256 | +|---|---|---| +| `mt86plus_8.10_i586.iso.zip` | 232 КБ | `a55c3a12b6c4d4f444df3e5213aa85045f2629eb0d56e98a06cc31ef1cda51b9` ✅ | +| `mt86plus_8.10_x86_64.iso.zip` | 234 КБ | `93530005d6ac6a85aa2a49c68604a43c25794ecccf796c4f8849a73a8001be9a` ✅ | +| `mt86plus_8.10.binaries.zip` | 221 КБ | `7e6c5162cb84ab959aeb9d13c9cfd6976b0dec3b34936b73820b20c55eb26c29` ✅ | +| `sha256sum.txt` | — | эталонные суммы (совпали с вычисленными) | + +**Версия: memtest86+ `v8.10`** (релиз `2026-05-16`). Прямые ссылки (работают curl-ом, в отличие от HP): + +```bash +BASE=https://memtest.org/download/v8.10 +curl -sL -o mt86plus_8.10_i586.iso.zip $BASE/mt86plus_8.10_i586.iso.zip +curl -sL -o mt86plus_8.10_x86_64.iso.zip $BASE/mt86plus_8.10_x86_64.iso.zip +curl -sL -o mt86plus_8.10.binaries.zip $BASE/mt86plus_8.10.binaries.zip +curl -sL -o sha256sum.txt $BASE/sha256sum.txt +shasum -a 256 *.zip # сверить с sha256sum.txt +``` + +**Для t610 берём `i586`** — у него legacy BIOS (не UEFI), 32-битная загрузка. В v8.10 единый бинарник умеет и UEFI, и legacy, но **i586-образ — правильный выбор для этой машины**. + +⚠️ **НЕ путать два разных проекта:** `memtest.org` = **memtest86+** (open-source, есть legacy-загрузка — берём этот). `memtest86.com` = **MemTest86** (проприетарный; текущая v11.7 — **только UEFI**, на t610 **не загрузится**; для legacy у них только старая v4). + +⚠️ **BIOS-softpaq для t610 ещё НЕ скачан** — точный номер файла не найден (HP Support блокирует скриптовые запросы, `Access Denied` от Akamai). См. §2.2. + +--- + +## 1. memtest86+ — флешка и запуск + +### 1.1. Записать флешку + +**Требования:** флешка от 100 МБ, **данные будут стёрты**. + +```bash +# 1. Найти флешку — смотреть только physical, не disk image +diskutil list physical +# либо только внешние: +diskutil list external physical # ← пусто = флешка не подключена + +# 2. Распаковать образ +cd ~/Downloads/t610-bios-memtest +unzip mt86plus_8.10_i586.iso.zip + +# 3. Записать (⚠️ /dev/diskN — НОМЕР ДИСКА флешки, НЕ раздела, НЕ s1!) +diskutil unmountDisk /dev/diskN +sudo dd if=mt86plus_8.10_i586.iso of=/dev/rdiskN bs=1m +diskutil eject /dev/diskN +``` + +⚠️ `rdiskN` (raw) — в разы быстрее, чем `diskN`. +⚠️ **НЕ ОШИБИТЬСЯ С НОМЕРОМ.** На этом Mac внутренние физические диски: **`disk0`** (2 ТБ, APFS — система) и **`disk6`** (511.9 ГБ, `SanDisk512`, NTFS). Флешка — только среди `physical` **внешних**. +⚠️ В `diskutil list` **десятки `disk image` и `synthesized`** (симуляторы iOS) — их игнорировать полностью. Смотреть только строки `(internal, physical)` / `(external, physical)`. +⚠️ `diskutil list external physical` возвращает **пустоту**, если флешка не вставлена. Проверка перед записью — обязательна. + +### 1.2. Загрузиться с флешки + +1. Вставить флешку в t610 +2. Включить, нажать **F9** → Boot Menu +3. Выбрать флешку в **Legacy Boot Sources** (не UEFI) +4. memtest86+ стартует сам, тест идёт автоматически + +**Если F9 не ловится:** t610 часто грузится сразу в syslinux и игнорирует нажатия. Приём — на этом меню **Ctrl+Alt+Del** (перезагрузка), после неё F9/F10 срабатывает. + +### 1.3. Что смотреть + +- **Верхние строки экрана:** сколько памяти memtest нашёл и на каких адресах. Сверить с 1.44 ГиБ. +- **Errors:** должны быть **0**. Любая ошибка = планка неисправна, в строке будет адрес — по нему определяется модуль. +- **Гонять минимум 2–3 полных прохода**, лучше несколько часов. + +### 1.4. Тест по одной планке + +Чтобы понять, какая планка битая: +1. Снять правую боковую панель t610 → доступ к слотам SO-DIMM +2. ⚠️ **Отключить кабель питания и подождать ~30 секунд** — питание на модули подаётся, пока шнур воткнут +3. Вынуть **вторую** планку, оставить **первую** → memtest +4. Поменять местами → memtest +5. Так разводится: планка / слот / контакт + +⚠️ **На HP t610 (не PLUS) на SO-DIMM обязателен thermal pad** — без него планка перегревается. + +--- + +## 2. Обновление BIOS + +### 2.1. Текущая версия + +``` +BIOS K30 v01.07 07/27/2012 +Плата: HP t610 WW Thin Client / 17E2 +``` + +Смотреть заново: **F10** → `System Information`. + +> 📌 На parkytowers.me.uk тестировали **K30 V01.16**; там же сообщают, что обновление до **1.20 память не вернуло** — но версия 07 против 16/20 это годы патчей, поднять стоит. + +### 2.2. Скачать softpaq + +**Страница драйверов:** `https://support.hp.com/us-en/drivers/hp-t610-flexible-thin-client/5226816` + +⚠️ **HP блокирует скриптовые запросы** (`Access Denied` от Akamai). Качать **браузером вручную**. + +⚠️ **Номер softpaq для BIOS K30 не установлен.** Нужно найти на странице HP файл с описанием вида «BIOS Update» / «System BIOS», скачать `.exe` в `~/Downloads/t610-bios-memtest/`. + +### 2.3. Подготовить флешку + +**Требования (критично):** +- Таблица разделов: **DOS/MBR** +- Раздел: **FAT32**, метка ровно **`HP_TOOLS`** +- Размер: 100 МБ достаточно +- ⚠️ Флешки >32 ГБ обычно в exFAT — **не работает**. Переформатировать в FAT32. + +```bash +diskutil eraseDisk MS-DOS "HP_TOOLS" MBR /dev/diskN +``` + +### 2.4. Распаковать softpaq и разложить + +```bash +cd ~/Downloads/t610-bios-memtest +7z x .exe # 7z: brew install sevenzip (если нет) +``` + +Скопировать содержимое каталога **`ToolLess`** в **корень флешки**. В корне должен появиться каталог **`HP`**. + +### 2.5. Прошить + +1. Вставить флешку в t610 +2. **F10** → Computer Setup +3. `File` → `Flash System BIOS` → `Update System BIOS from USB` +4. Пойдёт **отсчёт 15 секунд** на отмену → дальше не трогать, не выключать +5. Обновление завершится и t610 перезагрузится сам + +### 2.6. После обновления + +- Обновление **может включить Secure Boot**. Выключить: `Security` → `Secure Boot Configuration` → **F10** → `Secure Boot: Disabled` → сохранить **F10** +- При первом бусте после смены Secure Boot попросит ввести **случайное 4-значное число** — это защита от тихой отмены Secure Boot, не ошибка + +--- + +## 3. UMA Frame Buffer — настройка, крадущая память + +**Путь в BIOS:** `Advanced` → `Device Options` → `Integrated Graphics` + +| Значение | Что делает | +|---|---| +| **Auto** | 256 МБ при 4 ГБ RAM (128 МБ при 2 ГБ) | +| **Force** | Появляется параметр **UMA Frame buffer size**: 32M / 64M / 128M / 256M / 512M / 1G | + +### Замеры parkytowers.me.uk (4 ГБ установлено) + +| UMA Frame Buffer | Свободно памяти | +|---|---| +| Auto (256 МБ) | 2 607 496 К | +| 256 МБ | 2 869 640 К | +| **128 МБ** | **3 525 000 К** | +| 64 МБ | 3 590 536 К | + +**Наблюдения автора:** +- 64 → 128 МБ: минус 64 МБ — логично +- **128 → 256 МБ: минус ещё ~650 МБ — «absurd», объяснения нет** +- Явный 256 МБ вместо Auto дал чуть больше — код инициализации Auto не выбрасывается полностью +- **Обновление BIOS до 1.20 ничего не изменило** + +> 🔴 **Вывод: на t610 надо ставить UMA Frame Buffer = 128M или 64M.** При Auto теряется существенно больше, чем номинальные 256 МБ. + +> 📌 **Гипотеза для нашего случая:** если BIOS сбросился в дефолт (жёсткое отключение питания при севшей батарейке CMOS), значение UMA могло уехать, и часть памяти «пропала». Батарейка на t610 — CR2032, доступ через левую панель. + +--- + +## 4. Диагностический чек-лист (что снять в BIOS за один заход) + +| Экран | Что смотреть | Зачем | +|---|---|---| +| `System Information` | версия BIOS, объём памяти | сколько видит BIOS | +| `Advanced → Device Options → Integrated Graphics` | значение UMA Frame Buffer | нестандартное значение = потеря памяти | +| `Storage → Device Configuration` | список устройств | проверка видимости железа | +| `Advanced → System Options` / Memory | **слот 1 и слот 2, объём каждого** | разводит: планка / слот / контакт | + +⚠️ **Из SSH-аддона объём слотов не достать** — `/dev/mem` запрещён (`Operation not permitted`), `/sys/firmware/` пуст, `dmidecode` нет. Только BIOS или доступ к хосту. + +--- + +## 5. Итог по памяти (факты) + +- Установлено **4 ГБ**, оба слота заняты (`DMI: Memory slots populated: 2/2`) +- Система видит **1.44 ГиБ** (`MemTotal 1 475 788 kB`) +- e820 от BIOS обрывается на **`0x5e7fffff` = 1.48 ГиБ** +- **Потеря ~2.5 ГиБ происходит на уровне BIOS**, до ядра +- `MemFree` 16–18 МБ при ~1 ГБ в файловом кэше — **это норма**, не признак нехватки (см. [[family/how-to/home-automation]] §3.9) + +**Гипотезы (не проверены):** +1. Планка отваливается (контакт / деградация) → тест по одной планке, memtest +2. UMA Frame Buffer в нестандартном значении → смотреть BIOS +3. BIOS не поднимает модуль → обновление BIOS +4. Батарейка CMOS села, BIOS сбрасывается при каждом отключении питания → заменить CR2032 + +--- + +## 6. 📋 Что сделано / что осталось (состояние 2026-09-17) + +### ✅ Сделано + +| # | Шаг | Артефакт | +|---|---|---| +| 1 | Найдена процедура обновления BIOS без Windows (3 источника) | §2, §8 родительской доки | +| 2 | Найдены прямые ссылки на memtest86+ v8.10 | §0 | +| 3 | **Скачаны 3 архива + sha256sum.txt** в `~/Downloads/t610-bios-memtest/` | §0 | +| 4 | **SHA256 сверены** — все три совпали с эталоном | §0 | +| 5 | Определена целевая версия для t610 (`i586`) и разведены два проекта memtest | §0 | +| 6 | Снят факт по дискам Mac: внешних физических **нет** | §1.1 | +| 7 | Инструкция записана в эту доку | — | + +### ⏳ Осталось + +| # | Шаг | Блокер | +|---|---|---| +| 1 | **Записать memtest на флешку** | 🔴 **Флешка не вставлена.** `diskutil list external physical` → пусто | +| 2 | **Скачать BIOS-softpaq** для t610 | 🔴 **Номер softpaq не установлен.** HP отдаёт `Access Denied` на скриптовые запросы. Качать **браузером** со страницы драйверов (§2.2) | +| 3 | Залить BIOS на вторую флешку (FAT32 + `HP_TOOLS`) | Зависит от п.2 | +| 4 | Снять 3 экрана BIOS (память / UMA / дата) | Нужен физический доступ к t610 (§4, §5.1 родительской доки) | +| 5 | memtest: прогон, затем **по одной планке** | Зависит от п.1 | + +> 🔴 **Порядок, который имеет смысл:** сначала **3 экрана BIOS** (1 минута, ничего не разбирая — сразу показывает, видит ли BIOS 4 ГБ и что стоит в UMA). Только потом разбирать корпус под memtest. +> Проверка «сколько памяти видит BIOS» — **самая дешёвая и самая информативная**: она разводит «BIOS не поднимает планки» и «теряется после BIOS». + +--- + +## Питфоллы + +| # | Питфолл | +|---|---| +| 1 | `dd` на `/dev/diskN` **раздел** вместо **диска** — загубит не то. Писать в `/dev/rdiskN` | +| 2 | Флешка >32 ГБ = exFAT → **BIOS с неё не обновится**. Только FAT32 | +| 3 | Метка раздела **`HP_TOOLS`** обязательна для части моделей HP | +| 4 | Обновление BIOS может **включить Secure Boot** → HA не загрузится. Выключать сразу | +| 5 | t610 не даёт войти в BIOS с первого раза — **Ctrl+Alt+Del на syslinux-меню**, потом F10 | +| 6 | Из SSH-аддона SMBIOS недоступен — объём слотов смотреть **только в BIOS** | +| 7 | При снятии панели **отключить питание и подождать 30 с** — на модулях всегда есть напряжение | +| 8 | На t610 (не PLUS) **thermal pad на SO-DIMM обязателен** | +| 9 | `MemFree` 16 МБ ≠ кончилась память. Верные метрики — `MemTotal` и `MemAvailable` | +| 10 | 🔴 **HP Support (`support.hp.com`) блокирует скриптовые запросы** — `Access Denied` от Akamai EdgeSuite на `/wcc-services/rest/…`, пустой ответ на прямые curl. Скачивать **браузером вручную** | +| 11 | ⚠️ **`ftp.hp.com/pub/softpaq/` отвечает 200 на «угаданные» имена** (`sp70221.exe`, `sp60365.exe` отдаются) — но это **НЕ значит, что это BIOS для t610**. Без точного номера качать нельзя: получишь чужой softpaq | +| 12 | 🔴 **`diskutil list` на этом Mac забит `disk image`/`synthesized`** (симуляторы iOS, 20+ записей) — легко принять за флешку. Фильтровать по `physical` + `external` | +| 13 | ⚠️ **Два разных memtest:** `memtest.org` (memtest86+, open-source, legacy OK) и `memtest86.com` (MemTest86, v11.7 только UEFI). Для legacy BIOS t610 — **первый** | + +--- + +## Связанные + +- [[family/tech/t610-hang-investigation]] — **родительская дока:** формулировка задачи, факты, что опровергнуто, кандидаты, приоритеты +- [[family/how-to/home-automation]] — главный справочник по t610 (§3.1 RCU stall, §3.5 ограничения аддона, §3.9 память) +- [[family/how-to/t610-backup-to-truenas]] — бэкап конфигов t610 +- [[family/tech/t610-bios-and-memtest]] — эта дока diff --git a/family/tech/t610-hang-investigation.md b/family/tech/t610-hang-investigation.md index 58f40d6f..ea146e5b 100644 --- a/family/tech/t610-hang-investigation.md +++ b/family/tech/t610-hang-investigation.md @@ -11,7 +11,8 @@ updated: 2026-09-17b > **Три кандидата:** (A) 🔴 **память** — стоит 4 ГБ, оба слота заняты, видно 1.44 ГБ > (§3.1.0) + 🔑 **UMA Frame Buffer в BIOS** как документированный механизм потери (§3.1.3) > + 🔑 **батарейка CMOS** (§3.1.4) · (B) деградация носителя → SQLite disk I/O (§5). -> Сессия 2026-09-17. Ниже — что проверено фактом, что опровергнуто, и что осталось. +> **Сессия 2026-09-17. Ниже — что проверено фактом, что опровергнуто, и что осталось.** +> 🧰 **Процедура (флешка memtest + прошивка BIOS + UMA):** [[family/tech/t610-bios-and-memtest]] — там пошагово, список скачанного (SHA256 сверены) и что осталось сделать. > Родительская дока: [[family/how-to/home-automation]] · §3.1 (RCU stall, закрыто), §3.5 (ограничения аддона), §3.9 (память). > > ⚡ **Читать в этом порядке:** §1.0 формулировка задачи → §1 факты момента смерти → @@ -607,3 +608,8 @@ Integrated Graphics` → **UMA Frame buffer size** → поставить **`128 | 65 | 🔴 **`slots populated: N/N` ≠ «BIOS поднял N модулей»** | Это «модули физически вставлены». Объём — отдельный вопрос. **Не выдавать одно за другое** (моя ошибка этой сессии, Alex поймал: «то есть ты напиздел») | | 66 | 🔴 **Порядок: не строить версию на одной цифре** | В этой сессии снято/опровергнуто **пять** версий подряд (template-сенсоры → swap/cache → UMA-607МБ → бэкап-джоб → «BIOS видит 2 планки»). Каждая — одна цифра без смежных фактов. **Сначала снять факты, потом формулировать** (совпадает с питфоллом 60) | | 67 | 🔴 **Не цитировать сервис-мануал/доки, когда просят ФАКТ или ПРОБЛЕМУ** | Alex прямо: «нахуя ты мне сервис мануал цитируешь?!». Цитата уместна как **обоснование шага**, не как ответ. Ответ = факт или найденная проблема | +| 68 | 🔴 **`support.hp.com` блокирует скриптовые запросы** — `Access Denied` (Akamai EdgeSuite) на `/wcc-services/rest/search/drivers`, пустой ответ на прямые `curl` | Softpaq/драйверы качать **браузером вручную**. Поиск «номера softpaq» через web_search по t610 **пустой** | +| 69 | ⚠️ **`ftp.hp.com/pub/softpaq//.exe` отдаёт `200 OK` на «угаданные» имена** (`sp70221.exe` → 6.1 МБ, `sp60365.exe` → 23 МБ) | 🔴 **Это НЕ доказательство, что файл — BIOS для t610.** Так можно скачать чужой softpaq. Без точного номера из страницы HP — **не качать** | +| 70 | 🔴 **Проверка «подключена ли флешка» — только `diskutil list external physical`** | На этом Mac `diskutil list` забит `disk image`/`synthesized` (симуляторы iOS, 20+ записей). Флешку искать по `physical` + `external`; пусто = не вставлена. **Не писать `dd` вслепую** | +| 71 | ⚠️ **Два разных проекта memtest — не путать** | `memtest.org` = **memtest86+** (open-source, legacy BIOS OK) ✅. `memtest86.com` = **MemTest86** (v11.7 **только UEFI**, на t610 не загрузится; legacy — лишь старая v4). Для t610 — **memtest86+ i586** | +| 72 | 🔴 **Порядок действий: сначала 3 экрана BIOS, потом разбирать корпус** | BIOS-проверка (память / UMA / дата) — 1 минута и **ничего не разбирая**. Разбирать t610 под memtest до неё — потеря времени. См. [[family/tech/t610-bios-and-memtest]] §6 |