重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。

LinuxのVGA出力を320x240で出力させる方法を探しています。
カーネルの再構築で変更する方法があればご教授下さい。

[環境]
OS: CentOS 5.5

尚、grubによる起動時のvga=による指定は既にやってみました。
scanによって出力モードの一覧も確認してみたのですが、ここには
上記のような出力は見当たりませんでした。

ちょっと思っているのは、vga=askでの出力選択モードに入って
scanを実行して一覧に出力されない場合はカーネル云々の前に
そもそもグラフィックチップが対応していないという事なのでしょうか?

以上、よろしくお願いいたします。

A 回答 (6件)

> ちょっと知識が十分でないですのですがフレームバッファって


> ドライバ依存なのでしょうか?仮想的な画面領域に文字打って
> それをドライバが読み取るって感じだった気がしたんですが。。
> それならドライバはfbに対応していれば良くって、320x240の
> 定義はfbで操作すればって思ってたんですが。

kernel ソース driver/video の辺りの controlfb.[c,h] とか fbmon.c とかを見ていると、
うまいこと patch を書ければ、いけそうな気分になります。

#普段軟弱な言語しか使っていないので、僕が書いたら1年かかりそうですが。

どちらにせよ、設定でどうにかなるものではなくて、パッチを当てないとダメっぽいですね。

ポータブル開発環境ではないですが、ポータブルデモ環境で小さいマシンが欲しいと思ったことは何度かあります。
何故かでかいマシンよりも小さいマシンを見ると熱くなるんですよね。

今現在ですと、やっぱりはみ出して、切れたような表示になるんですかね?
コンソール出力用の少インチモニタって、時々見かけますが、あれってVGA以上あるんでしょうかね?
#気にしたことなかった
    • good
    • 0
この回答へのお礼

> ポータブル開発環境ではないですが、ポータブルデモ環境で小さいマシンが
> 欲しいと思ったことは何度かあります。
> 何故かでかいマシンよりも小さいマシンを見ると熱くなるんですよね。

同類です(^^;

出力の状態は画面に変な筋が入って真っ黒な状態なんですよね。
ちょっとキーを動かすと白いのが見えるので一応出力されている
ようですが。恐らくHSYNC、VSYNCの問題だと思っています
(カンです^^;)

おかげさまで一応自己解決しそうです。
と、いっても方法が解った訳では無く。。
色々調べてみると以下のサイトに私が使っているディスプレイにFBで
表示させようとしている方がいました。ARMですが。。。

http://www.linux-mips.org/archives/linux-mips/20 …

やっぱりドライバの修正とfb周りの修正をかける必要がありそうですね。。
一応、対応方法が解ったので、これで解決とさせて頂きます。

しょうもない質問へご回答頂きありがとうございましたm(_ _)m

お礼日時:2011/03/08 15:16

組込みですかね?



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自体はドライバがコントロール
するからハードウェア上で対応してなきゃ出来ないのかな。。

取りとめもなくて申し訳ありません。

補足日時:2011/03/07 12:58
    • good
    • 0

> Modes "1280x1024" "1024x768" "800x600" "640x480" "320x240"



実験してみましたが、やはり無理なようです。
640x480までしか、低解像度にはできないのは、仕様でしよう。

この回答への補足

Modesで320x240って出ましたか?

多分無理な原因はディスプレイが320x240に対応していない
からだと思います。

もし上記のModesが表示されたハードウェアの構成が解れば
私の環境であればいけるかも知れません。お手数でなければ
どのような環境下で上記Modesの一覧が表示されたかご教授
頂けませんか?

ちなみに、私がやった環境はNo5の方への補足でもお答えして
おりますがfit-pc2という極小PCとVMwareのVMで確認しており
どちらの場合もModesの中に320x240が出てきませんでした。

お手数ですがよろしくお願いいたしますm(_ _)m

補足日時:2011/03/07 13:03
    • good
    • 0

下記の値はどう示していますか。



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"
    • good
    • 0
この回答へのお礼

ありがとうございます!

ちょっと私の説明が不足しておりまして、大変恐縮なのですが
今回質問させていただいたのはCUIの環境になりまして、Xは
使っておりません。

もしCUIでの方法等わければ是非またご教授いただければ
幸いです(^^

ご回答いただきましてありがとうございましたm(_ _)m

お礼日時:2011/03/07 13:06

現在の普通のいわゆる「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なんですが。。もし解ればご教授いただけますと幸いです!

それでは、よろしくお願いいたします。

補足日時:2011/03/07 13:14
    • good
    • 0

CUIの画面?


GUI(X)の画面?
どっちのことを言ってるのですか?

ちなみに、画面サイズはカーネルの役割ではありません。
ドライバーです。

この回答への補足

すいません。説明が不足しておりました。

CUIでの実現方法になります。また言葉足らずで
申し訳なかったのですが、一応カーネルとドライバの
役割分担についても存じております(^^;

Linuxでドライバモジュールの追加をする方法が
カーネル再構築の時のmenuconfigとかでやる方法
以外はあまり良く解っておらず、機会が少ないので、
雰囲気で表現してしまいました。

単独でドライバがあるとも思えず、menuconfigでどこか
追加して出来ないかなと単純に思ったんですが。。
CUIのディスプレイ出力周りがLinuxの場合だとどんな
役割分担になってるかが今一把握できておらず(><

でも普通ディスプレイドライバって出力モードの設定と
ディスプレイカード自体のメモリ操作関連までですよね?

あ、そうか!ってことはディスプレイドライバの出力モード
で320x240可320x200の出力モードにする値を見つけれ
ば良いんでしょうかね?

まぁどうやって設定するかは謎ですが(^^;
もし何かわかることあれば是非ご教授いただけますと
幸いです。。

P.S
今気づきましたが240x320って(^^;320x240ですよね

補足日時:2011/03/07 13:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!