QA@IT

jfbtermがmake installできません

3711 PV

初めて投稿させて頂きます。
現在Linuxを基礎の基礎から勉強中でして、今回はCentOS6.4(64bit)でjfbtermをソースからのインストールにチャレンジしました。
なんとか./configure〜make installまでなんとかたどり着いたのですが、make install時に以下のようなエラーが出てしまいます。調べても何をインストールすればいいのかわからず困っています。どうか先輩方にお力を貸していただきたいです。
(asm/page.hはカーネルに含まれるファイルということしかわかりませんでした・・・)

fbcommon.c:49:22: error: asm/page.h: そのようなファイルやディレクトリはありません
fbcommon.c: In function ‘tfbm_open’:
fbcommon.c:556: error: ‘PAGE_MASK’ undeclared (first use in this function)
fbcommon.c:556: error: (Each undeclared identifier is reported only once
fbcommon.c:556: error: for each function it appears in.)
fbcommon.c: In function ‘tfbm_close’:
fbcommon.c:611: error: ‘PAGE_MASK’ undeclared (first use in this function)
make: *** [fbcommon.o] エラー 1

加えて、現在デスクトップ環境でAlt+Ctrl+F1でコンソールに切り替えてCUIの練習をしているのですが、デスクトップ環境で利用できる「端末」では日本語が問題なく表示されるのに、Alt+Ctrl+F1で切り替えたCUIでは日本語が文字化けしてしまいます。なぜなのでしょうか?
正直この文字化けがなくなればjfbtermもインストールしなくていいのですが・・・。

回答

jfbtermはフレームバッファを利用する関係で場合によってはkernelの再構築が必要だったりめんどくさそうですね。事前準備のカーネルの再構築(必要時)やgcc、必要なライブラリなどのインストールはすんでますか?(gccなどのコンパイラは入ってますね)

さっきためしにCentOS6.4(64bit)をDesktop用インストールでインストールして軽く見てみました。

asm/page.h はDesktopインストールしたCentOS 6.4には含まれてません。
カーネル再構築していれば locate -r 'page.h' で見つけられるかもしれませんが見つかったからといってそれで良いかの判断もしないといけませんのでわからないうちにむやみに使うのはお勧めしません。

fedora Extraのパッケージ使うのも ncursesとコンフリクト起こしますね。

jfbtermにこだわっているわけではないようですので代替手段として

  • GUIからのターミナルで使用する(Macだと普通これですし)
  • (CentOSが別マシンや仮想マシンに入っているなら)puttyなどのsshクライアントを使用する
  • 英語になれるために日本語化しない

をあげておきます。
3番目もわりと真面目にお勧めしますよ(ディレクトリ名が化けるのは厄介ですが)。

ちなみに環境は実機ですか?仮想マシンですか?
実機であればデスクトップからターミナル開くのでも構わない気がしますが、なにか抵抗がありますか?

[追記]

ところでなぜGUIからだと文字化けしないのでしょうか?

どちらかというと、仮想コンソールで日本語が出力できない方が特殊というか制限なんですね。文字化けと言いますが全部同じ文字(四角とか)に化けてると思います。これは正確には化けているのではなくて、表示するためのフォントがない状態です。VGA互換アプリケーションにするための規格上の制限であまり多くのフォントを使うことができないという理由だったと思います(256だか512個まで)。

GUI側の端末アプリケーションはそういう規格上の制限がないのでたくさんのフォントを使って描画ができます。

fbtermも同じです。テキストモードっぽい 別の端末アプリケーション で、フレームバッファ( ≒ 画面の描画メモリ)に直接描画するので背景画像を表示したりたくさんのフォントを使ったりできるんです。もともとのテキストモードがすごくなる類のものではないです。使い手にはテキストモードがすごくなったように見えますし、どっちでもあんまり関係ないですが。

と、いうのが私の認識です(大枠ではあってるとおもいますが間違ってる部分があったらごめんなさい)。

編集 履歴 (2)
  • ./configureの際、gccやautomake1.4などが必要だと言われたのでpage.h以外は入れました。元々makeの実習とmanの日本語表示が目的だったので、manの参照はGUI環境からしようと思います:)
    ところでなぜGUIからだと文字化けしないのでしょうか?教えていただければありがたいです。
    -
  • 書き忘れましたが環境は実機で行なっています。ありがとうございます:) -
  • > ところでなぜGUIからだと文字化けしないのでしょうか? -> 長くなりそうですので上に追記しますね。
    -
  • 説明は追記した通りです。LinuxをXなし(GUIなし)で起動した場合はfbtermしかないでしょうが、Xからコンソールに切り替えるのであればGUIのターミナルでもいんじゃないかと思います。なんでもいいからconfigure~make install試したいのであれば他のもの nginxとかが簡単でいいかもしれませんね([nginx make install]あたりで検索すればでてくるかと)。 -
  • GUIからだと文字化け〜の件、解説ありがとうございます!とても良く理解できました!標準のコンソールでは日本語フォントを描画できないのですね。つまり(j)fbtermは、x windowsなどと同じ扱いというイメージですね。
    nginx、興味があるのでチャレンジしてみます!
    -

インストールされてないとおもいますよ。

gifnksmさんのブログを参考にすればいけるとおもいますよ。

(再現環境をもっていないので試してない)

エラーとして出力されている [ error: asm/page.h ] あたりで検索すればいいのです。

編集 履歴 (0)
  • ありがとうございます。やはり私の環境ではpage.hが存在しないようです。はじめからカーネルに含まれていないようです。。。 -

jfbterm にこだわる必要がないのなら、 fbterm を試してみるのはどうでしょうか?
EPEL にパッケージもあるようなので、自分で make しなくてもインストール出来そうな気がします。

編集 履歴 (0)
  • fbtermも日本語表示するためのものだったんですか!?試してみます。。。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。