Skip to content

Raspberry-Pi

ラズパイでDockerでMySQL

GitHub Codespacesが使えるようになるのを待つ間、ラズパイで何とかならないか試してみた。

VS Codeからリモート接続して、Dockerインストールするところまでは順調だったけれど、docker compose upしたところでエラー。

MySQLのコンテナイメージが提供されていないようだ。 意外だった。

mysql Tags | Docker Hubにはlinux/arm64/v8があるけれど、ラズパイはv7らしい。

Read more

ラズパイをルーターにする2

SSIDが見つからない件。

linux - Raspberry Pi 4 hostapd hotspot not visible - Super Userの回答を参考に、

sudo systemctl stop dhcpcd.service
sudo systemctl restart hostapd.service
sudo systemctl start dhcpcd.service

したらいけた。

/etc/dhcpcd.confdenyinterfaces wlan0を追記するのは効き目なかった。

スピードテストの結果

経由ダウンロードアップロードレイテンシ
無線LANルーター88.2Mbps78.4Mbps79ms
ラズパイ2.4G32.0Mbps27.7Mbps5ms
ラズパイ5G54.1Mbps59.5Mbps5ms
有線91.6Mbps60.4Mbps4ms

専用機にはかなわないか。。

Read more

ラズパイをルーターにする

PCは昨日買ってきたLANケーブルでインターネット接続は解決した。

Pixel4も同じ現象だった。

LANケーブルつないだらいけるのか、LANポート付きUSB-HUBを試してみたけれど、ダメだった。

なので、ラズパイを無線LANルーターにしてみることにした。

やり方はググったらいくつか出てきた。

ルーター用にするOSもあるみたいだけど、イメージ作るの面倒なのでいったんパス。

Read more

Kuzzle Admin Consoleをラズパイ4に入れてみる

https://github.com/kuzzleio/kuzzle-admin-console#local-build をやってみる

$ git clone https://github.com/kuzzleio/kuzzle-admin-console
$ cd kuzzle-admin-console
$ npm install
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@17.3.0 | linux | arm
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack   File "<string>", line 1
npm ERR! gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack                       ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax

ダメか。。

Raspberry pi4 で expo を動かす

WSLでいろいろ試してみたものの、ポート関連のエラーで動かないので、Raspberry piで試してみた。

Rubyインストール

  • Homebrewインストールしようとしたときに、Rubyがないエラーで先に進まなくなってしまったので先にインストールしておく。
  • rbenvを使ってみる。
  • 途中でパッケージが足りないエラーが出るので、libssl-devlibreadline-devを入れる。
$ sudo apt-get install -y libssl-dev libreadline-dev
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv rehash
$ rbenv install --list
$ rbenv install 2.6.6
$ rbenv global 2.6.6
$ rbenv rehash
$ ruby --version
ruby 2.6.6p146 (2020-03-31 revision 67876) [aarch64-linux]

Homebrewインストール

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo apt-get install build-essential
$ echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> /home/pi/.profile
$ eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
$ brew --version
Homebrew 2.4.8
Homebrew/linuxbrew-core (git revision 39fddf7; last commit 2020-07-21)

Nodebrewインストール

  • これも先日と同様。
$ brew install nodebrew
$ mkdir -p ~/.nodebrew/src
$ nodebrew install stable
$ nodebrew ls
$ nodebrew use v14.6.0
$ vi ~/.profile
export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.profile
$ node -v
v14.6.0

Expoインストール

  • グローバルにexpo-cliをインストールしないで、init後にaddしている。
  • テンプレートはtabs (TypeScript)を選択した。
$ cd workspace/
$ npx expo-cli init expotest
$ cd expotest/
$ npm install --save-dev expo-cli
  • npm start後、しばらくすると以下のエラーが出るので、上限を上げる。
Error: ENOSPC: System limit for number of file watchers reached, watch '/home/pi/workspace/expotest/node_modules/metro/node_modules/string-width/node_modules/ansi-regex'
$ cat /proc/sys/fs/inotify/max_user_watches
8192
$ sudo su
# echo fs.inotify.max_user_watches= 65536 | tee -a /etc/sysctl.conf
fs.inotify.max_user_watches= 65536
# cat /proc/sys/fs/inotify/max_user_watches
8192
# sysctl -p
fs.inotify.max_user_watches = 65536
# cat /proc/sys/fs/inotify/max_user_watches
65536
# exit

Expo起動

$ npm start
  • 表示されたQRコードを、iOSやAndroidのアプリで開くと表示される。
  • 初回はJavaScriptのビルドが走る(アプリの画面下部に進捗が表示される)。
  • それ以降はソースを変更するとほぼリアルタイムで反映される。

ラズパイでdroidcam

ラズパイにWebカメラ付けてみたくても売っていないので、Android端末をカメラ化する。

Android端末側にはアプリをインストールしておく。

ラズパイ側。公式ページにはLinux用のインストール方法が用意されているが、 http://www.dev47apps.com/droidcam/linuxx/

Note: 32-bit binaries are no longer provided, you’ll need to compile the client from source.

この条件に該当するのでソースからインストールする。

Read more

はじめてのrpi-update

snapを導入してみたところ、実行時にエラーが出る。

$ hello-world
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Hello World!

実行自体はできているっぽいんだけど、気になるのでググったらrpi-updateを実行すると解消するかもしれないということで、やってみた。

#############################################################
WARNING: 'rpi-update' updates to pre-releases of the linux 
kernel tree and Videocore firmware.

'rpi-update' should only be used if there is a specific 
reason to do so - for example, a request by a Raspberry Pi 
engineer.

DO NOT use 'rpi-update' as part of a regular update process.

##############################################################
Would you like to proceed? (y/N)

こんな警告出る。まあそんなに気軽にやるものではないよね、Y

Read more

ラズパイ4にUbuntu20.04を入れる

Ubuntuの新しいLTS版が出たので、ラズパイで動かしてみた。

実は先日、18.04+kubuntuを入れてみたところ、動作が重くてちょっと実用にはならないなと思っていたところ。

20.04になってもしかしたら軽くなっているかもと期待して試した。

結果、kubuntuのGUIが起動しなくて公平な比較ができず。

ただ、kubuntuの代わりにgnomeでGUI起動したところ、ストレスなく操作することができたので、もしかしたらkubuntuが重量級だっただけかもしれない。

Read more

ラズパイでbox86を試す

ラズパイはARM系のCPUなので、INTEL系のCPU用にビルドされたバイナリはそのままでは動きません。

そこでエミュレーターを使ってみます。

今回使ってみたのは、 https://github.com/ptitSeb/box86 です。

ラズパイ4用のビルド方法が書いてあるので、その通りにして https://github.com/ptitSeb/box86/blob/master/COMPILE.md

途中、cmake がインストールされてないエラーが出たので、aptでインストールしています。

Read more

ラズパイ4導入

以前から興味があったラズパイについに手を出しました。 4Bの4GB版。

さっそくSDカードにOSを入れて、と思ったらChromebookでできない。 https://www.raspberrypi.org/downloads/Raspberry Pi Imager for Ubuntuを入れて、起動はするもののSDカードを認識してくれないので書き込み先が指定できず。

開発者モードにすればいけるのかもしれないけれど、いったん諦めてWindows10で。 あっさり認識してOS入りSDカード作成完了。

Read more