LINUX.ORG.RU

Неработающий фреймбуфер и кривые шрифты

 , ,


0

1

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

При загрузке, сразу после меню grub, вместо всем знакомого текстового отображения процесса загрузки я созерцаю черный экран. Загрузка при этом идет успешно, жесткий диск работает. Далее запускается DM (в моем случае - slim), но монитор все равно остается черным и неработающим. Если я вслепую введу логин, нажму enter, дальше пароль и снова enter, то загружаются иксы, появляется рабочий стол и система работает совершенно нормально. Мне несложно выждать полминуты, после чего вслепую вбить логин и пароль, главное, что система в целом работающая. Но скажите, в чем может быть причина такой небольшой неполадки, и можно ли ее исправить? Спасибо.

Кроме того, обнаружил, что шрифты у меня кривовато выглядят, буквы скачут слегка и выбиваются. Это видно не всегда, не везде, но таки видно. Использую infinality и шрифты liberation. Можно ли это поправить?

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

Necrogrinder ()

Судя по предыдущей теме, за 18(!) дней мало что изменилось. Попробуй начать читать логи, например.

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

Наткнулся вот на такое:

CONFIG_DRM_RADEON_UMS: should not be set. But it is.
CONFIG_FB_RADEON: should not be set. But it is.

Возможно, проблема в этом, сейчас поковыряюсь.

UPD: нет, проблема крылась не здесь, я отключил эти флаги и пересобрал ядро, но ничего не изменилось.

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

я отключил эти флаги и пересобрал ядро, но ничего не изменилось.

Может пришло время почитать лог ядра?

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

# CONFIG_FB_UVESA is not set
# CONFIG_FB_VESA is not set

А это кто за тебя включать будет? У меня только нецензурные выражения счас в твой адрес есть. Еще simple framebuffer включи на всякий. И plain VGA. Тоже на всякий. Потом уже жалуйся. А так - вместо чтения каких-то статей привыкай читать документацию, а?

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

чтобы доки четать нужен USE=brain а не как у ТС'a USE=-brain ))

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

Включил. Ничего не изменилось. Жалуюсь.

По поводу документации — я тупой, наверное, но документацию какого рода мне надо прочитать в этом конкретном случае? Я даже не могу локализировать проблему, про отваливающийся фреймбуфер — это просто предположение, и, быть может, неверное, потому что slim отрисовывается через X, но и его (slim'a) я не вижу, а изображение на экране появляется только после логина (вслепую) в системе.

Так что мне читать? Стандартная документация (man и генту вики) не покрывают моей проблемы. Беглое гугление по тематическим форумам тоже мне не дало ответа. Мой личный опыт еще очень небольшой, чтобы я мог догадываться о причинах, вызвавших неполадку. Мне только остается обращаться к более опытным товарищам, может кто-то из них уже сталкивался с такой проблемой, а может быть в состоянии верно предположить, где косяк.

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

http://i.imgur.com/3aEf3ue.png — демонстрация кривости шрифтов. Эта проблема также не решена, хотя я настраивал infinality по мануалам и документацию предварительно читал. Шрифты liberation.

Скачут таким образом буквы далеко не везде. Например, в полях ввода, текстовых документах — все нормально. На ЛОРе буквы тоже ровные (http://i.imgur.com/QaunX16.png), а вот на ютубе — нет.

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

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

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

У тебя включено несколько фрейбуфферов. Выключай.

anonymous ()

ну, не знаю, беглое гугление даёт кучу документации


http://tldp.org/HOWTO/Framebuffer-HOWTO/

https://www.kernel.org/doc/Documentation/fb/framebuffer.txt

http://www.tldp.org/HOWTO/pdf/Framebuffer-HOWTO.pdf

https://www.kernel.org/doc/Documentation/fb/fbcon.txt

http://cateee.net/lkddb/web-lkddb/FB.html

запрос: https://www.google.ru/?gws_rd=ssl#newwindow=1&q=framebuffer linux kernel ...


читай - не хочу.
Твоя задача разобраться что вообще такое фреймбуфер и какой именно фреймбуфер тебе нужен. Какой использовался по умолчанию в твоём дистрибутиве. Это так сказать база. Затем включить в ядре нужный фреймбуфер и проверить настройки. По моему так.

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

Это то, о чем мне следует почитать документацию?

fglrx

Не пользуюсь, какое отношение этот устаревший проприетарный драйвер вообще имеет ко мне?

UEFI

Не совсем понимаю, к чему это тут. У меня UEFI, но загрузка через grub2. Тем не менее, я читал документацию по EFI.

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

Звучит разумно, спасибо, примусь осваивать.

Но я все еще не уверен, только ли в фреймбуфере проблема, и в нем ли вообще. Логин менеджер, напомню, тоже не отрисовывается, а он к фреймбуферу отношения иметь не должен, как я понимаю.

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

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

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

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

VGA 16-bit (его мне сказал включить какой-то хрен сверху, но это не помогло), VESA VGA (аналогично, он был выключен раньше, и это не помогло), EFI-based framebuffer (этот был включен изначально, и работал на ядре 4.4.6., но после обновления работать перестал). Всё.

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

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

Вообще есть то что называется бисекцией. Общая схема такая: берёшь рабочий конфиг. Берёшь свой конфиг. Берёшь все параметры которые различаются. Делишь их на две равные части. Меняешь в рабочем конфиге первую половину. Если не поломалось, берёшь рабочий конфиг (опять свежий) и меняешь вторую половину. Затем, берёшь половины от половины, от которой сломалось, берёшь свежий свежий рабочий конфиг, опять ломаешь. Берёшь ту половину которая сломала, и так до того момента пока не останется нужный параметр.

Если что, то на 1024 параметра нужно всего 10 итераций чтобы поймать один конкретный. Правда бывают случаи когда обе половины ломают. Но в этом случае просто работаешь с обеими половинами по очереди. Т.е. сначала выясняешь какой параметр в первой половине сломал. Потом какой во второй.

Но бисекция - довольно «тупой» способ. Он на тот случай когда тебя вообще не интересуют истоки проблемы.

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

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

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

Эта проблема (по факту-то и не проблема, никто не запрещает писать логин и пароль вслепую, но всё же) появилась после перехода на ядро 4.4.26 и включения многопроцессорности. На 4.4.6 с 1 активным ядром все отображается как надо. Еще несколько недель назад я проводил опыты, разница между ядрами была всего в двух пунктах: версия (обновление до стабильной) и флаг многопроцессорности, всё. Так я и не разобрался, где собака зарыта, и никто не помог.

Теперь я догадался, спустя столько времени, что всё-то грузится, и всё работает, просто загрузка и slim не отображаются почему-то (не выводятся на экран? вообще не отрисововаются?). И вот я создал тему снова. Такая история, и бисекцией ее не решить.

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

Такая история, и бисекцией ее не решить.

Пожалуй что так, ну тогда доки в помощь. Доки, логи, вполне возможно что отладка. Но это конечно не так просто. Хотя не боги горшки обжигают.

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

Если бы был мануал под названием «Не отображается процесс загрузки и логин менеджер: причины, решение»... Или хотя бы просто "...причины". Я ж даже не знаю, в чем проблема состоит, чтобы что-то читать. Читаю доки по фреймбуферу, но может оказаться вполне, что он тут вовсе не причем, и вообще я копаю не туда, а на самом деле у меня, ну хрен знает, транзистор вздулся какой-то, условно говоря, на мамке. В этом вся беда, потому обратился к старшим товарищам.

Спасибо за помощь.

Flagitio ()

Собрал новое ядро с парой экспериментальных присадок,

С этого и надо начинать. Что за «присадки»? Может это они виноваты в проблеме?

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

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

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

Несколько фреймбуферов - норма. Анон не догоняет, какой и в каком случае включается. Выложи на pastebin или еще куда полный конфиг текущего ядра, сравню еще раз.

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

От простого включения SMP это не должно происходить. Включи early printk (искать в menuconfig умеешь?).

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

И что? Это он отключил судя по его постам ранее. Ты явно чего-то не догнал. Включить следует как минимум uvesafb и uefifb, simple framebuffer и есть еще mark as generic framebuffer несколько в другом разделе конфига. Топикстартер просто накосепорил и не признается, он даже не может сказать какие конкретно пункты менял, только мол включил там чего-то.

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

Не всегда. На моей системе, например, uvesafb и ниипет.

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

Зачем при загрузке лишнее переключение видеорежима? Uvesafb не работает без юзерспейсного демона, обычный vesafb надёжнее и не хуже.

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

У меня особенная система. Понимаешь, блоб невидии и fglrx от амуде имеют свойство не показывать framebuffer когда иксы загружены. Самое смешное, да. Кстати, grub вполне себе умеет выставлять режимы uvesafb. В крайнем случае оно ничего не ломает в любом случае. Там у него вообще может быть отключена поддержка консоли, как вариант. есть такое в конфиге. Я как-то собирал с нуля конфиг и забыл включить, долго матерился. Поэтому и прошу у него конфиг выложить, чтобы посмотреть еще раз. Вообще у него может быть выключен FRAMEBUFFER_CONSOLE как вариант.

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

Хотя в старом конфиге оно у него включено. потому посоветовал включить early printk

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

Мне не в чем признаваться, я написал: включил оптимизацию gcc, BFQ, твои фреймбуфферы вот, ну и многопоточность. Знал бы, где косяк — тему бы не пилил, логично же.

Графоуни настраивал по генту вики /Radeon. Все в точности оттуда соблюдал.

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

искать в menuconfig умеешь?

Ха-ха. Я не очень опытный, но не совсем дегенерат, не надо задрачивать. Сейчас займусь.

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