# Linux Kernel Module Cheat

##### 24.3.1.2. gem5 ARM full system with more than 8 cores

https://stackoverflow.com/questions/50248067/how-to-run-a-gem5-arm-aarch64-full-system-simulation-with-fs-py-with-more-than-8

With GICv3, tested at LKMC 224fae82e1a79d9551b941b19196c7e337663f22 gem5 3ca404da175a66e0b958165ad75eb5f54cb5e772 on vanilla kernel:

    ./run \
      --arch aarch64 \
      --emulator gem5 \
      --cpus 16 \
      -- \
      --machine-type VExpress_GEM5_V2 \
    ;

boots to a shell and `nproc` shows `16`.

For the GICv2 extension method, build the kernel with the gem5 arm Linux kernel patches, and then run:

    ./run \
      --arch aarch64 \
      --linux-build-id gem5-v4.15 \
      --emulator gem5 \
      --cpus 16 \
      -- \
      --param 'system.realview.gic.gem5_extensions = True' \
    ;

Tested in LKMC 788087c6f409b84adf3cff7ac050fa37df6d4c46. It fails after boot with `FATAL: kernel too old` as mentioned at: gem5 arm Linux kernel patches but everything seems to work on the gem5 side of things.