LINUX.ORG.RU

Boot from USB coreboot 4.9

 , , , ,


1

2

Доброго времени суток.

Вопрос собственно такой: имеется coreboot 4.9, в нем в качестве payload есть SeaBIOS и GRUB2, при загрузке как я понял SeaBIOS передает управление грабу и затем можно выбрать откуда грузиться.

На ноуте SSD+HDD, grub видит линукс+винду как положено, а линукс на флешке нет.

Нашел противоречивые сведения, в одном источнике утверждают что можно подредактировать конфиг граба и всё заработает, в другом говорят что придется менять конфиг в payload и перешивать coreboot

Изначальная цель в том чтобы загрузить QubesOS с флешки, попользоваться, привыкнуть и потом поставить в качестве основной системы.

Начал всё делать по оф.инструкции https://www.qubes-os.org/doc/installation-guide/

дошел до шага «Installing to a USB drive»

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

А SeaBIOS не предлагает загрузиться с этой флешки?

На флешке самой есть isolinux или grub? Можно просто в консоль grub зайти и оттуда загрузить либо конфиг с флешки, либо isolinux.

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

на флешке 2 раздела sdc1 sdc2 первый 4.6Gb сам qubes второй какая то ANACONDA в FAT16

как понять каким hd является /dev/sdc1 ?

P.S. если бы SeaBIOS предлагал я бы тему и не создавал

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

Попробуй написать configfile (usb и нажать tab, должен предложить usb-диски, которые он видит, дальше вводишь путь к конфигу, enter, и грузится конфиг с флешки. Это если grub собран со всеми нужными модулями. Я так делаю, когда у меня загружается GRUB, который payload для coreboot, когда я забыл в cbfs положить конфиг и доступна только консоль.

А на будущее добавь лучше в cbfs GRUB для coreboot с конфигом из libreboot, у них хороший конфиг, большинство livecd линуксовых с флешки грузит исправно.

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

Фиг знает, hd2 наверное, попробуй просто все варианты перебрать или tab после hd нажать, консоль GRUB обычно предлагает варианты дисков/разделов, которые он видит.

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

Here is where it gets a bit tricky. In my case, I knew the root partition on the USB disk was /dev/sda1, yours may vary.

Since Grub uses a slightly different device mapper, let’s use it to find the partitions:

grub> ls
(hd0) (hd0,msdos5) (hd1) (hd1,msdos0)

This will show you the available devices. In my case, the relevant partition was (hd1,msdos1). Now, let’s use this information, along with our knowledge of where the vmlinuz and initrd files are to boot the system:

grub> linux (hd1,msdos1)/install/vmlinuz root=/dev/sdb1
grub> initrd (hd1,msdos1)/install/initrd.gz
grub> boot

здесь мужик пишет что у него USB /dev/sda1 но тогда почему в root= он указывает /dev/sdb1 ?

что будет если я в консоли gruba что нибудь не так напишу, не сотру систему?)

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

разобрался с флешкой, теперь падает где-то еще :D

Failed to start Switch Root.
Specified switch root path /sysroot does not seem to be an OS tree. os-release file is missing.

в 40_custom для gruba добавлен такой пункт

menuentry "Qubes" {
    set root=(hd2)
    linux /isolinux/vmlinuz root=/dev/sdc1 ro
    initrd /isolinux/initrd.img
}
BLOBster ()

По официальному мануалу флешка «превращается в CDROM»

If you prefer to use a USB drive, then you just need to copy the ISO onto the USB device, e.g. using dd:

dd if=Qubes-R3-x86_64.iso of=/dev/sdX bs=1048576 && sync

В grub такая флешка видится уже не как (hdX), а как (rd) // если я правильно вспомнил
и система с такой флешки загружается grub-ом в несколько команд

root (rd)
chainloader +1
boot
У тебя, как я понял, содержимое установочного ISO скопировано на флешку. Тогда самое простое в консоли grub найти флешку — она должна идти после HDD и SSD, т.е. ты и пишешь (hd2). В консоли grub выполняешь
configfile (hd2,0)/boot/grub/grub.cfg
В результате появиться меню загрузки QubesOS.

дошел до шага «Installing to a USB drive»

Так этот шаг должен выполняться из запущенной в лайв режиме QubesOS и для него нужна другая флешка (от 32 GB).

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

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

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

У меня теперь другой вопрос, можно как то завести гибернацию когда в качестве биоса coreboot ? что то инфы не нахожу, пока колдовал с выдачей поиска удалось записать сессию на диск, но при загрузке намертво зависает, как узнать в чем дело, учитывая что приходится делать ребут и в логах остаются записи уже от нового старта ?

установил pm-utils, hibernation, добавил resume с нужным id swap'a в конфиге grub, не забыл потом проапдейтить grub

один из советов по исправлению фризов был выпилить пакет uswsusp, фризы пропали, загрузка с диска просто грохнулась и загрузилась чистая система а в логах
Hibernation inconsistent memory map detected!
Failed to load hibernation image, recovering.

фризы это если делать гибернацию через pm-utils hibernate, при восстановлении отображается стандартная картинка и надпись 'Resuming . . . [swap_guid]

если использовать просто hibernate то при восстановлении даже картинки нет, тупо черный экран

пробовал также выпиливать pm-utils и запускать отдельно hibernate либо наоборот

p.s. все эксперименты сейчас на Lubuntu 18.04

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

все эти пляски с грабом были ненужны

Когда я читал Вашу тему у меня сложилось впечатление, что основная проблема именно в загрузке с флешки через grub. Я и описал возможные причины и решения. Про (rd) совсем не уверен. Сейчас все загрузочные ISO, с которыми имел дело, отлично переносятся на флешку простым копированием. Лет 5-6 назад elementaryOS требовала обязательной записи через dd — её grub и видел как двухбуквенное устройство.

можно как то завести гибернацию когда в качестве биоса coreboot ?

Windows же использует гибернацию и не жалуется на coreboot. Или нет? Т.е. дело не в биосе, а именно в ОС. Я бы начал с изучение вопроса с просмотра вики Ubuntu и Arch.

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

Есть несколько вариантов:

  • смотреть journalctl -b — выдаст журналы последних* сеансов, если настройки не менялись (могу ошибаться)
  • при ребуте загрузиться с флешки, смонтировать раздел с /var/log (скорее всего у Вас это корневой раздел) для чтения и просмотреть логи.
  • отключить при загрузке заставки и скрытие сообщений — будет всё писать на экран до момента зависания
anymouze ★★ ()
Ответ на: комментарий от BLOBster

hibernation не должен зависеть от биоса (ну почти), фризы у тебя не из-за coreboot.

Насчет этой ошибки

Hibernation inconsistent memory map detected!
Failed to load hibernation image, recovering.

посмотри dmesg | grep e820 перед гибернацией и после неудавшегося восстановления. Раньше в coreboot был баг, что карта e820 отличалась между первым и втором запуском после прошивки, что собственно ломало resume. После второго запуска меняться не должна. Но вообще-то обещали пофиксить, уж год наверное прошел, хз.

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

смотреть journalctl -b — выдаст журналы последних* сеансов, если настройки не менялись (могу ошибаться)

ошибок или подозрительных сообщений связанных с гибернацией там не нашел

отключил заставку и скрытие сообщений

последнее что успеваю прочесть при загрузке loading image data pages 100% затем черный экран
дисплей не включен, подсветки нет

в kern.log во время резюма есть такие строчки

Sep 16 19:54:20 home kernel: [  130.232727] [drm] ib test on ring 5 succeeded
Sep 16 19:54:20 home kernel: [  130.252599] radeon 0000:00:01.0: scheduling IB failed (-12).
Sep 16 19:54:20 home kernel: [  130.252633] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
Sep 16 19:54:20 home kernel: [  130.252658] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
Sep 16 19:54:20 home kernel: [  130.252685] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 6 (-12).
Sep 16 19:54:20 home kernel: [  130.252688] radeon 0000:00:01.0: scheduling IB failed (-12).
Sep 16 19:54:20 home kernel: [  130.252712] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
Sep 16 19:54:20 home kernel: [  130.252735] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
Sep 16 19:54:20 home kernel: [  130.252760] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 7 (-12).
Sep 16 19:54:20 home kernel: [  130.472403] usb 4-3: reset full-speed USB device number 4 using ohci-pci
Sep 16 19:54:20 home kernel: [  130.657441] usb 4-3: device firmware changed
Sep 16 19:54:20 home kernel: [  132.179948] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
Sep 16 19:54:20 home kernel: [  132.179976] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
Sep 16 19:54:20 home kernel: [  133.775951] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
Sep 16 19:54:20 home kernel: [  133.775980] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
Sep 16 19:54:20 home kernel: [  133.965487] [drm] PCIE gen 2 link speeds already enabled
Sep 16 19:54:20 home kernel: [  133.970419] [drm] PCIE GART of 1024M enabled (table at 0x0000000000040000).
Sep 16 19:54:20 home kernel: [  133.970530] radeon 0000:01:00.0: WB enabled
Sep 16 19:54:20 home kernel: [  133.970534] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0x00000000d48611ee
Sep 16 19:54:20 home kernel: [  133.970536] radeon 0000:01:00.0: fence driver on ring 1 use gpu addr 0x0000000080000c04 and cpu addr 0x000000003278f50f
Sep 16 19:54:20 home kernel: [  133.970538] radeon 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000080000c08 and cpu addr 0x0000000002fff387
Sep 16 19:54:20 home kernel: [  133.970539] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0x00000000e11f68ef
Sep 16 19:54:20 home kernel: [  133.970541] radeon 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000080000c10 and cpu addr 0x0000000064ad06bb
Sep 16 19:54:20 home kernel: [  134.183775] [drm] ring test on 0 succeeded in 1 usecs
Sep 16 19:54:20 home kernel: [  134.183779] [drm] ring test on 1 succeeded in 1 usecs
Sep 16 19:54:20 home kernel: [  134.183784] [drm] ring test on 2 succeeded in 1 usecs
Sep 16 19:54:20 home kernel: [  134.183791] [drm] ring test on 3 succeeded in 4 usecs
Sep 16 19:54:20 home kernel: [  134.183797] [drm] ring test on 4 succeeded in 3 usecs
Sep 16 19:54:20 home kernel: [  134.183945] [drm] ib test on ring 0 succeeded in 0 usecs
Sep 16 19:54:20 home kernel: [  134.183992] [drm] ib test on ring 1 succeeded in 0 usecs
Sep 16 19:54:20 home kernel: [  134.184019] [drm] ib test on ring 2 succeeded in 0 usecs
Sep 16 19:54:20 home kernel: [  134.184042] [drm] ib test on ring 3 succeeded in 0 usecs
Sep 16 19:54:20 home kernel: [  134.184064] [drm] ib test on ring 4 succeeded in 0 usecs
Sep 16 19:54:20 home kernel: [  134.240609] Restarting kernel threads ... 
Sep 16 19:54:20 home kernel: [  134.240818] usb 4-3: USB disconnect, device number 4
Sep 16 19:54:20 home kernel: [  134.241379] done.
Sep 16 19:54:20 home kernel: [  134.241429] PM: Basic memory bitmaps freed
Sep 16 19:54:20 home kernel: [  134.241430] OOM killer enabled.
Sep 16 19:54:20 home kernel: [  134.241431] Restarting tasks ... done.

возможно проблема с дровами видюхи ? при апдейте была строчка amdgpu vega_t20.bin missing, пробовал искать - в репозитории где его предполагалось искать нет https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/t...

ch1p ошибок связанных с e820 нет

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

эта ошибка будет если снести пакет uswsusp и попробовать гибернацию через pm-utils, если его поставить то тупо виснет, при чем как через systemctl так и pm-utils, на самом деле я сомневаюсь что там есть фризы, вероятно система норм грузится только дисплей не включается

S3 Suspend/Resume - You will need a Console verbosity set to at least «BIOS_INFO» or greater for it to work! Coreboot is likely too fast for the Embedded Controller firmware on the S3 resume hot path.

BLOBster ()