Armadilloフォーラム

Armadillo840でのgphoto2組み込み方法

k-fukui

2020年1月10日 9時41分

お世話になります。
福井と申します。

先日、Armadillo-420で、下記URLにてご質問させて頂いておりました。
https://users.atmark-techno.com/forum/armadillo/2093

今回、Armadillo-840で、最新のgphoto2を入れたいのですが、
どのようにすれば宜しいか、お教え頂けませんでしょうか?

宜しくお願い致します。

コメント

佐藤です。

1点確認させてください。
> 今回、Armadillo-840で、最新のgphoto2を入れたいのですが、
最新とは、Debian(Wheezy)で配布されている gphoto2 パッケージの最新ということでしょうか、
それとも gphoto2 公式サイト上で配布されている最新バージョンということでしょうか。

福井です。

インストールしたものはgphoto2公式サイトのものになります。
ちなみにWheezyは若干古いものとなっておりました。

福井です。

今回導入したいものは、公式サイトのものになります。
ちなみに、Wheezyは公式サイトより若干古いものであることまで調査しております。

佐藤です。

> 今回導入したいものは、公式サイトのものになります。
ソースからビルドする必要がありますので、こちらで動作確認できた手順を示します。

・ビルド環境
ATDE5

・用意するもの
atmark-dist最新版(https://users.atmark-techno.com/files/downloads/armadillo-840/source/at…)
libgphoto2最新版(2.5.23)
gphoto2最新版(2.5.23)

・手順
atmark-dist の user 下に gphoto2 ディレクトリを作り、そこに libgphoto2 と gphoto2 を展開してください。

[atde5]$ mkdir atmark-dist-20191226/user/gphoto2
[atde5]$ tar xjf libgphoto2-2.5.23.tar.bz2 -C atmark-dist-20191226/user/gphoto2
[atde5]$ tar xjf gphoto2-2.5.23.tar.bz2 -C atmark-dist-20191226/user/gphoto2

添付のパッチを atmark-dist 下に入れて適用してください。

[atde5]$ cd atmark-dist-20191226
[atde5]$ patch -p1 < atmark-dist_gphoto2.patch

make menuconfig で gphoto2 を有効にしてください。

[atde5]$ make menuconfig
Kernel/Library/Defaults Section --->
 [*] Customize Vendor/User Settings <- 有効にする
 
保存して抜ける
 
 Miscellaneous Applications --->
  [*] gphoto2 <- 有効にする
 
保存して抜ける
 
[atde5]$ make

出来上がった、romfs.img を Armadillo-840 に書き込むと gphoto2 が使えるようになっていると思います。

こちらでは、gphoto2 のいくつかのコマンドが使えることが確認できました。

[root@armadillo840-0 (ttySC2) ~]# gphoto2 --auto-detect                         
Model                          Port                                             
----------------------------------------------------------                      
Nikon Coolpix P330 (PTP mode)  usb:001,002                                      
[root@armadillo840-0 (ttySC2) ~]# gphoto2 --list-config                         
/main/actions/opcode                                                            
/main/settings/datetime                                                         
/main/settings/fastfs                                                           
/main/settings/capturetarget                                                    
/main/settings/autofocus                                                        
/main/status/serialnumber                                                       
/main/status/manufacturer                                                       
/main/status/cameramodel                                                        
/main/status/deviceversion                                                      
/main/status/vendorextension                                                    
/main/status/batterylevel                                                       
/main/other/5001                                                                
/main/other/5011                                                                
/main/other/d280                                                                
/main/other/d303                                                                
/main/other/d406                                                                
/main/other/d407
[root@armadillo840-0 (ttySC2) ~]# gphoto2 --get-config datetime                 
Label: Camera Date and Time                                                     
Readonly: 0                                                                     
Type: DATE                                                                      
Current: 1579134214                                                             
Printable: Thu Jan 16 09:23:34 2020                                             
Help: Use 'now' as the current time when setting.                               
 
END                                                                             
[root@armadillo840-0 (ttySC2) ~]# gphoto2 --set-config datetime=now
ファイル ファイルの説明
atmark-dist_gphoto2.patch gphoto2ビルド用パッチ

白川と申します。
ご教示願います。

上記のフォーラムを参考に、
libgphoto2(2.5.23)、gphoto2(2.5.23)を組み込んだ環境に、
libgphoto2(2.5.24)を組み込もうとしてビルドエラーになっており困っております。

user/gphoto2/Makefile
のlibgphoto2-2.5.23をlibgphoto2-2.5.24に修正するような対応では不十分でしょうか?

エラーログを添付いたします。

ファイル ファイルの説明
Make_抜粋.log エラーログ

花田です。

> エラーログを添付いたします。

Make_抜粋.log
> /home/atmark/atmark-dist/user/gphoto2/libgphoto2-2.5.24/auto-aux/missing: 行 81: aclocal-1.16: コマンドが見つかりません

このエラーで示されているのは、単純にGNU Automake 1.16が必要ということです。

ATDE5のwheezyには、Automakeは1.10までしかありません。
gphoto2のビルドスクリプトを古いAutomake用に書き直すというのは現実的ではなさそうなので、強引にAutomake 1.16を導入するのが安易な解になります。

Debian 9(buster)にはautomake-1.16があるので、これのソースを持ってきてやや強引にバックポート&ビルド&インストールするプランですと、こんな手順になります。

atmark@atde5:~$ su
root@atde5:~# apt-get install help2man libtool
root@atde5:~# exit
atmark@atde5:~$ wget http://deb.debian.org/debian/pool/main/a/automake-1.16/automake-1.16_1.16.1.orig.tar.xz
atmark@atde5:~$ wget http://deb.debian.org/debian/pool/main/a/automake-1.16/automake-1.16_1.16.1-4.debian.tar.xz
atmark@atde5:~$ tar xf automake-1.16_1.16.1.orig.tar.xz
atmark@atde5:~$ cd automake-1.16.1
atmark@atde5:~/automake-1.16.1$ tar xf ../automake-1.16_1.16.1-4.debian.tar.xz
atmark@atde5:~/automake-1.16.1$ echo 10 > debian/compat
atmark@atde5:~/automake-1.16.1$ dpkg-buildpackage -b -rfakeroot -us -uc -d
atmark@atde5:~/automake-1.16.1$ cd ..
atmark@atde5:~$ ls *.deb
automake_1.16.1-4_all.deb
atmark@atde5:~$ su
root@atde5:~# dpkg -i automake_1.16.1-4_all.deb
root@atde5:~# exit

注意点は
- debian/compatバージョンを書き換えて、wheezyとのコンパチビリティ問題を解消
- dpkg-buildpackageに-dをつけて、本来はビルドに必要なパッケージとバージョンチェックを無視させている(debhelper v11以上&libtool-bin)
といったこと。Automakeの用途上、古いdebhelperやlibtoolでは機能が不足するということはないだろうと決め打ちして、ビルドが通ったのみであることには注意してください。

libgphoto2-2.5.24のビルドまではやってみていませんが、automake-1.16がインストールされているなら問題の箇所は通るようになるはずです。お試しください。