●MacBook Air Linux 環境構築
2022.06.12
MacBook Airには Appleが開発した M1 CPUが使用されています。
この M1 CPU性能は intel core i7と同等です
高性能にもかかわらず発熱が少なく、Fanが無いのです。
このため電池も長持ちします。
M1 Macでは miniforge3を installして condaを使用するしかない様です。
M1 Macには、x86_64 モードと arm64モードがあります。
・x86_64: intel CPU intel 互換 mode
・arm64: apple M1 CPU arm64 M1 mode
homebrew, pyenvで pythonを installすると動かない。
Miniforge で tensorflow-macosを install する。
削除順序 (知らずにSetUpしたもの)
1. 仮装環境の local指定を削除する。 $ pyenv local --unset
2. 他の Folderの global 設定も解除。 $ pyenv global --unset
3. .zshrc に入れた PATH CommentOut
4. python3.7.13 python3.8.13 python3.9.11 python3.10.3 uninstall
5. pyenv uninstall ・・・pyenv 使えない
6. homebrew uninstall ここまでしなくても良い?
7. miniforge install ・・・今のところ M1 Mac はこれのみ
8. object_detection_API models install
9. object_detection_tools install
10. object_detection_tools 設定作業
homebrew自体は uninstallする必要は無い様です。
MacBook Air
【M1 Mac Book 環境】
Mac OS Monterey Ver 12.4
uname -a Darwin Kernel Version 21.5.0 arm64
python -V python 3.8.13 (system)
miniforge conda ver.4.12.0
pip show tensorflow
tensorflow 0.1a2 ・・・M1 Mac 用
tensorflow 2.7.0 ⇒ ・・・tensorflow_io ver=0.22.0
ver=0.23.0
Ver=0.23.1
tensorflow依存File
absl-py astunparse flatbuffers gast google-pasta grpcio h5py keras keras-preprocessing numpy opt-einsum protobuf six tensorboard tensorflow-estimator
termcolor typing-extensions wrapt tf-models-official
conda list 側
tensorflow 2.4.0rc0 ⇒ ・・・対応する tensorflow_io ver 0.17.0
【環境切替え】
Miniforge install 後は condaで切替え
(base)$ conda create py38 ・・・仮想環境 py38 Folder作成
/Users/「ユーザー名」/minihorge3/envs/py38 ・・・ここにできた。
(base)$ ・・・miniforge環境に居る
(base)$ conda deactivate ・・・miniforgeから出る
$ ・・・default 環境
$ conda activate ・・・再度 miniforgeに入る
(base)$
(base)$ conda activate py38 ・・・py38 Folder に切替
(py38)$ ・・・仮装環境 py38に入る
【SSHの設定】
M1 Macから RasPiに接続するために SSHの設定をします。
$ cd /etc/ssh
$ sudo nano ssh_config
port 22
AddressFamily any
#ListenAddress 0.0.0.0
PasswordAuthentication yes
ctl+Oで書き込み ctl+Xで終了
【SSHで MacBookから RasPiに接続】
MacBookから RasPiに、SSHで接続します。
MacBookの termを起動しておき、SSH commandで接続します。
$ ssh 「ユーザー名」@「RasPi address」 -p 「port番号」
接続すると接続可否を聞かれるので「yes」を入力する。
その後 passwordを要求されるので keyinします。
例
$ ssh pi@192.168.1.11 -p 22
接続可否 yes/no : yes
password : xxxx
pi@raspi$: ・・・・ここからRasPiに接続
pi@raspi$:
pi@raspi$:
pi@raspi$: exit ・・・・接続終了
接続時に下記の Errorが出る場合。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
これは RasPi側の SSDの入れ替えや、再installを行った場合に発生します。
MacBookで下記 commandを入力すれば解決します。
$ ssh-keygen -R '192.168.1.11'
一度も接続した事がなければ接続可否を聞かれるので「yes」を入力します。
$ password: xxxx
RasPiの passwordを入力すれば接続できる様になります。
【ZEN TermLiteで MacBookから RasPiに接続】
ZEN TermLiteに raspberryPiの IP Addressを設定すれば Termを使用して
Remote接続が可能になります。
【condaとpipを混在させる危険】
miniforgeを使用すると、conda command と pipと混在させる事になり、
installする Appに重複の危険が出てきます。
混在は Linux環境の破壊にもつながります。
混在の危険を説明したサイト ⇒ まぜるな危険
重複検出 Tool ⇒ python パッケージの依存関係を調べる
検出用 Toolを pipで取得します。
$ pip install pipdeptree
取得したら早速実行して重複の有無を調べてみます。
$ pipdeptree
conda pipの両方で installした packageの warningが表示される。
MacBook Airの機器仕様はこちら ⇒ MacBook Air機器仕様
【環境切替え】
Miniforge install 後は condaで切替え
(base)$ conda create py38 ・・・仮想環境 py38 Folder作成
/Users/「ユーザー名」/minihorge3/envs/py38 ・・・ここにできた。
(base)$ ・・・miniforge環境に居る
(base)$ conda deactivate ・・・miniforgeから出る
$ ・・・default 環境
$ conda activate ・・・再度 miniforgeに入る
(base)$
(base)$ conda activate py38 ・・・py38 Folder に切替
(py38)$ ・・・仮装環境 py38に入る
【SSHの設定】
M1 Macから RasPiに接続するために SSHの設定をします。
$ cd /etc/ssh
$ sudo nano ssh_config
port 22
AddressFamily any
#ListenAddress 0.0.0.0
PasswordAuthentication yes
ctl+Oで書き込み ctl+Xで終了
【SSHで MacBookから RasPiに接続】
MacBookから RasPiに、SSHで接続します。
MacBookの termを起動しておき、SSH commandで接続します。
$ ssh 「ユーザー名」@「RasPi address」 -p 「port番号」
接続すると接続可否を聞かれるので「yes」を入力する。
その後 passwordを要求されるので keyinします。
例
$ ssh pi@192.168.1.11 -p 22
接続可否 yes/no : yes
password : xxxx
pi@raspi$: ・・・・ここからRasPiに接続
pi@raspi$:
pi@raspi$:
pi@raspi$: exit ・・・・接続終了
接続時に下記の Errorが出る場合。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
これは RasPi側の SSDの入れ替えや、再installを行った場合に発生します。
MacBookで下記 commandを入力すれば解決します。
$ ssh-keygen -R '192.168.1.11'
一度も接続した事がなければ接続可否を聞かれるので「yes」を入力します。
$ password: xxxx
RasPiの passwordを入力すれば接続できる様になります。
【ZEN TermLiteで MacBookから RasPiに接続】
ZEN TermLiteに raspberryPiの IP Addressを設定すれば Termを使用して
Remote接続が可能になります。
【condaとpipを混在させる危険】
miniforgeを使用すると、conda command と pipと混在させる事になり、
installする Appに重複の危険が出てきます。
混在は Linux環境の破壊にもつながります。
混在の危険を説明したサイト ⇒ まぜるな危険
重複検出 Tool ⇒ python パッケージの依存関係を調べる
検出用 Toolを pipで取得します。
$ pip install pipdeptree
取得したら早速実行して重複の有無を調べてみます。
$ pipdeptree
conda pipの両方で installした packageの warningが表示される。
MacBook Airの機器仕様はこちら ⇒ MacBook Air機器仕様
----------------------------------------------------------------------------------------------------------------------------