Кадровый буфер недоступен. Как установить устройство /dev/fb/0 в Ubuntu?
Я пытаюсь запустить приложение, которое использует 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 ответа
Вам необходимо активировать драйверы кадрового буфера, которые по умолчанию всегда отключены.
Я настроил это:
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]
(эф vga=0x346
) или сделать изменение постоянным в /boot/grub/menu.lst
после defoptions
слово.
Я нашел более безопасным, чтобы попробовать e
Прежде чем прикасаться к конфигурации grub, убедитесь, что она работает.
Позже, когда вы переключитесь на tty
с Alt+F1-6
это будет в указанной вами резолюции. Ты можешь использовать fbi
и другие коммунальные услуги.
Я думал, что 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.