inuneko
2023年6月19日 15時05分
お世話になります。
Armadillo-X1上でUbuntu駆動や以下のURLを参考にa6でubuntuを動作させようとしていました。
https://docs.docker.com/engine/install/debian/
docker公式gpgキーの追加のところで
curl -fsSL https://download.docker.com/linux/debian/gpg
の実行ではエラーとかはなく成功しました。
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
を実行したところエラーなどの表示はなく完了したわけでもなく動作が停止していました。
内部で実行処理をしているかと思い10分程度待ったのですが完了しませんでした。
なにか原因が分かりますでしょうか?
よろしくお願いします。
コメント
inuneko
お世話になります。
> https://armadillo.atmark-techno.com/index.php/blog/10899/9638
> にあるように
> # update-ca-certificates --fresh
> 実行してからcurlしてください。
実行した結果gpgコマンドが通りました。ありがとうございました。
その後docker-ceをインストールしたところdocker.serviceが動作中なのかインストールできませんでした。
インストール前にまた別の操作が必要でしょうか?
よろしくお願いします。
ファイル | ファイルの説明 |
---|---|
docker-ceインストールエラー.txt |
inuneko
お世話になります。
先ほど件で以下のURLを確認したのですが、こちらではdocker使用にたりないconfigがあったそうですがa6でも同じように足りないconfigがありますか?
https://armadillo.atmark-techno.com/forum/armadillo/8827
at_dominique.m…
inuekoさん
> 先ほど件で以下のURLを確認したのですが、こちらではdocker使用にたりないconfigがあったそうですがa6でも同じように足りないconfigがありますか?
> https://armadillo.atmark-techno.com/forum/armadillo/8827
そうですね、「dockerd」を直接に実行してエラーを提供していただければはっきり分かりますがおそらく同じ問題だと思います。
確認してませんが入江さんが最後に書いた手順どおりに起動できるようになると思います。
a610_docker_defconfigの最後に「CONFIG_THALES_LTE_MULTIPLEX=y」だけ追加していただければ、Armadillo Iot A6 向けのコンフィグとして使えます。
お手数ですが、よろしくお願いします
inuneko
お世話になります。
> a610_docker_defconfigの最後に「CONFIG_THALES_LTE_MULTIPLEX=y」だけ追加していただければ、Armadillo Iot A6 向けのコンフィグとして使えます。
CONFIG_THALES_LTE_MULTIPLEX=yを最後の行に追加して
make ARCH=arm a610_docker_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
をしたのですが、画像のようなエラーがでました。
まだ書き込まないといけないものとかありますか?
ファイル | ファイルの説明 |
---|---|
エラー.png |
at_dominique.m…
inunekoさん
マルティネです。
> まだ書き込まないといけないものとかありますか?
こちらの確認不足でお手数をおかけしました。
armadillo 610 と armadillo iot a6 の違いは確かにそのLTEの設定だけでしたが、二年前のコンフィグで新しいカーネルをビルドできないようですね。
コンフィグの歴史を確認したところ、以下の項目も追加してみてください:
CONFIG_RTC_DRV_RV8803=y CONFIG_OF_OVERLAY=y CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X_IRQ=y CONFIG_THERMAL=y CONFIG_THERMAL_OF=y CONFIG_CPU_THERMAL=y CONFIG_IMX_THERMAL=y
a610_docker_defconfig に追加したあとに再び 「make ARCH=arm a610_docker_defconfig」から実行してくれればビルドできると思います(このエラーは OF_OVERLAY で修正されます)
お手数ですがそれでも失敗したらまたご連絡ください、もう少し詳しく確認します。
よろしくお願いします。
inuneko
お世話になります。
> コンフィグの歴史を確認したところ、以下の項目も追加してみてください:
>
> CONFIG_RTC_DRV_RV8803=y > CONFIG_OF_OVERLAY=y > CONFIG_GPIO_PCA953X=y > CONFIG_GPIO_PCA953X_IRQ=y > CONFIG_THERMAL=y > CONFIG_THERMAL_OF=y > CONFIG_CPU_THERMAL=y > CONFIG_IMX_THERMAL=y >
>
> a610_docker_defconfig に追加したあとに再び 「make ARCH=arm a610_docker_defconfig」から実行してくれればビルドできると思います(このエラーは OF_OVERLAY で修正されます)
上記を追記したところビルドができました。ありがとうございました。
実際の操作でipコマンドを入力したところcommand not foundとでたのでこれはビルド設定前に追記が必要ですか?
またarmadillo本体にUSBメモリを挿入しubuntuでmountをしたところpermission deniedとでました。
armadillo本体に挿入してUSBメモリなどの読み込みはできますでしょうか?
よろしくお願いします。
at_dominique.m…
マルティネです。
> 実際の操作でipコマンドを入力したところcommand not foundとでたのでこれはビルド設定前に追記が必要ですか?
すみません、このスレッドにも入江さんの手順にも ip コマンドの実行は見当たりませんが、どこで失敗しているんでしょうか?
debian (ATDE) / ubuntu では ip が /usr/sbin にありますので、一般ユーザーの場合は PATH=/usr/sbin:$PATH
等で見つけれるようにする必要があります。(あるいは iproute2 のパッケージが欠けている可能性もあります)
> またarmadillo本体にUSBメモリを挿入しubuntuでmountをしたところpermission deniedとでました。
> armadillo本体に挿入してUSBメモリなどの読み込みはできますでしょうか?
「コンテナのシェルからマウントを実行して、エラーでました」であってますね?
デフォルトではコンテナにいくつかの制限が設定されています。docker コマンドに --cap-add SYS_ADMIN
などを設定すればマウントできるようになりますが、その代わりセキュリティの面ではコンテナの守りが薄くなります。
目的に応じて、armadillo側でマウントして shared のボリュームで共有できますので、必要と思ったら調べてみてください。(逆に時間の無駄だと思ったら --privileged
オプションで制限がなくなります)
よろしくお願いします。
inuneko
お世話になります。
> debian (ATDE) / ubuntu では ip が /usr/sbin にありますので、一般ユーザーの場合は PATH=/usr/sbin:$PATH
等で見つけれるようにする必要があります。(あるいは iproute2 のパッケージが欠けている可能性もあります)
$ sudo docker run -it ubuntuではいったときrootで入っていました。/usr/sbinではipは確認できませんでした。
またインターネット接続ができていないのでiproute2をインストールを行いましたができませんでした。
$ sudo docker run -it ubuntuをする前にbridgeなどでインターネット接続の設定をしないといけませんか?
at_dominique.m…
マルティネです。
> $ sudo docker run -it ubuntuではいったときrootで入っていました。/usr/sbinではipは確認できませんでした。
なるほど、パッケージがインストールされてない可能性が高いですね。コンテナのイメージを小さくするためにどうしても必要な物以外は外されてますね。
> またインターネット接続ができていないのでiproute2をインストールを行いましたができませんでした。
> $ sudo docker run -it ubuntuをする前にbridgeなどでインターネット接続の設定をしないといけませんか?
そうですね、docker のコンフィグレーションによりますがデフォルト状態では bridge を設定して、その bridge を NAT していると思います。
コンテナ内では ip コマンドを使えなくても、armadillo側の方である程度調べれると思います(docker network list / docker network inspect [name] / ホスト側の ip コマンド等)
また、サービスのログに何か設定できなかったか何かのエラーがあるかもしれませんおで、journalctl の出力も確認するといいと思います。
よろしくお願いします。
inuneko
at_dominique.m…
マルティネです。
> bridgeの設定ですがユーザー定義のbridge接続をしようとしたのですがipアドレスはホストと同じネットワークアドレスにしないとだめですか?
docker が言う bridge と言うのは NAT のための bridge なので、ホストとは別の RFC1918 の 10.0.0.0/8 や 172.16.0.0/12, 192.168.0.0/16 内のサブネットにすることがおすすめです。
デフォルトの設定でも接続できるはずですので、bridge を作り直すのではなく、設定を確認してエラーがないかを見てた方がいいと思います。
ネットワークのデフォルト設定はこちらで説明されています:
https://docs.docker.jp/engine/userguide/networking/dockernetworks.html#…
よろしくお願いします。
inuneko
> docker が言う bridge と言うのは NAT のための bridge なので、ホストとは別の RFC1918 の 10.0.0.0/8 や 172.16.0.0/12, 192.168.0.0/16 内のサブネットにすることがおすすめです。
>
> デフォルトの設定でも接続できるはずですので、bridge を作り直すのではなく、設定を確認してエラーがないかを見てた方がいいと思います。
> ネットワークのデフォルト設定はこちらで説明されています:
> https://docs.docker.jp/engine/userguide/networking/dockernetworks.html#…
参考のURLでデフォルト設定を行っていたところdocker attach containerを実行したところyou cannot attach to a stopped container start it firstのエラーが出ました。
docker network inspect bridgeで接続されているコンテナを見ましたが作成したコンテナは接続されていませんでした。
再度docker run -itd --name=container busyboxではすでに作成されているとでていますが、コマンドのオプションで接続するになりますか?
inuneko
at_dominique.m…
マルティネです。
> 参考のURLでデフォルト設定を行っていたところdocker attach containerを実行したところyou cannot attach to a stopped container start it firstのエラーが出ました。
> docker network inspect bridgeで接続されているコンテナを見ましたが作成したコンテナは接続されていませんでした。
> 再度docker run -itd --name=container busyboxではすでに作成されているとでていますが、コマンドのオプションで接続するになりますか?
「存在する」、と「実行中」の違いでしょうか。
docker run ではすでに存在していると言うエラーがでて、でも実行中ではないとなると stop 状態ではないかと思います。
> コンテナとの接続はできているのですがpingをしたところclock_gettime(monotonic) failedのエラーがでました。
> これはコンテナとホストで同期ができていないということですか?
ping は NET_RAW の capability が必要なため、コンテナで動かないことが多いです。 curl/wget/nc などの、実際に接続するコマンドで接続を確認してください。
それにしても gettime でエラーするのは珍しいですね。
https://github.com/alpinelinux/docker-alpine/issues/151#issuecomment-83… で同じエラーがあった時に docker の seccomp の問題らしいですので、その debian バージョンでの libseccomp が古いのが原因かもしれません。
ひとまず「--security-opt seccomp=unconfined」で実行してみたらうごきますでしょうか?(他の問題があったら、「--privileged」オプションも他の制限を外しますので試してみてください)
よろしくお願いします。
inuneko
at_dominique.m…
inuneko
お世話になります。
> はい、 docker run [options] containerimage command
の options のところに追加してください
optionのところに追加で入れて実行したところcontainerimageがないみたいなエラーがでました。
--privliegedを追加しても同じエラーがでました。
よろしくお願いします。
ファイル | ファイルの説明 |
---|---|
docekrrunエラー.txt |
at_dominique.m…
マルティネです。
> > はい、 docker run [options] containerimage command
の options のところに追加してください
> optionのところに追加で入れて実行したところcontainerimageがないみたいなエラーがでました。
> --privliegedを追加しても同じエラーがでました。
分かりにくくてすみません、
containerimage も command もコンテナ名と実行するコマンドの代理でした。
オプションはコンテナ名の後に設定できなくなりますので、順番の説明のつもりでした。前と同じコマンドで、コンテナ名の前にオプションをつけてみてください。
よろしくお願いします。
inuneko
お世話になります。
> containerimage も command もコンテナ名と実行するコマンドの代理でした。
> オプションはコンテナ名の後に設定できなくなりますので、順番の説明のつもりでした。前と同じコマンドで、コンテナ名の前にオプションをつけてみてください。
commandの記入が分からなかったのでcommandは記入しませんでしたがcommandなしでも動作は大丈夫ですか?
よろしくお願いします。
ファイル | ファイルの説明 |
---|---|
runエラー.txt |
at_ohsawa
2023年6月19日 17時54分
> curl -fsSL https://download.docker.com/linux/debian/gpg
> の実行ではエラーとかはなく成功しました。
何も表示されませんでしたか?ssl通信の証明書を更新していない場合、おそらく失敗するので
もしパイプしていたら、curlから無が入力されるのでgpgコマンドは無限に待つことになると思います。
curl: (60) SSL certificate problem: unable to get local issuer certificate
のようなメッセージが出ているのであれば、
https://armadillo.atmark-techno.com/index.php/blog/10899/9638
にあるように
# update-ca-certificates --fresh
実行してからcurlしてください。