Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PiZero 版 CHIRIMEN のハンズオン中、IPv6 で接続した環境でJS_Getができない #135

Open
elie-j opened this issue Apr 9, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@elie-j
Copy link
Contributor

elie-j commented Apr 9, 2024

2023年度の塩尻会場のハンズオン中、JS_GET が出来ない事象が発生。
現地メンターの方が以下のドキュメントを急遽作成して対応してくださいました。
JSGETができない問題の対策.pptx

@elie-j
Copy link
Contributor Author

elie-j commented Apr 9, 2024

考えられること:

  • 会場のDHCP v6の設定が良くない?

⇒ RasPiの設定をデフォルト無効化するワークアラウンドをいれておく?
or
⇒ 今どきはIPv6のほうがデフォルトで、トラブルシューティングの方を充実させる?

@kou029w
Copy link
Contributor

kou029w commented Apr 9, 2024

  • JS GET で接続する先の tutorial.chirimen.org が IPv6 非対応?

⇒tutorial.chirimen.org IPv6 対応?

追記: IPv6 対応済み

@kou029w
Copy link
Contributor

kou029w commented Apr 9, 2024

Cloudflare Pages 対応(#88)後 tutorial.chirimen.org は IPv6 対応済み (注記: 2024-04-09現在)

  • JS GET で接続する先の tutorial.chirimen.org が IPv6 非対応?

⇒tutorial.chirimen.org IPv6 対応?

$ dig +short tutorial.chirimen.org AAAA
2606:4700:3033::ac43:aa8c
2606:4700:3037::6815:3f66
$ dig +short tutorial.chirimen.org
104.21.63.102
172.67.170.140
$ curl -6 https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js
import {requestGPIOAccess} from "./node_modules/node-web-gpio/dist/index.js";
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));

async function blink() {
  const gpioAccess = await requestGPIOAccess();
  const port = gpioAccess.ports.get(26);

  await port.export("out");

  for (;;) {
    await port.write(1);
    await sleep(1000);
    await port.write(0);
    await sleep(1000);
  }
}

blink();

@sizuhiko
Copy link
Contributor

sizuhiko commented Apr 10, 2024

Cloudflare Pages 対応前もきっとDNS側はIPv6対応されていたと思うけど、IPv6環境で問題が発生したことがあるということで、チュートリアルができるか確認する。

  1. Pi zero 持っている人のネットワーク環境が IPv6対応していたら、そこでチュートリアルを試してもらう
  2. Pi zero 持っている人の環境が対応してなかったら、対応環境の場所で確認する

@Aritaka-hub
Copy link
Contributor

IPv6環境でのチュートリアルですが、自前の環境で試してみました。

  • iPhone (docomo) のテザリング利用
    ネットワークさえつながれば問題なくチュートリアル(JS GET)は出来ました。
    但し、DNSエラーでネットワークが繋がらない事が起きた事も確認したので、環境を設定する方が大変でした。
pi@raspberrypi:~/myApp$ ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.283 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.277 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.279 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.277/0.279/0.283/0.002 ms
pi@raspberrypi:~/myApp$ cd ~/myApp
pi@raspberrypi:~/myApp$ wget https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js -O main-hello-real-world.js
--2024-05-24 14:23:22--  https://tutorial.chirimen.org/pizero/esm-examples/hello-real-world/main.js
tutorial.chirimen.org (tutorial.chirimen.org) をDNSに問いあわせています... 2606:4700:3033::ac43:aa8c, 2606:4700:3037::6815:3f66, 172.67.170.140, ...
tutorial.chirimen.org (tutorial.chirimen.org)|2606:4700:3033::ac43:aa8c|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [application/javascript]
`main-hello-real-world.js' に保存中

main-hello-real-wor     [ <=>                ]     421  --.-KB/s 時間 0s       

2024-05-24 14:23:23 (1.09 MB/s) - `main-hello-real-world.js' へ保存終了 [421]

この問題とは別に、ネットワークに接続されてない状態でも JS GET をすると、PiZero に空のファイルが作られるのでそこは注意点かもと思いました。

  • JS GET を押す>エッジ側に該当するファイル名の空ファイルを作成>チュートリアルサイトのコードを DL してエッジのファイルに書き込み

の動作をしていると思いますが、コードの DL に失敗すると何も記述されないファイルだけ PiZero 内に出来てしまうので、初学者は DL 失敗に気づかないで実行すると動作しない!と言う事になります。

@dynamis
Copy link
Contributor

dynamis commented Jun 5, 2024

note: IPv6 以外でもそもそも wifi 設定していない状態 JS GET をすると wget に失敗してからのファイルが出来るケースがあるように思う (ので注意書きをしておくのが良さそう)。

@dynamis dynamis added the bug Something isn't working label Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants