カスタムカーネルパッケージの生成

SATAドライバを含まないことで本体のHDDにアクセスしないカーネルですが、よくよく考えるとカーネルパッケージを作ってターゲットにインストールすれば手軽です。
・・・ということで、カスタマイズしたカーネルパッケージを作ってみました。

“カスタムカーネルパッケージの生成” の続きを読む

FreeNASのデータバックアップ

普段、自宅のデータはFreeNAS上に置いてあります。FreeNASのデータ領域は2TBのHDD(しかも敢えて異なるメーカーのものを選定)を2本によるミラーリングにしてあるので、まず心配はいらないと思います。それでも念のためと誤操作による消失対策として外付けのHDDにも月に1回くらいバックアップをとっています。
これまでは古い2TBのHDDを外付けHDDケースに入れて、Windows7マシンでNTFSフォーマットし、盗難等の対策としてTruecryptによる暗号化ボリュームを設定していました。しかし、このHDDが何やら挙動が怪しくなってきたので、新規にWesternDigitalの外付け2TBを購入してバックアップ用にすることにしました。

早速、Windows7マシンに接続して、TrueCryptで暗号化ボリュームを作成・・・・していたのですが、なんせ2TBなので、20時間くらいかかりそう・・・・ということで電源を入れたまま放置していました。ところが、あと数時間というところで、Windowsが不意にリブートしたようです。で、調べてみると、WindowsUpdateによる自動再起動とのこと。

もう一回暗号化ボリュームを最初から作る気力はないので、他の方法を探ることに。
今回は、『Windowsのバカヤロー』から始まったことなので、Linuxで解決すべく考えてみることにしました。

“FreeNASのデータバックアップ” の続きを読む

LinuxMint13でOpenCVを動かす

LinuxMint13でOpenCVを動かしてみました。

OpenCVをインストールするためにSynapticで検索してみると、Mint11の場合と違ってMint13の場合にはOpenCVのバージョンが2.3.1になっていました。opencvで検索される

  • opencv-doc
  • python-opencv
  • libcv2.3
  • libhighgui2.3
  • libcvaux2.3
  • libcv-dev
  • libcvaux-dev
  • libhighgui-dev
  • libopencv-dev

を依存関係にあるファイルとともにインストールしました。インストール後、先に準備したディレクトリ(カスケードファイルもある)で、

$ g++ -o main main.c `pkg-config --cflags opencv` `pkg-config --libs opencv`

として実行ファイルを生成し、

$ ./main ファイル名.jpg(pngでもOKでした)

で顔認識は動きました。(でも、カスケードファイルは更新されてるかも??)
フーリエ変換の方も、

$ g++ -o fourier fourier.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`

として、

$ ./fourier ファイル名.jpg

としたら問題なく動作しました。

カスタムカーネル作成の続き

しばらく前に作ったカスタムカーネルを改めて作り直してみました。前回は遅いUSB外付け1.8inchHDDで構築したのですが、今回はもっと速い外付けHDDを使っています。(シーケンシャルアクセスで4倍くらい出てます)
設定は前回同様、SATA関連のものをすべて外しただけです。
(自分用のメモとして、 .configファイルをアップロードしておきます。→config.tar.gz

前回の手順でカスタムカーネルでブートするようになったのですが、起動時のカーネルのメッセージが何もでないので何をやっているのかさっぱり分からない状態です。
これはGRUBがなにかおかしいということで調べてみると、GRUB2ではデフォルトでは起動時のコンソール画面表示がOFFになっているとのことです。
これをONにするには、/etc/default/grub を編集します。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=" vga=788"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=800x600

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

7行目、8行目のGRUB_HIDDEN_TIMEOUT関連の2行をコメントアウトした後、最後に「$ sudo update-grub」を実行します。

他の設定項目もこのファイルの編集で可能なようなのですが、簡単に済ますにはSynapticパッケージマネージャで「startupmanager」を検索してインストールすればGUIで設定できるようです。インストールすると、「システム管理」の下に「StartUp-Manager」が出てきますので、これで設定します。

参考:http://viva-ubuntu.com/tag/grub2

設定後、RemasterSysでインストールDVD用のISOファイルを抽出しました。最新版のRemasterSysをインストールするには、

$ su -
# wget -O - http://www.remastersys.com/ubuntu/remastersys.gpg.key | apt-key add -

とした後、/etc/apt/sources.listにLinuxMint13の場合には

#Remastersys Precise
deb http://www.remastersys.com/ubuntu precise main

を書き足して、

$ sudo apt-get update
$ sudo apt-get install remastersys
$ sudo remastersys dist MintNoSATA.iso

としてISOファイルを抽出しました。なお、apt-get install で remastersys-gui を追加するとGUI版がインストールされるようです。(自分はGUI版の存在に気づく前にコマンドラインでマスター作っちゃいました)
remastersysの設定ファイルは /etc/remastersys.conf にあって、上記の手順でのライブCDのログインIDは「custom」、パスワードは無しになります。

USBメモリにはISOファイルを書き込んで作ったライブDVDでインストールすることができます。
(USBメモリは遅いので、USBメモリ上でのカーネル再構築は大変です・・・)

<追伸>
できたISOファイルは2.2GBと巨大になりました。よく考えたらカーネルインストールした後はソースを消してからライブCDを作るべきだったかも。

ディスクユーティリティをインストールする

LinuxMint11やUbuntu10.04LTSでは接続されているHDDの状態を見るのに初めからインストールされている「ディスク・ユーティリティ」が非常に便利でした。しかしながら、LinuxMint13では初期の状態ではディスク・ユーティリティは入っていません。これもLinuxデスクトップが一般化しつつあるので仕方ないのかもしれませんが、不便で困っていました。

しかし、Synapticパッケージマネージャで「palimpsest」もしくは「gnome-disk-utility」で検索するとインストールできることがわかりました。後者は当たり前といえば当たり前の名前なのですが、「disk utility」で検索してもどれなのかわからず困っていました。

“ディスクユーティリティをインストールする” の続きを読む

VMware上でbasix-1.0を動かしてみた

いろいろ環境をいじっているのですが、ちょっと怪しい作業は極力仮想マシン上で行うようにしています。これまでは仮想マシン上でUbuntu10.04LTSを動かしていたのですが、こちらもサポート期限が切れています。そこで、代わりのものを考えているのですが、できれば軽い方がいい、ということで、いろいろ試してみることにしました。

そんな中で、LiveCDの部屋でbasix-1.0を見つけたので、試してみています。元は、UbuntuのLXDE版のlxubuntuだったようなのですが、それが改称してbasix-1.0になったようです。

“VMware上でbasix-1.0を動かしてみた” の続きを読む

ISOイメージからブータブルUSBメモリを作ってみる

NM70I-847のリブート問題は、結局CentOS6.3/FreeBSD9.0なら安定動作、LinuxMint13/14/Ubuntu12.10は不安定、という状況になっています。現状はCentOS6.3で運用していますが、元々の狙いは「省電力で静かでつけっぱなしにできるクライアントLinuxデスクトップ」だったので、狙いとはちょっと外れています。CentOS6.3上のLinuxMint14も安定はしていますが、CPU負荷が増えるためかCPUファンが回る頻度が増えています。(そうでなくてもNM70Iはケースファンが全力で回るので、うるさかったりしますが、そっちは自作FANコントローラを入れることで処置するつもりです。)

ここで気づいたのは、CentOS6.3はLinuxのカーネルのバージョンが2.6.32と古いことです。LinuxMint13は3.2.0、Mint14は3.5.0ベースで、このあたりに何かヒントがあるような気がします。それで、最新カーネルはどうだっ!と思って、試そうとしたらあえなく挫折・・・したわけですが・・・。

さて、OSもインストール済みなので、安易にOS入れ替えもしたくないけど、解決策も探りたい、というわけで、いろんなディストリビューションを試してみたくなりました。

かといって、DVDにひたすら焼くのも面倒くさい、ということで、LiveDVDのISOイメージをUSBメモリに書き込んでブータブルなLive USBメモリを作る UNetbootin を試してみました。環境はLinuxMint13 64bitです。

“ISOイメージからブータブルUSBメモリを作ってみる” の続きを読む

LinuxMintをアップグレードしました(バックアップ編)

気がつけば、普段メインに使っている LinuxMint11 はサポート期限が切れていました。
そこで、LTS版であるLinuxMint13へのアップグレードの方法を調べてみました。

アップグレードの方法は、
http://community.linuxmint.com/tutorial/view/2
に記載がありますが、大きく分けて2つの方法があるようです。

  • “Fresh” アップグレード
    データとソフトウェアセレクションのバックアップをとって、クリーンインストールをしなおした上で、データとソフトウェアセレクションをリストアする方法です。こちらの方が「安全」「高速」「安心」「簡単」とのことです。
  • “Package” アップグレード
    APTのリポジトリを新しいリリースのものに設定し直して、APTでアップグレードする方法です。 こちらは「遅くて」「信頼性がなく」「危険で」「わかりにくい」とのこと。

当然、推奨は前者ですので、こちらを試してみることにしました。

“LinuxMintをアップグレードしました(バックアップ編)” の続きを読む

OpenCVの2次元フーリエ変換サンプルを動かしてみた

フーリエ変換は(自分が)わかっているようでわかってない。確かに数式は成り立つようだし、実際に世の中で役に立ってるんだから間違いないのだけど、実感できないものの一つだと思います。
OpenCVのサンプルを見ていたら面白いものがあったので、自分でコンパイルして試してみました。

“OpenCVの2次元フーリエ変換サンプルを動かしてみた” の続きを読む