私はそうXを実行する
/usr/bin/X vt07 -retro
コンソール7にGUIを配置し、灰色のグリッドを背景として使用します。
コンソール1で私は書く
while [ 1 ] ; do cat /dev/random > /dev/fb0; done
画面にランダムなカラーピクセルが表示されます。すべてのコンソールを切り替えて同じ内容を表示できますが、Xserverを有効にしてコンソール7を開くと同じグレーのグリッドが表示されます。
/dev/fb0
Xが有効になっているコンソールで私が書いたものをどのように見ることができますか?
fbdev
ドライバを使用すると、GUIコンソールでも任意のピクセルを表示できますが、ORをxorg.conf
使用する必要があります。 Xをオーバーライドするために変更する必要があるいくつかのXオプション、カーネルパラメータ、モジュールパラメータがありますか?amdgpu
radeon
Xが必要なユーザーインターフェイスプログラムと所定の領域を同時に描画するプログラムを実行する必要があります。そしてビデオドライバの助けを借りて、これらのプログラムは一般的なシステムを実行して使用することができますkernel 3.9.6
。X Server 1.14.4
fglrx
fbfd = open("/dev/fb0", O_RDWR);
if (fbfd == -1)
{
perror("Error: cannot open framebuffer device");
exit(1);
}
// Get fixed screen information
if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo) == -1)
{
perror("Error reading fixed information");
exit(2);
}
// Get variable screen information
if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo) == -1)
{
perror("Error reading variable information");
exit(3);
}
// Map the device to memory
fbp = (char *) mmap(0, vinfo.yres * vinfo.pitch, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);
これで、インターフェイスが実行されているコンソールに表示されないドライバkernel 5.11.21
にアップグレードする必要があります。書き込みおよび描画できるバッファへのポインタが必要です。書くことができるようにシステムを変更できない場合は、Xや他のものを使って書くことができるポインタを返す関数が必要です。 。X Server 1.20.11
amdgpu
ベストアンサー1
あなたはできません。 hw/xfree86/os-support/linux/lnx_init.c には VT_PROCESS と KD_GRAPHICS を設定する xf86OpenConsole() があるため、VT がアクティブな間 X サーバーを介して作成する必要があります。 fbdev(4) と連携する理由は、X ドライバーによって書かれた「下」の同じデバイスに直接書き込むからです。それ以外の場合は、カーネルモード設定またはカード固有のドライバ(Intel、Radeonなど)を介して描画するためにDRI(/ dev / dri / card0)を使用し、ハードウェアに排他的にアクセスできるXサーバーと通信する必要があります。 。