ブログ

Armadillo-IoT(G3/G3L)/X1:WindowsPC上の共有フォルダをマウントする方法

at_kazutaka.bito
2018年9月3日 9時59分

以下では、Armadillo-IoT(G3L)の場合で説明しますが、Armadillo-IoT(G3)/X1でも同様の手順です。

1.WindowsPC上に共有フォルダを作成

アカウントと共有フォルダを作成します。
ここでは、 [Windows 7] ネットワーク上のユーザーとファイル・フォルダーを共有する方法 を参考に下記のように作成しました。

アカウント
 ユーザ名:user1
 パスワード:user1pass
共有フォルダ
 フォルダ名:C:\shared

以下、WindowsPCのIPアドレスは例として

192.168.11.39

の場合で説明します。

2.ネットワークファイルシステムの設定を追加したカーネルイメージの作成

ATDE上で、カーネルコンフィギュレーションのネットワークファイルシステムを設定します。

以下、カーネルのバージョンは、
linux-3.14-x1-at21.tar.gz
initramfs_x1-v1.1.0.cpio.gz
の場合で説明します。
(異なるバージョンを使用する場合は、使用するバージョン名に読み替えてください。)

以下、上記のカーネルのソースコードがATDEのホームディレクトリ(~/)にある状態から説明します。

atmark@atde6:~$ tar xf linux-3.14-x1-at21.tar.gz
atmark@atde6:~$ cd linux-3.14-x1-at21
atmark@atde6:~/linux-3.14-x1-at21$ ln -s ../initramfs_x1-v1.1.0.cpio.gz initramfs_x1.cpio.gz

デフォルトコンフィギュレーションを適用します。

atmark@atde6:~/linux-3.14-x1-at21$ make ARCH=arm x1_defconfig

カーネルコンフィギュレーションを設定します。

atmark@atde6:~/linux-3.14-x1-at21$ make ARCH=arm menuconfig

で、カーネルコンフィギュレーションの画面を開いて、CIFSとSMB2の設定を有効(yキーを押して、[*]を付ける)にします。
(下記の表記では、ここで有効する行(2つ)の末尾に★を付けています。)

File systems
  [*] Network File Systems --->
    <*> CIFS support (advanced network filesystem, SMBFS successor)★
      [*] Enable CIFS debugging routines
      [*] SMB2 network file system support★

上記設定後、Exitを選択し続け、最後に、

Do you wish to save your new configuration?

の問いには、Yesを選択して、終了します。

カーネルをビルドします。

atmark@atde6:~/linux-3.14-x1-at21$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
atmark@atde6:~/linux-3.14-x1-at21$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage

ビルドされたカーネルイメージ

atmark@atde6:~/linux-3.14-x1-at21$ ls arch/arm/boot/uImage
arch/arm/boot/uImage

このuImageをArmadillo-IoT(G3L)に置きます。
(uImageをATDEから、ArmadilloーIoT(G3L)に置く方法は多種(ネットワーク経由、USBメモリ経由、SDカード経由など)  ありますが、ここでは割愛します。)

3.Armadillo-IoT(G3L)のカーネルイメージの書き換えとcifs-utilsのインストール

以下の説明において、カーネルイメージ(uImage)は、ArmadilloーIoT(G3L)のホームディレクトリ(~/)にある状態から説明します。

カーネルイメージを書き換えます。

root@armadillo:~# mount -t vfat /dev/mmcblk2p1 /mnt
root@armadillo:~# cp ./uImage /mnt/uImage
root@armadillo:~# umount /mnt

再起動します。

カーネルコンフィギュレーションのCIFSが適用されていることを確認します。

root@armadillo:~# zcat /proc/config.gz | grep CIFS
CONFIG_CIFS=y
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_UPCALL is not set
# CONFIG_CIFS_XATTR is not set
CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_DFS_UPCALL is not set
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_FSCACHE is not set

Armadillo-IoT(G3L)をインターネット接続可能なネットワークに接続します。

cifs-utilsをインストールします。

root@armadillo:~# apt-get install cifs-utils

4.WindowsPC上の共有フォルダをArmadillo-IoT(G3L)にマウント

Armadillo-IoT(G3L)と共有フォルダを作成したWindowsPCをネットワークで接続します。

WindowsPCが、

アカウント
 ユーザ名:user1
 パスワード:user1pass
共有フォルダ
 フォルダ名:C:\shared
IPアドレス:192.168.11.39

の場合、

root@armadillo:~# mount -t cifs -o user=user1,password=user1pass //192.168.11.39/shared /mnt

で、WindowsPCの共有フォルダが、/mntにマウントされます。

WindowsPCで、CIFSが有効でない場合は、下記のようにSMB2.0を指定して試してください。

root@armadillo:~# mount -t cifs -o user=user1,password=user1pass,vers=2.0 //192.168.11.39/shared /mnt