□ Linux関連
●CentOS6.0でjfbterm - 2011/08/10
CentOS6.0にjfbterm-0.4.7-matchy7.el5.nosrc.rpmをビルド(i686)して入れようとしましたが、
1.exit時セグメンテーション違反(getutid()が返すNULLポインタによるsegfault)で
フレームバッファが固まる。
2.ビルドに必要なpage.hが規定のincludeに無い。
3.依存しているfonts-japaneseパッケージがCentOS6.0に無い。
といった理由でビルド&正常終了できませんでした。
1については、簡単な修正を加えて対処しました。
jfbterm-0.4.7-fix_utmp_bug.patch
2294Bytes,MD5: fdbd8cdc2df41f97657ef6cc39d2d8dc
※パッチは自己責任で使って下さい。
specファイルのPatch14辺りで適用して下さい。
manのサンプルの様に、そもそもgetutid()のポインタを使う必要は無いのかもしれませんが、
それより、utmp::ut_idの値の取り方において、通常の端末名"tty*"とは違い、
"pts/*"の"/"文字検索による決め打ちが根本的な原因ですので、他のディストリでも起こり得ます。
manには擬似端末における正しい値の取り方が載っていないので、これで良いのかわかりませんが、
sshに似せたので、きっと大丈夫でしょう。
2についてはkernel-develに含まれているpage.hへリンクを張って端的に対処。
3についてはCentOS5.6のパッケージからrpm2cpioで無理矢理引っ張ってなんとか対処。
2,3の様な問題でスマートなspecファイルを作れていないので、ソースRPMは置いてません。
もしかすると、自分の環境だけで起こる問題かもしれませんが、
同様に困っている方の参考になればと思います。
それにしても、一般ユーザーで入るとutmpファイルのパーミッションで
ログイン記録が残らないのは、仕様なんですかね。
コンソールを酷使すると、exit()手前のヒープ二重開放のabortが相変わらず…
いや、5.4の時より目立ってますし。
とりあえずioctl(0, KDSETMODE, KD_TEXT)を通ってコンソールが戻るので保留です。
システムフォントを扱えて、処理も軽いfbtermの方がいいのかも。
トップへ戻る