Skip to content

Commit ea709e9

Browse files
committed
add xuantie qemu
1 parent a6f2701 commit ea709e9

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

.github/workflows/utest_auto_run.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- { UTEST: "RISCV", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "None", KERNEL: "standard", "SMP_RUN":"" }
3939
- { UTEST: "RISCV-rtsmart", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "None", KERNEL: "rtsmart", "SMP_RUN":"" }
4040
# - { UTEST: "RISCV-smp", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "None", KERNEL: "standard", "SMP_RUN":"smp" }
41-
- { UTEST: "XUANTIE", RTT_BSP: "bsp/xuantie/virt64/c906", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "rtsmart", "SMP_RUN":"" }
41+
- { UTEST: "XUANTIE-rtsmart", RTT_BSP: "bsp/xuantie/virt64/c906", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "rtsmart", "SMP_RUN":"" }
4242

4343
- { UTEST: "AARCH64", RTT_BSP: "bsp/qemu-virt64-aarch64", QEMU_ARCH: "aarch64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "standard", "SMP_RUN":"" }
4444
- { UTEST: "AARCH64-rtsmart", RTT_BSP: "bsp/qemu-virt64-aarch64", QEMU_ARCH: "aarch64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "rtsmart", "SMP_RUN":"" }
@@ -115,7 +115,7 @@ jobs:
115115
fi
116116
117117
# Install RISC-V XUANTIE Musl ToolChains
118-
if [[ "${{ matrix.platform.UTEST }}" == "XUANTIE" && "${{ matrix.platform.QEMU_ARCH }}" == "riscv64" && "${{ matrix.platform.KERNEL }}" == "rtsmart" ]]; then
118+
if [[ "${{ matrix.platform.UTEST }}" == "XUANTIE-rtsmart" && "${{ matrix.platform.QEMU_ARCH }}" == "riscv64" && "${{ matrix.platform.KERNEL }}" == "rtsmart" ]]; then
119119
echo "Starting install RISC-V XUANTIE Musl ToolChains"
120120
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.9/Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2.tar.gz
121121
sudo tar zxvf Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2.tar.gz -C /opt
@@ -193,8 +193,30 @@ jobs:
193193
-drive if=none,file=$TEST_BSP_ROOT/sd.bin,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \
194194
-netdev user,id=net0 -device virtio-net-device,netdev=net0,bus=virtio-mmio-bus.1 \
195195
> qemu_output_$TEST_QEMU_ARCH.log 2>&1 &
196-
elif [[ "${{ matrix.platform.UTEST }}" == "XUANTIE" ]]; then
197-
qemu-system-$TEST_QEMU_ARCH -cpu c906fd -M $TEST_QEMU_MACHINE -kernel $TEST_BSP_ROOT/rtthread.bin -nographic \
196+
elif [[ "${{ matrix.platform.UTEST }}" == "XUANTIE-rtsmart" ]]; then
197+
sudo apt-get install -y dos2unix libcapstone-dev libbrlapi-dev
198+
wget -q https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1736318325160/Xuantie-qemu-x86_64-Ubuntu-20.04-V5.0.5-B20250108-0335.tar.gz
199+
tar zxvf Xuantie-qemu-x86_64-Ubuntu-20.04-V5.0.5-B20250108-0335.tar.gz
200+
dos2unix ./install/qemu_post_install_small.sh
201+
sudo chmod +x ./install/qemu_post_install_small.sh
202+
sudo ./install/qemu_post_install_small.sh
203+
204+
QEMU_BIN="./install/bin/qemu-system-$TEST_QEMU_ARCH"
205+
[ ! -f "$QEMU_BIN" ] && echo "ERROR: $QEMU_BIN not found." && exit 1
206+
207+
tmp_output=$(mktemp)
208+
ldd "$QEMU_BIN" > "$tmp_output" 2>&1
209+
missing_libs=$(grep "not found" "$tmp_output" | awk '{print $1}')
210+
211+
for lib in $missing_libs; do
212+
base_lib=$(echo "$lib" | sed -E 's/\.so.*/\.so/')
213+
214+
echo "🔍 修复基础库:$base_lib ..."
215+
sudo ln -s /usr/lib/x86_64-linux-gnu/$base_lib /usr/lib/x86_64-linux-gnu/$lib
216+
done
217+
echo "✅ 所有缺失库已处理。"
218+
219+
$QEMU_BIN -cpu c906fd -M $TEST_QEMU_MACHINE -kernel $TEST_BSP_ROOT/rtthread.bin -nographic \
198220
-drive if=none,file=$TEST_BSP_ROOT/sd.bin,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \
199221
> qemu_output_$TEST_QEMU_ARCH.log 2>&1 &
200222
elif [[ "${{ matrix.platform.QEMU_ARCH }}" == "arm" ]]; then

0 commit comments

Comments
 (0)