link もっと前
   2019年 1月 18日 -
      2019年 1月 9日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

Cocos2d-x 再び

以前 Cocos2d-x をビルドして(2017年 6月 30日の日記参照)、Linux で動くサンプルプログラムをビルドしました。あの時は結局、ゲームは作らずじまいでした。懲りずに、今回は Android 向けにビルドします。

その前にまず Linux 向けにビルドします。簡単かと思ったら、めちゃくちゃハマりました……。

ビルドできない Cocos2d-x

公式ドキュメント(リンク)に載っている通りの手順を試すと、下記のようなエラーが出ます。

Cocos2d-x のビルドエラー
$ git clone https://github.com/cocos2d/cocos2d-x
$ cd cocos2d-x/


$ git submodule update --init
Submodule path 'tests/cpp-tests/Resources/ccs-res': checked out '5d65db4c5f18c0df1305ff32b076425ab228cc4a'
Submodule path 'tools/bindings-generator': checked out '2aa9b21f11bf514ca80f243b21750e8c7c28f05e'
Submodule path 'tools/cocos2d-console': checked out '643f423415c62a1b610549323c4bf5499683baab'
Submodule path 'web': checked out 'e79acd062363818af809c51804083a5989a9aedc'


$ ./download-deps.py
=======================================================
==> Prepare to download external libraries!
==> version file doesn't exist
==> Ready to download 'v3-deps-156.zip' from 'https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-156.zip'
(...snip...)
==> Would you like to save 'v3-deps-156.zip'? So you don't have to download it later. [Yes/no]: Yes


$ cd build/
$ mkdir linux-build
$ cd linux-build/


$ cmake ../../
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- Check for working C compiler: /usr/lib/ccache/cc
-- Check for working C compiler: /usr/lib/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
(...snip...)
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/katsuhiro/share/projects/oss/cocos2d-x/build/linux-build


$ make
[  0%] Building CXX object engine/external/unzip/CMakeFiles/ext_unzip.dir/ioapi.cpp.o
[  0%] Building CXX object engine/external/unzip/CMakeFiles/ext_unzip.dir/unzip.cpp.o
[  0%] Building CXX object engine/external/unzip/CMakeFiles/ext_unzip.dir/ioapi_mem.cpp.o
[  1%] Linking CXX static library ../../../lib/libext_unzip.a
(...snip...)
[ 84%] Built target jscocos2d
[ 84%] Building CXX object engine/tests/cpp-empty-test/CMakeFiles/cpp-empty-test.dir/Classes/AppDelegate.cpp.o
[ 84%] Building CXX object engine/tests/cpp-empty-test/CMakeFiles/cpp-empty-test.dir/Classes/HelloWorldScene.cpp.o
[ 84%] Building CXX object engine/tests/cpp-empty-test/CMakeFiles/cpp-empty-test.dir/proj.linux/main.cpp.o
[ 84%] Linking CXX executable ../../../bin/Debug/cpp-empty-test/cpp-empty-test
/usr/bin/ld: ../../../../../external/freetype2/prebuilt/linux/64-bit/libfreetype.a(ftbase.linux64.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
(...snip...)
/usr/bin/ld: ../../../../../external/freetype2/prebuilt/linux/64-bit/libfreetype.a(ftbitmap.linux64.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[2]: *** [engine/tests/cpp-empty-test/CMakeFiles/cpp-empty-test.dir/build.make:153: bin/Debug/cpp-empty-test/cpp-empty-test] Error 1
make[1]: *** [CMakeFiles/Makefile2:1362: engine/tests/cpp-empty-test/CMakeFiles/cpp-empty-test.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

エラーで指摘されている freetype2/prebuilt/linux/64-bit/libfreetype.a は、download-deps.py がダウンロードしてきた v3-deps-156.zip に含まれているスタティックライブラリです。recompile with -fPIC と言われても、自分でビルドしたものではないので、何もできません。そんなこと言われても困る。

困った挙句に Cocos2d-x の issue list(リンク)に辿りつきました。議論を見ると cocos2d-x-3rd-party-libs-src リポジトリの build.sh でライブラリが作れるみたいです。うえ〜、そんなの知らんがな。

Cocos2d-x の依存ライブラリビルド
$ git clone https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src
$ cd cocos2d-x-3rd-party-libs-src/build/

$ ./build.sh -p=linux --libs=freetype --arch=x86_64 --mode=release

$ cp linux/freetype/prebuilt/x86_64/libfreetype.a ../../cocos2d-x/external/freetype2/prebuilt/linux/64-bit/libfreetype.a

依存ライブラリを自前でビルドして置き換えることで、無事に Cocos2d-x のコンパイルが通りました。

Cocos2d-x のゲームプロジェクトは簡単に作れた

心配だったゲームプロジェクトの作り方は以前と同じ2017年 7月 2日の日記参照)でした。こちらはハマらなくて本当に良かったです。

生成されたゲームプロジェクトの中に proj.android という名前のディレクトリが作成されます。Android Studio で proj.android を開けば後は勝手に Gradle がビルドしてくれるはずです。

ゲームプロジェクトのトップ階層
$ ls
CMakeLists.txt  Resources  proj.android  proj.linux
Classes         cocos2d    proj.ios_mac  proj.win32

Linux 向けにビルドしたいときは、以前と同じ手順で OK です。同じコードで Android も Linux も対応できて便利ですよね。

[編集者: すずき]
[更新: 2019年 1月 20日 00:16]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

家の PC 性能表、更新

昔(2017年 5月 2日の日記参照)作った我が家の PC の Passmark スコア表に、Ryzen 7 デスクトップ(2018年 12月 1日の日記参照)も加えました。

  • (速)
  • デスクトップ AMD Ryzen7 2700: 2005, 14985, 8C16T, 65W
  • 旧デスクトップ AMD A10-7800: 1537, 5069, 4C4T, 65W
  • ノート Intel Core i5 2450M: 1404, 3404, 2C4T, 35W
  • サーバ Intel Pentium J4205: 899, 2394, 4C4T, 10W
  • 旧サーバ Intel Atom D2700: 349, 840, 2C4T, 10W
  • サブマシン Intel Atom D525: 284, 701, 2C4T, 13W
  • (遅)

2年前は Ryzen 7 の 8コアを欲しいなと思いつつも、何に使うか疑問に思っていましたが、Linux のビルドに最適だということがわかって、とても役に立っております。買って良かった。

[編集者: すずき]
[更新: 2019年 1月 14日 02:08]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ROCK64 と Tinker Board の U-Boot 設定メモ

ROCK64 の話へのリンク一覧。

完全に自分のためのメモですが、ROCK64 と Tinker Board で使用している U-Boot の distro boot の設定ファイル(extlinux.conf)を貼っておきます。

ROCK64

オリジナルのファイルに linux-next の起動用設定(label kernel-next の部分)を追加しました。

ROCK64 の extlinux.conf

menu title select kernel

label kernel-4.4.132-1075-rockchip-ayufan-ga83beded8524
    kernel /boot/vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524
    initrd /boot/initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524
    devicetreedir /boot/dtbs/4.4.132-1075-rockchip-ayufan-ga83beded8524
    append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4

label kernel-next
    kernel /boot/Image
    initrd /boot/initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524
    fdt /boot/rk3328-rock64.dtb
    append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4

label kernel-4.4.132-1075-rockchip-ayufan-ga83beded8524-memtest
    kernel /boot/vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524
    initrd /boot/initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524
    devicetreedir /boot/dtbs/4.4.132-1075-rockchip-ayufan-ga83beded8524
    append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4 memtest
ROCK64 のカーネル更新
クロスコンパイル用マシンにて実行

$ cd linux-next
$ scp arch/arm64/boot/Image arch/arm64/boot/dts/rockchip/rk3328-rock64.dtb 192.168.1.xxx:~/


Rock64 にて実行

$ sudo cp Image /boot/ ; sudo cp rk3328-rock64.dtb /boot/ ; sync ; sudo reboot

CPU が AArch64 なので生成されるイメージファイルは Image です。デバイスツリーは rk3328-rock64.dtb です。ネットワーク経由で ROCK64 のユーザ(なんでもよいですが)のホームディレクトリにコピーし、ボード側で /boot にコピーして使っています。また initrd はオリジナルのものを拝借しています。

1行目の menu title select kernel が結構大事で、この行を書いておくと U-Boot がカーネルを起動する際に下記のような選択肢が表示されます。

U-Boot の menu
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1433 bytes read in 28 ms (49.8 KiB/s)
select kernel
1:      kernel-4.4.132-1075-rockchip-ayufan-ga83beded8524
2:      kernel-next
3:      kernel-4.4.132-1075-rockchip-ayufan-ga83beded8524-memtest
Enter choice: 

この設定はとにかくボードから SD カードの抜き差しをやりたくない一心でできています。

  • オリジナルのカーネル(選択肢 1番)と linux-next カーネル(選択肢 2番)を簡単に切り替えられる
  • 何もしないときは安全サイドに倒れる(=時間切れで選択肢 1番が勝手に選ばれる)

普段は boot メニューで 2番を選び linux-next カーネルを起動します。もし起動しないカーネルを書き込んでしまったり、ネットワークが死んでいるカーネルを書き込んでしまい、カーネルの更新ができなくなったときは、リブートし 1番を選び元々書かれていたカーネルを起動して復旧させます。

何も選択せず放置すると 1番が勝手に選ばれますので、おかしくなったら電源を ON/OFF して放置すれば、必ずオリジナルのカーネルが起動します。ボードが少し遠くに置いてあって、AC 電源 ON/OFF から U-Boot の選択肢タイムアウトまでの間にキー入力ができないので、このような設定にしています……。

Tinker Board

Tinker Board の設定も同じ思想で作っています。

Tinker Board の extlinux.conf

# cat /boot/extlinux/extlinux.conf
menu title select kernel

label kernel-4.4
    kernel /zImage
    fdt /rk3288-miniarm.dtb
    append  earlyprintk console=ttyS1,115200n8 root=/dev/mmcblk0p2 rw init=/sbin/init

label kernel-next
    kernel /linux-next
    fdt /rk3288-tinker.dtb
    append  earlyprintk console=ttyS1,115200n8 root=/dev/mmcblk0p2 rw init=/sbin/init
ROCK64 のカーネル更新
クロスコンパイル用マシンにて実行

$ linux-next
$ scp arch/arm/boot/zImage arch/arm/boot/dts/rk3288-tinker.dtb 192.168.1.xxx:~/


Tinker Board にて実行

# cp /home/katsuhiro/zImage /boot/linux-next; cp /home/katsuhiro/rk3288-tinker.dtb /boot/; sync; reboot

ROCK64 との違いは CPU が AArch32 なので生成されるイメージファイルは zImage であることと、デバイスツリーは rk3288-tinker.dtb であることでしょうか。

カーネルをネットワーク経由で更新する点は同じですが、zImage というファイル名だと元々存在するカーネルと被っているので、リネームしています。

[編集者: すずき]
[更新: 2019年 1月 13日 21:44]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

Hello! Zephyr OS!!

海外で最近話題らしい Zephyr OS を動かしてみました。

Linux に似ている、という説明をどこかで見ましたが、ビルドシステムに関して言えば全く似ていません……。コードは似ているのかもしれませんが、見ていません。

動かし方は Zephyr OS の Getting Started にあります。

事前準備

Zephyr OS をビルドするためには、いくつか Python のパッケージをインストールする必要があります。pip を実行しても良いという方は pip3 install --user -r zephyr/scripts/requirements.txt で、依存するモジュールをインストールしてくれるそうです。

私は以前 pip で Python 環境が壊れて嫌な思いをしたので、apt-get で頑張りました。参考までに下記のパッケージをインストールしています。環境は Debian Testing amd64 版です。

apt-get でインストールしたパッケージ(参考)
python3-colorama python3-yaml python3-pyelftools
python3-sphinx-rtd-theme sphinx-rtd-theme-common python3-breathe
ninja-build sphinx-common

パッケージが足りない場合の探し方ですけども、パッケージが足りないときは Python のエラーメッセージに ModuleNotFoundError: No module named 'aaaa' こんなメッセージが出ることが多いです。apt-file search aaaa を実行すると、パッケージ名がずらーっと出てきますので、その中から python3- で始まるパッケージを探してください(Python3 モジュールのパッケージは python3-xxxx という名前が多い)。

コードの取得

Getting Started の通り
git clone https://github.com/zephyrproject-rtos/zephyr
です。

クロスコンパイラの準備

Getting Started には Zephyr SDK とやらをインストールせよと書いてありますが、色々大切な部分が全部ぶっ飛んでいてわからなくなっている感じがします。幸い crosstool-NG にも対応していると書いてあったので、crosstool-NG を使ってみました。

基本的には以前紹介した(2018年 7月 15日の日記参照)、AArch64 Linux 用の環境と同じ手順ですが、./ct-ng menuconfig で設定する項目が多少違います。

crosstool-NG ビルド
$ ./ct-ng menuconfig

Target options --->
  Target Architecture   --->
    arm にする
  Bitness:   --->
    32-bit にする

Toolchain options  --->
  Tuple's vendor string
    zephyr にする

Operating System  --->
  Target OS   --->
    bare-metal にする


$ ./ct-ng build
[00:34] /

しばらく待つと arm-zephyr-eabi というプレフィクスを持つクロスコンパイラが生成されるはずです。

クロスコンパイラの指定

Zephyr OS のビルドに使用するクロスコンパイラを、~/.zephyrrc に環境変数を定義して指定します。変な作りだなあ……。

クロスコンパイラの指定

export ZEPHYR_TOOLCHAIN_VARIANT=xtools
export XTOOLS_TOOLCHAIN_PATH=/home/katsuhiro/x-tools

注意点としては XTOOLS_TOOLCHAIN_PATH の x-tools の後のパスは勝手に arm-zephyr-eabi が使われ、自由に指定できないことです。この点については Linux の CROSS_COMPILE 環境変数とは異なるうえ、Zephyr の方が後発にも関わらず退化しています。どうしてこうなった……。

ビルド準備

ビルドする前に 2手ほど準備が必要です。1手目は環境変数のセットアップです。

環境変数のセットアップ
cd zephyr
source zephyr-env.sh

2手目は cmake の実行です。

cmake の実行
$ cd sample/hello_world
$ mkdir build

$ cd build
$ cmake -GNinja -DBOARD=qemu_cortex_m3 ../

Zephyr version: 1.13.99
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.7.2", minimum required is "3.4")
-- Selected BOARD qemu_cortex_m3
Parsing Kconfig tree in /home/katsuhiro/share/projects/oss/zephyr/Kconfig
Loading /home/katsuhiro/share/projects/oss/zephyr/boards/arm/qemu_cortex_m3/qemu_cortex_m3_defconfig as base
Merging /home/katsuhiro/share/projects/oss/zephyr/samples/hello_world/prj.conf
Configuration written to '/home/katsuhiro/share/projects/oss/zephyr/samples/hello_world/build/zephyr/.config'
-- Loading /home/katsuhiro/share/projects/oss/zephyr/boards/arm/qemu_cortex_m3/qemu_cortex_m3.dts as base
-- Overlaying /home/katsuhiro/share/projects/oss/zephyr/dts/common/common.dts
-- Cache files will be written to: /home/katsuhiro/.cache/zephyr
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/katsuhiro/x-tools/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
-- Performing Test toolchain_is_ok
-- Performing Test toolchain_is_ok - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/katsuhiro/share/projects/oss/zephyr/samples/hello_world/build

CMake を採用しているプロジェクトは大抵、ソースコードのトップディレクトリにある CMakeLists.txt を指定しますが、Zephyr OS の場合、sample/* の下にある CMakeLists.txtを使わなければなりません。わからんわ、そんなの。変な作りだな……。

間違って Zephyr OS のトップディレクトリにある CMakeLists.txt を指定すると、こんなエラーメッセージで怒られます。

cmake を間違ってトップディレクトリの CMakeLists.txt に対して実行したとき
$ cmake -GNinja -DBOARD=qemu_cortex_m3 ../
CMake Error at CMakeLists.txt:13 (message):
  A user error has occured.

  cmake was invoked with '/home/katsuhiro/share/projects/oss/zephyr'
  specified as the source directory,

  but it must be invoked with an application source directory,

  such as '/home/katsuhiro/share/projects/oss/zephyr/samples/hello_world'.

  Debug variables:

  CMAKE_CACHEFILE_DIR:



CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.13)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!

エラーメッセージからは、何が悪いのか全く分かりません……。

ビルドと実行

ビルドと実行は難しくありません。どちらかというとここまでたどり着くのがかなり面倒くさいです。

ビルドと実行
$ cd sample/hello_world/build
$ ninja
[1/103] Preparing syscall dependency handling
 
[98/103] Linking C executable zephyr/zephyr_prebuilt.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:        8604 B       256 KB      3.28%
            SRAM:        4160 B        64 KB      6.35%
        IDT_LIST:         120 B         2 KB      5.86%
[103/103] Linking C executable zephyr/zephyr.elf


$ ninja run
[0/1] To exit from QEMU enter: 'CTRL+a, x'[QEMU] CPU: cortex-m3
qemu-system-arm: warning: nic stellaris_enet.0 has no peer
***** Booting Zephyr OS zephyr-v1.13.0-3162-g73956a398e *****
Hello World! qemu_cortex_m3

何をしているのか全然わかりません。仕方ないので build.ninja ファイルから qemu を実行しているところを発掘してみたら、下記のコマンドを実行しているようです。

実際に実行しているコマンド
$ /usr/bin/qemu-system-arm -cpu cortex-m3 -machine lm3s6965evb -nographic -vga none -net none -pidfile qemu.pid -serial mon:stdio -kernel /home/katsuhiro/share/projects/oss/zephyr/samples/hello_world/build/zephyr/zephyr.elf

qemu-system-arm: warning: nic stellaris_enet.0 has no peer
***** Booting Zephyr OS zephyr-v1.13.0-3162-g73956a398e *****
Hello World! qemu_cortex_m3

期待される結果が良くわからないんですが、これで動いたと言って良いんだろうか…??

[編集者: すずき]
[更新: 2019年 1月 13日 01:32]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

スマートプラグの利用規約

TP-Link のスマートプラグを利用するには KASA Smart というアプリをスマホに入れないと微塵も動きません。このアプリの利用規約には同意不可能な条項があって、

法的資格
(中略)お客様は利用にあたりお客様に適用するすべての法律を遵守しなければなりません。準拠法が利用を禁ずる場合はお客様は本サービスを利用することはできません。

ユーザーのコンテンツ
(中略)
2. 世界のあらゆる場所で享受できるユーザーコンテンツに対する全ての人格権を放棄し、そのような権利の主張ができないことを確認する。

と書いてあります。TP-Link は、ユーザーがフォーラムに投稿した質問、レビュー、回答などを勝手に使うけど、文句言わないでね?と言いたいみたいです。

その主張については同意しますけど、、、

日本では著作者人格権は譲渡できません(著作権法 59条)、放棄規定はありませんが、包括的に放棄はできないと考えられており、日本において TP-Link の利用規約に Yes と答えることはできません。

規約内で矛盾がある場合に、利用者が同意してしまうと、この契約はどうなるんでしょう、無効になるの…?

TP-Link は中国の会社ですから、この利用規約は中国でもほぼ同じなのではないかと思うんですが、中国って著作者人格権の放棄はできるんですかね?

スマートプラグを使ってみた

規約のことは忘れて、スマートプラグを使ってみました。

スマホから電源 ON/OFF の指示を送ると、スマートプラグから「カッ!!」というかなり大きめのリレー音がしてうるさいです。今日も元気なことがわかって安心……?

使って初めて知ったのですが、スマホからスマートプラグへの電源 ON/OFF の指示は必ず TP-Link のサーバーに飛んで行くんですね。インターネット接続のできない場所ではスマホのアプリが起動しないため、電源 ON/OFF 指示ができません。

インターネット接続がなくても、スマートプラグ本体の電源ボタンを押せば電源 ON/OFF できますが、そこまで行けるなら Tinker Board を直接リセットした方が遥かに早いです。

昔のネットワーク対応電源タップとの違い

昔から、ネットワーク対応の AC タップは売られていましたが(Ping を打つと電源が落ちる、Web インタフェースで ON/OFF できるなど)、いずれも 1万円〜数万円の製品です。

従来製品と比較して、サーバーの維持費も追加で必要なはずなのに、大抵のスマートプラグは 2,000円〜5,000円で販売されています。機能の割に破格の値段だと思います。

単純に考えると、外出中(=インターネット側から)に、宅内の電源を ON/OFF するため、何らかのサーバーを経由しているのでしょう。

嫌らしく考えると、スマートプラグはサーバーを経由させることで、ユーザーの生活情報を強制的に奪えますから、将来に情報が何かに使えることを見込んで、破格の値付けでばら撒いているのでしょう。

[編集者: すずき]
[更新: 2019年 1月 12日 23:39]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

スマートプラグ

Tinker Board 上で linux-next を実行すると reboot 時にハングしてしまい、その後ウンともスンとも言わなくなるので、外部からボードの電源 ON/OFF する方法を探していました。考え付いた方法は 3つです。

リセット信号を外部から送る
Tinker Board はリセットスイッチが搭載されているので、リセットスイッチを物理的に外して、別のボードの GPIO などを繋げばリセットできます。
USB の電源を ON/OFF する
USB micro B プラグでの給電のため、USB の電源を ON/OFF することができれば、コールドリセットできます。
AC ON/OFF する
当たり前ですが AC アダプタ(AC 100V → USB)の電源を ON/OFF すれば、コールドリセットできます。

1番目は下手なハンダ付けをして、失敗するとボードが壊れることと、制御用にもう 1つボードが要るのは何だかダサいのでやりたくありません。

2番目の線で探していたのですが、USB の給電を ON/OFF できる製品って、意外とないですね……。

仕方なく 3番目の線で、TP-Link のスマートプラグ HS105 を購入しました(メーカーの製品サイト)。Amazon で 2,600円です。Wi-Fi が内蔵されている割に、ずいぶん値段が安いですね。

メモ: 技術系の話は Facebook から転記しておくことにした。少し加筆した。

[編集者: すずき]
[更新: 2019年 1月 12日 23:22]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2019年 1月 18日 -
      2019年 1月 9日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 2/21 00:46

カレンダー

<2019>
<<<01>>>
--12345
6789101112
13141516171819
20212223242526
2728293031--

最近のコメント 5件

  • link 18年12月11日
    すずき 「確認いただいてありがとうございます。直っ...」
    (更新:12/27 00:22)
  • link 18年12月11日
    T4 「再現しませんね\n\n確かに、過去にそう...」
    (更新:12/25 12:45)
  • link 18年12月11日
    すずき 「失礼しました。Rock64 の方は、\n...」
    (更新:12/22 02:10)
  • link 18年12月11日
    T4 「私は、Tinker Board を持って...」
    (更新:12/21 10:14)
  • link 18年12月11日
    すずき 「> 但し、これもう一年以上前の話で...」
    (更新:12/19 11:54)

最近の記事 3件

link もっとみる
  • link 19年02月19日
    すずき 「[RISC-V のコンパイラ] Crosstool-NG は RI...」
    (更新:02/21 00:46)
  • link 19年02月18日
    すずき 「[RockPro64 のシリアル出力] RockPro64 のシリ...」
    (更新:02/21 00:43)
  • link 19年02月20日
    すずき 「[RockPro64 の HDMI Audio] RK3399 の...」
    (更新:02/21 00:33)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報