Armadilloフォーラム

Debian10(buster)でlftp4.9のインストール

tsato

2024年6月4日 17時09分

お世話になります。

Armadillo-X1のDebian10(buster)にてFTPクライアントソフトのlftp(version4.8.4)を使用(SFTPではなく通常のFTP通信)していたところ、
ある特定のFTPサーバに対してgetやmgetやmirrorコマンド実行時に
mget: [ファイル名]: file size decreased during transfer
というエラーが発生し、指定のファイルが途中までしか取得できていない(テキストファイルが途中で切れている)状態となりました。
(取得ファイル自体は圧縮などはされておらず通常のテキストファイルになります)
(mgetやmirrorでは容量が小さいファイルは最後まで取得できているものもありますが、9割は途中でテキストが切れています(ファイル容量もまちまち))
(他のWindowsのFTPクライアントからは「特定のFTPサーバ」に対して問題なくデータが取得(get)でき、X1の方もこの「特定のFTPサーバ」以外からは正常にファイルが取得(mget)できました)
https://github.com/lavv17/lftp/issues/606
上記のissueから、lftpのバージョンが関係しているのかと思い最新の4.9.2辺りにしてみようかと思いましたが、
Debian10の場合はパッケージが4.8.4で最新の4.9.2はDebian12(bookworm)からのようでした。
無理やりlftp4.9.2のパッケージをダウンロードしてインストール(dpkg)してみましたが、関連ライブラリのバージョンの関係でエラーとなりました。
Debian10(buster)でlftp4.9.2をインストールする手段は何かありそうでしょうか。

また、Debian12にしない理由の一つとしては、Linuxカーネル6.1では下記のUSB_OTG2を使用したUSBマスストレージの手法が確立していないようだったためです。
https://armadillo.atmark-techno.com/blog/615/7523
(Linuxカーネル6.1ではマスストレージとなるディレクトリが異なるようです)
(こちらの手法が確立できるならDebian12にすることも吝かではありません)

よろしくお願いします。

ファイル ファイルの説明
Pic_2024-5-28_13-33-28_No-00.png
コメント

at_shinya.koga

2024年6月5日 7時11分

アットマークテクノの古賀です。

tsatoさん:
>上記のissueから、lftpのバージョンが関係しているのかと思い最新の4.9.2辺りにしてみようかと思いましたが、
>Debian10の場合はパッケージが4.8.4で最新の4.9.2はDebian12(bookworm)からのようでした。
>無理やりlftp4.9.2のパッケージをダウンロードしてインストール(dpkg)してみましたが、関連ライブラリのバージョンの関係でエラーとなりました。

Debian の lftp パッケージのバージョンを見ると、buster と bullseye が 4.8.x で、bookworm から 4.9.x になっていますので、opensssl のバージョンの違い(1.1.x -> 3.x) が影響していそうですね。

>Debian10(buster)でlftp4.9.2をインストールする手段は何かありそうでしょうか。

lftp4.9.2 のソースを static link でビルドする、というのが解になるかも知れません。
Debian ではなく Alpine Linux ですが、static link で lftp4.9.2 をビルドする手順を公開している人がいるのを見つけました:
 https://github.com/userdocs/lftp-static

bookworm ベースの ATDE10 で、lftp4.9 を static link で armhf ターゲットにクロスビルドすれば、使えるかも知れません。
 https://armadillo.atmark-techno.com/resources/software/atde/atde-v10

>また、Debian12にしない理由の一つとしては、Linuxカーネル6.1では下記のUSB_OTG2を使用したUSBマスストレージの手法が確立していないようだったためです。
>https://armadillo.atmark-techno.com/blog/615/7523
>(Linuxカーネル6.1ではマスストレージとなるディレクトリが異なるようです)
>(こちらの手法が確立できるならDebian12にすることも吝かではありません)

こちらについては、別途コメントします。今しばらくお待ちくださいませ。

アットマークテクノの古賀です。

tsatoさん:
>また、Debian12にしない理由の一つとしては、Linuxカーネル6.1では下記のUSB_OTG2を使用したUSBマスストレージの手法が確立していないようだったためです。
>https://armadillo.atmark-techno.com/blog/615/7523
>(Linuxカーネル6.1ではマスストレージとなるディレクトリが異なるようです)
>(こちらの手法が確立できるならDebian12にすることも吝かではありません)

マスストレージ動作については、未だ検証していないのですが、ディレクトリ(パス)が違うのは、NXP のドライバで明示的に変更したものであり、6.1 では、4.9 での
 /sys/devices/soc0
配下から
 /sys/devices/platform
配下に変えたようです。
参照していらっしゃる Blog 記載の手順に、このパス変更を反映するだけで対応できるかも知れません。

以上、もし参考になりましたら幸いです。

お世話になります。

ご回答ありがとうございます。
static linkでのビルドについて、すみませんがあまり詳しいことが分からず、方法がいまいち分かりませんでした。
(自分のATDE10環境が、うまくブリッジでインターネット接続ができず、lftp build dependenciesのパッケージ群がインストールできませんでした)
あと、例えATDE10上でビルド出来たとしても、実際のArmadillo-X1上にどのように展開されるのかが分かりませんでした。

とりあえずもう1つの件のDebian12のマスストレージ動作について、
参照ディレクトリパスをご指摘のとおりに変更したら、debian12でも同様にマスストレージとして認識させることができました。
debian10→12でその他にも影響があるところがあるのかもしれませんが、とりあえずlftp4.9.2でマスストレージ動作する筐体を用意することが出来ましたので、この環境でもう一度トライをしてみます。(これでもFTPがうまくいかない場合、前回試してなかったdebugコマンドでの動作ログでお問い合わせさせていただくかもしれません)

ありがとうございました。