KolibriOS в BIOS ( coreboot / SeaBIOS ) на G505S - успех!

Using Kolibri in embedded systems
  • Кстати, а как сообщить разработчикам о имеющихся проблемах? И имеет ли смысл?
  • olodar wrote:Кстати, а как сообщить разработчикам о имеющихся проблемах? И имеет ли смысл?
    Есть три списка рассылки
    1) coreboot - https://www.coreboot.org/Mailinglist (всё что имеет отношение к coreboot)
    Страница списка рассылки 1 - https://mail.coreboot.org/mailman/listinfo/coreboot
    2) seabios - https://www.seabios.org/Mailinglist (только то что связано конкретно с seabios)
    Страница списка рассылки 2 - https://mail.coreboot.org/mailman/listinfo/seabios
    3) flashrom - https://www.flashrom.org/Mailinglist (а тут обсуждаются темы про flashrom)
    Страница списка рассылки 3 - https://mail.coreboot.org/mailman/listinfo/flashrom

    Чтобы поучаствовать в обсуждении, очень рекомендуется подписаться на список рассылки,
    потому что если не подписаться а просто отправлять то сообщения будут подвисать на модерации

    Для подписки нужно зайти на страницу списка рассылки, ввести свой почтовый адрес и нажать Subscribe,
    на него прийдёт письмо содержащее ссылку с подтверждением, переходим по ней и тоже нажимаем Subscribe.
    Теперь с этого почтового ящика можно отправлять письма на e-mail указанный на странице списка рассылки

    Польза от баг репортов разумеется есть, особенно если они подробно описывают технические особенности проблемы.
    К тому же - те модели материнских плат, на которых долгое время никто не использует coreboot, могут и удалить! :twisted:

    Поэтому нам очень полезно время от времени (хотя бы раз в полгода!) как бы напоминать о своём существовании:
    что есть ещё люди которые сидят на Lenovo G505S ! И если вдруг кто-то из "админов" предложит удалить G505S из coreboot,
    вынеся этот вопрос на обсуждение в рассылку - вовремя это заметить и очень попытаться переубедить этого человека
    Ведь если удалят материнскую плату из официального репозитория coreboot, для того чтобы пользоваться на ней
    новым coreboot - каждый раз придётся делать очень много ручной работы для обновления исходников

    Можно даже присылать свои патчи через Gerrit, мелкие и не очень - https://www.coreboot.org/Git#Gerrit
    Если их одобрят "админы" (главные разработчики coreboot) то твой код будет добавлен в официальную ветку :wink:
    floppy121 wrote:Скорее всего это тестирование произойдёт 1-4 июня то есть через две недели,
    раньше вряд ли смогу. я и сам жду, сам себя, мне тоже интересно :)
    К сожалению не успел на этих выходных, было очень много работы... :cry: Надеюсь что удастся на неделе
  • floppy121 wrote:
    olodar wrote:Кстати, а как сообщить разработчикам о имеющихся проблемах? И имеет ли смысл?
    Есть три списка рассылки
    1) coreboot - https://www.coreboot.org/Mailinglist (всё что имеет отношение к coreboot)
    Страница списка рассылки 1 - https://mail.coreboot.org/mailman/listinfo/coreboot
    2) seabios - https://www.seabios.org/Mailinglist (только то что связано конкретно с seabios)
    Страница списка рассылки 2 - https://mail.coreboot.org/mailman/listinfo/seabios
    3) flashrom - https://www.flashrom.org/Mailinglist (а тут обсуждаются темы про flashrom)
    Страница списка рассылки 3 - https://mail.coreboot.org/mailman/listinfo/flashrom

    Чтобы поучаствовать в обсуждении, очень рекомендуется подписаться на список рассылки,
    потому что если не подписаться а просто отправлять то сообщения будут подвисать на модерации

    Для подписки нужно зайти на страницу списка рассылки, ввести свой почтовый адрес и нажать Subscribe,
    на него прийдёт письмо содержащее ссылку с подтверждением, переходим по ней и тоже нажимаем Subscribe.
    Теперь с этого почтового ящика можно отправлять письма на e-mail указанный на странице списка рассылки

    Польза от баг репортов разумеется есть, особенно если они подробно описывают технические особенности проблемы.
    К тому же - те модели материнских плат, на которых долгое время никто не использует coreboot, могут и удалить! :twisted:

    Поэтому нам очень полезно время от времени (хотя бы раз в полгода!) как бы напоминать о своём существовании:
    что есть ещё люди которые сидят на Lenovo G505S ! И если вдруг кто-то из "админов" предложит удалить G505S из coreboot,
    вынеся этот вопрос на обсуждение в рассылку - вовремя это заметить и очень попытаться переубедить этого человека
    Ведь если удалят материнскую плату из официального репозитория coreboot, для того чтобы пользоваться на ней
    новым coreboot - каждый раз придётся делать очень много ручной работы для обновления исходников

    Можно даже присылать свои патчи через Gerrit, мелкие и не очень - https://www.coreboot.org/Git#Gerrit
    Если их одобрят "админы" (главные разработчики coreboot) то твой код будет добавлен в официальную ветку :wink:
    floppy121 wrote:Скорее всего это тестирование произойдёт 1-4 июня то есть через две недели,
    раньше вряд ли смогу. я и сам жду, сам себя, мне тоже интересно :)
    К сожалению не успел на этих выходных, было очень много работы... :cry: Надеюсь что удастся на неделе
    Ну, короче говоря, имеющееся проблемы:
    1) Не работает синезуб. Вернее, работать-то работает, а вот устройства не находит. И если найдет устройство, то беспроводные наушники никак не хотят подключаться (другие ус-ва не пробовал). Драйвера впорядке. В данном случае решением послужил костыль - заюзать USB синезуб.
    2) Дискретная видеокарта (если точнее, гибридная графика, две видеокарты) все равно не нужны, этот двухядерный процессор не может "раскрыть" видеоядро, встроенное в него же, о двух тут вообще нечего говорить.
    3) Не работает микрофон. Вообще.
    4) Не работает веб-камера. Вообще.
    5) Приостановка системы в ОЗУ (спящий режим) так и не работают, в незавимости от изменения уровня логов (или как там оно правильно называется).
    Кстати, недавно говорил со знакомыми, они говорили, что подключали видеокарту через mini pci-e к ноуту, и изображение выводилось на экран ноутбука, без подключения внешнего монитора.
    Простой же райзер подойдет, или там какой-то специфический концентратор нужен?
  • Кстати, если этот способ с внешней видеокартой сработает, то можно как-то совместить два биоса? В одном случае видеоядро загружается (т.е. биос для встроенной видюхи), а во втором не загружается. Тут есть две кнопки - кнопка питания и восстановление, в обоих случаях они врубают питанку, но работают как-бы по-разному. Как-то можно их разделить?
  • olodar wrote:Ну, короче говоря, имеющееся проблемы:
    1) Не работает синезуб. Вернее, работать-то работает, а вот устройства не находит. И если найдет устройство, то беспроводные наушники никак не хотят подключаться (другие ус-ва не пробовал). Драйвера впорядке. В данном случае решением послужил костыль - заюзать USB синезуб
    на Kubuntu 17.04 x86_64 у меня через Bluetooth нормально подключается и передаёт файлы. Скорее всего в твоём G505S до сих пор стоит старая miniPCIe карточка от Broadcom (WiFi+Bluetooth), которая мало того что в линуксе не работает без проприетарных дров (с бэкдорами?) - так ещё и броадком как всегда реальное днище :? Если есть возможность, возьми Atheros AR9462 у китайцев - там и WiFi 2.4GHz+5GHz и Bluetooth, и отличные open-source драйвера для линукса! https://www.aliexpress.com/item/Atheros ... 36682.html

    На некоторых более старых ядрах периодически отваливался Bluetooth что у той что у другой карточки - обычно в процессе включения: то есть иногда включаешь и нет синезуба, перегружаешь комп пару раз и он появляется. На новых ядрах всё работает прекрасно, по крайней мере Atheros AR9462, и в тех редких случаях когда мне был нужен Bluetooth - проблем пока не замечено
    olodar wrote:2) Дискретная видеокарта (если точнее, гибридная графика, две видеокарты) все равно не нужны, этот двухядерный процессор не может "раскрыть" видеоядро, встроенное в него же, о двух тут вообще нечего говорить
    Даже с самыми новейшими стабильными ядрами и драйверами эта дискретная видеокарта пока что отказывается работать в линуксе! При попытке запуска её драйвер вызывает kernel panic. Отправил баг репорт сюда - https://bugs.freedesktop.org/show_bug.cgi?id=101473 . Последнее стабильное линуксовое ядро сейчас - 4.11.5, а по слухам нормальная поддержка видеокарт семейств Southern Islands и Sea Islands будет не раньше ядра 4.13 , сейчас эта поддержка - экспериментальная. Может быть к новому году заработает, а пока можно попытаться и без неё прожить...
    olodar wrote:3) Не работает микрофон. Вообще.
    Встроенный микрофон обнаруживается в линуксе, видел в логах ядра, но звук с него почему-то не идёт.
    среди Input Devices линукс обнаруживает: Internal Microphone, Microphone (unplugged), и Line In (unplugged)

    [*][/i] внутренний микрофон (Internal Microphone) - звук почему-то не идёт, ну или у меня настроено неправильно
    [*][/i] Line In - разумеется пусто (вроде у этого ноута нет круглого порта Line In, только круглый порт для наушников, хотя может быть его можно перенастроить?)
    [*][/i] "Microphone (unplugged)" - какие-то небольшие шумы, громкость которых немного меняется на уровне звука и их там видно, но ушами что-то не слышно;
    и эти шумы не зависят от внешних звуков
    olodar wrote:4) Не работает веб-камера. Вообще
    Действительно, этой камеры вообще не видно, хотя по идее она должна быть в списке USB-устройств. В логе ядра про неё тоже ничего нет. Можно лишь предположить что на начальном этапе включения компа, когда биос ищет USB устройства для возможной загрузки с них, он своими неосторожными попытками инициализации сбивает вебкамеру (которая по идее тоже является USB устройством)

    Проблемы "3)" и "4)" скорее всего решаемы, но нет времени занятся ими. Если мне понадобятся или микрофон или вебкамера,
    проще будет купить внешние устройства - которые к тому же будут более высокого качества чем встроенные.
    olodar wrote:5) Приостановка системы в ОЗУ (спящий режим) так и не работают, в незавимости от изменения уровня логов (или как там оно правильно называется)
    Это более серьёзная проблема, жаль что её не удалось решить уровнем логов. Возможно биос стал быстрее с тех пор, и поэтому даже максимальным уровнем логов его не получается замедлить до той скорости пробуждения при которой он будет работать. Если это так, то может быть если в код биоса добавить задержки (sleep-ы) в нужных местах то оно заработает как надо
    olodar wrote:Кстати, недавно говорил со знакомыми, они говорили, что подключали видеокарту через mini pci-e к ноуту, и изображение выводилось на экран ноутбука, без подключения внешнего монитора.
    Простой же райзер подойдет, или там какой-то специфический концентратор нужен?
    Да, и простой райзер сгодится, разумеется. Только блин всё никак не протестирую, я ведь хочу не просто протестировать -
    - а на свежей максимально прокачанной сборке, и по возможности выложить более новые билды, поэтому это дело не одного часа и до сих пор не удалось сделать...

    Но я всё же не сидел сложа руки! Например, раньше была такая проблема: если в биос добавить много дополнений (payload-ов) типа KolibriOS, memtest, coreinfo, tint,
    FILO, nvramcui, навставлять флэшек - и всего станет больше 10 записей в меню загрузки SeaBIOS, то последние записи пойдут с номерами 11, 12, 13, 14 и т.д. а таких кнопок на клавиатуре нету!
    и в меню загрузки у экрана разрешение 80x25 символов, поэтому если устройств больше 18 то начальные строчки не будет видно.

    Добавил поддержку выбора более чем 10 девайсов в меню загрузки (максимум 35 по числу цифр и букв клавиатуры),
    все девайсы номер которых выше 10 - теперь можно выбрать буквами. + если больше 18 устройств: чтобы всё умещалось на экране
    создаются 2 страницы со списками устройств, между которыми можно листать туда сюда клавишей ENTER

    Патч уже отправил в список рассылки SeaBIOS - https://mail.coreboot.org/pipermail/sea ... 11416.html
    Возможно его скоро добавят в SeaBIOS, но пока что всем желающим придётся отдельно выкачивать его и вручную
    применять к своим исходникам
    Last edited by floppy121 on Sun Jun 18, 2017 1:07 pm, edited 20 times in total.
  • olodar wrote:Кстати, если этот способ с внешней видеокартой сработает, то можно как-то совместить два биоса? В одном случае видеоядро загружается (т.е. биос для встроенной видюхи), а во втором не загружается. Тут есть две кнопки - кнопка питания и восстановление, в обоих случаях они врубают питанку, но работают как-бы по-разному. Как-то можно их разделить?
    Пока что эти кнопки работают одинаково - и та и другая кнопка включают комп. Очевидно, что задать немного разные способы включения можно будет только если нам удастся понять какая из этих кнопок была нажата. Кнопки включения "слушает" EC-контроллер который при их нажатии включает ноут, и значит какая кнопка была нажата - нужно узнавать у EC контроллера!

    Поэтому скорее всего надо копать начиная с файла https://github.com/coreboot/coreboot/bl ... cpi/ec.asl , ну или во всяком случае с https://github.com/coreboot/coreboot/tr ... pal/ene932
    - зде