Linux」カテゴリーアーカイブ

Debian lenny でポータブルな Subversion Server を作る

Debian (lenny) を使った設定メモ
Subversion が使えるところまで

●準備

Debian — The Universal Operating System

左側の CD ISO images から “testing” distribution をダウンロード。
必要なのは debian-testing-i386-CD-1.iso だけ。

●VirtualBox

今回は VirtualBox 2.1.2 を使っています。

VirtualBox

(1) 仮想マシン作成
  新規→ OSタイプ Linux / Debian を選択 → RAM default の 256MB

(2) 仮想ハードディスク
  新規 → 可変サイズのストレージ
    → 容量必要に応じて(今回はdefault 8GBを選択) → 完了

swap を使うなら、swap 専用に仮想ハードディスクを分けて作成しておいた方が
良いと思われます。

(3) 作られた仮想マシンを選択して「設定」
   CD/DVD-ROM
     → CD/DVD ドライブのマウントにチェック
     → ISOイメージファイルを選択
     → 仮想メディアマネージャに debian-testing-i386-CD-1.iso を追加&選択
   ネットワーク
     → 割り当てを「NAT」から「ホストインターフェース」に変更

1.x の時はコマンドラインで設定が必要だったので、ネットワーク設定は以前より
簡単になっているようです。

(4) キーボードの確認
   キーボードに右 Control キーがあるならそのままで OK
   もし無いなら、メニューのファイル→環境設定→入力
     ここでホストキーを別のキーに変更しておく

(5) 起動
   マウスがキャプチャされた場合(マウスカーソルが消えた場合)は、右 Control
   キーで復帰することをあらかじめ覚えておきます。
   (4) でキー割り当てを変更した場合はそちら。

●Debian install

(1) 起動した画面で「Install」選択
   言語選択 日本語 → あとはインストーラに従う

インストーラのメッセージや手順は etch と同じです。
(PS3 やっぱり Debian 再インストールメモ)

(2) 以下手順

スワップは設定しない方針で。必要になったら別の仮想ハードディスクを作って
割り当てる。または仮想マシンに割り当てる物理メモリ量を増やす。

キーボード配置の選択
  日本 (106 キー)

ネットワークの設定
  ホスト名: 任意
  ドメイン名: 任意

ディスクのパーティショニング
  手動
	→ "IDE1 マスタ (hda) - 8.6GB VBOX HARDDISK" を選択
	→ 「新しいパーティションテーブルを作成しますか?」 はい
	→ "基/論 8.6GB  空き領域" を選択
	→ "新しいパーティションの作成" を選択
	→ サイズ 8.6GB のまま、続ける
	→ "基本パーティション" を選ぶ
	→ マウントポイントが / なっていることを確認して
		"パーティションのセットアップを終了" を選ぶ
	→ "パーティショニングの終了とディスクへの変更の書き込み"
	→ スワップがないと怒られるけど無視 (いいえ を選ぶ)
	→ 書き込みの最終確認が出るので「はい」

root のパスワード、ユーザーアカウントの設定

パッケージマネージャの設定
  別の CD や DVD を検査しますか?: いいえ
  ネットワークミラーを使いますか?: はい
	ミラーを選ぶ
  Debian パッケージ利用調査に参加しますか?: いいえ

ソフトウエアの選択
  デスクトップ環境のチェックを外して、ウェブサーバとファイルサーバを追加
    [ ] デスクトップ環境
    [*] ウェブサーバ
    [ ] 印刷サーバ
    [ ] DNS サーバ
    [*] ファイルサーバ
    [ ] メールサーバ
    [ ] SQL データベース
    [ ] ラップトップ
    [*] 標準システム
  続ける

samba server
  ワークグループ/ドメイン名: 任意
  DHCP から WINS 設定を使うよう smb.conf を変更しますか?: はい

GRUB ブートローダのインストール
  マスターブートレコードに GRUB ブートローダをインストールしますか?: はい

インストールの完了
  メニューの デバイス → CD/DVD-ROM マウントの解除
  続けるを選択し再起動、しばらく待つと login: プロンプトになる。

●Debian の設定

(1) root でログインして ssh を入れる

コンソールでそのまま続けても構いませんが、日本語がでないしテキストのコピペが
出来ないので ssh 入れて putty 使います。

# vi /etc/apt/sources.list

deb cdrom:[Debian GNU/Linux testing _Lenny_ – Official Snapshot i386 CD Binary-1 20090119-04:20]/ lenny main
の行をコメントアウトします。先頭に # を付ける。

# apt-get update
# apt-get install ssh

文字化けしてるけど気にしない。何か聞かれるので Y

# vi /etc/dhcp3/dhclient.conf

send host-name “ホスト名”

send host-name の行のコメントを外してホスト名(サーバー名)を書き込む。

終わったらログアウト

PuTTYjp
puttyjp を起動して、ウィンドウ→変換→文字セットを「UTF-8(CJK)」に変更
ホスト名を入れてログインする

(2) サーバーの設定

以後 root 作業です。

# vi /etc/samba/smb.conf

[homes] の read only を no に変更
read only = no

# smbpasswd -a USER

ユーザーを追加してパスワード登録。(‘USER’ は作成した個人アカウント)
これでファイルなどの転送が Windows の explorer からできます。

# apt-get install subversion
# apt-get install libapache2-svn libapache2-mod-encoding

dav_svn の設定はマニュアルを参考にします。

# more /usr/share/doc/libapache2-svn/README.Debian

/etc/apache2/mods-available/dav_svn.conf を見よ、と 1行しか書いてなかった。

# cd /etc/apache2
# vi mods-available/dav_svn.conf

下記の行のコメントを外す (必要に応じて書き換える)


  DVA svn
  SVNPath /var/lib/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user

SVNPath の代わりに SVNParentPath を使うと複数のリポジトリを指定出来るように
なるとのこと。Windows の apache2 で dav_svn を設定するとこちらになるので
前から違うなと思ってましたが、、ここにありました。

# a2enmod auth_basic authn_file
# htpasswd -c /etc/apache2/dav_svn.passwd USER

Basic 認証のユーザー登録。’USER’ 部分は置き換えてください。

リポジトリ作成。(既存のリポジトリをコピーして使うなら不要)

# svnadmin create /var/lib/svn

ポート番号などの設定を変えるなら次も書き換える。変更しないなら不要

# vi ports.conf
# vi sites-available/default
# vi sites-available/default-ssl

SSL の設定はやはりマニュアルを参考にする。

# zmore /usr/share/doc/apache2/README.Debian.gz

設定方法が書いてありました。手順通りに実行してみます。

# apt-get install ssl-cert
# make-ssl-cert generate-default-snakeoil –force-overwrite
# a2ensite default-ssl
# a2enmod ssl
# /etc/init.d/apache2 restart

これは self-signed のみのサンプルです。必要に応じて変更してください。
今回の用途は家庭内サーバー用。

(3) 確認

PC や他のマシンのブラウザで確認します。うまくいけば次の通り。

http://作成したサーバー/svn
https://作成したサーバー/svn

ユーザー名とパスワードが必要。空のリポジトリが表示される。

関連エントリ
PS3 やっぱり Debian 再インストールメモ

W-ZERO3 Linux の build 環境を作る

W-ZERO3[es] で Linux が動き出しました。以前こちら
W-ZERO3[es] Linux
W-ZERO3[es] Linux (2) mini SD
でも書きましたが、詳しくは
Linux on W-ZERO3
に書かれています。

まめに更新されていて、今では es でない W-ZERO3 (WS003SH) 等でも動作
するようになっています。

EM・ONE での動作にも期待がかかるのですが、、今のところはまだ動作対象外
のようです。EM・ONE はグラフィックアクセラレータ GoForce5500 が乗って
いるため、万が一動いても画面は見えないだろうしもしくは描画アクセスで
止まってしまう可能性があります。

無印対応以外にも、キーボードの刻印どおりに入力できるようになっていたり、
sd 周りを簡単に扱えるコマンドが入ったり、
開発者向けにクロス開発環境の作り方などがこちらで解説されています。
FrontPage – 開発room

実際にクロス環境の構築を試してみました。

(1) 仮想PC に Fedora7 を install

先日 PS3 に install したばかりなので、同じように Fedora 7 を使ってみます。

当初 VirtualPC2007 を使おうとしたのですが うまく動きませんでした。
今のカーネルと VirtualPC のエミュレーション対象との相性で問題があるようです。
(ubuntu 7.04 でもマウスが動きませんでした)

そこで、USB が使えたり、RemoteDesktop で仮想 PC へ接続が可能だという
VirtualBox を使ってみました。
WindowsVista に VirtualBox を install し、仮想マシンを作って
Fedora 7 の DVD image ( F-7-i386-DVD.iso ) から install します。
iso を直接マウントできるため物理的にメディアに焼きこむ必要はありません。

マウスのキャプチャ状態は 右の Ctrl キーで Host PC に戻ります。
(Virtual PC だと 右 Alt でした)

仮想マシン作成時に聞かれる設定はこんな感じです。

 ・OS の種類は Linux 2.6
 ・RAM は 512M (host PC はRAM 2G)

仮想 HDD のサイズは 20GB にしています。
Fedora 7 の Install オプションは下記の 3つ全部チェックしました。

  ・オフィスプロダクティビティ
  ・ソフトウエア開発
  ・webサーバー

使うインストーラの画面も手順も PS3 と全く一緒。
インストール後、ネットワークにつながることを確認したらおしまいです。
しばらくすると更新を催促されるのでそのまま更新しておきます。

(2) クロス開発環境の構築 buildroot

とりあえず W-ZERO3 用の開発環境を作ってみます。
開発メモ クロス開発環境の構築
を参考に進めました。

まず buildroot を入手します。下記から Download → Daily Snapshots
BUILDROOT

今回は buildroot-20070709 を使いました。
buildroot-20070709.tar.bz2 をダウンロードして PC に保存します。
共有フォルダを使って VirtualBox 上の Fedora7 にコピーします。

Fedora7 上の Firefox から直接ダウンロードしたほうが早かったかもしれません。

ターミナルを開いて、以後全部コマンドラインから作業します。
 アプリケーション→システムツール→端末

適当な作業フォルダを作って、先ほどダウンロードした
 buildroot-20070709.tar.bz2
を入れます。

 $ cd
 $ mkdir zero3
 $ mv Desktop/buildroot-20070709.tar.bz2 zero3

  (作業フォルダとして home に zero3 を作成し、Desktop にダウンロード
  した ~.bz2 を zero3 に移動する。)

tar を展開します。

 $ cd zero3
 $ bzcat buildroot-20070709.tar.bz2 | tar -xvf –

buildroot フォルダができるので、その中で config 設定します。

 $ cd buildroot
 $ make menuconfig

Menu 上で設定を行います。

 Target Architecture → arm に変更
 Target Architecture Variant → xscale に変更
 Target Options → cpio the root filesystem にチェック追加

[→] で <Exit> を選択して save 画面で <Yes>。

この後 make で build が始まります。
build 中必要に応じてパッケージを buildroot/dl フォルダにダウンロードして
くるようです。ダウンロードされたファイルは下記の通りです。
Wiki にあるように、可能なら先に任意のサイトからダウンロードして、
あらかじめ dl に置いておくと良いかもしれません。

  binutils-2.17.tar.bz2
  busybox-1.6.1.tar.bz2
  fakeroot_1.7.1.tar.gz
  gcc-4.2.0.tar.bz2
  genext2fs-1.4.tar.gz
  gmp-4.2.1.tar.bz2
  linux-2.6.21.5.tar.bz2
  mpfr-2.2.1.patch
  mpfr-2.2.1.tar.bz2
  uClibc-0.9.29.tar.bz2

make します。

 $ make

途中で config の追加設定を 2回きかれます。

 ◎Target Processor Type
   15. Intel Xscale (CONFIG_ARM_XSCALE)

  15 の XScale を選択

 ◎Use BX in function return (USE_BX)

  Wiki の解説どおり default の「Y」を選択

完了したら、arm 向けの各種コマンド類が下記の場所にできます。

 zero3/buildroot/build_arm/staging_dir/usr/bin

パスを通します。HOME に armenv というファイルを作って

 $ cd
 $ vi armenv

次の 1行を書き込んでおきます。

———————————————————————–
export PATH=”$PATH:$HOME/zero3/buildroot/build_arm/staging_dir/usr/bin”
———————————————————————–

 $ . ./armenv

これで path が追加されます。

(3) 手抜きテスト

適当なプログラムを作ります。

 $ vi main.c

———————————————————————–
#include
int main()
{
 printf( “HELLO, ZERO3\n” ); /* 適当 */
 return 0;
}
———————————————————————–

 $ arm-linux-gcc main.c
 $ file a.out

a.out: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), not stripped

なんとなくできたっぽいです。

(4) 実行テスト

(3) で作った a.out を miniSD に書き込んでおいてから、W-ZERO3[es] の
Linux を起動します。

最新版(20070707)では勝手に root で login するし、sd コマンドですぐに
miniSD をマウントできるしで、ものすごい楽です。

 # cd /mnt/sd1
 # ./a.out

HELLO, ZERO3

とりあえずうごいたっぽいです。
こんないい加減なものでは動作確認にならないかもしれないし、手順とか構築
とかもミスやおかしな点とかあるかもしれないです。
が、とりあえず今日はここまでにします。

ちなみに、本当は、PS3 上の Fedora7 で W-ZERO3 Linux 用の開発環境を構築
してみたかったのですが、やっぱり通りませんでした。
(PS3 Linux Fedora7 install はそれが目的だった)

W-ZERO3[es] Linux (2) mini SD

Readme-ja.txt を参考に miniSD を mount してみました。
内蔵キーボードで長いデバイス名を打つのは大変なので省略しています。

$ mknod /dev/sd b 254 1
$ mkdir /mnt/sd
$ mount /dev/sd /mnt/sd
$ df

Filesystem Size Used Available Use% Mounted on
/dev/sd 1.9G 256.0k 1.9G 0% /mnt/sd

SD にリダイレクトして書き込み → umount → PCで読み出し
等も普通にできました。

$ dmesg

W-ZERO3[es] Linux

W-ZERO3[es] (WS007SH) で動作する Linux が話題になっていたので
起動してみました。驚くほどあっさりと立ち上がりました。
Linux on W-ZERO3

まだカーネルが立ち上がるだけで、Linux が起動したからといって特に何か
できるわけではありません。ファイルシステムもなく、イメージに埋め込まれた
ミニルートで起動しているだけのようです。

ところがそれ故にインストールなど面倒な手順も一切なく、WindowsMobile
側のファイルシステムにも一切手を加えることなく Linux が立ち上がって
しまいます。このお手軽感はちょっとした驚きです。

2007/07/01 現在、起動までの手順は

 ・アーカイブをダウンロードし、カーネルイメージとローダーを \My Documents
  に入れる。
 ・ローダーを起動する。

これだけあっという間に Linux の login: プロンプトが現れます。
WindowsMobile 用のローダーがカーネルイメージを読み込んで、システムの
起動を行っているようです。(起動はあくまで自己責任で)
どのような仕組みで起動しているのかわかりませんが、WindowsMobile
(WindowsCE) 下でエミュレーションで動いているわけではないようです。

root で login すると組み込まれているコマンドの実行が可能です。

キー入力は内蔵のキーボードで行いますが、ASCII (英語) キーボードとして
認識しているようで、一部の記号がキーボード刻印と異なっています。
英語キーボードと日本語キーボードの配列の違いを考えて打てば記号入力も
できます。

例えばよく使うパイプ “|” は [\] の Shift なので、
[SHIFT] を押しながら [Fn]+[-=] (\) で打てます。

コロン “:” は英語キーボードだと [;] の Shift なので
[SHIFT] を押しながら [Fn]+[;,] です。

reboot すると ROM 側 (WindowsCE) が起動し元に戻ります。
時計がリセットされていますが PC とシンクロすれば再設定してくれます。

SDカードにはアクセスできるそうなので、フォーマットして
環境構築したりなども、もしかしたらできるのかもしれません。