LINUX.ORG.RU

В свежих ядрах поломали работу SDL 1 в ядерной консоли, но я собрал патч, который возвращает всё обратно

 , ,


2

2

Сабж. Ну и как мне пересматривать свои проекты если этих разработчиков ядра нельзя оставлять наедине с ядром? Хорошо хоть поломав ncurses в ядерной консоли они через некоторое время сами всё починили. Однако, это только вершина айсберга.

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

Итак. SDL 1 в ядерной консоли. Эта библиотека в ядерной консоли нужна в т.ч. для работы эмуляторов. Retro Arch, fceux, FUSE Spectrum Emulator, dosbox,... и т.д.

С какими ванильными версиями ядра это ещё работало? Это ещё работало с ванильными ядрами 4.17.19 (24-Aug-2018) и 4.18.17 (04-Nov-2018). С ядром 4.18.18 (10-Nov-2018) это уже не работает. В ветку 4.14.x эту заразу тоже бэкпортировали. С ядром 4.14.79 (04-Nov-2018) всё тоже должно работать, а вот ядро 4.14.80 уже покорёжено этой заразой.

А вот патч для ядра 4.19.9 с которым SDL 1 начинает работать как и прежде: http://saahriktu.org/downloads/patches/linux-4.19.9_make_sdl1_working_again.p... .

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

> cat /proc/fb

$ cat /proc/fb
0 VESA VGA

Хм. Судя по dmesg, у меня vesafb. А я думал что либо nvidiafb (карточка 7600 GT), либо nouveaufb (но у меня nouveau.ko в блэклисте). Это можно как-то выбрать, указать конкретно, что для NVIDIA там - nouveaufb, а если KMS «зарубили» то nvidiafb? И так далее для всех вендоров: для Some GPU Vendor - something-else-fb. А то похоже что у меня vesafb тупо на всё

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

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

linux /boot/linux-4.7 video=nouveaufb:1920x1080@60,mtrr=3,ywrap root=/dev/sda1
Если соответствующий модуль в блэклисте, то предварительно его, соответственно, нужно из этого блэклиста удалить.

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

Ну, мне нужен nvidiafb, он не в блэклисте, но почему-то не «подхватился» и используется vesafb. А я думал что используется nvidiafb.
Спасибо.

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

Я поменял nouveaufb на nvidiafb, и вставил в свой конфиг. Не работает. Оказалось что # CONFIG_FB_NVIDIA is not set. Убрали из современных openSUSE - а в SLE 11 это ещё было. Ну, это и не удивительно, учитывая что nvidiafb работает максимум с GeForce 7

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

до меня дошло, почему у меня всё работало
нужно в конфиге ~/.config/retroarch/retroarch.cfg выставить video_driver = "sdl", тогда действительно перестанет запускаться, а по дефолту-то там gl вместо sdl стоит

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