Деякі проблеми сучасних ноутбуків

Апаратна віртуалізація у процесорах Intel

У старших моделях мікропроцесорів Intel Core 2 (T7xxx, T8xxx, T9xxx, P8xxx, P9xxx) є підтримка апаратної віртуалізації (VT-x, Vanderpool, Intel Virtualization Technology, VMX). Зокрема, ця підтримка необхідна для запуску 64-розрядних гостьових систем (gust systems) у віртуальних машинах (VM) як у 32-розрядних, так і 64-розрядних хостових системах. Апаратна віртуалізація необхідна, оскільки в процесорах Intel немає апаратного обмеження довгих сегментів (long segments) і для захисту своєї пам'яті менеджер віртуальних машин (VMM) змушений використовувати апаратну віртуалізацію. У 64-розрядних процесорах AMD цього обмеження немає, тому використання апаратної віртуалізації не потрібно.

Більшість моделей ноутбуків (не тільки Acer) чомусь блокує в BIOS використання апаратної віртуалізації. Хоча на сайтах виробників і у відповідях технічних служб стверджується, що віртуалізація "не підтримується" в BIOS, насправді все навпаки: BIOS знає про існування цієї можливості, інавмисноблокує її установкою в 0 розряду 2 ( маска 4, режим "VMX outside SMX") регістра MSR 0x3A (IA32_FEATURE_CONTROL), що відповідає за дозволені можливості процесора, одночасно встановлюючись в 1 розряд 0 (маска 1, "Lock"), що не дозволяє програмно змінити стан цього MSR.

Перевірити стан бітів роздільної здатності та блокування можна утилітою Securable. У розділі Hardware Virtualization відображається стан описаних бітів MSR 0x3A: "On" - віртуалізація увімкнена, "Off" - відключена, "Locked" - зміна MSR заблокована. Відповідно, типове для ноутбуків поєднання "Off/Locked" означає неможливість використання 64-розрядних гостьових систем.

Утиліта VMware для перевірки сумісності тут не працює, оскільки перевіряє лише формальні характеристики процесора CPUID, а не фактично дозволені режими.

Якби BIOS взагалі не чіпав цього регістра – будь-який віртуалізатор (VMware, Xen, VBox) міг би самостійно включити апаратну підтримку установкою розряду 2, та успішно запустити 64-розрядну VM.

Іноді виробники виправдовують такий підхід тим, що нібито "не тестували цю можливість, і віддали перевагу її заблокуванню". Однак жоден виробник комп'ютерів не проводить на своїх продуктах тестування всіх можливостей апаратури. Зустрічаються і пояснення на кшталт "це ноутбук, він для ігор і типової офісної роботи", що теж дуже дивно, бо зараз багато потужних ноутбуків за всіма характеристиками перекривають настільний комп'ютер 2-3-річного віку, а середні моделі впритул до цього наближаються, і Існує стійка тенденція до заміни настільних комп'ютерів на ноутбуки.

У ряді ноутбуків Dell та Lenovo BIOS Setup підтримує перемикання режиму віртуалізації. У деяких інших (Acer Aspire 4920/5920, Asus M50/M51/G90) вона включена, в більшості ж - відключена та заблокована.

Якщо у вашому ноутбуці віртуалізація виявилася відключеною та заблокованою - має сенс почати з звернення в технічну підтримку виробника. При цьому потрібно наголошувати на тому, що ви не просите додати будь-які потрібні вам функції, а вимагаєте усунути перешкоду,навмисностворене виробником для обмеження функціональності виробу.

Якщо ви володієте технікою дизасемблювання - можна спробувати вивчити прошивку BIOS, якщо вдасться її розпакувати (найпростіше це зробити у випадку Phoenix BIOS). Найчастіше BIOS блокує віртуалізацію не безумовно, а залежно відстану певної комірки в NVRAM, і є можливість знайти цю комірку, як описано тут.

Якщо для BIOS є засоби упаковки, то найпростіше знайти код, що встановлює блокування, та виправити його. Ось так виглядає фрагмент функції, що встановлює біти MSR 0x3A, в прошивці 1.42 для Acer Aspire 7720G:

cmp [ebp+EnableVmx], 1 jnz LockMsr push 0x3a; MSR_IA32_FEATURE_CONTROL call __readmsr push edx or eax, 4 ; VMX outside SMX enabled push eax push 0x3a; MSR_IA32_FEATURE_CONTROL call __writemsr add esp, 10h LockMsr:

Код роботи з MSR можна знайти за байтами 0F 32 (rdmsr) та 0F 30 (wrmsr). Оскільки таких команд може бути багато, а перехресні посилання в модульних BIOS шукати складно, спробуйте шаблони 3A*0F 32, 3A*0F 30, 3A*E8, де "*" - довільні байти, числом від нуля до 10-20.

Більшість прошивок має інженерний режим, в якому доступні параметри, приховані в версіях користувача - можна спробувати знайти, як цей режим включається (можливо, теж через NVRAM).

Останнім часом все частіше використовується EFI BIOS, що підтримує змінні конфігураційні змінні (Variables). Тут описано включення віртуалізації засобами EFI Intel Mac Mini.

Високочастотний свист (піск)

Тихий тонкий свист/писк на високій (16-20 кГц) частоті притаманний багатьом сучасним пристроям, оскільки в них широко використовуються перетворювачі напруги з широтно-імпульсною модуляцією (ШІМ). При правильному підборі частоти, діапазону модуляції, індуктивності дроселя та його конструктивного виконання звукові коливання випромінюються лише в ультразвуковій ділянці, яка нечутна для людини. При помилках у розрахунках та монтажі дросель перетворювача може почати випромінювати у доступному для слухудіапазоні.

Більшість людей, особливо середнього та похилого віку, або не чує коливань із частотою вище 15-16 кГц, або чує їх дуже слабо, до того ж у приміщенні навіть середньої зашумленості (офіс, робочий кабінет на кілька осіб) переважають більш гучні звуки, тому багато користувачів не відчувають свисту, навіть якщо він є. Але при роботі в тиші (житлове приміщення, індивідуальний кабінет зі звукоізоляцією тощо) постійний високочастотний звук, навіть дуже тихий, може призводити до втоми, дратівливості та головного болю.

У ноутбуках на процесорах Core 2 Duo подібний свист виникає при перемиканнях процесора в режими зниженого енергоспоживання, коли процесор починає споживати енергію більш рідкісними, ніж зазвичай, імпульсами, через що частота ШІМ у перетворювачі знижується до звукової. Якщо процесор завантажений роботою, свист не чути. Також свисту може не бути під час роботи під ОС, відмінними від Vista - наприклад, Windows XP у стандартній комплектації "не знає" про нові можливості процесорів і не використовує їх.

Найчастіше свист можна усунути зміною політики енергоспоживання процесора. Один із методів вирішення проблеми описаний українською мовою тут. Англійський оригінал – тут.

Помилки драйверів iaStor/iaStorV

У ноутбуках, що містять дискові контролери Intel ICH7/8/9 (наприклад, платформа Santa Rosa, чіпсет Intel PM965/GM965), що працює в режимі AHCI, періодично може спостерігатися залипання системи приблизно на хвилину, протягом якого безперервно світиться індикатор звернення до жорсткий диск. Після того, як індикатор гасне, система або повертається до нормальної роботи або зависає. У системному журналі з'являється запис про подію від імені службиiaStorабоiaStorV(це драйвери контролера), приблизно такого виду: "The device, \Device\Ide\iaStor0, did not respond within the timeout period." (Пристрій не відповів протягом заданого часу).

При роботі контролера в режимі IDE проблеми не виникає, але в цьому режимі не підтримується черга команд (NCQ), тому швидкість диска на випадкових запитах помітно знижується.

Проблема викликана використанням нового режиму Link Power Management (LPM), реалізованого в ICH7/8/9, і дозволяє керувати енергоспоживанням інтерфейсу між контролером і диском. Деякі SATA-диски некоректно повідомляють про безліч функцій, що підтримуються ними, і контролер намагається використовувати команди LPM, яких диск не розуміє, чому і виникає помилка, або диск підтримує операцію, але відпрацьовує її неправильно. Наприклад, так поводиться мій WD3200BEVT.

Сама по собі вона не тягне за собою втрати даних, проте контролер та/або драйвер можуть не зуміти відновити стан, і тоді система зависне, а це вже небезпечно.

Режим LPM для кожного з портів контролера управляється змінною LPM, яка знаходиться у гілці реєстру HKLM\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port , де - номер порту, починаючи з нуля. Проблему можна усунути забороною LPM, змінивши значення LPM з 1 на 0, як описано тут, та перевантажити систему. Якщо не допомогло, можна видалити ключі Port повністю.

Сильний нагрів жорсткого диска

Набагато гірша справа з жорсткими дисками, які, як правило, розміщені далеко від вентилятора охолодження, і при цьому вставлені в металевий кожух, здатний лише пасивно розсіювати тепло через шасі ноутбука. У багатьох ноутбуках жорсткий диск навіть у режимі повного простою системи нагрівається до 45-50 градусів, апід навантаженням (наприклад, у режимі дефрагментації) – до 60-70 градусів. Максимальна температура навколишнього середовища, коли диски можуть працювати нормально, зазвичай вказується в районі 50-60 градусів. З підвищенням температури швидко зростає можливість відмови диска.

Тому важливо стежити за температурою жорсткого диска, а якщо він працює "на межі" - рекомендується ставити ноутбук на підставку, що охолоджує, з вентиляторами. Існує безліч програм для стеження за температурою диска через S.M.A.R.T. - наприклад, CrystalDiskInfo (підтримує українську мову), SpeedFan (тільки англійську) або будь-якою іншою програмою, що вміє отримувати атрибути S.M.A.R.T. Усі подібні програми потрібно запускати з правами адміністратора, інакше вони не зможуть отримати значення атрибутів на диску.

Крім температури, потрібно стежити за атрибутами "Перезначені сектори", "Сектори на заміну", "Повтори рекалібрування" та всіма атрибутами помилок. У справного диска вони залишаються нульовими протягом кількох років (допускається наявність помилок CRC, якщо їх кількість не зростає - такі помилки могли виникати під час тестування через неправильне підключення диска до контролера, і його подальшу долю не впливають).