LINUX.ORG.RU

Coreboot в Lenovo G505S

 , , , ,


2

7

Здесь будем обсуждать технические вопросы работы coreboot в вышеуказанной модели.

Какую версию коребута и конфиг ты используешь?

4.10-690-g28cbab3956-dirty актуальную на 17 сентября этого года
был применен csb_patcher.sh актуальный на ту же дату.

С последним коребутом и конфигом, который предоставляет последняя версия csb_patcher.sh (с единственным изменением - включить «Cache stages in CBMEM» CONFIG_CBMEM_STAGE_CACHE в «make menuconfig -> General Setup»), всё должно быть прекрасно. Там включены важные вещи вроде «Re-run VGA Option ROMs on S3 resume» CONFIG_S3_VGA_ROM_RUN.

Ближе к выходному планирую добраться до ноута и собрать последнюю версию с твоими замечаниями.

Гибернацию пробовал разными способами через systemctl и пробовал устанавливать uswsusp, ниже скидываю логи, уже не помню какой с какого конфига, но пусть будут.

hibernate.log

Starting suspend at Вс сен 15 18:07:13 MSK 2019
hibernate: [01] Executing CheckLastResume ... 
hibernate: [01] Executing CheckRunlevel ... 
hibernate: [01] Executing LockFileGet ... 
hibernate: [01] Executing NewKernelFileCheck ... 
hibernate: [10] Executing EnsureSysfsPowerStateCapable ... 
hibernate: [11] Executing XHacksSuspendHook1 ... 
hibernate: [59] Executing RemountXFSBootRO ... 
hibernate: [89] Executing SaveKernelModprobe ... 
hibernate: [91] Executing ModulesUnloadBlacklist ... 
hibernate: [95] Executing XHacksSuspendHook2 ... 
hibernate: [98] Executing CheckRunlevel ... 
hibernate: [99] Executing DoSysfsPowerStateSuspend ... 
hibernate: Activating sysfs power state disk ...
hibernate: [90] Executing ModulesLoad ... 
hibernate: [89] Executing RestoreKernelModprobe ... 
hibernate: [85] Executing XHacksResumeHook2 ... 
hibernate: [70] Executing ClockRestore ... 
hibernate: [59] Executing RemountXFSBootRW ... 
hibernate: [11] Executing XHacksResumeHook1 ... 
hibernate: [01] Executing NoteLastResume ... 
hibernate: [01] Executing LockFilePut ... 
Resumed at Вс сен 15 18:08:13 MSK 2019
часть kernel.log

Sep 16 18:59:22 home kernel: [ 1670.114512] ACPI: Waking up from system sleep state S4
Sep 16 18:59:22 home kernel: [ 1670.115005] ACPI: EC: interrupt unblocked
Sep 16 18:59:22 home kernel: [ 1670.238546] ath: phy0: ASPM enabled: 0x43
Sep 16 18:59:22 home kernel: [ 1670.238759] ACPI: button: The lid device is not compliant to SW_LID.
Sep 16 18:59:22 home kernel: [ 1670.238777] ACPI: EC: event unblocked
Sep 16 18:59:22 home kernel: [ 1670.244954] [drm] PCIE GART of 1024M enabled (table at 0x00000000001D6000).
Sep 16 18:59:22 home kernel: [ 1670.245170] radeon 0000:00:01.0: WB enabled
Sep 16 18:59:22 home kernel: [ 1670.245173] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0x00000000d1fa9ab6
Sep 16 18:59:22 home kernel: [ 1670.245552] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000075a18 and cpu addr 0x000000007c93f808
Sep 16 18:59:22 home kernel: [ 1670.255751] radeon 0000:00:01.0: failed VCE resume (-22).
Sep 16 18:59:22 home kernel: [ 1670.255754] radeon 0000:00:01.0: fence driver on ring 1 use gpu addr 0x0000000020000c04 and cpu addr 0x00000000f9c34156
Sep 16 18:59:22 home kernel: [ 1670.255756] radeon 0000:00:01.0: fence driver on ring 2 use gpu addr 0x0000000020000c08 and cpu addr 0x000000000faac503
Sep 16 18:59:22 home kernel: [ 1670.255759] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0x00000000d5c4316b
Sep 16 18:59:22 home kernel: [ 1670.255761] radeon 0000:00:01.0: fence driver on ring 4 use gpu addr 0x0000000020000c10 and cpu addr 0x0000000046eab975
Sep 16 18:59:22 home kernel: [ 1670.262471] sd 0:0:0:0: [sda] Starting disk
Sep 16 18:59:22 home kernel: [ 1670.262524] sd 1:0:0:0: [sdb] Starting disk
Sep 16 18:59:22 home kernel: [ 1670.274018] [drm] ring test on 0 succeeded in 2 usecs
Sep 16 18:59:22 home kernel: [ 1670.274025] [drm] ring test on 3 succeeded in 3 usecs
Sep 16 18:59:22 home kernel: [ 1670.274030] [drm] ring test on 4 succeeded in 3 usecs
Sep 16 18:59:22 home kernel: [ 1670.299025] usb usb5: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.299075] usb usb4: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.299076] usb usb6: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.299118] usb usb1: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.299124] usb usb2: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.299148] usb usb3: root hub lost power or was reset
Sep 16 18:59:22 home kernel: [ 1670.319699] [drm] ring test on 5 succeeded in 2 usecs
Sep 16 18:59:22 home kernel: [ 1670.339555] [drm] UVD initialized successfully.
Sep 16 18:59:22 home kernel: [ 1670.339605] [drm] ib test on ring 0 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1670.339648] [drm] ib test on ring 3 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1670.339688] [drm] ib test on ring 4 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1670.575068] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Sep 16 18:59:22 home kernel: [ 1670.575586] ata1.00: supports DRM functions and may not be fully accessible
Sep 16 18:59:22 home kernel: [ 1670.583070] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Sep 16 18:59:22 home kernel: [ 1670.583605] ata1.00: disabling queued TRIM support
Sep 16 18:59:22 home kernel: [ 1670.595673] ata2.00: configured for UDMA/133
Sep 16 18:59:22 home kernel: [ 1670.601400] ata1.00: supports DRM functions and may not be fully accessible
Sep 16 18:59:22 home kernel: [ 1670.609416] ata1.00: disabling queued TRIM support
Sep 16 18:59:22 home kernel: [ 1670.626727] ata1.00: configured for UDMA/133
Sep 16 18:59:22 home kernel: [ 1670.626819] ata1.00: Enabling discard_zeroes_data
Sep 16 18:59:22 home kernel: [ 1670.651058] usb 3-1: reset high-speed USB device number 2 using ehci-pci
Sep 16 18:59:22 home kernel: [ 1670.651066] usb 2-2: reset high-speed USB device number 2 using ehci-pci
Sep 16 18:59:22 home kernel: [ 1670.775061] usb 4-3: reset full-speed USB device number 4 using ohci-pci
Sep 16 18:59:22 home kernel: [ 1670.879079] [drm] ib test on ring 5 succeeded
Sep 16 18:59:22 home kernel: [ 1670.898948] radeon 0000:00:01.0: scheduling IB failed (-12).
Sep 16 18:59:22 home kernel: [ 1670.898982] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
Sep 16 18:59:22 home kernel: [ 1670.899006] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
Sep 16 18:59:22 home kernel: [ 1670.899033] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 6 (-12).
Sep 16 18:59:22 home kernel: [ 1670.899036] radeon 0000:00:01.0: scheduling IB failed (-12).
Sep 16 18:59:22 home kernel: [ 1670.899059] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
Sep 16 18:59:22 home kernel: [ 1670.899083] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
Sep 16 18:59:22 home kernel: [ 1670.899107] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 7 (-12).
Sep 16 18:59:22 home kernel: [ 1670.960123] usb 4-3: device firmware changed
Sep 16 18:59:22 home kernel: [ 1671.115064] usb 4-1: reset full-speed USB device number 2 using ohci-pci
Sep 16 18:59:22 home kernel: [ 1672.827763] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
Sep 16 18:59:22 home kernel: [ 1672.827793] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
Sep 16 18:59:22 home kernel: [ 1674.419867] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
Sep 16 18:59:22 home kernel: [ 1674.419896] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
Sep 16 18:59:22 home kernel: [ 1674.612065] [drm] PCIE gen 2 link speeds already enabled
Sep 16 18:59:22 home kernel: [ 1674.616996] [drm] PCIE GART of 1024M enabled (table at 0x0000000000040000).
Sep 16 18:59:22 home kernel: [ 1674.617104] radeon 0000:01:00.0: WB enabled
Sep 16 18:59:22 home kernel: [ 1674.617107] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0x000000008142b7ae
Sep 16 18:59:22 home kernel: [ 1674.617109] radeon 0000:01:00.0: fence driver on ring 1 use gpu addr 0x0000000080000c04 and cpu addr 0x00000000db103000
Sep 16 18:59:22 home kernel: [ 1674.617111] radeon 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000080000c08 and cpu addr 0x000000001f132c39
Sep 16 18:59:22 home kernel: [ 1674.617113] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0x000000002abdea69
Sep 16 18:59:22 home kernel: [ 1674.617114] radeon 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000080000c10 and cpu addr 0x000000007cc81fc4
Sep 16 18:59:22 home kernel: [ 1674.830263] [drm] ring test on 0 succeeded in 1 usecs
Sep 16 18:59:22 home kernel: [ 1674.830268] [drm] ring test on 1 succeeded in 1 usecs
Sep 16 18:59:22 home kernel: [ 1674.830272] [drm] ring test on 2 succeeded in 1 usecs
Sep 16 18:59:22 home kernel: [ 1674.830279] [drm] ring test on 3 succeeded in 3 usecs
Sep 16 18:59:22 home kernel: [ 1674.830284] [drm] ring test on 4 succeeded in 3 usecs
Sep 16 18:59:22 home kernel: [ 1674.830403] [drm] ib test on ring 0 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1674.830454] [drm] ib test on ring 1 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1674.830480] [drm] ib test on ring 2 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1674.830503] [drm] ib test on ring 3 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1674.830525] [drm] ib test on ring 4 succeeded in 0 usecs
Sep 16 18:59:22 home kernel: [ 1674.885144] Restarting kernel threads ... 
Sep 16 18:59:22 home kernel: [ 1674.885536] usb 4-3: USB disconnect, device number 4
Sep 16 18:59:22 home kernel: [ 1674.885938] done.
Sep 16 18:59:22 home kernel: [ 1674.885993] PM: Basic memory bitmaps freed
Sep 16 18:59:22 home kernel: [ 1674.885994] OOM killer enabled.
Sep 16 18:59:22 home kernel: [ 1674.885995] Restarting tasks ... done.

хз откуда этот кусок, одна из неудачных попыток, но там даже была видна ошибка
во время работы systemd если я правильно понял, в основном этот этап проходил без сбоев

[   11.812535] Hibernate inconsistent memory map detected!
[   11.812570] PM: Image mismatch: architecture specific data
[   11.812598] PM: Read 935108 kbytes in 0.01 seconds (93510.80 MB/s)
[   11.813703] PM: Error -1 resuming
[   11.813710] PM: Failed to load hibernation image, recovering.

[   11.814091] PM: Basic memory bitmaps freed
[   11.814092] OOM killer enabled.
[   11.814093] Restarting tasks ... done.
[   11.817448] PM: resume from hibernation failed (-1)
[   11.892302] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)

★★★
Ответ на: комментарий от Johan_helm

Здравствуй, Johan_helm ! Поздравляю, и надеюсь это железо порадует тебя)

какие дистры вы ставите на этот ноут?

Например, Artix Linux - дружелюбный Arch с OpenRC вместо SystemD и свежими драйверами/софтом. Или Qubes OS - она пусть и основана на Fedora/SystemD, но обещает хорошую безопасность благодаря встроенной системе виртуализации.

Если выбирать среди «свободолюбивых» дистров, одобренных FSF, то я бы выбрал посвежее т.е. арчеподобный - Parabola. Главное, для ноута G505S прикупить MiniPCIe WiFi модуль из семейства ath9k - потому что в большинстве G505S изначально стоит дурацкий броадком который плохо работает с опенсорсом и требует несвободных драйверов/прошивок. а вот ath9k беспроблемно работает в любом линуксовом дистрибутиве, включая FSF-шные без несвободных фирмварей. модуль AR5B22 на чипе AR9462 - лучший из семейства ath9k: 300MBit/s, есть и 2.4GHz и 5GHz , можно приобрести за ~500 рублей у китайцев.

Попробовал поставить PureOS - так в ее ядре нету дров на видеядра ноута и проца, поэтому не стартуют иксы

Может иксы не стартуют не из-за отсутствия дров, а из-за кривизны дистра? Просто если бы были какие-то несвободные компоненты в дровах, из-за которых эти дрова бы выкидывали из свободных дистров - то и на Trisquel тогда графоний бы не заводился, но он там заводится (я лично проверял, да и вполне нормально сидел на Trisquel какое-то время пока не захотелось софта посвежее).

Надо понимать, что PureOS создала и поддерживает компания Purism прежде всего для своих ноутов Librem! Думаю, остальное железо поддерживается там по остаточному принципу и вполне может и не работать.

Вообще, «нужность» именно «свободного» дистра - зависит от конкретного железа: ведь даже обычные дистрибутивы Linux если и используют несвободные компоненты - то только от безысходности, из-за отсутствия опенсорсных альтернатив. И если железо G505S нормально работает в «свободном» дистре (с заменённым WiFi разумеется) - т.е. на 100% опенсорсе - то и на обычном дистре он проприетарщины использовать не должен; конечно лучше на всякий случай проверь это чтобы удостовериться.

ASUS F2A85-M

Этой матплаты у меня нет, но - когда будешь собирать коребут под неё - можешь взять за основу конфиг от A88XM-E который предоставляется скриптом csb_patcher.sh со страницы Lenovo G505S hacking. В крайнем случае может потребоваться поменять блоб AtomBIOS и PCI ID'шники встроенной видеокарты, если у A10-6800K они отличаются от A10-6700 который используется в конфиге, хотя по идее HD-8670D у них обоих стоит.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Спасибо за оперативный ответ. Qubes и artix возможно попробую. Trisquel ставил на оба аппарата, все заведомо, но дистр явно корявый. Ещё ставил на оба аппарата опенсюсю- она встала как родная. Сейчас пока упражняюсь с дебианом. По поводу coreboot назрел следующий вопрос: загрузка с какого типа разметки диска там поддерживается mbr или gpt? И ещё есть ли возможность в coreboot засунуть загрузку с nvme диска??

Johan_helm
()
Ответ на: комментарий от Johan_helm

загрузка с какого типа разметки диска там поддерживается mbr или gpt?

Набор поддерживаемых разметок диска зависит от того, какую «полезную нагрузку» ты используешь совместно с coreboot: ведь он сам по себе лишь инициализирует железо, после чего передаёт управление «полезной нагрузке» - которая предоставляет пользователю интерфейс, выбор откуда грузиться и т.д.

По умолчанию это - SeaBIOS, им пользуется большинство коребутчиков. я люблю его за простоту и возможность загрузки виртуальных дискет вроде KolibriOS - но он пока что поддерживает только MBR. Если нужен именно GPT, то можно выбрать Tianocore, но он и жирнее и сложнее.

Есть ли возможность в coreboot засунуть загрузку с nvme диска

Помимо физической возможности подключения NVMe, зависит от качества версии coreboot под конкретное железо. По крайней мере на некоторых платформах это работает.

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

Например, винда капризна в плане ACPI который не у всех coreboot’овских моделей ПК идеален - поэтому может и глючить, и вообще не работать, тут уж как повезёт.

С этим можно что то придумать ? Я выяснил что из под оффтопика flashrom не умеет делать внутреннюю прошивку. Не хочется проприетарщину искать.

Вобщем я хочу иметь возможность либо делать внутреннюю прошивку из под оффтопика, либо чтобы с заводским бивисом грузился linux.

BLOBster ★★★
() автор топика
Ответ на: комментарий от BLOBster

винда капризна в плане ACPI который не у всех coreboot’овских моделей ПК идеален

С этим можно что то придумать ?

Да: насобирать всяких логов, посмотреть как сделан ACPI у «более успешных в плане винды» коребутовских компов (особенно повезёт если попадётся AMD-шный хороший пример), и пытаться улучшить ACPI для G505S. Но тут довольно много возни, и польза для чисто линуксоида - неочевидна.

делать внутреннюю прошивку из под оффтопика

эта возможность зависит от того, насколько качественный порт flashrom под винду: ведь он популярен прежде всего в среде линуксоидов

чтобы с заводским бивисом грузился linux

Ты уже попробовал этот способ? (включить бэкдор сетевой загрузки «PXE» и поместить её первой в Boot priority). Мне он помог в своё время, когда убунта с проприетарным биосом не грузилась.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Ты уже попробовал этот способ? (включить бэкдор сетевой загрузки «PXE» и поместить её первой в Boot priority). Мне он помог в своё время, когда убунта с проприетарным биосом не грузилась.

Сработало, еще 2 нюанса в этом способе, нужен родной модуль wifi и необходимо в recovery mode выполнить update-grub перед загрузкой linux, иначе виснет.

Таким образом dual boot на ноуте работает как со стоковым биосом так и с coreboot.

BLOBster ★★★
() автор топика
Ответ на: комментарий от BLOBster

Для работы виртуалок в стоке потребуется включить опцию SVM Support, по умолчанию после прошивки она почему-то выключена.

BLOBster ★★★
() автор топика
9 ноября 2021 г.
Ответ на: комментарий от SakuraKun

Я тут пытаюсь вспомнить какие запчасти покупать для перепрошивки, я смог заинтересовать еще одного товарища нашей моделью, нашел сразу комплект программатор + прищепка с проводами, разве что программаторы все черные, есть ли смысл заморачиваться с поиском зеленого или и так сойдет ?

У меня чип сгорел после нескольких перепрошивок и с зеленым программатором, не думаю что в этом была его вина.

Upd

Зеленый

Прищепка с проводами

BLOBster ★★★
() автор топика
Ответ на: комментарий от BLOBster

Ориентировочный список запчастей для прошивки БИОСа - в этой таблице, а дополнительных - для прошивки мультиконтроллера KB9012 - в этой. Да, лучше покупать зелёный программатор: так меньше шансов нарваться на 5-вольтовый. А прищепку лучше брать отдельно и с полноценными штырьками, чтобы 1P 2.54mm проводки туда можно было подсоединять/отсоединять: чтобы удобно использовать провода покороче и медные, а не длинные алюминиевые.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.