ブログ

Armadillo-810でCIFSを使ってイメージを書き換える

at_takuya.sasaki
2016年6月2日 18時27分

CIFSを使って、ArmadilloとUSB Ethere gadgetを利用して接続されたPC上の任意のディレクトリをマウントし、イメージを書き換えてみました。

1. カーネル/ユーザーランドのソースコードをダウンロードして、ビルドの準備をします。

1.1 ソースコードのダウンロード
atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-810/source/linux-3.4-at17.tar.gz
atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-810/source/atmark-dist-20160527.tar.gz
1.2 ソースコードの展開
atmark@atde5:~$ tar zxf atmark-dist-20160527.tar.gz 
atmark@atde5:~$ tar zxf linux-3.4-at17.tar.gz 
1.3 シンボリックリンクの作成
atmark@atde5:~$ ln -s atmark-dist-20160527 atmark-dist
atmark@atde5:~$ cd atmark-dist
atmark@atde5:~/atmark-dist$ ln -s ../linux-3.4-at17 ./linux-3.x
1.4 ベンダ・プロダクト名の選択
atmark@atde5:~/atmark-dist$ make menuconfig
 
Vender: Atmarck Techno
Product: Armadillo-810

2. カーネルのコンフィギュレーションを行い、ビルドします

2.1 カーネルのコンフィギュレーション
  Linux/arm 3.4-at17 Kernel Configuration
      File systems --->
         [*] Network File Systems --->
             <*> CIFS support (advanced network filesystem, SMBFS successor)        ★ チェックをつける
2.2 ビルド
atmark@atde5:~/atmark-dist$ make

3. ユーザーランドにcifs-utilsパッケージを展開します。

3.1 Debian Wheezyのcifs-utilsパッケージをダウンロードします。
atmark@atde5:~/atmark-dist$ cd
atmark@atde5:~$ wget http://ftp.jp.debian.org/debian/pool/main/c/cifs-utils/cifs-utils_5.5-1_armhf.deb
3.2 パッケージを展開します。
atmark@atde5:~$ dpkg -x cifs-utils_5.5-1_armhf.deb atmark-dist/romfs/
3.3 不要なドキュメントファイルは削除します。
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/man/
atmark@atde5:~$ rm -rf atmark-dist/romfs/usr/share/doc/

4. イメージを作成して、Armadillo-810に書きこみます

4.1 イメージの再作成
atmark@atde5:~/atmark-dist$ make image
4.2 イメージの書き換え

以下のマニュアルを参考に、カーネル/ユーザーランドのイメージを書き換えます。

https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.8.0/ch12.html

5. Armadillo-810の再起動

5.1 以下のHowToを参考に、WindowsPC側にRNDIS/Ethernet Gadgetのドライバをインストールして、pingが通るか確認します

Howto : Armadillo-810を接続して使用するためのWindows環境設定

5.2 Armadillo-810にログインして、mount.cifsコマンドを実行します
[root@armadillo810-0 (ttySC2) ~]# mount.cifs //169.254.185.149/share /mnt -o username=xxxx,password=xxxx,iocharset=utf8

PCのIPアドレスはAPIPAで割り振られた 169.264.185.149をそのまま使いました。 username、passwordはPC側の一般ユーザのアカウント名、パスワードを使います。 また事前にPC側でc:\shareというフォルダを共有状態にしています。(フォルダのプロパティ→共有タブにて設定)
さらに、c:\shareにカーネルのイメージ(linux.bin.gz)を保存しておきます。

5.3 マウントできているか確認します
[root@armadillo810-0 (ttySC2) ~]# ls /mnt
linux.bin.gz*
5.4 netflashでイメージを書き換えます
[root@armadillo810-0 (ttySC2) ~]# netflash -bknusr /dev/flash/kernel /mnt/linux.bin.gz

以上