2.6.31-14-generic#48-Ubuntuでフレームバッファーを使用するアプリケーションを実行しようとしています。
私がする必要があるのは、次のエラーを取り除くためにフレームバッファデバイスをインストールすることです:
/dev/fb/0: No such file or directory
framebuffer not available.
FATAL: no framebuffer available
Googleを検索したところ、Grub2でそれを行うことを示すいくつかのリソースが見つかりました。シームレスにフォローしましたが、何も得られませんでした。
何か案は?
フレームバッファドライバをアクティブ化する必要があります。フレームバッファドライバは、デフォルトで常に非アクティブ化されています。
私はこれらを構成しました:
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
解像度とその16進コードを確認できます。
これで、起動時にe
キーを押してvga=[hexadecimalcode]
(ef vga=0x346
)を追加するか、defoptions
の後の/boot/grub/menu.lst
で変更を永続的にすることができます。語。
Grub構成に触れる前にe
キーを試して、それが機能することを確認する方が安全であることがわかりました。
後でAlt+F1-6
を使用してtty
に切り替えると、指定した解像度になります。 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です。