新しく購入した安価な8インチTFT LCDディスプレイで、すべての側面が「エッジをカット」している(つまり、すべてのピクセルが表示されていない)。これが「オーバースキャン」が原因で、主にHDMI入力を使用するTVに影響を与えるようです。
私のカーネルは最初にefifbで起動し、次にinteldrmfbに切り替えます-両方のフレームバッファードライバーに問題があります。私はXウィンドウを使用しておらず、この小さなディスプレイでXを使用したくはありません。私がやりたいのは、Linuxテキストコンソールを使用することだけです。したがって、「xrandr」を使用するソリューションはありません。
私は試しましたすべてこの問題を解決するためのドライバーレベル(カーネルレベル)のフレームバッファー設定に関して、「ビデオ」カーネルブートパラメーターを使用した解像度設定の調整やタイミング設定の調整などを見つけることができます。 fbsetで起動後ですが、fbsetで何をしても、無視されているようです。
だから私の質問はこれです:おそらくフレームバッファードライバーレベルよりも高いレベルで、フレームバッファーコンソールの周りにマージンを追加できる方法はありますか?
Linuxがコンソールで使用する列と行の数を減らすために「stty」を使用できることは知っていますが、それは右側と下側の問題を解決するだけで、左側の文字が途切れたままになります。上面。 「stty」を使用して「最初の列」と「最初の行」のオフセットをコンソールに追加する方法はありますか(つまり、いくつかの空白のパディング)。 sttyを使用しない場合は、他の軽量ツール(Xウィンドウではない)を使用しますか?
fbset
コマンドを試してみてください。
fbset -i
を実行すると、「タイミング」行など、現在のフレームバッファ設定に関する情報が表示されます。私にとっては、すべての値が0であり、おそらく使用されていないことを意味しますが、実際の値がいくつか表示されている場合は、それらを微調整してみてください。
man fbset
からの抜粋:
Display timings:
-pixclock <value>
set the length of one pixel (in picosec‐
onds). Note that the frame buffer device
may only support some pixel lengths
-left <value>
set left margin (in pixels)
-right <value>
set right margin (in pixels)
-upper <value>
set upper margin (in pixel lines)
-lower <value>
set lower margin (in pixel lines)
-hslen <value>
set horizontal sync length (in pixels)
-vslen <value>
set vertical sync length (in pixel lines)
--timings, -t ...
set all timing parameters at once in the
order <pixclock> <left> <right> <upper>
<lower> <hslen> <vslen>, e.g. -t 35242 64
96 35 12 112 2
-left
、-right
、-upper
、-lower
パラメータに注意してください。 fbset
には、これらの値の1つを増やし、反対の値を同時に減らす-move
コマンドもあります。
Display positioning:
-move {left|right|up|down}
move the visible part of the display in the
specified direction
-step <value>
set step size for display positioning (in
pixels or pixel lines), if -step is not
given display will be moved 8 pixels hori‐
zontally or 2 pixel lines vertically