LuckFox Pico MiniでUbuntuを使ってみる

ネットワーク共有のパフォーマンス

Google Cloudで提供されているUbuntuのイメージはRNDIS(リモートNDIS)機能が有効になっていて、
USBポートに対して「172.32.0.xx」のIPアドレス がアサインされます。
UbuntuのRNDISが提供するIPアドレスは172.32.0.70です。
buildrootのRNDISが提供するIPアドレスは172.32.0.93です。

WindowsやLinuxを母艦にすることで、USBポートを使ったネットワークが使えるようになります。
EthernetもWiFiもないので、これ以外のネットワークインタフェースは有りません。
最近、Linuxを母艦としたネットワーク共有のやり方が分かったので、Windowを母艦にしたネットワーク共有と、
Linuxを母艦にネットワーク共有のパフォーマンスを比較してみました。

比較の前に、/dev/mmcblk1p8をSwapパーティションとしてマウントしています。
$ sudo mkswap /dev/mmcblk1p8
Setting up swapspace version 1, size = 54726455296 bytes

$ sudo swapon /dev/mmcblk1p8
[  105.830584] Adding 53443804k swap on /dev/mmcblk1p8.  Priority:-2 extents:1 across:53443804k SS

$ free -h
               total        used        free      shared  buff/cache   available
Mem:            33Mi        13Mi       2.0Mi       0.0Ki        17Mi        16Mi
Swap:          8.7Gi        15Mi       8.7Gi

また、gcc-12とlibc6-devをインストールして、update-alternativesでバージョンを切り替えています。
$ sudo apt update

$ sudo apt install g++-12 -y

$ sudo apt install --reinstall libc6-dev -y

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12

$ gcc --version
gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ --version
g++ (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

一部のpythonパッケージ(sysv_ipcなど)は、ビルドにgccではなくarm-linux-gnueabihf-gccを使います。
arm-linux-gnueabihf-gccは以下の様にgcc-11へのリンクとなっています。
$ arm-linux-gnueabihf-gcc --version
cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ ls -l /usr/bin/arm-linux-gnueabihf-gcc
lrwxrwxrwx 1 root root 6 Aug  5  2021 /usr/bin/arm-linux-gnueabihf-gcc -> gcc-11

gcc-11は正しくインストールされていないので、リンクを変更しておきます。
これでビルドにarm-linux-gnueabihf-gccを使うパッケージもビルドが通ります。
$ sudo unlink /usr/bin/arm-linux-gnueabihf-gcc

$ sudo ln -s gcc-12 /usr/bin/arm-linux-gnueabihf-gcc

$ ls -l /usr/bin/arm-linux-gnueabihf-gcc
lrwxrwxrwx 1 root root 6 Apr 16 14:32 /usr/bin/arm-linux-gnueabihf-gcc -> gcc-12

$ arm-linux-gnueabihf-gcc --version
arm-linux-gnueabihf-gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



pip本体をアップデート

Windows環境


Linux環境




Adafruit-PlatformDetectのインストール

Windows環境


Linux環境


やはり、いずれの場合もWindows環境のネットワーク共有を使うより、Linux環境のネットワーク共有を使った方が高速に動作します。