Armadilloフォーラム

Armadillo 440でPC/SCの利用について

y_kudo_ncpl

2014年2月6日 18時11分

工藤と申します。お世話になります。
Linux、Armadillo共につい最近から触り始めました。

Armadillo 440で PC/SC対応のR/Wを使用すべく準備をしております。
( Athena ASEDriveIIIという製品でドライバはlibasedrive-usb_3.5-2_armel.debが使えるようです。)

libpcsclite-dev, libpcsclite1は
apt-cross --arch armel --suite lenny --install *** が正常に行えたのですが
pcscdでは下記のようなエラーが出てしまい インストールできませんでした。

1) ここでエラーメッセージにhal-armel-dcv1 と出てましてMLの過去ログを見たところ、
この問題そのものには単純な解決策はないように見えました。
(dpkg-crossのバージョン依存で手元の環境で決着する話ではない)
こういう場合は、 dpkg -x でパッケージを開いて、その中身を全部 atmark-dist/romfs以下へ
持って行くというのが解決策になるのでしょうか?

2)動作確認のため、ATDEに同様に sudo apt -get install で関係ファイル一式入れたら
pcsc_scanもすんなり動いたので、「Armadillo 実践開発ガイド第2部」にあるように
ArmadilloにDebian環境を構築して動く環境作る方が早いかなとも思っているのですが、
その場合、Debianからatmark-distの方へ関連ファイルを移行する方法はどのようになるのでしょうか?
(ちょっとhalの依存関係見たところ結構依存するものが多く、漏れがないように全部手作業は結構きつそうな感じがしてるのですが
 何か良い方法があるのでしょうか?)

------------以下、 atp-crossの際のエラーメッセージです。

atmark@atde3:~/work$ apt-cross --arch armel --suite lenny --install pcscd
Unable to use current suite: oldstable is unsupported in Emdebian! - assuming unstable. at /usr/bin/apt-cross line 156
The following NEW packages will be built and installed:
 pcscd
0 to be upgraded, 1 to be newly installed.
dpkg-cross: package pcscd doesn't provide any useful files, but processing
it anyway as requested
Building pcscd-armel-cross_1.4.102-1+lenny4_all.deb
未選択パッケージ pcscd-armel-cross を選択しています。
(データベースを読み込んでいます ... 現在 90707 個のファイルとディレクトリがインストールされています。)
(.../pcscd-armel-cross_1.4.102-1+lenny4_all.deb から) pcscd-armel-cross を展開しています...
dpkg: 依存関係の問題により pcscd-armel-cross の設定ができません:
 pcscd-armel-cross は以下に依存 (depends) します: hal-armel-cross ...しかし:
  パッケージ hal-armel-cross はまだインストールされていません。
 pcscd-armel-cross は以下に依存 (depends) します: hal-armel-dcv1 ...しかし:
  パッケージ hal-armel-dcv1 はまだインストールされていません。
dpkg: pcscd-armel-cross の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
以下のパッケージの処理中にエラーが発生しました:
 pcscd-armel-cross
dpkg -i failed.

--------

以上、アドバイスがいただけたら幸甚です。よろしくお願いします。

コメント

> libpcsclite-dev, libpcsclite1は
> apt-cross --arch armel --suite lenny --install *** が正常に行えたのですが
> pcscdでは下記のようなエラーが出てしまい インストールできませんでした。

ごめんなさい。library は apt-cross で入れることができますが、
プログラム自体は、できないんです。

> 1) ここでエラーメッセージにhal-armel-dcv1 と出てましてMLの過去ログを見たところ、
> この問題そのものには単純な解決策はないように見えました。
> (dpkg-crossのバージョン依存で手元の環境で決着する話ではない)
> こういう場合は、 dpkg -x でパッケージを開いて、その中身を全部 atmark-dist/romfs以下へ
> 持って行くというのが解決策になるのでしょうか?

それも可能ですし、実際にビルドしてしまうのも手です。
pcsc-lite のソースコードをダウンロードしてきて、Out of tree compile するという感じです。
http://manual.atmark-techno.com/dist/atmark-dist_developers_guide_ja-1…

ドキュメントではコンパイル用の Makefile を作成していますが、pcsc-lite
は configure というのが入っているので

mydir
├── Makefile
└── pcsc-lite-1.8.10

となるようにして、Makefileに以下のような感じで書いてみると良いと思いま
す。内容は、なんとなくなので、そのままでは動かないと思います。分からな
いところがあったら、教えてください。

Atmark Dist の user/avahi/Makefile, user/openssh/Makefile,
user/xorg-xserver/Makefile などが参考になると思います。

SRC_DIR=pcsc-lite-1.8.10
CONF_BUILD = $(shell $(SRC_DIR)/config.guess)
CONF_HOST = $(shell $(SRC_DIR)/config.sub $(CROSS:-=))
 
all: configure build
 
configure:
        (cd $(SRC_DIR); ./configure --build=$(CONF_BUILD) --host=$(CONF_HOST) --自分で必要なオプション )
 
build: $(SRC_DIR)/Makefile
        make -C $(SRC_DIR) all
 
romfs: build
         $(ROMFSINST) $(SRC_DIR)/src/pcscd
 
clean:
        make -C $(SRC_DIR) clean
 
 
distclean: clean
        make -C $(SRC_DIR) distclean

> 2)動作確認のため、ATDEに同様に sudo apt -get install で関係ファイル一式入れたら
> pcsc_scanもすんなり動いたので、「Armadillo 実践開発ガイド第2部」にあるように
> ArmadilloにDebian環境を構築して動く環境作る方が早いかなとも思っているのですが、
> その場合、Debianからatmark-distの方へ関連ファイルを移行する方法はどのようになるのでしょうか?
> (ちょっとhalの依存関係見たところ結構依存するものが多く、
> 漏れがないように全部手作業は結構きつそうな感じがしてるのですが
>  何か良い方法があるのでしょうか?)

依存関係の解決は、良い方法が今は無いです。すみません。
手で確認するしかありません。

at_yashi様
ありがとうございます。
とりあえずpscsd(とそれが依存してる諸々)の依存関係はATDE上の依存関係から手作業で一通り拾いました。
パッケージ集めるか、OutOfTreeコンパイルでやるか検討してみます。