ブログ

Armadillo-400シリーズでsamba serverを使う

at_takuya.sasaki
2014年6月20日 20時14分

sambaという仕組みを使って、Armadillo上の任意のディレクトリを、Windowsと 共有することが可能ですが、samba serverはArmadillo-440ではデフォルトでは有効になっていません。

1. ユーザーランドのコンフィギュレーションを行います。

  [*] Customize Vendor/User Settings (NEW) 
  
    Userland Configuration
    Filesystem Applications  ---> 
    --- SAMBA
      [*] samba
      [*]   smbd
    [*]   nmbd

2. ポート競合が起こるため一部のMakefileを修正して、makeを実行してイメージファイルを作成します(romfs.img.gz)

atmark@atde3:~/atmark-dist$ vi user/samba/Makefile 
 

    ↓11/12行目をコメントアウト

11 #       $(ROMFSINST) -e CONFIG_USER_SAMBA \
12 #               -a "netbios-ssn stream tcp nowait root smbd -d1" /etc/inetd.conf
atmark@atde3:~/atmark-dist$ make

3. netflashなどを使ってユーザーランドを書き換えます

詳細は以下を参照してください。

http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.8.1/ch06.html

4. sambaの設定は /etc/config/smb.confにあります。

このファイルを編集することで、共有するユーザやフォルダなどがカスタマイズできますが、今回はデフォルトの以下の共有ファイル情報を利用します。

   -- smb.confの抜粋 --
   [public]
   path = /mnt/hda
   public = yes
   only guest = yes
   writable = yes
   printable = no

5. 上記設定にある/mnt/hdaディレクトリを誰でも読み書きできる状態で作成します。

[root@armadillo440-0 (ttymxc1) ~]# mkdir /mnt/hda
[root@armadillo440-0 (ttymxc1) ~]# chmod 777 /mnt/hda

6. smbdをデーモンとして起動します

 [root@armadillo440-0 (ttymxc1) ~]# /bin/smbd -D

7. ファイアウォールでsambaで使用するポートがふさがれていますので、解放します。

(192.168.11.0/24はお使いの環境に合わせて下さい)

[root@armadillo440-0 (ttymxc1) ~]#iptables -A INPUT -i eth0 -s 192.168.11.0/24 -p tcp -d 0/0 --dport 139 -j ACCEPT

8. 共有ファイルに適当なファイルを作成します。

 [root@armadillo440-0 (ttymxc1) ~]# touch /mnt/hda/test.txt

9. Windows PCのエクスプローラで以下のアドレスを指定すると、8で作成したファイルが見えるはずです。

\\192.168.11.126\public

またWindows PCからファイルの削除や、ドラッグ&ドロップなどでのファイルコピーも可能です。

[補足]

/mnt/hdaはRAMDISK上に作成したディレクトリなので、Armadilloを再起動すると消えてしまいます。 また手順6,7のコマンドについても、再起動後に再度実行する必要があります。 これらのコマンドを /etc/config/rc.localに記述して、flatfsd -sコマンドでフラッシュメモリの コンフィグ領域に保存することで、Armadillo起動時に毎回設定する必要がなくなります。

また初期化スクリプトとして自動実行することも可能です。 以下、ご参考になるかと思います。
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2.2./ch08.html#sec_execute_commands_automatically_at_a_boot_time

以上