- キット各種完売。
- msBerryDAC改造情報
2010/02/27(土)久しぶりにLinuxサーバをインストール
FのワークステーションでCELSIUS N450とかいうマシン。ARC-1210というRAIDカード。SASとSATAに互換性があるのは知らなかった。SASのポートに専用ケーブル使うとSATAが刺さるというカードがたくさん。
Debian5.04/amd64をインストールしようとしたのですが、HDDを認識しない。あれーRAIDカード認識しないのか!! と思って焦った。なんてことはない、RAIDアレイを作ってあるけど、ドライブ(ボリューム)を作ってなかった。
ArecaのカードはLinuxで自動で認識するって聞いてたのですが、たしかに普通に認識しました。どうやら、システム的にはSCSIカードとして見えるようです。しかし本格的なRAIDカードを扱うのが初めてなので細かい設定項目や注意点までわからない。エライヒト教えて(ぉ
別に容量はそんなに要らないのでRAID1です。HDDは故障率が低いことを期待して1プラッタのHitachi/IBM HDS721050CLA362(500GB)。ホットスペアを1個作ったのですが、これってHDD障害起こったときどうやって知ったらいいんだろう。そういえば、LinuxのソフトウェアRAIDもどうやって障害知ればいいんだろうか。
サーバなのでXは入れずにコンソールのみ。Ubuntuで慣れてるので、Debianもとまどうことなく扱えました。むしろ、色々拡張されてない分、Ubuntuより分かりやすいかも。
コンソールに日本語表示させるのに、フレームバッファモジュール(ビデオカードによる)を入れて、jfbtermであっさり通る。一昔前は、UTF-8コンソール出すのすごい面倒くさかった記憶があるのですが便利になったなあ。80x30とかはできないみたいだけども。*1
何がよかったって、キーボードがIBMのカチャカチャ言ういいキーボードで「なにこれ、コンソール楽しい」とかやってましたとさ(笑)
最近、Debian系も飽きてきたので、次(個人的に)サーバ立てるときはFreeBSDにしようかな。*2
2008/11/21(金)Canon CAPT プリンタ を x64 Linux で使えない
レーザープリンタが欲しくて、モノクロレーザープリンタを買ったんですが、さんざんな目に合いました。
Canon CAPT プリンタ
CanonのレーザープリンタといえばLISP4とかですが、廉価品のプリンタは CAPT という規格になっています。サーバに付けようと思いまして。
- Ubuntu Server 8.04 LTS (x64/amd64)
- Canon LBP-33xx
「今時Linuxでも何の問題もなく使えるさ」と思ったのが運の尽き、CAPTドライバはx64版が提供されてない(汗) ppdファイルだけ送り込めばなんとかなるかなと思ったもののダメ。
色々調べてみるとドライバソースファイルが提供されていたため、コンパイル作業にいそしみました。エラー多発。
- automake 1.9以降が必要
- libgtk-1.2-devが必要
- cndrvcups-capt-1.70/statusui
gtkを入れる最中に X ライブラリを大量に放り込まれ微妙な気分に……。それでも挫けず、数時間以上かけて、上の謎な対応もしても statusui はコンパイルエラー(致命的エラー)。なおしようがないので statusui を除いてインストール。
raw driver に逃げる
そもそも /dev/usb/lp0 = /dev/usblp0 としてデバイスのポートは見えているので、Windows上でプリンタ用データを生成して直接送り込めばいいということにしました。*3
CUPSをインストールして設定。これまたどうやっても印刷できず。USB認識のタイミングや、接続、デバイスなど何十回とテストしてもうまくいかない。そもそも、Windowsによって生成されたプリンタデータを
dd if=testdata of=/dev/usblp0
しても、20KB送り止まったり、そのあと1byteも送れなくなったり。何をどうやっても、raw プリンターとして認識出来ない。
原因
もう八方ふさがりで十数時間を浪費したあと、さらに多くの情報を漁りながら考えたこと。
- 少なくとも CUPS の filter は無事動作しているのに、印刷できないのはおかしい。
- /dev/usblp0 がそもそもデータを受け付けないのはおかしい。
色々試行錯誤した結果、原因判明。
Canon CAPTプリンタを動作させるにはccpdと呼ばれるデーモンが必要で、これはコンパイル済の状態でしか配布されてない。
ccpd(Canon Common Printer Daemon)を起動することにより、/dev/usblp0 ではない専用の通信路(Canon Printer Deamon Port#x)が表示されます。ここに印刷データを出力することでCanon CAPTプリンタは使用できます。*4
感想
ccpd のソース配れ!*5 というか Canon いっぺん死んでくれ。
さて困ったどうしよう…(汗)
追加調査
ccpd を 32bitバイナリとして実行して(ia32-emulationな環境)みました。色々試行錯誤の上、「captmoncnab7」が起動するところまでこぎ着けましたが、そこで止まりました。
captmoncnab7 は ccpd が起動させているようです。CAPTというプリンタは内部に処理機能をほとんど持っていません。必要な処理はソフトウェア(ドライバ側)で実現しようという思想によるものです。このデーモンは、印刷データをプリンタと双方向通信して実際の印刷処理(プリンタの制御処理)を行うデーモンと予想されます。
どうやら、gs-esp*6との通信に問題があるのではないかと思うのですが……。クローズソース(プロプライエタリ)なドライバではどうにもこうにも。
EPSONとか
EPSONは公式にはLinuxドライバを提供していませんが、サードパーティーからCUPSの本来の形式に則った形でドライバが提供されています。しかもオープンソースで。
Canonはソースの秘匿のためにわざとややこしい仕組みを使っているとしか思えない。なんだかなあ。次買うときはEPSONかな。(ある人おすすめのブラザーもよさそう。……よく見るとトナーとドラムが分離しているので、ランニングコストが安くすみそう。ブラザーいいなあ。*7)
Canonはダメだ
CanonはLinuxで使う分には終わってる気がする。ネットで検索してみると面白いようにトラブル事例がたくさん引っかかる。
後日
2008/10/16(木)Linuxを使ってWindows環境を丸コピー
Windowsを使ってWindowsを丸移植
Windowsを80GBから1TBのHDDに移植(交換)する作業が必要になりました。よくやる手は、
- 新HDDの新しい区画(第1パーティション)を作成し、同じバージョンのWindowsを新規インストール。
- 全く関係ないHDDからWindowsを起動して、旧HDDのCドライブのファイルすべてを、新HDDのCドライブに丸コピー。*1
- 元のマシン(旧HDDが付いていたマシン)に新HDDのみを取り付け、起動。
注意点。
- 新HDDの区画を旧HDDのOS上から決して認識させないこと。
- 新HDDから初めて起動するとき、絶対に旧HDDを接続しないこと。
- 新HDDがCドライブとして認識されるよう注意する。余計なドライブ類やUSBドライブなどがドライブレターとして先に認識されるようなら必ずオフにしておく。
今回もこの方法と行きたかったのですが、両方ともSATAのためできませんでした。原理的には問題ないのですが、家の環境では「SATAで稼働中のWindowsは1台しかない*2」ので無理でした。
Linuxを使ってWindowsを丸移植
- 旧HDD /dev/sda
- 新HDD /dev/sdb
fdiskで旧HDDのパーティーションを確認。
/dev/sda1 1 2123 NTFS
新しいHDDに全く同じサイズのパーティーションを作成。
/dev/sdb1 1 2123 NTFS
ddコマンドで丸コピー。
# dd bs=64M if=/dev/sda1 of=/dev/sdb1
それで、新HDDを差して再起動。……起動しない。もちろん最初に書いた注意点は守ったのに。
ミスの詳細
そういえばMBRを書き込んでなかったと思って、Windows回復コンソールから
C:\>fixmbr
としてもダメ(HDDのブートセクタの復旧というやつです)。その後、色々試しても起動せず、FDからmbmを起動すれば一発解決だったのですが、FDドライブが付いてない。○時間経過。どうにもこうにも困り果てたところで、ふとLinuxを起動して、fdiskを叩いたところで原因発見。
デバイス Boot Start End /dev/sda1 1 2123 Linux
区画番号がLinuxのままだった(汗)
fdiskから、「t」→「7」でNTFSに変更し、Windowsはアクティブ区画からじゃないと起動しないので、「a」→「1」でこの区画をアクティブ(ブートするパーティーション)として設定。
デバイス Boot Start End /dev/sda1 * 1 2123 NTFS
無事、Windowsが起動したのでした。疲れた……(汗)
なぜ回復コンソールにfdiskが入ってないのか、小一時間問いつめたくなった。
2008/05/22(木)Linuxでmdadmを使ったソフトウェアRAIDの構築・管理メモ
Linux(Ubuntu 10.04 LTS Server)で mdadm を使用してソフトウェアRAIDを構築・管理する方法について述べます。特に既に稼働中のLinuxにHDDを追加してあとからRAID1を構築する方法を述べます。
2008/05/05(月)【Linux/FreeBSD】 ファイル名の文字コード変換ツール
Linux/FreeBSDやその他Unixにおいてファイル名の文字コードをEUC-JPからUTF-8(またはその逆)に変更したいとき、良い方法がありませんでした。
この変更を自動的に行うPerlスクリプトです。