|
38 | 38 | - { UTEST: "RISCV", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "None", KERNEL: "standard", "SMP_RUN":"" }
|
39 | 39 | - { UTEST: "RISCV-rtsmart", RTT_BSP: "bsp/qemu-virt64-riscv", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "None", KERNEL: "rtsmart", "SMP_RUN":"" }
|
40 | 40 | # - { 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-rtsmart", RTT_BSP: "bsp/xuantie/virt64/c906", QEMU_ARCH: "riscv64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "rtsmart", "SMP_RUN":"" } |
41 | 42 |
|
42 | 43 | - { UTEST: "AARCH64", RTT_BSP: "bsp/qemu-virt64-aarch64", QEMU_ARCH: "aarch64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "standard", "SMP_RUN":"" }
|
43 | 44 | - { UTEST: "AARCH64-rtsmart", RTT_BSP: "bsp/qemu-virt64-aarch64", QEMU_ARCH: "aarch64", QEMU_MACHINE: "virt", SD_FILE: "sd.bin", KERNEL: "rtsmart", "SMP_RUN":"" }
|
@@ -113,6 +114,17 @@ jobs:
|
113 | 114 | echo "TOOLCHAIN_INSTALLED=riscv-musl" >> $GITHUB_ENV
|
114 | 115 | fi
|
115 | 116 |
|
| 117 | + # Install RISC-V XUANTIE Musl ToolChains |
| 118 | + if [[ "${{ matrix.platform.UTEST }}" == "XUANTIE-rtsmart" && "${{ matrix.platform.QEMU_ARCH }}" == "riscv64" && "${{ matrix.platform.KERNEL }}" == "rtsmart" ]]; then |
| 119 | + echo "Starting install RISC-V XUANTIE Musl ToolChains" |
| 120 | + 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 |
| 121 | + sudo tar zxvf Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2.tar.gz -C /opt |
| 122 | + /opt/Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2/bin/riscv64-unknown-linux-musl-gcc --version |
| 123 | + echo "RTT_EXEC_PATH=/opt/Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2/bin" >> $GITHUB_ENV |
| 124 | + echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV |
| 125 | + echo "TOOLCHAIN_INSTALLED=riscv-musl" >> $GITHUB_ENV |
| 126 | + fi |
| 127 | +
|
116 | 128 | # Install AARCH64 ToolChains
|
117 | 129 | if [[ "${{ matrix.platform.QEMU_ARCH }}" == "aarch64" && "${{ matrix.platform.KERNEL }}" == "standard" ]]; then
|
118 | 130 | echo "Starting install AARCH64 ToolChains"
|
@@ -181,6 +193,32 @@ jobs:
|
181 | 193 | -drive if=none,file=$TEST_BSP_ROOT/sd.bin,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \
|
182 | 194 | -netdev user,id=net0 -device virtio-net-device,netdev=net0,bus=virtio-mmio-bus.1 \
|
183 | 195 | > qemu_output_$TEST_QEMU_ARCH.log 2>&1 &
|
| 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 \ |
| 220 | + -drive if=none,file=$TEST_BSP_ROOT/sd.bin,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \ |
| 221 | + > qemu_output_$TEST_QEMU_ARCH.log 2>&1 & |
184 | 222 | elif [[ "${{ matrix.platform.QEMU_ARCH }}" == "arm" ]]; then
|
185 | 223 | qemu-system-$TEST_QEMU_ARCH \
|
186 | 224 | -nographic \
|
|
0 commit comments