- ベストアンサー
LinuxでVGAを320x240で出力させたい
こんにちは。 LinuxのVGA出力を320x240で出力させる方法を探しています。 カーネルの再構築で変更する方法があればご教授下さい。 [環境] OS: CentOS 5.5 尚、grubによる起動時のvga=による指定は既にやってみました。 scanによって出力モードの一覧も確認してみたのですが、ここには 上記のような出力は見当たりませんでした。 ちょっと思っているのは、vga=askでの出力選択モードに入って scanを実行して一覧に出力されない場合はカーネル云々の前に そもそもグラフィックチップが対応していないという事なのでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> ちょっと知識が十分でないですのですがフレームバッファって > ドライバ依存なのでしょうか?仮想的な画面領域に文字打って > それをドライバが読み取るって感じだった気がしたんですが。。 > それならドライバはfbに対応していれば良くって、320x240の > 定義はfbで操作すればって思ってたんですが。 kernel ソース driver/video の辺りの controlfb.[c,h] とか fbmon.c とかを見ていると、 うまいこと patch を書ければ、いけそうな気分になります。 #普段軟弱な言語しか使っていないので、僕が書いたら1年かかりそうですが。 どちらにせよ、設定でどうにかなるものではなくて、パッチを当てないとダメっぽいですね。 ポータブル開発環境ではないですが、ポータブルデモ環境で小さいマシンが欲しいと思ったことは何度かあります。 何故かでかいマシンよりも小さいマシンを見ると熱くなるんですよね。 今現在ですと、やっぱりはみ出して、切れたような表示になるんですかね? コンソール出力用の少インチモニタって、時々見かけますが、あれってVGA以上あるんでしょうかね? #気にしたことなかった
その他の回答 (5)
- NARH
- ベストアンサー率82% (88/107)
組込みですかね? QVGAで kernel ソースを検索するとそれなりにあるのですが、多分ARM等の組み込み基盤用途のドライバだと思います。 (組込みは畑が違うのでちょっと解らないです) とりあえず、目的のものは framebuffer で実現されているものだと思うので kernel ソース付属の Documentation/fb/ を見てみると ep93xx-fb.txt にそれっぽい記述があります。 ただ、調べてみると ep93xx 自体が cirrus logic 社のARMプロセッサの組み込まれた基盤らしいので多分違うんでしょうね。 コンソール用途の fbcon.txt を見た感じ、こちらは対応して無さそうです。 検索していたところ、SHARP の "りなざう"こと Zaurus SL シリーズでは QVGA コンソール パッチなるものがあったらしく、(そういえば自分持ってました)起動時にそれっぽいコンソール表示がされていました。 一般的なモニタのお話でしたら見当違いということで無視してください。
補足
組み込みでは無いです。対象は普通のPCでしてFIT-PC2っという、 現行私が知る限りで市販されている中では最も極小のIntel PCです。 GMA500だったかな?というチップセットなのですが。。 こいつにCoCoNet液晶工房という所で購入したLQ038Q5DR01 という液晶ディスプレイを接続して、ポータブル開発環境!? 見たいな物を作りたかったんですが(^^; りなざうでパッチが出回ってたのは知っていたので、何かしら 方法があるのではと思ってたんですが、他の回答者の方からの ご指摘のようにVGA上位互換ビデオカードという部類になるん でしょうね。。VESAのVBEだと規定されているようだったので 一縷の望みって感じでしたが。 ちょっと知識が十分でないですのですがフレームバッファって ドライバ依存なのでしょうか?仮想的な画面領域に文字打って それをドライバが読み取るって感じだった気がしたんですが。。 それならドライバはfbに対応していれば良くって、320x240の 定義はfbで操作すればって思ってたんですが。 あれ?でも画面のVSYNC、YSYNC自体はドライバがコントロール するからハードウェア上で対応してなきゃ出来ないのかな。。 取りとめもなくて申し訳ありません。
- yakan9
- ベストアンサー率54% (2244/4125)
> Modes "1280x1024" "1024x768" "800x600" "640x480" "320x240" 実験してみましたが、やはり無理なようです。 640x480までしか、低解像度にはできないのは、仕様でしよう。
補足
Modesで320x240って出ましたか? 多分無理な原因はディスプレイが320x240に対応していない からだと思います。 もし上記のModesが表示されたハードウェアの構成が解れば 私の環境であればいけるかも知れません。お手数でなければ どのような環境下で上記Modesの一覧が表示されたかご教授 頂けませんか? ちなみに、私がやった環境はNo5の方への補足でもお答えして おりますがfit-pc2という極小PCとVMwareのVMで確認しており どちらの場合もModesの中に320x240が出てきませんでした。 お手数ですがよろしくお願いいたしますm(_ _)m
- yakan9
- ベストアンサー率54% (2244/4125)
下記の値はどう示していますか。 1.システム→設定→画面の解像度 2.システム→管理→ディスプレイ→解像度 それより、下記の部分に追加してみた方がよいかもしれません。 ただし、老婆心ながら、現在のものを保存しておき、表示できないときは、すぐに戻せるようにコピーしておくこと。 /etc/X11/xorg.confはたぶん、 Section "Screen" Identifier "Screen0" Device "xxxxxx" DefaultDepth 24 Subsection "Display" Depth 24 EndSubSection EndSection こんな内容だと思います。 これを下記のようにしてみると早いかもしれません。 Section "Screen" Identifier "Screen0" Device "xxxxxx" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" "320x240" EndSubSection EndSection もしできないときは、高解像度部分、"1280x1024" "1024x768"を削除すること。 補足する場合は、パソコンのメーカー名、型番、画面関係の下記部分を貼り付けてもらうとありがたいです。 Section "Monitor" Section "Device" Section "Screen"
お礼
ありがとうございます! ちょっと私の説明が不足しておりまして、大変恐縮なのですが 今回質問させていただいたのはCUIの環境になりまして、Xは 使っておりません。 もしCUIでの方法等わければ是非またご教授いただければ 幸いです(^^ ご回答いただきましてありがとうございましたm(_ _)m
- mtaka2
- ベストアンサー率73% (867/1179)
現在の普通のいわゆる「VGA上位互換」ビデオカードでは、CUIレベルすなわちテキストモードでは、320x240という表示モードは存在しません。 いわゆる「IBM PC互換機」の歴史において「320x240」という解像度はないのです。 初期のIBM PC は「CGA」というビデオ表示規格で「640x400」「320x200」という解像度をサポートしており、その後継である「VGA」は「640x480」新たにサポートしました。 (つまり、本来「VGA」とは規格の名前です) http://ja.wikipedia.org/wiki/Video_Graphics_Array その後、VGAの上位互換なビデオカードが各社から発売され、今では「VGAとはビデオカードのことである」という誤解が世に広まっているわけです。 なお、X Window System においては、表示タイミングは自由にいじることが出来ますので、 手動でパラメータをチューニングすれば、320x240の画面モードを作ることは可能だと思います。
補足
なるほど。現行のVGA上位互換って下位互換を排除してるのでしょうか? Wikiで調べたら下記の記述がありました >CGA、EGA完全上位互換(CGA/EGAの持つ画面モードを全て持つ)の >上に、VGA専用の画面モードとして、以下の2つのグラフィックモードを >持つ。 > >640x480ピクセル 1677万7216色中16色 >320x200ピクセル 1677万7216色中256色 あ!いや確かに320x240は存在しませんね(^^;320x200ならあるん でしょうか?CUIで320x200の出力を実現する方法等が解ればそれ でもOKなんですが。。もし解ればご教授いただけますと幸いです! それでは、よろしくお願いいたします。
- wingstar
- ベストアンサー率37% (102/275)
CUIの画面? GUI(X)の画面? どっちのことを言ってるのですか? ちなみに、画面サイズはカーネルの役割ではありません。 ドライバーです。
補足
すいません。説明が不足しておりました。 CUIでの実現方法になります。また言葉足らずで 申し訳なかったのですが、一応カーネルとドライバの 役割分担についても存じております(^^; Linuxでドライバモジュールの追加をする方法が カーネル再構築の時のmenuconfigとかでやる方法 以外はあまり良く解っておらず、機会が少ないので、 雰囲気で表現してしまいました。 単独でドライバがあるとも思えず、menuconfigでどこか 追加して出来ないかなと単純に思ったんですが。。 CUIのディスプレイ出力周りがLinuxの場合だとどんな 役割分担になってるかが今一把握できておらず(>< でも普通ディスプレイドライバって出力モードの設定と ディスプレイカード自体のメモリ操作関連までですよね? あ、そうか!ってことはディスプレイドライバの出力モード で320x240可320x200の出力モードにする値を見つけれ ば良いんでしょうかね? まぁどうやって設定するかは謎ですが(^^; もし何かわかることあれば是非ご教授いただけますと 幸いです。。 P.S 今気づきましたが240x320って(^^;320x240ですよね
お礼
> ポータブル開発環境ではないですが、ポータブルデモ環境で小さいマシンが > 欲しいと思ったことは何度かあります。 > 何故かでかいマシンよりも小さいマシンを見ると熱くなるんですよね。 同類です(^^; 出力の状態は画面に変な筋が入って真っ黒な状態なんですよね。 ちょっとキーを動かすと白いのが見えるので一応出力されている ようですが。恐らくHSYNC、VSYNCの問題だと思っています (カンです^^;) おかげさまで一応自己解決しそうです。 と、いっても方法が解った訳では無く。。 色々調べてみると以下のサイトに私が使っているディスプレイにFBで 表示させようとしている方がいました。ARMですが。。。 http://www.linux-mips.org/archives/linux-mips/2004-10/msg00310.html やっぱりドライバの修正とfb周りの修正をかける必要がありそうですね。。 一応、対応方法が解ったので、これで解決とさせて頂きます。 しょうもない質問へご回答頂きありがとうございましたm(_ _)m