* [PATCH] docs/system: document an example vexpress-a15 invocation
@ 2021-01-28 18:53 Alex Bennée
2021-02-01 17:04 ` Peter Maydell
2021-02-03 16:28 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 7+ messages in thread
From: Alex Bennée @ 2021-01-28 18:53 UTC (permalink / raw)
To: qemu-devel; +Cc: Anders Roxell, qemu-arm, Alex Bennée, Peter Maydell
The wiki and the web are curiously absent of the right runes to boot a
vexpress model so I had to work from first principles to work it out.
Use the more modern -drive notation so alternative backends can be
used (unlike the hardwired -sd mode).
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Anders Roxell <anders.roxell@linaro.org>
---
docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
index 7f1bcbef07..30b1823b95 100644
--- a/docs/system/arm/vexpress.rst
+++ b/docs/system/arm/vexpress.rst
@@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
provided on the command line then QEMU will edit it to include
suitable entries describing these transports for the guest.
+
+Booting a Linux kernel
+----------------------
+
+Building a current Linux kernel with ``multi_v7_defconfig`` should be
+enough to get something running.
+
+.. code-block:: bash
+
+ $ export ARCH=arm
+ $ export CROSS_COMPILE=arm-linux-gnueabihf-
+ $ make multi_v7_defconfig
+ $ make
+
+By default you will want to boot your rootfs of the sdcard interface.
+Your rootfs will need to be padded to the right size. With a suitable
+DTB you could also add devices to the virtio-mmio bus.
+
+.. code-block:: bash
+
+ $ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
+ -machine type=vexpress-a15 -serial mon:stdio \
+ -drive if=sd,driver=file,filename=armel-rootfs.ext4 \
+ -kernel zImage \
+ -dtb vexpress-v2p-ca15-tc1.dtb \
+ -append "console=ttyAMA0 root=/dev/mmcblk0 ro"
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-01-28 18:53 [PATCH] docs/system: document an example vexpress-a15 invocation Alex Bennée
@ 2021-02-01 17:04 ` Peter Maydell
2021-02-01 20:08 ` Alex Bennée
2021-02-03 16:28 ` Philippe Mathieu-Daudé
1 sibling, 1 reply; 7+ messages in thread
From: Peter Maydell @ 2021-02-01 17:04 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-arm, Anders Roxell, QEMU Developers
On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The wiki and the web are curiously absent of the right runes to boot a
> vexpress model so I had to work from first principles to work it out.
> Use the more modern -drive notation so alternative backends can be
> used (unlike the hardwired -sd mode).
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Anders Roxell <anders.roxell@linaro.org>
> ---
> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
> index 7f1bcbef07..30b1823b95 100644
> --- a/docs/system/arm/vexpress.rst
> +++ b/docs/system/arm/vexpress.rst
> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
> provided on the command line then QEMU will edit it to include
> suitable entries describing these transports for the guest.
> +
> +Booting a Linux kernel
> +----------------------
> +
> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
> +enough to get something running.
> +
> +.. code-block:: bash
> +
> + $ export ARCH=arm
> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
> + $ make multi_v7_defconfig
> + $ make
We probably shouldn't be recommending in-tree kernel builds, or
polluting the user's environment with random variables. Try:
$ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
$ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
> +By default you will want to boot your rootfs of the sdcard interface.
"off"
> +Your rootfs will need to be padded to the right size. With a suitable
> +DTB you could also add devices to the virtio-mmio bus.
> +
> +.. code-block:: bash
> +
> + $ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
> + -machine type=vexpress-a15 -serial mon:stdio \
> + -drive if=sd,driver=file,filename=armel-rootfs.ext4 \
> + -kernel zImage \
> + -dtb vexpress-v2p-ca15-tc1.dtb \
> + -append "console=ttyAMA0 root=/dev/mmcblk0 ro"
thanks
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-02-01 17:04 ` Peter Maydell
@ 2021-02-01 20:08 ` Alex Bennée
2021-02-01 21:22 ` Peter Maydell
0 siblings, 1 reply; 7+ messages in thread
From: Alex Bennée @ 2021-02-01 20:08 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-arm, Anders Roxell, QEMU Developers
Peter Maydell <peter.maydell@linaro.org> writes:
> On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The wiki and the web are curiously absent of the right runes to boot a
>> vexpress model so I had to work from first principles to work it out.
>> Use the more modern -drive notation so alternative backends can be
>> used (unlike the hardwired -sd mode).
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Cc: Anders Roxell <anders.roxell@linaro.org>
>> ---
>> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
>> index 7f1bcbef07..30b1823b95 100644
>> --- a/docs/system/arm/vexpress.rst
>> +++ b/docs/system/arm/vexpress.rst
>> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
>> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
>> provided on the command line then QEMU will edit it to include
>> suitable entries describing these transports for the guest.
>> +
>> +Booting a Linux kernel
>> +----------------------
>> +
>> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> +enough to get something running.
>> +
>> +.. code-block:: bash
>> +
>> + $ export ARCH=arm
>> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
>> + $ make multi_v7_defconfig
>> + $ make
>
> We probably shouldn't be recommending in-tree kernel builds, or
> polluting the user's environment with random variables. Try:
>
> $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
> $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
>> +By default you will want to boot your rootfs of the sdcard interface.
>
> "off"
>
>> +Your rootfs will need to be padded to the right size. With a suitable
>> +DTB you could also add devices to the virtio-mmio bus.
>> +
>> +.. code-block:: bash
>> +
>> + $ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
>> + -machine type=vexpress-a15 -serial mon:stdio \
>> + -drive if=sd,driver=file,filename=armel-rootfs.ext4 \
>> + -kernel zImage \
>> + -dtb vexpress-v2p-ca15-tc1.dtb \
>> + -append "console=ttyAMA0 root=/dev/mmcblk0 ro"
>
> thanks
> -- PMM
Booting a Linux kernel
----------------------
Building a current Linux kernel with ``multi_v7_defconfig`` should be
enough to get something running. Nowadays an out-of-tree build is
recommended (and also useful if you build a lot of different targets).
$SRC points at root of the linux source tree.
.. code-block:: bash
$ mkdir build; cd build
$ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
$ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
By default you will want to boot your rootfs off the sdcard interface.
Your rootfs will need to be padded to the right size. With a suitable
DTB you could also add devices to the virtio-mmio bus.
.. code-block:: bash
$ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
-machine type=vexpress-a15 -serial mon:stdio \
-drive if=sd,driver=file,filename=armel-rootfs.ext4 \
-kernel zImage \
-dtb vexpress-v2p-ca15-tc1.dtb \
-append "console=ttyAMA0 root=/dev/mmcblk0 ro"
--
Alex Bennée
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-02-01 20:08 ` Alex Bennée
@ 2021-02-01 21:22 ` Peter Maydell
2021-02-01 23:50 ` Alex Bennée
2021-02-02 11:38 ` Alex Bennée
0 siblings, 2 replies; 7+ messages in thread
From: Peter Maydell @ 2021-02-01 21:22 UTC (permalink / raw)
To: Alex Bennée; +Cc: qemu-arm, Anders Roxell, QEMU Developers
On Mon, 1 Feb 2021 at 20:09, Alex Bennée <alex.bennee@linaro.org> wrote:
>
>
> Peter Maydell <peter.maydell@linaro.org> writes:
>
> > On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>
> >> The wiki and the web are curiously absent of the right runes to boot a
> >> vexpress model so I had to work from first principles to work it out.
> >> Use the more modern -drive notation so alternative backends can be
> >> used (unlike the hardwired -sd mode).
> >>
> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> >> Cc: Anders Roxell <anders.roxell@linaro.org>
> >> ---
> >> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
> >> 1 file changed, 26 insertions(+)
> >>
> >> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
> >> index 7f1bcbef07..30b1823b95 100644
> >> --- a/docs/system/arm/vexpress.rst
> >> +++ b/docs/system/arm/vexpress.rst
> >> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
> >> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
> >> provided on the command line then QEMU will edit it to include
> >> suitable entries describing these transports for the guest.
> >> +
> >> +Booting a Linux kernel
> >> +----------------------
> >> +
> >> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
> >> +enough to get something running.
> >> +
> >> +.. code-block:: bash
> >> +
> >> + $ export ARCH=arm
> >> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
> >> + $ make multi_v7_defconfig
> >> + $ make
> >
> > We probably shouldn't be recommending in-tree kernel builds, or
> > polluting the user's environment with random variables. Try:
> >
> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
> Building a current Linux kernel with ``multi_v7_defconfig`` should be
> enough to get something running. Nowadays an out-of-tree build is
> recommended (and also useful if you build a lot of different targets).
> $SRC points at root of the linux source tree.
>
> .. code-block:: bash
>
> $ mkdir build; cd build
> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
That works, but do you really commonly cd into the build directory?
I usually sit in the source tree...
thanks
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-02-01 21:22 ` Peter Maydell
@ 2021-02-01 23:50 ` Alex Bennée
2021-02-02 11:38 ` Alex Bennée
1 sibling, 0 replies; 7+ messages in thread
From: Alex Bennée @ 2021-02-01 23:50 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-arm, Anders Roxell, QEMU Developers
Peter Maydell <peter.maydell@linaro.org> writes:
> On Mon, 1 Feb 2021 at 20:09, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>>
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>
>> > On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
>> >>
>> >> The wiki and the web are curiously absent of the right runes to boot a
>> >> vexpress model so I had to work from first principles to work it out.
>> >> Use the more modern -drive notation so alternative backends can be
>> >> used (unlike the hardwired -sd mode).
>> >>
>> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> >> Cc: Anders Roxell <anders.roxell@linaro.org>
>> >> ---
>> >> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
>> >> 1 file changed, 26 insertions(+)
>> >>
>> >> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
>> >> index 7f1bcbef07..30b1823b95 100644
>> >> --- a/docs/system/arm/vexpress.rst
>> >> +++ b/docs/system/arm/vexpress.rst
>> >> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
>> >> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
>> >> provided on the command line then QEMU will edit it to include
>> >> suitable entries describing these transports for the guest.
>> >> +
>> >> +Booting a Linux kernel
>> >> +----------------------
>> >> +
>> >> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> >> +enough to get something running.
>> >> +
>> >> +.. code-block:: bash
>> >> +
>> >> + $ export ARCH=arm
>> >> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
>> >> + $ make multi_v7_defconfig
>> >> + $ make
>> >
>> > We probably shouldn't be recommending in-tree kernel builds, or
>> > polluting the user's environment with random variables. Try:
>> >
>> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
>> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
>> Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> enough to get something running. Nowadays an out-of-tree build is
>> recommended (and also useful if you build a lot of different targets).
>> $SRC points at root of the linux source tree.
>>
>> .. code-block:: bash
>>
>> $ mkdir build; cd build
>> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
>> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
> That works, but do you really commonly cd into the build directory?
> I usually sit in the source tree...
I have tmux panes, lots of lots of tmux panes. It's more common to live
in the build directories for QEMU because I have to run the binaries I
build. For the kernels I usually have one pane in the tip of source tree
and a bunch of others for build configurations I'm actively messing
about with and rebuilding.
>
> thanks
> -- PMM
--
Alex Bennée
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-02-01 21:22 ` Peter Maydell
2021-02-01 23:50 ` Alex Bennée
@ 2021-02-02 11:38 ` Alex Bennée
1 sibling, 0 replies; 7+ messages in thread
From: Alex Bennée @ 2021-02-02 11:38 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-arm, Anders Roxell, QEMU Developers
Peter Maydell <peter.maydell@linaro.org> writes:
> On Mon, 1 Feb 2021 at 20:09, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>>
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>
>> > On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
>> >>
>> >> The wiki and the web are curiously absent of the right runes to boot a
>> >> vexpress model so I had to work from first principles to work it out.
>> >> Use the more modern -drive notation so alternative backends can be
>> >> used (unlike the hardwired -sd mode).
>> >>
>> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> >> Cc: Anders Roxell <anders.roxell@linaro.org>
>> >> ---
>> >> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
>> >> 1 file changed, 26 insertions(+)
>> >>
>> >> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
>> >> index 7f1bcbef07..30b1823b95 100644
>> >> --- a/docs/system/arm/vexpress.rst
>> >> +++ b/docs/system/arm/vexpress.rst
>> >> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
>> >> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
>> >> provided on the command line then QEMU will edit it to include
>> >> suitable entries describing these transports for the guest.
>> >> +
>> >> +Booting a Linux kernel
>> >> +----------------------
>> >> +
>> >> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> >> +enough to get something running.
>> >> +
>> >> +.. code-block:: bash
>> >> +
>> >> + $ export ARCH=arm
>> >> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
>> >> + $ make multi_v7_defconfig
>> >> + $ make
>> >
>> > We probably shouldn't be recommending in-tree kernel builds, or
>> > polluting the user's environment with random variables. Try:
>> >
>> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
>> > $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
>> Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> enough to get something running. Nowadays an out-of-tree build is
>> recommended (and also useful if you build a lot of different targets).
>> $SRC points at root of the linux source tree.
>>
>> .. code-block:: bash
>>
>> $ mkdir build; cd build
>> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
>> $ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
> That works, but do you really commonly cd into the build directory?
> I usually sit in the source tree...
Lets just be explicit and teach the user to fish:
Building a current Linux kernel with ``multi_v7_defconfig`` should be
enough to get something running. Nowadays an out-of-tree build is
recommended (and also useful if you build a lot of different targets).
In the following example $BLD points to the build directory and $SRC
points to the root of the Linux source tree. You can drop $SRC if you
are running from there.
.. code-block:: bash
$ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- multi_v7_defconfig
$ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
> thanks
> -- PMM
--
Alex Bennée
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] docs/system: document an example vexpress-a15 invocation
2021-01-28 18:53 [PATCH] docs/system: document an example vexpress-a15 invocation Alex Bennée
2021-02-01 17:04 ` Peter Maydell
@ 2021-02-03 16:28 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-02-03 16:28 UTC (permalink / raw)
To: avocado-devel
Cc: Anders Roxell, qemu-arm, Alex Bennée, qemu-devel, Peter Maydell
Cc'ing avocado-devel for test idea.
On 1/28/21 7:53 PM, Alex Bennée wrote:
> The wiki and the web are curiously absent of the right runes to boot a
> vexpress model so I had to work from first principles to work it out.
> Use the more modern -drive notation so alternative backends can be
> used (unlike the hardwired -sd mode).
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Anders Roxell <anders.roxell@linaro.org>
> ---
> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
> index 7f1bcbef07..30b1823b95 100644
> --- a/docs/system/arm/vexpress.rst
> +++ b/docs/system/arm/vexpress.rst
> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
> provided on the command line then QEMU will edit it to include
> suitable entries describing these transports for the guest.
> +
> +Booting a Linux kernel
> +----------------------
> +
> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
> +enough to get something running.
> +
> +.. code-block:: bash
> +
> + $ export ARCH=arm
> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
> + $ make multi_v7_defconfig
> + $ make
> +
> +By default you will want to boot your rootfs of the sdcard interface.
> +Your rootfs will need to be padded to the right size. With a suitable
> +DTB you could also add devices to the virtio-mmio bus.
> +
> +.. code-block:: bash
> +
> + $ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
> + -machine type=vexpress-a15 -serial mon:stdio \
> + -drive if=sd,driver=file,filename=armel-rootfs.ext4 \
> + -kernel zImage \
> + -dtb vexpress-v2p-ca15-tc1.dtb \
> + -append "console=ttyAMA0 root=/dev/mmcblk0 ro"
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-02-03 16:38 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-28 18:53 [PATCH] docs/system: document an example vexpress-a15 invocation Alex Bennée
2021-02-01 17:04 ` Peter Maydell
2021-02-01 20:08 ` Alex Bennée
2021-02-01 21:22 ` Peter Maydell
2021-02-01 23:50 ` Alex Bennée
2021-02-02 11:38 ` Alex Bennée
2021-02-03 16:28 ` Philippe Mathieu-Daudé
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.