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)

★★★

Вредные советы. Можно поиграться, если у тебя есть программатор, хотя бы простенький, китайский.

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

Как раз такой есть, первый раз им прошивал потом выяснилось что можно прошить из ОС без окирпичивания, теперь не мучаюсь с разборкой/сборкой.

Новая версия вышла Релиз Coreboot 4.11

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

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

Тут не скажу, я не программист. Стоит изучить различные сигналы мульта, как минимум.

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

Ну как, уже попробовал более свежий коребут? Там csb_patcher.sh обновился и теперь конфиг не нужно вручную менять: просто качаешь, собираешь и устанавливаешь.

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

Пока нет, но я выяснил что аналогичная проблема с гибернацией/слипом есть у людей кто в ноут SSD поставил, это независимо от корбута, сейчас под виндой проверил - гибернация работает(винда живет на HDD вместо DVD) так что нужно в другом направлении копать, зря я на coreboot думал.

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

В любом случае обновить coreboot стоит, чтобы исключить лишний вариант из рассмотрения и хотя бы освежить память как он собирается - ведь твой сентябрьский уже не очень свежий ;) Почему бы и нет, вдруг поможет.

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

Наконец собрал новую версию, учел те 2 опции и попытался выключить дискретку тем, что не включал в конфиге и не добавлял блоб от нее, от встроенки добавил и проверил с помощью cbfstool после компиляции.

Использовал csb_patcher + появились новые опции и частично поменялись старые, старался их не трогать, может 1-2 поменял где более менее был уверен, еще дал блобу встроенки нативный режим исполнения вместо секурного.

В результате - нет питания на дисплей и пришлось раскирпичивать прищепкой на старую версию, скидываю обе

https://pastebin.com/LakyW44n - рабочий
https://pastebin.com/AaEvAjVy - косячный

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

Еще временно прошивал на вендорскую прошивку, оказалось температура в простое в среднем на 3-4 градуса ниже, еще напрягает что в корбуте дискретка в идле топит до 47-50 градусов, это как то можно пофиксить ? или это нормально ?

В команде разработчиков можно кому то задонатить чтобы пофиксили пару проблем ?

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

Ты csb_patcher добывал при помощи csbget из http://dangerousprototypes.com/docs/Lenovo_G505S_hacking ? я обнаружил что последняя ревизия csb_patcher - 15 ( https://review.coreboot.org/c/coreboot/+/33509 ) а csbget качает 13 (в нём - wget «https://review.coreboot.org/changes/33509/revisions/13/patch?zip») и этот немного устаревший csb_patcher добывает старый конфиг. Нужно или вручную качать 15 или ждать пока csbget обновится.

Если сравнивать твой рабочий конфиг или который добывается свежим (15) csb_patcher - https://review.coreboot.org/c/coreboot/+/32352 - с косячным, видно что в косячном нету строчки CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT=«southbridge/amd/agesa/hudson/bootblock.c», скорее всего из-за этого он и не грузится - застревает на начальной инициализации и до дисплея дело не доходит.

Для выключения дискретки нужно в ./src/mainboard/lenovo/g505s/devicetree.cb поменять «device pci 2.0 on end # Discrete Graphics PCI bus 0x666X» обратно на «device pci 2.0 off end», или не применять патчи для дискретки в csb_patcher (ответ N на первый вопрос).

В команде разработчиков можно кому то задонатить чтобы пофиксили пару проблем ?

А что за проблемы? Если они нам «по пути», то и без донатов пофиксим.

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

Да, при помощи csbget.

В остальном понял, проверю, поправлю.

Насчет проблем

  1. хотелось бы сделать плавное повышение/понижение частоты ЦП под нагрузкой/без как в вендорской прошивке, чтобы поменьше грелся и шумел вентилятор, выгода очевидна
  2. еще возможность включения отключения дискретки по мере необходимости без пересборки с перепрошивкой, хотя наверняка и через ОС можно, без удаления блоба и чтоб на полную мощность не топила без нагрузки, хотя может 47-50с и есть норм температура.
  3. выковырять где то блоб вебки, иметь возможность его встраивать и включать/отключать.
  4. гибернация/S3, ну это может не совсем по адресу, на харде гибернация действительно работает без проблем, в т.ч. с коребутом, c SSD не хочет, пытаюсь понять почему
BLOBster ★★★
() автор топика
Ответ на: комментарий от BLOBster

С Новым Годом ;)

Обновился csb_patcher.sh (https://review.coreboot.org/c/coreboot/+/33509) и патчи которые он использует, а также csbget.sh на http://dangerousprototypes.com/docs/Lenovo_G505S_hacking ; сейчас всё работает.

  1. После скачивания свежайшего коребута и применения последнего csb_patcher, попробуй изменить в ./coreboot/src/mainboard/lenovo/g505s/buildOpts.c , строка 146 , #define BLDCFG_PLATFORM_CPB_MODE с CpbModeDisabled на CpbModeAuto , протестируй и скажи - отразилось ли это на производительности ноута и его температурах? Кстати, в этом файле можно настраивать много чего относящегося к AGESA, если найдёшь что ещё интересное - напиши! Надеюсь, CpbModeAuto сработает и утилита https://github.com/turionpowercontrol/tpc не пригодится.

  2. Чувствуется ли разница по температурам если ты полностью отключаешь дискретку программно, то есть выключено device pci 2.0 off end # Discrete Graphics PCI bus 0x666X в твоём ./src/mainboard/lenovo/g505s/devicetree.cb строка 30 ? (off отключает эту шину, коребут не видит устройство на ней и не пытается его инициализировать - то есть даже если ты добавил блоб дискретки в образ, он на неё не подгружается) . Или дискретка всё так же топит?

Возможно, этот параметр включения шины с дискреткой on/off можно сохранять в CMOS и сделать так чтобы через дополнение nvramcui можно было его настраивать. Правда если у платы сбоит CMOS, то попытка доступа туда приводит к жёсткому зависанию - а такие платы иногда попадаются! Поэтому не очень хочется видеть это в официальной ветке, разве что как кастомный мод применяемый csb_patcher. Сейчас CMOS-память в конфиге G505S не используется вообще.

  1. Сомневаюсь что у вебки есть блоб, скорее SeaBIOS неуклюжими попытками загрузиться с неё как с USB-устройства приводит её в неадекватное состояние - судя по тому, что в начале включения ноута её лампочка загорается в первый и последний раз. Если это действительно так, думаю можно найти способ запретить SeaBIOS пытаться грузиться с USB-устройства если его VID PID как у вебки, но тогда нужно будет ещё придумать как и где включать/выключать этот запрет (если запрет выключен, то SeaBIOS будет намеренно ломать вебку чтобы она не работала). Неясно, можно ли это делать на экране выбора источника загрузки - ведь стадия инициализации USB устройств уже прошла?!

  2. https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Power_states . Проверил, S3 Suspend работает с обычным хардом, конфигом от свежего csb_patcher выше и Artix Linux - отлично засыпает и просыпается, ничего не теряя. S4 Hibernation тоже просыпается, но состояние системы не сохраняется и не восстанавливается: Artix включается как будто это свежий старт, не знаю, может быть это линуксовая проблема? (но по крайней мере ничего не зависает). У меня нет ни одного SSD, поэтому S3 с SSD протестить не могу! А так, если бы я столкнулся с проблемой S3 на SSD, пересобрал бы coreboot с включенными Generic Drivers -> USB 2.0 EHCI debug dongle support , Type of dongle (FTDI FT232H UART) в menuconfig - и, используя пару USB-адаптеров FT232H один из которых вставлен в USB 2.0 правый порт ноута и программу GNU screen - sudo screen /dev/ttyUSB0 115200 в режиме Ctrl+A Shift+H, - снять логи коребута на другой комп и посмотреть их. Напомни, у тебя есть хотя бы один FT232H, чтобы получить эти логи?

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: С Новым Годом ;) от SakuraKun

Привет, с наступившим :)

По первым двум пунктам сделаю до конца новогодних, постараюсь всё учесть и ничего не забыть.

Насчет дискретки, прошил сентябрьскую версию на другой g505s с другой дискреткой, так что блоб получился неправильный, в результате дискретка не инициализируется и не греется, ноут не шумит и холодный) С твоими опциями поиграюсь на своем.

По вебке - могу временно залить вендорский блоб и из ОС вытащить любую необходимую инфу по ней какую скажешь, если не ошибаюсь она и является USB устройством. Могу поискать в логах что есть по ней на данный момент. Сейчас есть какое то неопознанное устройство ввода.

По 4 пункту суспенд и слип и у меня работают, но только с HDD. Я вычитал что они могут не работать из за ограничений самого SSD и ни коребут ни ОС тут не при чем.
По твоему совету по отладке - FT232H у меня пока нет, куплю потом подиагностируем.

Еще нужно придумать алгоритм раскирпичивания когда не заработал дисплей чтоб запустить процесс вслепую, с прищепкой корячиться неохота)

BLOBster ★★★
() автор топика
Последнее исправление: BLOBster (всего исправлений: 1)
10 мая 2020 г.

А кто-то пробовал собирать с uefi? Я попробовал tianocore и yabits с ними не включился экран, так что в целом не получилось ничего. С seabios загружалось, но через пару минут все висло намертво, мемтест сразу же после запуска начинал сыпать ошибками (при проверке оперативки с родной прошивкой никаких ошибок), в логе при запуске строчка что не удалось прочитать spd. Пробовал на последнем на данный момент coreboot (29fbfcc472) с csb патчами 29 версии. Пока экспериментировал разлохматил шлейф кнопки включения (так то я его восстановил, но дорожки еле держатся), так что пока не придет заказанная в качестве страховки новая кнопка со шлейфом не буду экспериментировать (ноут все же для работы используется).

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

А зачем тебе UEFI/Tianocore? По сравнению с Tianocore, SeaBIOS намного проще сконфигурировать и заставить работать, + у него намного меньше исходники/бинари. Размер исходников SeaBIOS относительно мал: всего-то 50 тысяч строк, что намного меньше ~27.8 миллионов строк линуксового ядра или Tianocore'овского ~1 миллиона. То есть, заметно меньше поверхность атаки и меньше места занимает в CBFS биос-чипа. я не вижу никаких разумных причин для Tianocore, учитывая что пока не существует UEFI-only ОС (и мы должны бойкотировать их если они появятся)

К тому же, SeaBIOS поддерживает загрузку дискетных ОС вроде KolibriOS или FreeDOS (добавленных в CBFS биос-чипа с LZMA-сжатием). Это открывает доступ к очень интересным возможностям: например, добавь KolibriOS https://kolibrios.org/ (маленькая опенсорсная ОС написанная на ассемблере, с графическим интерфейсом и кучей прог - всё внутри 1.44MB !) и если она поддерживает твой Ethernet-контроллер: ты сможешь прямо из БИОСа заходить в интернет простеньким браузером или секурно початиться с друзьями, используя IRCC-клиент с кастомным шифрованием вроде http://board.kolibrios.org/viewtopic.php?t=3734 - и всё это под простейшей ОС, которая не подвержена уязвимостям сложных ОС вроде Linux с его SystemD (https://linux.slashdot.org/story/17/07/29/1647255/systemd-named-lamest-vendor...), и даже если ты выберешь что-то вроде Void (runit) или Artix (OpenRC) чтобы избежать SystemD - в линуксе много и других проблем.

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

С seabios загружалось, но через пару минут все висло намертво, мемтест сразу же после запуска начинал сыпать ошибками (при проверке оперативки с родной прошивкой никаких ошибок), в логе при запуске строчка что не удалось прочитать spd.

Что за модель оперативки, сколько планок, одинаковые ли они, и есть ли у них XMP-профиль в SPD? Благодаря патчам из https://review.coreboot.org/c/coreboot/ /40495 ты можешь выбрать XMP-профиль 1 или 2 (нужно чтобы он был в обоих планках!) и даже подменить буфер значений, считанный из SPD-памяти, своими значениями - зафорсив этим кастомные тайминги/частоты даже если эта память отвалилась, например. Главное чтобы там какого-то return 1 не было в случае ошибки считывания SPD, чтобы эти тайминги смогли зафорсится - этого я пока не смотрел.

Пробовал на последнем на данный момент coreboot (29fbfcc472) с csb патчами 29 версии.

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

Пока экспериментировал разлохматил шлейф кнопки включения

Эти шлейф можно купить отдельно (6P 1.0mm зазор, вообще - думаю, у всех шлейфов этого ноута зазор между контактами 1.0mm) и припаять к плате с кнопкой, или даже создать свою кнопку подсмотрев схематик на матплату ноута LA-A091P. Там просто два контакта закорачиваются.

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

Оказалось, в ветку coreboot master недавно прилетели нехорошие коммиты, возможно поэтому у тебя всё и не работает. После git clone сделай git reset –hard e6fb1344ed9188e19be4b54bdf1a76680b8c4523 чтобы откатиться на последний рабочий коммит, или можешь подождать пока в master всё исправят.

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

Какой переходник ты имеешь в виду? Если ты про HDMI или VGA: монитор через HDMI работает, только что затестил; по-моему и VGA работает, но лень перепроверять. а та плата LVDS —> HDMI, так и не дошли руки

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

Вверху справа - это для замка Kensington, а HDMI - полноценный полноразмерный, слева.

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

В последней версии (f9d3d33a55) проблем с оперативкой больше нет (мемтест проходит, хоть внизу и висит подозрительная надпись «LENOVO INVALID») все определяется и загружается (по крайней мере с флешки). А вот с установленным calculate linux проблемка вылезла (при загрузке с флешки ничего подобного не наблюдалось), после того как загружается sddm и просит ввести пароль проходит несколько секунд и все намертво виснет, клавиатура и тачпад перестают реагировать, каретка в поле ввода перестает мигать. При чем это же происходит даже если успеть переключиться в одну из текстовых консолей. Потом может еще поразбираюсь, пока откатился обратно. Потому что в логах systemd и xorg ничего полезного найти не удалось. При загрузке какие-то еще ошибки acpi вылезали в самом начале, может с ними связано что-то, а может и нет.

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

висит подозрительная надпись «LENOVO INVALID»

Не смогло определить модель ноута - это нормально.

с установленным calculate linux проблемка вылезла

Чтобы понять, дело в coreboot или нет, ты можешь:

1) проверить другой дистрибутив, например Artix - https://artixlinux.org/ - отличный удобный арч без еретического SystemD

2) затестить гарантированно рабочую сборку coreboot отсюда - https://github.com/mikebdp2/coreboot-g505s-builds

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

Похоже проблема в дистрибутиве, на оригинальном биосе если не в uefi режиме загружать, то те же проблемы: на установленной системе виснет, при загрузке с флешки подвисает тачпад и то работает то нет.

p_hamper
()

А как обстоят дела с гибридной графикой? Она и на Windows 10 работает только с определённой версией драйвера. Подскажите годную статью по прошивке coreboot.

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

с БИОСом coreboot и на Linux - работает «спихивание вычислений» с интегрированной видеокарты на дискретку при помощи DRI_PRIME=1 . А чтобы одновременно две видеокарты для одной проги задействовать (если ты именно это понимаешь под «гибридной графикой») - не знаю, возможно ли...

Годная статья по прошивке с полным описанием процесса/инструментов - http://dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate , краткая инструкция по сборке - http://dangerousprototypes.com/docs/Lenovo_G505S_hacking , несколько готовых сборок - https://github.com/mikebdp2/coreboot-g505s-builds (могут пригодиться если есть проблемы со свежей версией coreboot или просто хочешь затестить, а так - лучше собирать самому, а то вдруг там бэкдоры ;-)

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 2)
27 сентября 2020 г.
Ответ на: комментарий от SakuraKun

Здравствуйте. Я купил на авито не рабочий g505s специально для установки coreboot. Материнская плата была убитая, заказал на али и сразу с R5 M230 пришла, подкинул, запускается, но нет изображения, видно плата после ремонта была. Заказал ещё одну, пришла запускается, но изображение только на внешний монитор, при осмотре выявил, сгоревший транзистор напротив разъёма для шлейфа матрицы и два округлых электролитических конденсатора, в общем после замены с дохлой материнки всё запустилось и работает. Теперь руки покоя не дают :). Что планирую сделать:

  1. Заменить электролиты на более качественные, так как при сравнении с предыдущей, не рабочей материнской платой складывается ощущение, что на фабрике, ставят те компоненты, которые у них сейчас есть в наличии. Конденсаторы разных производителей, VRAM Hynix, пришла с Micron, а по даташиту бывает ещё и с Samsung.
  2. На видео чип идёт одна фаза питания, хотя на не которых фото материнских плат можно обнаружить и вторую фазу.
  3. Добавить не распаянные защитные диоды на usb, lan и ещё где найду. Посадочные места есть, в даташите они указаны, но капиталисты оптимизируют.
  4. И самое главное, хочу добавить VRAM до 4ГБ, и возможно заменить сам видиочип с R5 M230 на R7 M260, посадочные места у них идентичные, и вроде на других ноутах такой фокус проделывали с модификацией BIOS. Самое главное, чтобы заработал Coreboot с этими манипуляциями.
pinokio
()
Ответ на: комментарий от pinokio

Здравствуйте! Отвечу на 4) с программной точки зрения для coreboot, а модификации железа остаются за вами ;)

У дискретных видеокарт для стационарных ПК - образ AtomBIOS хранится в чипе SPI Flash. Но на материнских платах большинства ноутбуков, включая Lenovo G505S, у дискретки нет собственной памяти для хранения AtomBIOS: вместо этого он хранится в том же чипе SPI Flash, что и БИОС ноутбука. При включении ноутбука, его БИОС обнаруживает PCI устройства, считывает их класс - и, помимо прочего, на видеокарты (PCI_CLASS_DISPLAY_VGA, PCI_CLASS_DISPLAY_OTHER) подгружает подходящий AtomBIOS соответствующий идентификаторам видеокарты VID/PID, и запускает.

Для того, чтобы coreboot это делал не только для встроенной видеокарты, но и для дискретной, мы немного изменили его код. Некоторые патчи пока ещё не приняты официально - https://review.coreboot.org/c/coreboot/ /39873 - но их можно автоматически установить в свой coreboot при помощи скрипта csb_patcher.sh - https://review.coreboot.org/c/coreboot/ /33509 , http://dangerousprototypes.com/docs/Lenovo_G505S_hacking

Внутри проприетарных БИОСов, почему-то эти бинарники AtomBIOS не всегда лежат готовыми к употреблению: по крайней мере у Lenovo G505S, AtomBIOS для HD-8570M и R5-M230 хранились не-инициализированными, и многие поля их структур данных заполнялись проприетарным БИОСом в процессе включения ноута. Разумеется, coreboot так не делает, он сразу подгружает! И если он подгрузит не-проинициализированный должным образом AtomBIOS, или вообще его не подгрузит - потому что не нашёл соответствующего pci1234,5678.rom в своей CBFS (VID=1234,PID=5678) - то сам coreboot загрузится, а видеокарта, хоть и будет показываться в списке PCI устройств, не заработает. В логе ядра Linux, доступного по команде dmesg, окажутся сердитые сообщения вроде

[drm] amdgpu kernel modesetting enabled.
[drm] initializing kernel modesetting (HAINAN 0x1002:0x6665 0x0000:0x0000 0x00).
[drm] register mmio base: 0xF0300000
[drm] register mmio size: 262144
amdgpu 0000:04:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000
[drm] vbios mem is null or mem size is wrong
amdgpu 0000:04:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000
[drm] vbios mem is null or mem size is wrong
[drm:amdgpu_get_bios [amdgpu]] *ERROR* Unable to locate a BIOS ROM
amdgpu 0000:04:00.0: Fatal error during GPU init
[drm] amdgpu: finishing device.
- ругнётся и ничего не сделает, если не подгрузить, или
[drm:atom_op_jump [radeon]] *ERROR* atombios stuck in loop for more than 5secs aborting
[drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing ...
- застрянет в каком-то цикле, если подгрузить не-проинициализированный (например, выдранный из проприетарного БИОСа Insyde при помощи H2OEZE)

Поэтому, помимо важных изменений в коде coreboot, нам нужно было добыть проинициализированные AtomBIOS для дискретных видеокарт HD-8570M и R5-M230 со включенных Lenovo G505S разных модификаций и последней версией проприетарного БИОСа (чтобы и AtomBIOS внутри него был посвежее). Это было не так-то просто: обычные способы не работали, помог лишь полный дамп оперативки при помощи BelkaSoft Live RAM Capturer и поиск внутри него HEX-редактором, причём некоторые из найденных образов оказывались повреждёнными. Полная инструкция - https://mail.coreboot.org/pipermail/coreboot/2017-July/084660.html , добытые образы - https://github.com/g505s-opensource-researcher/g505s-atombios . Теперь, после установки последних патчей через csb_patcher.sh, эти образы pci1002,6663.rom (для HD-8570M) и pci1002,6665.rom (для R5-M230) достаточно указать в настройках сборки coreboot «menuconfig», или добавить к уже собранному coreboot командами

1) Adding VGABIOS to coreboot.rom

./coreboot/build/cbfstool $COREBOOT_ROM_PATH add -f $VGABIOS_PATH -n pci****,****.rom -t optionrom

2) Removing VGABIOS from coreboot.rom

./coreboot/build/cbfstool $COREBOOT_ROM_PATH remove -n pci****,****.rom

3) Printing coreboot.rom memory map

./coreboot/build/cbfstool $COREBOOT_ROM_PATH print

Например,

./coreboot/build/cbfstool ./coreboot/build/coreflop.rom add -f ./coreboot/pci1002,6665.rom -n pci1002,6665.rom -t optionrom
, или запустить
./csb_patcher.sh atomflop
после окончания сборки coreboot для добавления уже имеющихся образов.

А тебе нужно будет добыть проинициализированный AtomBIOS для R7 M260 / R7 M265, чтобы запихнуть его в coreboot.

Но модификаций Lenovo G505S с такой дискреткой - чтобы извлечь для неё проинициализированный образ со включенного G505S - в природе не существует. Поэтому остаются следующие варианты:
1) Раздобыть на время похожий ноут с такой же дискреткой и извлечь с него, вдруг подойдёт.
2) Посмотреть БИОСы для ноутов с такими же дискретками, может в каких-то лежат уже проинициализированные AtomBIOS.
3) Учитывая схожесть дискреток для стационарных компов и ноутбуков, есть шанс что подойдёт AtomBIOS от дискретки. https://www.techpowerup.com/vgabios/ - тут есть хорошая коллекция AtomBIOS для разных видеокарт с разными чипами памяти (это иногда тоже имеет значение)

Может понадобиться и ручное редактирование этих AtomBIOS от другого железа. К счастью, эти бинарники небольшие (32КБ-256КБ), их можно анализировать при помощи AtomDis и есть утилиты для редактирования. Да и количество попыток использования вместе с coreboot практически неограниченно! (ресурс перезаписей чипа ~100000 раз) И после того, как прошьёшь coreboot программатором - например, по инструкции http://dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate (фото для двухдолларового программатора USB CH341A в конце) - пока ноут успешно грузится в Linux (с параметром ядра iomem=relaxed при необходимости), ты сможешь устанавливать быстро другие версии coreboot без разборки ноута:

sudo flashrom -p internal:laptop=force_I_want_a_brick,amd_imc_force=yes -r ./coreboot.rom
- считываем предыдущую версию coreboot из БИОС-чипа, если она потерялась
sudo ./coreboot/build/cbfstool ./coreboot.rom remove -n pci1234,5678.rom
- удаляем из неё старый AtomBIOS
sudo ./coreboot/build/cbfstool ./coreboot.rom add -f ./my_new_atombios.rom -n pci1234,5678.rom -t optionrom
- добавляем новый AtomBIOS
sudo flashrom -p internal:laptop=force_I_want_a_brick,amd_imc_force=yes -w ./coreboot.rom
- прошиваем coreboot с изменённым AtomBIOS обратно в БИОС-чип

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

Большое спасибо за такой подробный ответ. Буду заниматься и держать в курсе :). Ещё вопрос по VRAM. Как coreboot ей инициализирует, если вместо 2Гб будет 4Гб?

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

Для coreboot важен лишь размер Memory-mapped_I/O, требующийся устройству: думаю, если он и связан с объёмом VRAM, то не напрямую. Изначально в coreboot, нижняя граница «BottomIo» этой памяти MMIO для PCI-устройств - была слишком высока 0xE0000000, и итоговый размер памяти недостаточен для работы дискреток HD-8570M 2GB / R5-M230 2GB : были жёсткие конфликты между PCI-устройствами и в лучшем случае грузилось до линуксовой консоли, без графики и с кучей ругательств в логе ядра Linux по dmesg. Тогда мы понизили BottomIo до 0xD0000000 и всё стало хорошо. Вернулись к этому параметру на coreboot'ной десктопной плате ASUS A88XM-E с процессором AMD A10-6700, для работы дискретки RX590 8GB пришлось понизить до 0xC0000000, а потом решили и до 0x80000000 - чтобы хватало для двух и более дискреток, даже «жирных». Сейчас в coreboot такое значение BOTTOMIO_POSITION стоит для всех плат AMD с опенсорсной AGESA. При необходимости его можно понизить до 0x40000000 и даже до 0x28000000, ниже уже начинаются зависания.

Кстати, к Lenovo G505S возможно подключить десктопную дискретку в порт MiniPCIe x1 (предназначающийся для WiFi-адаптера) при помощи специального переходника, при этом сама дискретка должна быть запитана от внешнего блока питания. Раньше это не работало, но после наших изменений теперь должно работать, перетестирую при удобном случае. Правда, для постоянного использования это неудобно и лучше собрать coreboot'ный десктоп - например, на AMD-шной плате ASUS A88XM-E.

Поэтому со стороны coreboot вопрос «4ГБ» уже решён, и если что и потребуется делать с программной стороны - то это изменение в AtomBIOS для видеокарты: там ведь есть какие-то настройки под чипы памяти, может и количество/объём чипов там где-то нужно настраивать. По железу: наверное, нужно посмотреть чтобы адресные линии были разведены к доп.чипам памяти. И чтобы TDP более мощной R7-M260 / R7-M265 был аналогичен HD-8570M / R5-M230, или придётся улучшать систему охлаждения чтобы ноут не перегревался.

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

На али продаются материнские платы с 8 чипами памяти, правда там получается каждая банка по 256Мб., а не по 512мб. Так что разводка скорее всего есть, и после распайки банок останется только страпы правильно выставить.

pinokio
()
13 декабря 2020 г.

Честно сказать лень шишки набивать. Может у кого есть хорошо рабочая прошивка, что бы можно было прошить через программатор? И как у вас дела обстоят с частотой процессора?

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

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

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

В меню «make menuconfig» можно добавить блоб для одной дискретки, а после окончания сборки к ./build/coreboot.rom можно добавить блоб для второй дискретки. Получится более универсальная сборка, дискретка с которой будет работать на любом G505S. А вот насчёт интеграшки могут быть проблемы, т.к. блоб мы поставляем только для HD-8650G которая в процессоре A10-5750M. Если у @unixnik другой проц в сокете, ему придётся или апгрейдиться на A10-5750M, или добывать блоб для своей интеграшки и добавлять его с именем соответствующим её VID/PID (pci1002,****.rom)

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

Доверять чужим прошивкам не очень правильно, вдруг туда вставим бэкдор? Пожалуйста, попробуйте собрать по этой инструкции http://dangerousprototypes.com/docs/Lenovo_G505S_hacking , скрипт ./csb_patcher.sh предоставляет набор патчей и даже конфиг для G505S, который вы можете взять за основу.

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

С наступившим, решил я тут проапгрейдить бивиса, скачал свежий coreboot и скрипт к нему, при применении скрипта появилась опция ‘Add good IRQ patches’ что это за штука не знаешь ?

Далее в меню nconfig, когда выбираю модель материнки - не подгружаются под нее остальные настройки, раньше помню подгружались, даже размер чипа остается 256кб.

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

В целом по опыту использования у меня получается дискретка и не нужна, от нее только греется сильнее и кулер жужжит, хочу без нее собрать, прошил свой старый бивис на другой G505S, но там дискретка другой модели, соответственно она с моим блобом не работает - ноут прохладнее и тише.

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

при применении скрипта появилась опция ‘Add good IRQ patches’ что это за штука не знаешь ?

Она применяет патч, улучшающий таблицу прерываний для G505S (а также A88XM-E и AM1I-A), чтобы Linux в логах ядра ругался поменьше и в KolibriOS например USB-флешки работали. Продвинутые ОС вроде Linux могут и сами более-менее правильно понять прерывания, немного поворчав, а для ОС попроще - правильные таблицы прерываний весьма важны для успешной работы с устройствами.

когда выбираю модель материнки - не подгружаются под нее остальные настройки

Возможно, это происходит из-за того что в Kconfig появилось много новых опций с момента создания конфига; надо будет разбираться. С menuconfig такая же ситуация?

Вообще, необязательно пересобирать БИОС ради изменения по части блобов: их запросто можно добавлять и удалять из собранного образа при помощи cbfstool. То есть при желании ты можешь просто удалить блоб дискретки из старого БИОСа и пользоваться им, правда тогда не получишь пользы от патча прерываний (потому что на тот момент его ещё не было)

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

С menuconfig такая же ситуация?

Да

правда тогда не получишь пользы от патча прерываний (потому что на тот момент его ещё не было)

Дело в этом, хотелось бы обновления тоже получить. Если получится отыскать каталог со старой версией попробую запустить меню там и выставить тоже самое в новом.

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

Привет! Там обновился скрипт csb_patcher, и в результате всё работает как и раньше кроме дополнения tint с игрой тетрис: которое можно или на время выключить в Payload -> Secondary, или пофиксить самостоятельно, или немного подождать)

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

Собрал и прошил свежий coreboot, он даже сразу стартанул и появилось окно GRUB c указанием новой версии корбута, но далее при загрузке происходит странное:

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

failed to identify (I/O error, err_mask=0x4)
usb 2-2: device not accepting address 1 using ehci-pci

и подобных штук 5
затем usb2-port2: unable to enumerate USB device

Gave up waiting for suspend/resume device

Could not stat the resume device file . . . uuid диска

в menuconfig подгрузились настройки для ноутбука, остальное оставил по умолчанию, возможно я забыл блоб для usb ?

Add xhci firmware этот пункт ?

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

Еще глупый вопрос: сборка тулчейна должна происходить принципиально после настройки menuconfig ? или можно сначала собрать тулчейн, сделать бэкап каталога с исходниками корбута + тулчейном и потом ковырять конфиг ?

з.ы. Спасибо за предложение вакансии, но я пока не настолько хорошо разбираюсь в этом)

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

откопал старый конфиг корбута, сравнил с текущим, нашел несоответствие, поменял в новом опции аналогично как в старом, пересобрал, но ошибка все равно та же самая с USB.

Add xhci firmware в старом конфиге не был активирован, зато отличался SATA mode и AHCI device PCI ID

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

сборка тулчейна должна происходить принципиально после настройки menuconfig

До сборки, очевидно. А на .config вообще фиолетово.

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

А на .config вообще фиолетово.

т.е. make menuconfig или make nconfig делать необязательно если не планирую настройки менять ?

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

menuconfig — это просто псевдографический интерфейс для редактирования .config. Ты его можешь хоть руками править, хоть в диалоговом режиме.

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

появилось окно GRUB c указанием новой версии корбута

окно SeaBIOS, ты хотел сказать?

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

Это очень странно: ведь у меня такой же G505S, правда со скорее всего линуксом поновее чем у тебя (недавно обновлённый Artix, ядро 5.10.12) - и про USB таких ругательств не вижу. Использовал новый конфиг от Mike, который предоставляется новой версией csb_patcher, практически без изменений - только посмотрел на его небольшие изменения с прошлого раза, согласился с ними и выключил tint пока не пофиксят.

menuconfig

Перед сборкой я открываю его всегда, хотя бы для профилактики: если конфиг, созданный на момент более старой версии коребута, не слишком устарел, он бывает применим и для новой - но иногда, если попытаешься сходу сделать make, или кучу вопросов будет задавать по всяким опциям или вообще всё сбросит; а так: открыл и закрыл menuconfig с сохранением, сравнил в kdiff3/meld изначальную версию с «обработанной» этим открытием/закрытием, и если со всем согласен - то спокойно собираем.

usb 2-2

Это картридер, подсоединённый по внутреннему USB, и по крайней мере у меня он нормально инициализируется даже с этой новой схемой прерываний:

usb 2-2: new high-speed USB device number 2 using ehci-pci
usb 2-2: New USB device found, idVendor=0bda, idProduct=0129, bcdDevice=39.60
usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-2: Product: USB2.0-CRW
usb 2-2: Manufacturer: Generic

Даже SD-шку только что вставил и всё нормально открывается. Ты уверен, что у тебя картридер рабочий, и вставлена ли в него сейчас карточка (если да, то рабочая ли она или заставляет его глючить)

Add xhci firmware этот пункт ?

XHCI я никогда не включаю и его блоб не добавляю, т.к. прекрасно живу и без USB 3.0 (то есть все порты работают в режиме 2.0), считаю что эти опции трогать не надо

можно сначала собрать тулчейн, сделать бэкап каталога с исходниками корбута + тулчейном и потом ковырять конфиг ?

Да, я так всегда и делаю, только между тулчейном и ковырянием конфига нужно применить csb_patcher, иначе - если не применив доп.патчи из csb_patcher, сразу бежать в menuconfig - настройки завязанные на эти доп.патчи слетят

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

Правда руками его править не очень удобно: ведь есть конфиги друг от друга зависящие, и все эти зависимости в блокноте просто так не просмотреть)

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

Add xhci firmware в старом конфиге не был активирован, зато отличался SATA mode и AHCI device PCI ID

Это потому что мы выяснили, что если поверх coreboot используется дополнение обладающее определёнными свойствами - как SeaBIOS - то необязательно добавлять блоб AHCI для работоспособности SATA в режиме AHCI. Поэтому, когда убедились что «не убудет», включили AHCI чтобы у людей с SSD чуть поднялась производительность.

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

с картридером точно всё в порядке, т.к. после отката на старую версию всё сразу и без проблем грузится, в т.ч. и картридер работает.

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

BLOBster ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.