First Creation : 2004/10/26

Last Update: 2010/08/13

Top > Menu - VD > ZAURUS カスタマイズ 第 5回

Sambaインストール

今回の趣旨は、ZAURUS で Samba を稼働させ、Windows とファイルを共有させようという企画である。

今までの私だったら、Windows のファイルを Zaurus に取り込もうと思ったら、SDカード、もしくは CFカードを使うか、ZAURUS 付属の USBケーブルでファイルを転送していた。USB経由でのファイル転送は、設定がほとんど不要なので初心者にはありがたかった。しかし、ケーブルを持ち歩くのが不便で SDカードを多用していたら、ある日、取り出した SDカードが Zaurus に戻らなくなってしまったのである。どうやら何度も出し入れしていたため、壊れたようだ。

これを機に Samba を稼動させようと思い立った。Samba の設定をすることで ZAURUS はネットワークに接続され、母艦とのファイル共有がずっと楽になるはずだ。

1. LAN カードの設定

行程は大きく分けて 3つ。「1. LAN ネットワーク設定」「2. SMB Server 設定」「3. ユーザー設定 ( Linux & Smb )」。まずは LANカードの設定をする。

BUFFALO の LPC-CF-CLT を ZAURUS に差し込んで、以下の設定をした。

設定

デスクトップ ネットワーク接続をタップ。
LAN設定 セットアップをタップ。
IPアドレス設定

IPアドレスを設定する。

ブロードバンドルータを使っている例として、

IPアドレス:192.168.70.100

サブネットマスク:255.255.255.0

ゲートウェイ:192.168.70.1

メールアカウント設定 メールアカウントの設定は、今回は不要。
完了 設定確認の画面。
追加設定 DNS とか設定したいので、修正ボタンをタップ。
名前の設定 好きな名前にできる。
IPアドレス設定 IPアドレスの確認。
DNS設定

DNS の設定でルータの IPアドレスを入れないと、名前解決ができず、HP が見れない場合がある。

まあプロバイダの DNS を入れてもいいわけだが。

PROXY設定 なければ特に不要。
接続画面 接続して HP が見られるかどうか確認する。

確認

まず ZAURUS に刺さっているカードを有効にしよう。右下のタスクトレイにある地球のマークから接続だ。その後、Terminal を起動させ、

$ ping 192.168.70.1

のように、ルータや他の PC に対して pingコマンドを実行。応答があればよし、なければ設定がおかしいか、その端末がファイアウォールで ICMP を返さない設定になっているかだ。次にインターネット上にあるサーバーに ping を飛ばしてみて、反応があれば設定は完了となる。

なお、ICMP を返さないサーバーもよくあるので、ping で loss 100% でも ZAURUS からブラウザを立ち上げて HP が見れれば問題はないと思う。

2. Samba サーバーの設定

ZAURUS には標準で Samba が入っている。付属の USB ケーブルで Windows PC とファイルのシンクロができるが、あれも Samba を利用しているらしい。

さて、今回やりたいのは LAN経由でのファイル共有だ。というわけで次の設定を行う。

1. Samba の設定ファイル

/usr/lib/samba/smb.conf を開き、以下のように変更

[global]                        
# workgroup is either a domain name or a workgroup name
    netbios name = zaurus
    workgroup = UNKNOWN    # 適当な名前。Windows のワークグループと同じものにしよう。
    log file = /dev/null
    hosts allow = 192.168.70.
    # セキュリティ的に、上記の LAN の設定で行ったサブネットを入れるとよい
    # また、特定の PC からしかアクセスしないなら、
    # hosts allow = 192.168.70.2, 192.168.70.7 とかやればいい


# encrypt passwords is required for Win98, NT and Windows 2000

    encrypt passwords = yes
    coding system = utf8
    client code page = 932
    force create mode = 0755
    strict sync = yes
    sync always = yes


# interface = usb0
    interface = eth0
# eth0 を追加すると、イーサデバイス経由での Samba 接続を許可する、みたいな意味

# ifconfig で表示されるデバイス名に対しての許可だ
# なお、USBでの接続はしないので usb0 は削除した


    bind interfaces only=yes
# この設定がないとすべてのデバイスから接続されてしまう
# しかしながら 2005/02 現在、interface = eth0、bind interfaces only=yes
# にしていても、無線LANから接続できたという情報がある


#   wins support = yes


[system]
    comment = System Folder
    path = /root/samba
    read only = no
    browseable = no
    guest ok = yes
    force user = root


[home]                            
    comment = for User Data
    path = /home/samba
    short preserve case = no
    read only = no
    guest ok = no
#   force user = zaurus
    force user = xxxxxxxx      # とりあえず私しか使わないからこれでいい xxxxxx には自分のユーザー名を
#   force gropu = qpe          # グループ単位で許可させることもできる
  create mode = 0775         # ファイルを作成するとパーミッションが 775 になる
    directory mode = 0775      # ディレクトリを作成するとパーミッションが 775 になる

今回はさらっと触れるに止めるが、Linux はファイルにパーミッションがある。Windows NT 系を使っている人は知っている人もいるだろう。要はファイルのアクセス権だ。もし上記の設定をした場合、smb で共有したいファイルやフォルダのパーミッションを 775 にしておく必要がある。

例
# chmod 775 -R bloody-mary/     # bloody-mary というフォルダと、その中のファイルを 775 に設定

3. ユーザー設定

1. Linux ユーザー追加

いつも Windows にログオンするときのユーザーを Linux に追加する。その方法は Zaurus の場合ちょっと面倒だ。 なぜならユーザーを追加する adduser のコマンドがうまく動いてくれないからだ。 ならばどうするかと言うと、ユーザーファイルを直接書き換えてしまう。

# vi /etc/passwd          # ユーザーファイルに以下の一行追加
xxxxxxxx:x:501:500:PC User:/home/zaurus:/home/QtPalmtop/bin/tcsh
# IDを 501 にして、500番のグループにするという意味
# vi /etc/shadow          # パスワードファイルに以下の一行追加
xxxxxxxx:*:10933:0:99999:7:::
# passwd xxxxxxxx          # この後に好きなパスワードを設定する(Linux のパスワードなので好きなものを入れる)
2. Samba ユーザーの追加

「smbpasswd_0.1-1_arm.ipk」なるものを拾ってきてインストールした。これで

# smbpasswd -a xxxxxxxx 

とやって、Windows のパスワードを入力すれば設定はおしまいのはずだが、なぜか smbpasswd がうまく動いてくれない。

・

・(数日経過)

・

再インストールとかやっているうちに動くようになった。smbpasswd という samba 用のユーザーファイルが出現した。場所は次の位置である。

  • /home/etc/smbpasswd

4. いよいよファイル共有

さて、この状態から

# /etc/rc.d/init.d/samba start

とやれば Samba が起動する。次に Windows PC から、\\192.168.70.100 とかやって zaurus が覗けるかどうか確認。

問題なくファイル共有できた。本当はユーザー名の設定をしなければ 「 2. samba サーバーの設定 」 で終わりなのだが、今回ユーザー設定したことでやたら苦労した気がする。苦労した分、実体験として記憶に刻み込まれた。

5. おまけ - コマンド入力じゃなくて GUI で Samba を稼動させたいひと向け

Samba 本体と設定ファイルの場所

ファイル種別 場所
smb本体 /etc/rc.d/init.d/samba
設定ファイル /usr/lib/samba/smb.conf
ユーザーファイル /home/etc/smbpasswd

どのようにして起動させるか

Terminal からいちいち /etc/rc.d/init.d/samba start とやるのも面倒な話だ。好きなディレクトリから samba start とやるためにシンボリック・リンクを張るとか、.alias を使う手もありそうだが、その動作をいまいち理解しきれていないのでやるのが怖い。

Windows のショートカットみたいなものなのだろうか? だとしたら、ショートカットを作って本体を消したときにはどうなるのだろう。あまりやりすぎると、どこに何を作ったかわからなくなりそうだ。ゴミが残るのは生理的に好かない。

ならばどうしたかというと、KeyHelper なるソフトを利用した。以下の設定を追加。

[Files]
smb.conf = Customize/zeditor    /home/root/usr/lib/samba/smb.conf
中略
[Command]
SambaStart = @exec              /etc/rc.d/init.d/samba start
SambaStop = @exec               /etc/rc.d/init.d/samba stop

これで楽に起動できるようになった。まあ、ZAURUS 起動時に自動起動するようにしてもいいのだが、メモリの関係もあるし、不要なサービスが知らず知らずのうちに動いているのも怖いので必要なときだけ手動で動かせれば十分だ。

戻る上へ進む