X86 2-ядро Linux ядро 5.1, TimingSimpleCPU, gem5 08c79a194d1a3430801c04f37d13216cc9ec1da3 случайно работал на этой настройке: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/6aa2f783a8a18589ae66e85f781f86b08abb3397#gem5-buildroot-setup-getting-started Загрузка завершается, и cat /proc/cpuinfo
сообщает 2 процессора.
Команда окончательного запуска была:
./run --cpus 2 --emulator gem5 -- --cpu-type TimingSimpleCPU
В этом репозитории указано все, включая сборку gem5, ядро Linux и способ их запуска.
Затем, простым щелчком переключателя, работает то же самое.на aarch64, если вам интересно:
./run --arch aarch64 --cpus 2 --emulator gem5 -- --cpu-type TimingSimpleCPU
Затем я добавил опции --caches --l2cache
в соответствии с комментарием OP, и теперь я воспроизвожу ошибку, к которой у меня нет решения:
./run --cpus 2 --emulator gem5 -- --cpu-type TimingSimpleCPU --caches --l2cache
Зависание загрузки, последнее сообщение терминала:
pci 0000:00:04.0: legacy IDE quirk: reg 0x1c: [io 0x0376]
и чуть выше мы можем увидеть подозрительное сообщение:
[Firmware Bug]: CPU1: APIC id mismatch. Firmware: 1 APIC: 0
Загрузка ARM с дополнительнымОднако параметры работали:
./run --arch aarch64 --cpus 2 --emulator gem5 -- --cpu-type TimingSimpleCPU --caches --l2cache
Однако позже я попытался использовать дополнительные параметры кэширования:
/run --arch aarch64 --emulator gem5 --cpu 2 --run-id 2 -- --cpu-type=HPI --caches --l2cache --l1d_size=64kB --l1i_size=64kB --l2_size=256kB
, но также произошел сбой, как объяснено в: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/99180e6616331b7385b09147f11f67962f9facc4#gem5-arm-multicore-hpi-boot-fails ...
Как отладить такие проблемы, чтобы все заработалочрезвычайно сложная проблема, требующая достаточного понимания ядра Linux + X86 ISA + gem5, где достаточно неопределенного.Этот процесс обучения тесно переплетается с включением только правильных опций журнала / фокусировкой на правой части кода.Эта установка просто сработала из "удачи".