lbwww/site/docs/install/x200_external.uk.md

10 KiB
Raw Blame History

title x-toc-enable
Прошивка ThinkPad X200 вперше true

Цей розділ стосується X200. Цей не стосується X200S або X200 Tablet (для цих систем потрібно повністю видалити материнську плату, оскільки мікросхема флеш-пам'яті знаходиться з іншого боку плати).

Викрутіть ці гвинти:

Обережно притисніть клавіатуру до екрана, потім підніміть її та за бажанням від'єднайте від плати:

Від'єднайте кабель пристрою для зчитування відбитків пальців, а потім потягніть упор для рук, піднявши його ліву та праву сторону:

Тут показано розташування мікросхеми флеш-пам'яті, для обох SOIC-8 та SOIC-16:

Підніміть стрічку, яка закриває частину флеш-пам'яті, а потім приєднайте затискач:

Тепер ви повинні бути готові до встановлення libreboot.

Зверніться до інструкцій програмування SPI.

Закінчивши, знову зберіть систему. Якщо вона не завантажується, спробуйте інші модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot).

Пам'ять

У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). Пари, що не збігаються, можуть не працювати. Один модуль (тобто один із слотів буде порожнім) наразі працюватиме лише в слоті 0.

ПРИМІТКА: згідно зі звітами користувачів, у деяких випадках невідповідні пари ( 1+2 ГБ) можуть працювати в деяких випадках.

Переконайтесь, що оперативна пам'ять, яку ви купуєте, має конфігурацію 2Rx8, купуючи стіки по 4 ГБ (Іншими словами: максимально 2 ГБ на ранг, 2 ранга на картку).

На цьому фото встановлено 8 ГБ оперативної пам'яті (2x4ГБ):

Завантажуйтесь!

Ви маєте побачити щось подібне цьому:

Тепер встановлюйте Linux.

Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює.

sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від запуску (який сам по собі перешкоджає спробам прошивки). Теорія була доведена правильною; однак на практиці це все одно марно.

Подивіться трохи вище 7 у TP37 (це GPIO33):

Це замовчуванням ми побачимо це в lenovobios, під час спроби flashprog -p internal -w rom.rom:

FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only.
FREG2: Warning: Management Engine region (0x00001000-0x005f5fff) is locked.

Коли GPIO33 було заземлено під час завантаження, це вимкнуло захист флеш-пам'яті, встановлений дескриптором, і зупинило запуск ME. Результат змінився на:

The Flash Descriptor Override Strap-Pin is set. Restrictions implied by
the Master Section of the flash descriptor are NOT in effect. Please note
that Protected Range (PR) restrictions still apply.

Частина, виділена жирним шрифтом, - це те, що нас дістало. Це все ж спостерігалось:

PR0: Warning: 0x007e0000-0x01ffffff is read-only.
PR4: Warning: 0x005f8000-0x005fffff is locked.

Насправді ці засоби захисту можна відключити. Lenovobios робить це, під час оновлення BIOS (пропрієтарного). Одним із можливих способів вирішити цю проблему було б відлагодити утиліту оновлення BIOS від Lenovo, для віднаходження, як вона вимикає ці засоби захисту. Додаткові дослідження доступні тут: http://www.coreboot.org/Board:lenovo/x200/internal_flashing_research

Звичайно, ймовірно, що Lenovo BIOS перевіряє якийсь біт в пам'яті, який говорить йому не вимикати перепрошивку, а потім він не встановлює регістри PRx. Принцип роботи програми оновлення BIOS Lenovo полягає в тому, що вона спочатку виконується в Windows, а потім відбувається перезавантаження, ініціюючи перепрошивку під час раннього завантаження. Ймовірно, це встановлює щось у пам'яті та завантажує ROM, плюс програму корисного навантаження, яка виконує перепрошивання; тоді Lenovo BIOS, ймовірно, бачить це та запускає це замість встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux, а потім завантаживши двійковий файл flashprog в пам'ять та ROM для прошивки (для BIOS регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження фактично прошиє весь чіп, лише звичайним образом libreboot.

Це можливо. Ймовірно, це єдиний спосіб роботи програми оновлення BIOS Lenovo. Отже, якщо ми дізнаємося, як саме це зробити, тоді ви можете просто підключити кілька контактів pogo для заземлення GPIO33, потім завантажитися, запустити програмне забезпечення (яке потрібно було б написати), яке виконує вищезазначене.

У зв'язку з цим у libreboot є утиліта, яка може допомогти розслідувати це: ich9utils.md#demefactory