## OpenBMC on AST2600 with QEMU
:::info
**實驗目標**: 構建ast2600開發版鏡像,在qemu上面開啟
**實驗器材**:只需要有一台linux主機,或是windows 開啟wsl2 功能
:::
### 1. 建立目錄
```bash
mkdir -p AST2600_qemu
```
### 2. 安裝 Docker
```bash!
git clone https://github.com/macchen-yu/ast2600.git
sudo sh ./ast2600/docker_install.sh
```
### 3. 下載 OpenBMC 原始碼
```bash
git clone https://github.com/AspeedTech-BMC/openbmc.git
```
### 4. 進入專案目錄並設定環境
```bash
cd asbmc_v9.5/openbmc/
. setup ast2600-default as26_build
```
### 5. 編譯 OpenBMC 映像檔(需要較長時間)
**注意**: 伺服器記憶體需超過 **32GB**
```bash
bitbake obmc-phosphor-image
```
:::danger
如果記憶體不足,可以嘗試調整 <build 目錄>/conf/local.conf 中的 BB_NUMBER_THREADS 參數,以控制構建鏡像時的記憶體使用量。
:::
---
### 6. 安裝 QEMU
```bash
sudo apt install qemu-system qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager -y
```
### 7. 進入編譯目錄
```bash
cd ~/asbmc_v9.5/openbmc/as26_build
```
### 8. 查詢可用機器
```bash
qemu-system-arm -machine help
```
### 9. 啟動 QEMU 模擬 AST2600
> **注意**: `obmc-phosphor-image-ast2600-default-<時間戳>.static.mtd` 的名稱每次都不同,需依照實際生成的檔案名稱修改。
```bash
./qemu-system-arm -m 1024 -M ast2600-evb -nographic \
-drive file=./obmc-phosphor-image-ast2600-default.static.mtd,format=raw,if=mtd \
-net nic -net user,hostfwd=tcp:192.168.31.6:2222-:22,hostfwd=tcp:192.168.31.6:2443-:443,hostfwd=udp:192.168.31.6:2623-:623,hostname=qemu
```
### 10. 登入 OpenBMC
```bash
用戶名: root
密碼: 0penBmc
```
[開啟影片連結](https://drive.google.com/file/d/1c0XYjPUL9SaXHf-o9XrfRtcRBCrru_TW/view?usp=sharing)
### 登入webbmc網頁
在瀏覽器輸入
https://192.168.31.6:2443

### 11. 退出 QEMU
```bash
ps aux | grep qemu
kill -9 <PID>
```