3

Я пытаюсь запустить приложение, которое использует framebuffer на 2.6.31-14-generic # 48-Ubuntu.

Все, что мне нужно сделать, это установить устройство кадрового буфера, чтобы избавиться от следующей ошибки:

/dev/fb/0: No such file or directory
framebuffer not available.
FATAL: no framebuffer available

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

Есть идеи?

2 ответа2

4

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

Я настроил это:

echo "fbcon" | sudo tee -a /etc/initramfs-tools/modules
echo "vesafb" | sudo tee -a /etc/initramfs-tools/modules

А потом я закомментировал vesafb (это работает для всех карт, которые я слышал) в

/etc/modprobe.d/blacklist-framebuffer.conf

Затем мы обновляем конфиг:

sudo update-initramfs -u -k all

Мы почти на месте. Теперь нам нужно найти поддерживаемые разрешения для нашей карты в фреймбуфере. Вам, вероятно, придется установить hwinfo

sudo hwinfo --framebuffer

Вы можете увидеть разрешения и его шестнадцатеричный код.

Теперь вы можете либо нажать клавишу e во время загрузки и добавить vga=[hexadecimalcode] (ef vga=0x346), либо сделать изменение постоянным в /boot/grub/menu.lst после слова defoptions .

Я нашел более безопасным попробовать клавишу e прежде чем касаться конфигурации grub, чтобы убедиться, что она работает.

Позже, когда вы переключитесь на tty с помощью Alt+F1-6 это будет в указанном вами разрешении. Вы можете использовать fbi и другие утилиты.

0

Я думал, что в Ubuntu есть устройства /dev/fbX а не /dev/fb/X ?

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
$ ls -l /dev/fb/*
ls: cannot access 'fb/*': No such file or directory
$ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 авг 29 11:41 fb0

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

# mkdir /dev/fb
# ln /dev/fb0 /dev/fb/0

Запуск тестов:

# sudo dd if=/dev/urandom of=/dev/fb/0
dd: writing to '/dev/fb/0': No space left on device
15001+0 records in
15000+0 records out
7680000 bytes (7,7 MB, 7,3 MiB) copied, 0,501639 s, 15,3 MB/s
# sudo dd if=/dev/urandom of=/dev/fb0
dd: writing to '/dev/fb0': No space left on device
15001+0 records in
15000+0 records out
7680000 bytes (7,7 MB, 7,3 MiB) copied, 0,523867 s, 14,7 MB/s

Это работает на моей коробке, но YMMV.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .