2020年5月25日 星期一

從源碼產生arm,riscv,x86的qemu

作業系統︰Ubuntu 18.04

GIT的ssh設定
    為了在git使用ssh將專案拉下來需使用指令"ssh-keygen"產生金鑰,之後在github settings的"SSH and GPG keys"指令產生的金鑰複製到這裡。
    資料可參考這裡

建制arm的qemu︰
1. git clone git@github.com:qemu/qemu.git

2.
 ./configure --target-list=i386-softmmu,x86_64-softmmu,aarch64-softmmu,arm-softmmu,riscv32-softmmu,riscv64-softmmu --disable-libssh  --enable-debug --enable-kvm
3.
  make
4.
  ln -s  到arm-system-aarch64的路徑/arm-system-aarch64 /usr/bin/arm-system-aarch64
5. 完成

錯誤排除︰
發生錯誤-> make: aarch64-linux-gnu-gcc: Command not found
可能原因為32和64位元相容問題
解法:sudo apt-get install binutils-multiarch-dev  binutils-multiarch lib32ncurses5-dev lib32z1

2020年5月13日 星期三

lk(little kernel)(1)

介紹:
          編譯little kernel,並在arm-system-qemu上執行

操作環境:
               ubuntu

步驟:
          1. 使用git下載程式碼
                 git clone https://github.com/littlekernel/lk.git

          2. 從qemu的github上下載最新的程式碼並且編譯
                 git clone https://github.com/qemu/qemu.git        
                 cd qemu
                 ./configure
                 make && make install

          3. 確認qemu版本是否在v2.4以上
                qemu-system-arm --version

          4. 從參考資料3下載最新的toolchain(arm-eabi-8.2.0-Linux-x86_64.tar.xz),並設定為預設toolchain(加入環境變數)

          5. 跑到lk的資料夾底下,使用script/do-qemuarm腳本執行
                ./scripts/do-qemuarm

結果成功圖示:



參考資料:
          1. qemu下运行lk(little kernel)
          2. lk(github)
          3. Index of /toolchains