仕方ないのでgccのバージョンを上げました。-O3にしてたのも-O2と-march=nativeに変更。これが一番最適化されるらしいので試して見ようかと思って。それと-fno-strict-aliasingも付けた。ポインタの型変換だけで違うタイプのメモリアクセスした場合に警告が出なくするだけですが、unionを使えば警告が出ないといわれてます。しかしunionってシステム依存な部分が多いから移植性に問題がありそうな気がする。恐らく使われることも少ないと思って警告をOFFという形で対処です。この辺りのプログラミングは宗教論争と同じだからなくすなら言語を変えるしかないだろうし。
全部コンパイルしたかったのですが、emerge -e systemを実行したらコンパイルできないのがあった。コンパイルされる順番が悪いのかフラグがいろいろ変わって駄目なのかよくわからず。GNOMEのバージョンも上がってるのでアップデート分のコンパイルを先に行いました。
引っかかったのがgststreamer関係。blockedの問題は軽度ですけど、gst-plugins-pangoのコンパイルがなかなか通らなかったので焦った。cairo辺りのエラーが出てたのでcairoをリコンパイルしても駄目。emerge –syncを実行してもしや?と思ってpangoをリコンパイルしたら通った。何をリコンパイルしたらいいかわからんのがGentooの悪いところというか欠点に思える。関連するパッケージが入ってればどんなコンパイルオプションだろうがある程度通ってしまうから整合性を取るのもむずかしいのでしょうね。これがソースビルド系のつらいところか。
Java
まだ勉強中の言語ですけど、入れておこうと思ったのですが、どうやらライセンスの受け入れでACCEPT_LICENSEをmake.confへ入れないと駄目だった。更にデフォルトだとフリーの奴が入ると思ってたのですが、それが消えてて駄目だし。仕方なくIBMの奴を入れようと思ったけど、IBMから落とせるのはSR8でGentooのSTABLEはSR7だったりする。マスクを外してSR8をインストールするも、BuildOnlyとか訳のわからん状態でげんなり。
まあ、うちのメインは今でもCだからどうでもいいんですけどね。別のスクリプト言語でも勉強しようかとか思ったり。
PowerBook G4へGentooを入れる
やっとGNOMEのインストールまで終わった。
インストールでのメモを残しておく。
・ブート
ppcのminimalをCDRかRWに焼いてCD起動する。優先順位は詳しくないので知りませんが、うちは難なくブートできた。もしHDDを見に行くならCキーを押しながら起動すればCDブートになる。CDイジェクトはOpenFirmwareからならeject cdで吐き出される。Linuxからは知らない。
boot:プロンプトで「ppc32」を打ち込んで起動する。デフォルトはG5の64ビットカーネルなので選んでしまうとメモリーエラーで起動しない。
・認識など
LiveCDでNICも難なく認識する。Intel PRO/1000ドライバがロードされてた。ビデオもRADEON RV250で自動認識。サウンドは自動認識せず(モジュール設定すればOK)
・区画
mac-fdiskで設定する。ハンドブック通りにやればいい。まず、iコマンドで初期化をし、bコマンドでAppleBootstrapを作成する。/bootとは意味が違うので要注意。cコマンドでswapを作成、あとはrootパーティションを作成すればいい。それ以外はご自由に。出来たらスワップ作成、rootをフォーマットしてマウントする。AppleBootstrapは放置してOK。ブートローダーを設定するときにフォーマットされる。
・日付設定
うちはまずタイムゾーンの設定とUTCの設定をしてしまいます。JSTで正常な時刻が出るように設定してハードウェアクロックはUTCで設定してシステム時刻を書き込んでしまう。正確な時刻はあとでNTPなどを入れてから同期する。
・STAGE3の展開とカーネルコンパイルまで
stage3とportageの最新をとってくる。コンパイルオプションは-marchをG4へ。USEフラグはまだ設定しないでおく。ここで設定すると循環依存を引き起こして苦労することになるので。最低限XやGNOME辺りまで入れてから設定し、emerge -uDN worldでリコンパイルすればいい。
・カーネルの設定
genkernelを使ってるので特にこれといって指定するものは無い。各自好きに設定すればいいと思われます。うちはsplashも入れようとしましたが、どうもうまく行かない模様。
・モジュール設定
サウンド関係が素の状態だと認識されません。snd_powermac、snd_mixer_oss、i2c-devを/etc/modules.autoload.d/kernel-2.6へ追加します。
・fstab
rootとswapだけ指定。/bootはコメントアウト。分けてる人は指定するべし。
・その他設定
ハンドブックでやってることを一通り必要なのをやればいい。
・ブートローダー
うちはyabootを使いました。まずyabootconfigで自動作成し、/etc/yaboot.confを手直しするのがいいかと。デュアルブートとかしらね。カーネルオプションはappendで指定した。images内に指定すればいい。
mkofbootでAppleBootstrapをフォーマットしてインストール。一応ybin -vで更新しておいた。
・そして起動
ぱにくったり起動しなければLiveCDを起動して区画をマウントしてシステムに入り手直しする。起動できれば自分の環境下でいじればいい。
・ALSA
モジュールがロードされてればalsaconfで設定できる。
・Xorg
公式ドキュメントのインストール通りで特に問題ない。うちはHALを使うのでxorg.confは特に設定をいじってない。keyboardとmouseをいじったけどHALの方が疲れてるから意味がないと思われ。
・HAL
/etc/hal/fdi/policy/にキーボードとマウス用のfdiを記述する。うちはThinkPadで設定した奴をそのまま持ってきてjp用に直しただけ。マウスも特に指定はない。両方ともドライバはevdevにしてる。xf86-input-evdevのマージも忘れないように。
・緊急用に
うちはXを上げたときに操作不能になると困るのでtelnetdを有効にしている。xinetdとnetkit-telnetdをマージし、xinetd.confのony_fromに自分のネットワークアドレスを追加してtelnetdを有効にしてxinetd起動させておく。
それと、自分のユーザーを追加してwheelグループにも参加させておく。これでtelnetでログインしてsuできるようになる。
もし、Xを起動して駄目ならtelnetで入ってxdmなどを止めれば問題ないし、telnetで環境を整えてもいいし。
あとはひたすら必要なパッケージを入れていけばいい。
3Dアクセラも効いてglxgearsも4600くらいか。ちょっとした動画も問題ないと思われます。
最近買った本
金額的にはヤフオクでOh!X、Oh!MZが高いか。冊数が多いだけですけど。単価計算なら1冊100~300円程度か。これでS-OS関係の記事は一式揃ったのと、前から探してたMZ-2000用の北斗の男のソースが手に入った。これでOh!MZは内容を見て落札すればいいので楽になりました。あとは失われたI/Oを何とかすれば。
☆
カキの作業便利帳―小玉果・裏年をなくす法、改訂 ウメの作業便利帳―結実安定と樹の衰弱を防ぐ、キウイフルーツの作業便利帳―個性的品種をつくりこなすという本を買った。農文協の本が詳しく書いてあって教科書的な構成なのが選んだ決め手。片手間に出来る果実でキウイをやりたいと思ってまして、ヘイワードがあるのでそれを練習がてら手入れして行こうと思ってます。柿も30本くらい自由にしていいと言われてるのでそれも収益になればと思ってます。消毒やら下草刈りやらやったので次は収穫前にもう一度消毒かな。ウメは既に収穫直前ですけど来年もっと実をならせようと思うので知識としてです。
キウイがうまく行くならこれを副業のメインにしたいと思います。直売所とかネット通販も考えてるのでまずは安定収穫からか。柿は葉っぱのお茶を作ってみたけど売れるかは別かな。すぐった枝に生えてたのを利用したのですけど、本気で作るならもう少し集めてもいいと思った。
☆
引っ越してから放置してあるAmigaを何とか動かそうと思うのですけど、設置場所が難しい。基本15KHzのモニターですけど、アップスキャンコンバーターも持っててそれを使えば31KHzでもいけるのでメインのモニターに出せると思います。ただ、メガデモとか見るなら15KHzじゃないと厳しいかなって。
うちのはA1200をベースにタワー化して68040だったかプロセッサを載せてます。PCIバスも入れてあり、NICも刺してるので正常に動けば現役で使えるのですけどね。最近の情勢を調べつつ中身を空けてチェックしてからか。キーボードタイプは格好いいのですけど拡張がネックですしね。動いたところでソフト類がいまいち整理できてないので何とかしないと。
ひとまず
gccの警告以外特に問題なかった。
サーバは-O3でコンパイルしてるのでもっとやばい気もする。
寝室にノートを持ち運んで使ってたのですけどちと厳しいのでPowerBookG4へGentooを入れることにしました。研究用に当時購入したのですけど、MacOS自体もう使わない可能性も高いので有効活用したいと思いまして。インストール用のDVDがあるので入れ替えてもいいのですけど、HDDをそのまま入れ替えてインストールしました。トルクスドライバは以前手に入れて入れ替えの実験をしたことがあるので今回は特に問題なし…と思ったらやはりハマった。
まずLiveCDの起動で問題が。最新はG5がデフォルトになっており、64ビットなのを知らずに起動してメモリーエラーが出ました。もう一度あけて見たけどメモリーなんて購入時すらいじってないのでCDRWへの書き込みミスか?とか思って何度か焼きなおしてるうちに、ふと気づいたという間抜けぶり。ブート時にppc32を指定したら起動しましたとさ。
ハンドブックの通りにインストール。次にハマったのがyaboot。再起動をしてみるも、unknown filesystemだったかエラーが出て起動せず。手動でyaboot.confをいじったのが原因と思ってyabootconfigで作り直してdeviceもちゃんと設定して再起動してみても駄目。再度yabootconfigで作った奴と見比べて見たらパーティション番号が違ってた。x86系だとboot、swap、rootと区画を切るのですけど、Macの場合はbootが無くて別の区画が2種類入って4区画だったのを忘れてたという。しかも作り直した奴を使えばいいのですけど、appendに記載したパラメータを生かすために前の奴をベースにしたのが問題だったという。カーネルの作り直しが面倒だからsplashも含めてコンパイルしたのでその関係のパラメータも含めてたのが敗因。まあ、そもそもMac系でsplashが使えるのか不明なので作り直す可能性もあるわけですけどね。
起動できたのでXorg -configureでxorg.conf.newを作りましたがXorgがエラー吐いてるのは見なかったことに。Xを起動してみたら何とか動いてる感じです。何も出てこなかったのはマウスの設定が駄目だっただけで特に問題なさそうです。GNOMEで使いたいので関連のコンパイルに入りましたが一晩かかりそうなので放置してあります。続きは完了後かな。
マシンのメンテ
どうやらgccのバージョンが上がったらしいのでメンテしてなかったのですがサーバのメンテをする前に別のマシンでアップデートを。
カーネルは最新状態、GNOMEのバージョンも上がってる模様。この辺りはいいのですが、気になるのがPythonか。2.6のバージョンが上がりつつ、3.xも同時にインストールされるらしい。Pythonは慎重にやらないとportage自体おかしくなるので一番嫌なところと思う。
まずはgcc。昨日寝る前にアップデートをしてたのですが、下記の警告が出てたり。
/var/tmp/portage/sys-devel/gcc-4.4.3/work/gcc-4.4.3/libgcc/../gcc/unwind-dw2-fde.c:843:
warning: dereferencing type-punned pointer will break strict-aliasing rules
同じソースから大量に出てた。コンパイルオプションに-fno-strict-aliasingを追加すればいいらしいのですが、そもそも警告が出るようなソースって大丈夫なの?っていつも思う。コンパイルオプションは人それぞれなので仕方ないといわれたらそれまでですけど、これを指定されてれば警告すら出ないという推奨値くらい欲しいものです。やはり警告1つでても不安が残る。自分でプログラミングをするときは警告の出るような書き方はしないし、警告=コーディングミスと思ってしまうので不安になってしまうのですよね。
今思うと、4.3で4.4のコンパイルをしたからそれも原因か?とか思ったり。実際同じになりそうですけど、最新のコンパイラでコンパイラをコンパイルしないと気持ち悪い感じもする。glibcのコンパイルが終わったらもう一度コンパイルしてみよう。
複数キーボードの混在
ノートPCのメインキーは英語キーボードにしてるのですが、最近MZ-2000エミュレータで当時のBASICマガジンなどのゲームを打ち込んでるとカナ入力が厳しくて外付けUSB経由で日本語キーボードを繋いで共存させようと思いました。
しかし、繋ぐと外付けキーボードも英語キーで認識されるし。ELECOM製なのでツールを使って日本語キーにして再起動すると、メインまで日本語キーになって使えないとわかりました。
いろいろと調べてみると混在してもエミュレーションしてやってくれるソフトがあるとわかりましたが、有償なのでどうも気に入らない。この程度なら出来て当然じゃ?と思ったので別の方法が無いか調査。探し出したのが、外付けUSBキーのドライバをTOSHIBA USB 109 Japanese keyboardにすれば共存出来るらしいとのこと。
デバイスマネージャから手動でドライバを更新してみると共存できました。つか、これくらい普通に出来て当然じゃね?機器を正しく認識しないのが問題であってさ。違った機器を使うならまだしも…。
ちなみに英語キーのままだとカナ表記の一部が入力できなくて苦労したりする。MZ-2000ではテンキーに00キーってのがあって、そのキー内容が$23と$24なのでPOKE $23,アスキーコード で入力したいコードを指定して00キーを押せば入力できる。この技を使えばカーソル制御、画面消去などの特殊な文字も入力できる。MZ系だけなんだけどね。80K/C系列だと難なく入力できるのですけど、80B系列はキー入力できないけど特殊な技で入力できる。これ以外にもファンクションキーに登録する方法やビデオRAMの切り替えを使って画面に出してそれを編集する方法もある。
まあ、これで日本語キーが使えればカナ入力以外もいくつかOKになるのでチェッカーと黒塗り四角、黒塗り円、制御文字だけ00キー技を使えばいいことになる。これで楽になるかな。
FirefoxのCPU異常使用
以前調べたらabout:configでconfig.trim_on_minimizeをtrueにして再起動すればCPU使用率を抑えられるって記事があったので追加してあるのですが、最近また異常にCPUを消費する場合がある。
使用してるアドオンは、拡張機能でMicrosoft .NET Framework Assistant、テーマはデフォルトのまま追加なし、プラグインはAdobe Acrobat、MicrosoftR DRM、Mozilla Default Plug-in、Shockwave Flash、Winamp Application Detector、Windows Media Player Plug-in Dynamic Link Library、Windows Presentation FoundationとAcrobatとFlash、Winampが入ったくらい。よくアドオンが悪さするって話がありましたけど、それが原因なのかよく見えてません。
そもそも調べても事例が前述のケースか、Flashなどのアドオンが古いとかそういうのしか見当たらなくて。
通常の使い方は、1ウインドにタブを10個くらい開いてますけど、どこかのページが悪さしてるとも考えにくい。5個程度で別ウインドにしてもいいですが、それも余計にリソースを食いそうでどちらがいいのやら。マシンは基本的に再起動せず、寝る前にサスペンドさせる感じ。
憶測だとネットワークが絡んで何か起きてるように思う。リクエストを出してる途中で反応が無い場合の処理とかその辺りかな…なんて。根拠はありませんが、よくドメインコントローラ周りでタイムアウト関係でトラブルがあった気がするし。
まあ、もう少し情報を集めて見るしか。
さぼり気味
いろいろとあって忙しかった。Master of Epicをやってたからじゃないんだよ。
つーことで、小説を買った。ラノベで980円は高くね?って思いますけど、オンラインゲームで使えるアイテムが付いてるのでこの値段なのでしょう。最近の小説は高いからこんなものと思いますけど、ちと痛い金額かな。
ゲーム内で使えるアイテムは、左手に装備する盾の代わりですが、フェレットもどきみたいなのが装備できるようになる。ペットに将来なるならいいな…なんて思いますけど、こういう特殊なアイテムは無理だろうね。前の小説であるマスター オブ エピック ~運命の双子~ (HJ文庫)は腰の装飾品だったけど今回の方がいい感じ。
そういえば前の奴の途中で止まっていて話もすっかり忘れてる。読み直さねばw
起動しなくなる
ノートPCにWSBuilderを入れて再起動してみたら起動しなくなった。問題はソフトというよりハード障害ですが、ブート時にハードチェックが終わってHDDからブートしようとするとそこで止まるという。Missingは出ないのでHDDからブートプログラムが読み取れないと思うのですが、修復インストールしても起動できなかった。CHKDSKも非常に時間がかかって正常終了っぽく見えるけど修復してるっぽく見えつつ実は何もしてない感じで何だか。
復旧作業前にコミケで江戸らぐさんから貰ったSLAX-jaのCDRを使って起動してWindowsマシンへHDD内容をコピーしました。SLAXだとCIFSのマウントができるので、Windowsのデフォルト共有であるSharedDocsもマウント出来て救済にちょうどよかったりする。tarとかzipで固めてコピーと思ったのですが、Linux上ではSJISだと駄目なのでUTF-8で圧縮してしまう。これだと共有へ持っていってもWindowsで解凍するとUTF-8のまま解凍するのでNGだったりする。なので、共有へディレクトリごとコピーで対処しました。これだとNTFS(SJIS)→(mountで変換)→Linux(UTF-8)→(CIFSで変換)→Win(SJIS)とコピーされるのでWinで中身を見る場合問題なく参照できるという感じです。
Windowsの再インストールはSLAXからmkfs.ntfsでフォーマットしておき、Windowsのセットアップからクイックフォーマットしてセットアップしました。またアクチが動いてしまいましたけど何とかセットアップできました。一応CHKDSKしてみたけどエラーがまったく無いのが不気味すぎる。
ThunderBirdとFireFoxはApplication Data内の各フォルダとLocal Settings内のApplication Dataフォルダ内のフォルダをコピーしてセットアップしたら元に戻りました。ブックマークも履歴もキャッシュまでもそのままなので一安心です。問題点はインストーラーを通さないアプリ類のバックアップが欠落してしまっていて面倒なのでメインマシンからコピーしなおして復旧しました。余計なのを入れない予定だったけど面倒だし。そしてクイック起動を復元して元に戻りました。
忘れてたのが1点あった。うちのノートはThinkPadですが、トラックポイントのドライバが持つ設定ファイルにFireFoxの設定がないのを忘れてて何度かセットアップしていた点。何でセンターボタンのホールド+上下でスクロールしないのか謎だったよ。
あとはコンパイラを何にするか悩んだけど入れようとしていたWSBuilderはマルチプラットホームでいいのはわかるのですけど、Windows的な操作性に問題があるプログラムってわかったので利用を諦めました。キーバインドをきっちり設定すればいけそうですけど、デフォルトでWindowsとの親和性が低いってのは致命的かと。メニューをマウスで選んで左右にマウスを動かすとメニューの隣などが開いたりしますけど、そういうのが出来ないと何だ?こりゃ?ってなりますので。また、gccであるMinGWですが、どうもアップデート関係の仕組みがいまいちわかりにくい。MSYSと別システムになってるのでMSYS関係はMSYSのインストール先へ解凍して上書きすればいいのですけど、MinGW関係のコマンドとダブってたりするし整合性が取れなくなったら調べるのも面倒になりそうで結局消しました。gccが使えるとLinuxと連携して開発が出来るので魅力的なのですけど、突き詰めればforkとかプロセス制御関係がそのまま動かないみたいですし、WindowsはWindowsで何とかしないと駄目って感じか?なので、結局Borland C++5.51とPlathome SDKを入れました。リソースエディタがないのでOpenWATCOMも入れてリソース周りはこちらを使おうかと考えてます。まあ、これでサクラエディタとかエミュレータの一部はコンパイルできるので事足りると思われます。(MSの開発ツールに屈せればいいのですが高いしねぇ。貧乏サンデープログラマには手が出せません)