使用M1晶元的Macbook開發TF M

2021-10-21 00:15:25 字數 2828 閱讀 3743

首發極術社群
最重要的問題應該就是編譯tf-m所需的工具及庫軟體的安裝。 以前在x86下可能問題並不是太大,但是現在切換到arm架構的m1,軟體適配方面的問題就尤為重要。 所幸筆者發現,常用工具對m1架構的還是不錯的,而且適配的速度遠超筆者預期。 下面以gnuarm編譯器為例,介紹一下m1晶元的系統中,如何搭建tf-m開發環境。

一下內容基於 硬體:macbook air m1 8g 256gb 系統:macos big sur 11.1

在開始安裝tf-m相關環境之前,我們先把macos的環境設定好。

由於後面我們會修改環境變數,所以首先把bash的配置檔案建立好。關於.bash_profile和.bashrc檔案在macos下的問題,參考這篇文章 簡單的說,在使用者的家目錄下建立這兩個檔案,然後.bash_profile呼叫.bashrc。這樣做是因為保持與其他linux/unix平台做法一致。當然,你也可以在.bash_profile中做所有事情而忽略.bashrc。 建立.bash_profile(這裡使用vi作為文字編輯器,可以替換為你喜歡的)

vi ~/.bash_profile
編輯.bash_profile並儲存

if [ -r ~/.bashrc ]; then

source ~/.bashrc

fi

建立.bashrc

vi ~/.bashrc
以後可以像其他linux平台一樣,修改.bashrc檔案。

為了後面安裝軟體更方便,推薦安裝homebrew。 方法非常簡單,在命令列執行

/bin/bash -c "$(curl -fssl "
這裡如果出現無法連線的情況,需要檢查一下dns設定。新增114.114.114.114和8.8.8.8作為dns伺服器位址。dns設定方法這裡不詳細描述,可以很容易在網上找到。這裡主要介紹與搭建環境相關的步驟和要點。

export path="$path:/opt/homebrew/bin"
重啟終端或者source ~/.bashrc之後,如果可以使用brew命令,則說明安裝設定正確。

cmakegnuarm compilerpython3以及pip3,相應的python依賴包
下面一一介紹他們的安裝步驟和要點

系統可能已經安裝python3,但是為了確保安裝正確,我們通過brew安裝python3。在命令列中執行 brew install python3 此時,python3和pip3應該已經一起安裝完畢。

隨後,進入tf-m的安裝目錄,進行python依賴庫的安裝 cd pip3 install -r tools/requirements.txt 這時,很有可能你會遇到安裝cryptography時的錯誤。 這裡遇到的唯一乙個難點。 總結下來,問題有:

缺少rust編譯環境

訪問rust官網安裝,簡單的說,就是執行 curl --proto 『=https』 --tlsv1.2 -ssf | sh 安裝成功後,在你的.bashrc檔案會看到多了下面一行 source 「$home/.cargo/env」 重新開啟終端或者source ~/.bashrc後解決。 如果安裝過程有問題,可以通過brew安裝。這裡不再贅述。

找不到openssl標頭檔案

首先確定安裝openssl: brew install [email protected] 然後手動帶路徑安裝cryptography env ldflags="-l(br

ew−−

pref

ixop

enss

l)/l

ib"c

flag

s="−

i(brew --prefix openssl)/lib" cflags="-i

(brew−

−pre

fixo

pens

sl)/

lib"

cfla

gs="

−i(brew --prefix openssl)/include" pip3 install cryptography

如果手動安裝cryptography成功,可以再回去安裝其他的tf-m依賴庫 pip3 install -r tools/requirements.txt

現在安裝應該全部沒有問題了。

前面安裝好cmake和gnuarm之後,還沒有把可執行檔案路徑加入path。 編輯~/.bashrc,加入 export path=「pat

h:/a

ppli

cati

ons/

cmak

e.ap

p/co

nten

ts/b

in"e

xpor

tpat

h="pa

th:/

appl

icat

ions

/cma

ke.a

pp/c

onte

nts/

bin"

expo

rtpa

th="

在所有環境都安裝好之後,我們進入tf-m**目錄,嘗試編譯tf-m

cmake -s . -b cmake_build -dtfm_platform=mps2/an521 -dtfm_toolchain_file=toolchain_gnuarm.cmake

cmake --build cmake_build -- install

一切順利的話,tf-m應該可以正常編譯了。

如何在M1晶元的MacBook上安裝opencv

直接使用homebrew安裝 brew install s opencv 所以,homebrew預設安裝opencv contrib,不需要考慮重新編譯opencv opencv contrib,這也就是為什麼說brew安裝是最簡單的方法。自己在這個地方停留了很長時間,在尋找如何補全編譯,後來在官方...

M1 晶元已經可以流暢執行 Windows 系統!

m1晶元已經可以安裝windows 無論是用過還是沒有用過蘋果全新 m1 晶元的 mac 使用者,都知道這顆蘋果自研晶元有多強大,不過,這種強大是基於 arm 架構之上的。這也導致不少需要用到 windows 虛擬機器的使用者非常苦惱,畢竟很多小眾軟體和單位企業等內部應用都是需要 x86 架構的 w...

M1晶元版mac輕鬆讀寫NTFS格式磁碟教程

以下教程是針對 m1 mac 的。並且請確保 macos 在 11.0.1 或高 建議公升到最新版 把 m1 mac 關機然後按住開機鍵。注意是按住不鬆手,接下來應該會聽到 duang 的開機聲。繼續按住直到螢幕出現 正在載入啟動選項 然後鬆手。接下來會出現下面這個畫面。注意如果你用的跟我一樣是 m...