# Linux Kernel Module Cheat

##### 38.13.3.2. gem5 private source trees

Suppose that you are working on a private fork of gem5, but you want to use this repository to develop it as well.

Simply adding your private repository as a remote to `submodules/gem5` is dangerous, as you might forget and push your private work by mistake one day.

Even removing remotes is not safe enough, since `git submodule update` and other submodule commands can restore the old public remote.

Instead, we provide the following safer process.

First do a separate private clone of you private repository outside of this repository:

    git clone https://my.private.repo.com/my-fork/gem5.git gem5-internal
    gem5_internal="$(pwd)/gem5-internal"

Next, when you want to build with the private repository, use the `--gem5-build-dir` and `--gem5-source-dir` argument to override our default gem5 source and build locations:

    cd linux-kernel-module-cheat
    ./build-gem5 \
      --gem5-build-dir "${gem5_internal}/build" \
      --gem5-source-dir "$gem5_internal" \
    ;
    ./run-gem5 \
      --gem5-build-dir "${gem5_internal}/build" \
      --gem5-source-dir "$gem5_internal" \
    ;

With this setup, both your private gem5 source and build are safely kept outside of this public repository.