データベース移行

VPSを変更のためデータベースを移行しまたので、備忘録として残しておきます。

WordPress DB を移行のためにダンプします。
移行元のサーバにログインして、下記のコマンドでDBのダンプをとります。
ユーザー名、パスワードは、DBのユーザーとパスワードになります。

> mysqldump <DB名> -u<ユーザー名> -p<パスワード> > <ダンプファイル名>

ダンプダイルを移行先サーバーに転送します。私は、scp を使って転送しました。
移行先サーバで、あらかじめDBを作成しておきます。

そして作成したDBに、下記コマンドでダンプしたデータを移行します。

> mysql -u<ユーザー名> -p<パスワード> <DB名> < <ダンプファイル名>

これで、データベースの移行は完了です。

Xmodmap

MacのVirtualBoxにFreeBSDを入れましたが、Altキーが小さくて使いにくいので、Commandキーをメインに使うようにする設定を忘れないように書いておきます。
普段、emacs を no window で使うことが多いので、ターミナルだとCommandキーがMetaキーとして使えないことも大変不便だったので、Xmodmapを使ってキー割り当てを変更しています。
Alt+tabで出来るWindow切り替えを、Command+tabで出来るようになるので結構便利です。
VirtualBoxのホストキーのデフォルトは、CommandキーなのですがOptionキーを割り当てて使用するようにしています。

修正前の設定は、下記の通りです。ターミナルでxmodmapを使うことでわかります。

% xmodmap 
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_R (0x71),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

mod1 は、ターミナルでもキー配送される装飾キーになります。そこにコマンドキーに対応するSuper_LとSuper_Rをmod4からmod1に変更します。
キーコードは、xevで調べることができます。

設定は、下記のような~/.Xmodmapを作成して、 xmodmapで読み込みます。
普通にインストールされてGDMを使っているような方は、次回ログイン時から自動的に読み込まれる設定になっていると思います。

remove mod4 = Super_L
remove mod4 = Super_R
add mod1 = Super_L
add mod1 = Super_R
%xmodmap ~/.Xmodmap

変更後のxmodmapは、下記の通りです。

%xmodmap
xmodmap:  up to 6 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_R (0x71),  Super_L (0x73),  Super_R (0x74),  Super_L (0x7f),  Meta_L (0x9c)
mod2        Num_Lock (0x4d)
mod3
mod4        Hyper_L (0x80)
mod5        Mode_switch (0x5d),  ISO_Level3_Shift (0x7c)

以上です。

キーボード黄ばみ除去

キーボードの右側だけが、ひどく黄ばんでいて普通に拭いただけではきれいにならなかったのでhttp://www.geocities.jp/mimi_tarho/jyusi.html を参考に、黄ばみ除去に挑戦してみました。

まず、漂白前の画像です。画像がピンぼけしていますが、キーボード右側だけ黄ばんでいます。

キーボード漂白前全体

右側のアップです。レゴブロックは子供のいたずらです。

キーボード漂白前側面

キーボーソ漂白前側面

 

キーボードを分解したら、ワイドハイターに漬けます。ワイドハイターとワイドハイターEXがありましたが、両方とも成分に過酸化水素と記載されていたので、量が多いワイドハイターにしました。

ワイドハイターEXだとキーボードを漬けるには、少なめだったので・・・

2、3日浸けていると明らかに白くなってきました。夏の炎天下でワイドハイターが蒸発していたので、減っている場合は少し水を足して、一週間程浸け込みました。

結果が下記の通りです。残念ながら、HHKBのロゴ部分は剥がれて白いあとだけになっています。

キーボード漂白後全体

 

右側面も、かなり綺麗になっていて満足いく結果となりました。静電容量無接点方式は、バネがいっぱい入っているのですが、それを元に戻すのが少し大変でした。

キーボード漂白後側面

 

実践される場合は、素材等によってうまくいかない場合もあると思いますので、自己責任でお願いします。

 

自宅サーバ停止

自宅サーバのHDDがぶっ飛びました。夏の暑さにやられたようです。
連続稼働時間3ヶ月くらいだったと思います。残念。

ディスクにfsckかけてみましたが、lost+found ディレクトリに破損ファイルだらけになりました。

残念ながらバックアップもとっておらず、破損ファイルをちまちま復元するの大変なので、あきらめて以前作ったAmazonEC2のインスタンスでWordpressの設定をしました。どうせ復旧しても、今年は節電対策で、自宅での運用が難しそうなので・・・

以前Wordpresの設定をしたのが、だいぶ前なのですっかり記憶が飛んでいた。でもなんとか立ち上げ完了。

Happy Hacking Keyboard Professional2

Happy Hacking Keyboard Professiona2 を購入しました。
価格は非常に高いですが、いい買い物をしたと思います。

調子にのって、無刻印にしたけど、数字キーの入力が怪しい感じ。頑張って練習します。
今までHHK Lite2、FKB8579を使っていたいので、HHK Pro2との比較をしたいと思います。

サイズ:

形は、非常にコンパクトにまとまっていて、好みのタイプです。
Lite2,FKB8579よりカーソルキーが無い分、さらにコンパクトに仕上げられています。

 

キー配列:

Lite2、FKB8579と変わらないので、全く違和感がありません。
普段カーソルキーを使用することが多かったので、カーソルがファンクションキーとの組み合わせになるため初めは違和感を覚えました。すぐに慣れると思います。
個人的に重要なんですが、Lite2よりコマンドキーが大きくなっているので、emacsでM-xとか入力しやすいので、とてもいいです。
残念なところは、左側にファンクションキーがないところです。DIP SWによりAltをFnにすることができるので、それで対応したいと思います。

 

キータッチ:

キータッチは、最初のタッチが軽くてサクサク入力できます。言葉で表現すると難しいですが、ただ軽い訳ではなくてしっかり感もあります。
Lite2と比べると明らかにサクサク入力できます。Lite2は、押した瞬間が重たくてポコポコ入力する感じです。FKB8579の方が初期タッチ軽いですがふにゃふにゃしている感じです。でも好き嫌いは分かれると思います。
会社では茶軸キーボードを使っています。同時に比較することはできないのですがキータッチの重たさはHHKの方が重たい感じです。
個人的は、HHKの方がしっかりした感じのキータッチに思えるので好みです。

 

打鍵音:

音は、コツコツしていて、いい感じです。個人的には、ある程度音がある方がいかにもタイピングしている感があるので好みです。
Lite2のガチャガチャした音より落ち着きがあって、茶軸よりは低い音です。

 

以上でレビュー終了です。

Amazon EC2 無料お試し

いまさらですが、Amazon AWSの無料利用枠を使ってみました。
EC2でインスタンスを作って、sshでログインできるところまで確認。

ググれば、先人の方々のお知恵を借りることができるので特に難しいことはありませんでした。一番ハマったのは、AWSのアカウント作成です。
”The address you provided appears to be invalid.”と表示され登録が進まずメールアドレスやら何やら、いろいろ変更したのですがダメでした。
最終、http://blog.webcreativepark.net/2006/03/05-183648.html を参考にさせて頂き、ZIPコードが問題であることがわかり。郵便番号を3桁にして解決しました。

さて、これから何に使おうか・・・

VirtualBoxにMeeGoをインストール

MeeGoってどんなものか知るために、VirtualBoxで動作させてみました。

VirtualBoxで動かすためには、いろいろ手順が必要なようで、

http://wiki.meego.com/MeeGo_1.0_Netbook_VirtualBox を参考にして対応しました。

1. イメージのダウンロード

MeeGoのサイトからMeeGo 1.0 for NetBook 日本語版のイメージをダウンロードします。

http://meego.jp/downloads/index.html

ダウンロードしたら、拡張子をimgからisoに変更します。

2. VirtualBox 仮想マシン作成

仮想マシンの新規作成

OS:Linux バージョン:Fedora を選択します。
新規仮想マシンの作成
新規ハードディスクを作成します。今回は、8G可変サイズのストレージを作成しました。

システム-プロセッサで、「PAE/NXを有効化」にチェックを入れておきます。

ストレージIDEコントローラにダウンロードした、MeeGoのISOイメージを設定します。

3.MeeGoのインストール

仮想マシンの電源をオンして、起動します。 grubの画面が表示されるので、「Boot and Install」選択しEnterキーを押下します。

MeeGoのインストール画面が表示されるので、インストールします。 基本的に、「日本語」を選んだあと、「次へ」をひたすらクリックするだけです。 インストールが完了したら、「閉じる」をクリックして再起動します。

[Boot from local drive]を選択したが、BOOT FAILUREとなった・・・

CDドライブから、ISOイメージを外して再起動してみると起動したが固まってしまいました。

リセットしてすぐgrubを止め、Tabし下記のように変更してシングルユーザーモードで起動してみます。

vmlinuz-2.6.33.3-11.1-netbook ro root=/dev/sda2 quiet vga=current
vmlinuz-2.6.33.3-11.1-netbook ro root=/dev/sda2 vga=current s

シングルモードで起動したので、yumで最新の状態にしてrebootしてみました。

$ yum update -y
$ reboot

reboot して、しばらく待っていると「ようこそ」の画面が起動。

キーボード、タイムゾーンなどを設定して、進んでいくと、 途中で、止まってしまいました。しばらく待っても反応がないので、 仮想マシンをリセットして、再起動しました。ネット検索していると、libglxの置き換えが必要なことがわかりました。

4.libglx.soの置き換え

再度、シングルユーザーモードで起動します。

http://wiki.meego.com/MeeGo_1.0_Netbook_VirtualBox を参考にしてlibglx.soを置き換えます。

libglx.soの置き換えのみで、MeeGoの画面が表示されました。

$ yum install wget
$ wget http://wiki.meego.com/images/Libglx.so.gz
$ gunzip Libglx.so.gz
$ cp Libglx.so /usr/lib/xorg/modules/extensions/libglx.so
$ chmod 755 /usr/lib/xorg/modules/extensions/libglx.so
$ chmod +s /usr/bin/Xorg

再起動すると、MeeGoの画面が表示されました。

beagleboardでSDカードの抜き差しを減らす

beagleboardでAndroidのイメージを変更するたびに、SDカードにイメージをコピーして
起動しなおすのが面倒なので、chrootを使ってイメージを切り替えることにチャレンジしてみました。


1. beagleboardにUbuntuを入れる

http://elinux.org/BeagleBoardUbuntu を参考にしてubuntuのイメージを作成してください。

armのイメージ作成がFedoraでは無理だったので、今回は、VirtualBox にubuntuを入れて対応しました。
ubuntuにインストールに必要なツールを入れる

$ sudo apt-get install qemu
$ sudo apt-get install uboot-mkimage
$ sudo apt-get install rootstock
$ wget http://launchpad.net/project-rootstock/trunk/0.1.99.4/+download/rootstock-0.1.99.4.tar.gz

rootstockは、apt-getでもインストールできたのでが、バグがあるみたいなので
最新のソースをwgetでダウンロードしたものを使用しました。
実際、イメージの作成途中で止まったままになりました。

rootstockをインストールに合わせて依存関係のあるツールも一緒に入れる必要があったのですが、
調べるのが面倒だったので使わないけどあえて、apt-getでもrootstockをインストールしています。
PATHをwgetで取得した方を先に通すようにして使っています。
依存関係のあるパッケージは、qemu-extra-** とかだったような…

イメージを作成します。openssh-serverは必要なので必ず入れて下さい。その他は、お好きにしてください。

$ sudo ./rootstock --fqdn omap --login  --password   --imagesize 4G --seed  wget,nano,linux-firmware,wireless-tools,usbutils,xserver-xorg-core,xinit,xterm,wpasupplicant,openssh-server  --dist maverick --serial ttyS2 --components "main universe multiverse"  --kernel-image  http://rcn-ee.net/deb/maverick/v2.6.35.9-l8/linux-image-2.6.35.9-l8_1.0maverick_armel.deb

しばらく待つと下記のファイルが作成されます。

armel-rootfs-201101030333.tgz
initrd.img-2.6.35.9-l8
vmlinuz-2.6.35.9-l8

次にuImage,uInitrdの作成をします。

$ mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./vmlinuz-* ./uImage
$ mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d ./initrd.img-* ./uInitrd

実際には、使わないので作成しなくても良いと思いますが、動作確認用に作成しました。

SDカードへuImage, uInitrd をコピーしてネットワークへの接続、sshでのログインが確認できました。


2. カーネルをAndroidのカーネルに置き換える

ubuntuのカーネルをandroidのカーネルに置き換えます。
※カーネルのバージョンがあっていないけど、気にせずに置き換えます。
今回は、USB-LANアダプタ、無線LANアダプタを使いたいのでコンフィグを有効にしておきます。

$ANDROIDをandroidのソースのルートディレクトリとして説明します。
$ANDROID以下のkernelのディレクトリに移動します

Androidのkernelのディレクトリに移動します。

$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage clean
$ make ARCH=arm  CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-  defconfig  menuconfig

コンフィグで下記の設定を有効にする。
これは、必要なものを環境に合わせて設定して下さい。

[Device Drivers]->[Network device support]->[USB Network Adapters]
ASIX AX88xxx Based USB 2.0 Ethernet Adapters をチェック

[Device Drivers]->[Network device support]->[Wireless LAN]->
->[Wireless LAN (IEEE 802.11)]->[Ralink driver support]
Ralink rt2800 (USB) support をチェック

[*]で、built-in を選択しておく。

$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage modules

SDカードのデータを、できあがった uImageに置き換える。uInitrd は、削除してください。


3. Androidのイメージを転送する

SDカードをbeagleboardに挿入して起動すれば、linuxが起動するはず。

NICが見えているか確認します。起動時のログで、認識していることがわかるけど、いろいろ確認してみる

$ dmesg
$ ifconfig -a

eth0が見えていたので、DHCPでIP取得してみる。

$ sudo dhclient eth0

たぶん、IP取れると思います。取れなかったら各自で解決して下さい。
ホストマシンから、sshでログインしてみる。

$ ssh <username>@<IPaddress>

ログインできることを確認できたので、ホストマシンから、
beagleboardにAndroidのイメージを転送してみる

$ cd $ANDROID/vendor/sola/omap3/image/beagleboard
$ scp -r android <username>@<IPaddress>:/home/<username>

4. Androidを起動する

beagleboard にログインして、ホームディレクトリに先ほどコピーしたandroidディレクトリがあることを確認
chroot で、android ディレクトリをルートディレクトリに設定します。

$ sudo chroot /home/<username>/android /init

androidが起動しました。でもなんか不安定な感じが・・・

beagleboardで480i,480p出力

beagleboardをデジタルテレビに接続したときに、480i/pの出力させたいと思い
カーネルを少し触ったときの記録です。

kernel-beagleboard/drivers/video/modedb.c を次のように編集してから、
kernelを再ビルドしuImageを作りなおしてください。(ファイルのパスは適宜読みかえて下さい。)

*** ../kernel-beagleboard.orig/drivers/video/modedb.c   2010-07-24 00:39:10.000000000 +0900
--- drivers/video/modedb.c      2010-12-26 22:52:11.038082169 +0900
***************
*** 289,294 ****
--- 289,331 ----
        NULL, 60, 800, 480, KHZ2PICOS(30000), 40, 40, 13, 29, 48, 3,
        0, FB_VMODE_NONINTERLACED
      },
+     {
+       /* 640x480p@59.94/60Hz */
+       NULL, 60, 640, 480, 39722, 48, 16, 33, 10, 96, 2,
+       0, FB_VMODE_NONINTERLACED
+     }, {
+       /* 720x480p@59.94/60Hz */
+       "sd480p", 60, 720, 480, 37037, 60, 16, 30, 9, 62, 6,
+       0, FB_VMODE_NONINTERLACED
+     }, {
+       /* 1920x1080i@59.94/60Hz */
+       "hd1080i", 60, 1920, 1080, 13763, 148, 88, 15, 2, 44, 5,
+       0, FB_VMODE_INTERLACED
+     }, {
+       /* 720(1440)x480iH@59.94/60Hz */
+       "sd480i", 60, 1440, 480, 18554/*37108*/, 114, 38, 15, 4, 124, 3,
+       0, FB_VMODE_INTERLACED
+     }, {
+       /* 720(1440)x240pH@59.94/60Hz */
+       NULL, 60, 1440, 240, 18554, 114, 38, 16, 4, 124, 3,
+       0, FB_VMODE_NONINTERLACED
+     }, {
+       /* 720x576pH@50Hz */
+       NULL, 50, 720, 576, 37037, 68, 12, 39, 5, 64, 5,
+       0, FB_VMODE_NONINTERLACED
+     }, {
+       /* 1280x720p@50Hz */
+       NULL, 50, 1280, 720, 13468, 220, 440, 20, 5, 40, 5,
+       0, FB_VMODE_NONINTERLACED
+     }, {
+       /* 1920x1080i@50Hz */
+       NULL, 50, 1920, 1080, 13480, 148, 528, 15, 5, 528, 5,
+       0, FB_VMODE_INTERLACED
+     }, {
+       /* (2880)x480p4x@59.94/60Hz */
+       NULL, 50, 2880, 480, 11100, 240, 64, 30, 9, 248, 6,
+       0, FB_VMODE_NONINTERLACED
+     },
  };

  #ifdef CONFIG_FB_MODE_HELPERS

SDカードのuImageだけ置き換えれば、その他は置き換えなくて問題ありません。
beagleboard起動時に、dvimode を設定することで、480i/p出力できます。

setenv dvimode sd480p-16@60
setenv dvimode sd480i-16@60

(dvimodeの設定は、どちらか一方で問題ありません。)

FedoraでAndroidビルド環境構築

Ubuntuでのビルド環境構築を参考に、FedoraでAndroidのビルド環境を構築しました。
コンパイルできることまで確認できたので、忘れないように記録を残しておきます。

パッケージのインストール

Ubuntuの環境でインストールしているパッケージで、それっぽいのをyum でインストールしておきます。
今回、インストールしたのはこれ。(こんなにいらないかも・・・)

git-1.7.2.3-1.fc13.x86_64
perl-Git-1.7.2.3-1.fc13.noarch
libdrm-2.4.21-2.fc13.i686
mesa-dri-drivers-7.8.1-9.fc13.i686
libxml2-2.7.7-1.fc13.i686
libXxf86vm-1.1.0-1.fc13.i686
mesa-libGL-7.8.1-9.fc13.i686
mesa-libGLU-7.8.1-9.fc13.i686
flex-static-2.5.35-11.fc13.x86_64
flex-2.5.35-11.fc13.x86_64
bison-2.4.1-4.fc12.x86_64
gperf-3.0.3-9.fc12.x86_64
libXinerama-devel-1.1-2.fc13.x86_64
compat-readline5-5.2-17.fc12.i686
compat-readline5-devel-5.2-17.fc12.i686
zlib-devel-1.2.3-23.fc12.i686
glibc-devel-2.12.1-4.i686
libstdc++-devel-4.4.4-10.fc13.x86_64
gcc-c++-4.4.4-10.fc13.x86_64
ncurses-devel-5.7-7.20100130.fc13.i686

JDK1.5のインストール

JDKには、RPMパッケージがないため、SRPMでインストールを行います。
rpmbuild用のツールが、インストールされていない場合は、インストールして下さい。

$ sudo yum instal rpm-build.x86_64

java-1.5.0-sun-1.5.0.15-1jpp.nosrc.rpmをここ からダウンロードしてインストールします。

$ rpm -Uvh java-1.5.0-sun-1.5.0.15-1jpp.nosrc.rpm

JDKをここからダウンロードして、rpmbuildのディレクトリにコピーします。

$ cp jdk-1_5_0_22-linux-amd64.bin* ~/rpmbuild/SOURCES

インストールするバージョンに合わせて、specファイルを編集します。

$ cd ~/rpmbuild/SPECS
$ vi java-1.5.0-sun.spec

今回変更した内容は、下記の通りです。

-%define buildver        15
+%define buildver        22

SRPMパッケージをビルドしてインストールします。

$ rpmbuild -bb java-1.5.0-sun.spec
$ cd ~/rpmbuild/RPMS/x86_64
$ yum localinstall java-1.5.0-sun-1.5.0.22-1jpp.x86_64.rpm java-1.5.0-sun-devel-1.5.0.22-1jpp.x86_64.rpm

Javaの切り換え方法

eclipseで、openjdk がインストールされていると java-1.6なのでalternatives を使って java-1.5 に切り換えます。
alternativesは、chkconfigのRPMパッケージに入っています。

$ sudo alternatives --config java

3 プログラムがあり 'java' を提供します。

選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
   3           /usr/lib/jvm/jre-1.5.0-sun/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3

$ sudo alternatives --config javac

3 プログラムがあり 'javac' を提供します。

選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/javac
   2           /usr/lib/jvm/java-1.5.0-gcj/bin/javac
   3           /usr/lib/jvm/java-1.5.0-sun/bin/javac

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3

U-Boot用イメージ作成ツール導入

beagleboardでuImageを作成するために、uboot-toolsをyumでインストール

$ sudo yum install uboot-tools.x86_64

これでbuild環境の構築は完了です。