0. seL4 環(huán)境搭建

系統(tǒng)環(huán)境:ubuntu 22.04
*嫌麻煩的的話可以直接轉(zhuǎn)向:0.0 seL4 環(huán)境搭建懶人版 - 簡(jiǎn)書(shū) (jianshu.com)

以下所有文章都需要翻墻

1 安裝repo

可以參考該鏈接進(jìn)行repo的安裝:源代碼控制工具 | Android 開(kāi)源項(xiàng)目 | Android Open Source Project

使用以下方法:

sudo apt-get update
sudo apt-get install repo

2 基本的編譯依賴項(xiàng)

基本環(huán)境:

sudo apt-get update
sudo apt-get install build-essential

編譯seL4的相關(guān)環(huán)境:

sudo apt-get install cmake ccache ninja-build cmake-curses-gui
sudo apt-get install libxml2-utils ncurses-dev
sudo apt-get install curl git doxygen device-tree-compiler
sudo apt-get install u-boot-tools
sudo apt-get install python3-dev python3-pip python-is-python3
sudo apt-get install protobuf-compiler python3-protobuf

仿真用的qemu

sudo apt-get install qemu-system-arm qemu-system-x86 qemu-system-misc

arm交叉編譯環(huán)境

sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

還可以安裝支持硬件浮點(diǎn)的版本

sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

RISC-V交叉編譯環(huán)境(裝起來(lái)略費(fèi)事畏妖,建議這部分先不裝)

sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev

git clone https://github.com/riscv/riscv-gnu-toolchain.git
cd riscv-gnu-toolchain
 git submodule update --init --recursive //由于工具更新岸裙,這一步不再需要了
 export RISCV=/opt/riscv
 ./configure --prefix="${RISCV}" --enable-multilib
 make linux

這里可能會(huì)出現(xiàn)gcc怎么都拉不下來(lái)的情況定血,首先對(duì)于RISC-V的交叉編譯倉(cāng)庫(kù),可以使用國(guó)內(nèi)的鏡像:

git clone https://gitee.com/mirrors/riscv-gnu-toolchain.git

另外我們修改下submodule临梗,修改項(xiàng)目下的.gitmodules文件,使用鏡像倉(cāng)庫(kù)來(lái)下。

[submodule "binutils"]
        path = binutils
        url = https://gitee.com/mirrors/riscv-binutils-gdb.git
        branch = binutils-2_40-branch
[submodule "gcc"]
        path = gcc
        url = https://gitee.com/mirrors/riscv-gcc.git
        branch = releases/gcc-12
[submodule "glibc"]
        path = glibc
        url = https://gitee.com/mirrors/riscv-glibc.git
[submodule "dejagnu"]
        path = dejagnu
        url = https://gitee.com/mirrors/riscv-dejagnu.git
        branch = dejagnu-1.6.3
[submodule "newlib"]
        path = newlib
        url = https://gitee.com/mirrors/riscv-newlib.git
        branch = master
[submodule "gdb"]
        path = gdb
        url = https://gitee.com/mirrors/riscv-binutils-gdb.git
        branch = gdb-12-branch
[submodule "qemu"]
        path = qemu
        url = https://gitlab.com/qemu-project/qemu.git
[submodule "musl"]
        path = musl
        url = https://git.musl-libc.org/git/musl
        branch = master
[submodule "spike"]
        path = spike
        url = https://github.com/riscv-software-src/riscv-isa-sim.git
        branch = master
[submodule "pk"]
        path = pk
        url = https://github.com/riscv-software-src/riscv-pk.git
        branch = master
[submodule "llvm"]
        path = llvm
        url = https://github.com/llvm/llvm-project.git
        branch = release/15.x

然后執(zhí)行:

git submodule sync

另外扣典,其實(shí)直接拉取也是可以拉取成功的负甸,我們可以使用原來(lái)的配置流强,手動(dòng)更新每個(gè)子倉(cāng)庫(kù):

git submodule update --init --recursive --progress ./glibc

3 CAmkES編譯環(huán)境

Python依賴

pip3 install --user camkes-deps

Haskell依賴

curl -sSL https://get.haskellstack.org/ | sh

或者執(zhí)行

sudo apt-get install haskell-stack

編譯依賴:

sudo apt-get install clang gdb
sudo apt-get install libssl-dev libclang-dev libcunit1-dev libsqlite3-dev
sudo apt-get install qemu-kvm

4 證明和Isabelle環(huán)境

要運(yùn)行針對(duì)ARMv7-A架構(gòu)的所有證明,需要安裝以下軟件包:

sudo apt-get install \
    python3 python3-pip python3-dev \
    gcc-arm-none-eabi build-essential libxml2-utils ccache \
    ncurses-dev librsvg2-bin device-tree-compiler cmake \
    ninja-build curl zlib1g-dev texlive-fonts-recommended \
    texlive-latex-extra texlive-metapost texlive-bibtex-extra \
    mlton-compiler haskell-stack repo

python

pip3 install --user --upgrade pip
pip3 install --user sel4-deps

Haskell Stack

stack upgrade --binary-only
which stack # should be $HOME/.local/bin/stack
stack install cabal-install

5 獲取存儲(chǔ)庫(kù)

mkdir verification
cd verification
repo init -u https://git@github.com/seL4/verification-manifest.git
repo sync

參考文獻(xiàn)

Host Dependencies | seL4 docs
利用碼云鏡像快速拉取riscv-gnu-toolchain工具鏈_ピンポーン的博客-CSDN博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呻待,一起剝皮案震驚了整個(gè)濱河市打月,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚕捉,老刑警劉巖奏篙,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異迫淹,居然都是意外死亡秘通,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)敛熬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)肺稀,“玉大人,你說(shuō)我怎么就攤上這事应民』霸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵诲锹,是天一觀的道長(zhǎng)繁仁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)辕狰,這世上最難降的妖魔是什么改备? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蔓倍,結(jié)果婚禮上悬钳,老公的妹妹穿的比我還像新娘。我一直安慰自己偶翅,他們只是感情好默勾,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著聚谁,像睡著了一般母剥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天环疼,我揣著相機(jī)與錄音习霹,去河邊找鬼。 笑死炫隶,一個(gè)胖子當(dāng)著我的面吹牛淋叶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伪阶,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼煞檩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了栅贴?” 一聲冷哼從身側(cè)響起斟湃,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎檐薯,沒(méi)想到半個(gè)月后凝赛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厨剪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年哄酝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祷膳。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陶衅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出直晨,到底是詐尸還是另有隱情搀军,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布勇皇,位于F島的核電站罩句,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏敛摘。R本人自食惡果不足惜门烂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兄淫。 院中可真熱鬧屯远,春花似錦、人聲如沸捕虽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泄私。三九已至房揭,卻和暖如春备闲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捅暴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工恬砂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伶唯。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓觉既,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親乳幸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容