web-dev-qa-db-ja.com

Linuxフレームバッファーテキストコンソールにマージン、ボーダー、オフセット、またはパディングを追加して、HDMIオーバースキャンを補正する方法はありますか?

新しく購入した安価な8インチTFT LCDディスプレイで、すべての側面が「エッジをカット」している(つまり、すべてのピクセルが表示されていない)。これが「オーバースキャン」が原因で、主にHDMI入力を使用するTVに影響を与えるようです。

私のカーネルは最初にefifbで起動し、次にinteldrmfbに切り替えます-両方のフレームバッファードライバーに問題があります。私はXウィンドウを使用しておらず、この小さなディスプレイでXを使用したくはありません。私がやりたいのは、Linuxテキストコンソールを使用することだけです。したがって、「xrandr」を使用するソリューションはありません。

私は試しましたすべてこの問題を解決するためのドライバーレベル(カーネルレベル)のフレームバッファー設定に関して、「ビデオ」カーネルブートパラメーターを使用した解像度設定の調整やタイミング設定の調整などを見つけることができます。 fbsetで起動後ですが、fbsetで何をしても、無視されているようです。

だから私の質問はこれです:おそらくフレームバッファードライバーレベルよりも高いレベルで、フレームバッファーコンソールの周りにマージンを追加できる方法はありますか?

Linuxがコンソールで使用する列と行の数を減らすために「stty」を使用できることは知っていますが、それは右側と下側の問題を解決するだけで、左側の文字が途切れたままになります。上面。 「stty」を使用して「最初の列」と「最初の行」のオフセットをコンソールに追加する方法はありますか(つまり、いくつかの空白のパディング)。 sttyを使用しない場合は、他の軽量ツール(Xウィンドウではない)を使用しますか?

3
acker9

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
1
Zoltan