mirror of
https://github.com/openhwgroup/cvw
synced 2025-01-24 13:34:28 +00:00
58 lines
3.3 KiB
Plaintext
58 lines
3.3 KiB
Plaintext
If you do not need to update the Linux image, then go to ./linux-testvectors and
|
|
use tvCopier.py or tvLinker.sh to copy/link premade RAMs and testvectors from Tera.
|
|
The RAMs are needed for Wally to run the Linux code, and the testvectors are needed
|
|
to verify Wally is executing the code correctly.
|
|
|
|
If you instead wish to regenerate the RAMs and testvectors from a new Linux image,
|
|
you'll need to build the new Linux image, simulate it, and parse its output,
|
|
as described below.
|
|
|
|
*To build a new Linux image:
|
|
1. Git clone the Buildroot repository to ./buildroot:
|
|
git clone https://github.com/buildroot/buildroot.git
|
|
For reference, Wally (*** will) be proven to work on an image built using
|
|
Buildroot when the following was the most recent commit to the Buildroot repo:
|
|
commit 4047e10ed6e20492bae572d4929eaa5d67eed746
|
|
Author: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
|
Date: Wed Jun 30 06:27:10 2021 +0200
|
|
|
|
2. If you wish to modify the configs, then in ./buildroot:
|
|
a. Run "make menuconfig" or "make linux-menuconfig" or "make busybox-menuconfig".
|
|
b. Use the TUI (terminal UI) to load in the existing configs.
|
|
|
|
For menuconfig, you can load in the source file from
|
|
"../buildroot-config-src/main.config"
|
|
|
|
For linux-menuconfig or busybox-menuconfig, load in from
|
|
"../../../../buildroot-config-src/<type>.config"
|
|
because for linux and busybox, make traverses down to
|
|
./buildroot/output/build/<linux or busybox>.
|
|
|
|
One annoying thing about the TUI is that if it has a path already loaded,
|
|
then before you can enter the new path to buildroot-config-src, you need to
|
|
delete the existing one from the textbox. Doing so requires more than backspace.
|
|
Once you've deleted as much of the existing path as you can see, arrow left to
|
|
check if there is more text you need to delete.
|
|
|
|
c. Likewise, when you are done editing, tell the TUI to save to the same location.
|
|
|
|
3. Finally go to ./buildroot-config-src and run make-buildroot.sh.
|
|
This script copies ./buildroot-config-src/main.config to ./buildroot/.config
|
|
and then invokes make. This is clumsy but effective because buildroot
|
|
sometimes does weird things to .config, like moving it to .config.old and
|
|
making a new .config -- doing so can really mess up symbolic/hard links.
|
|
|
|
4. If you'd like debugging symbols, then reconfigure Buildroot to output "vmlinux"
|
|
and run make-buildroot again.
|
|
|
|
*To generate new RAMs and testvectors from a Linux image:
|
|
1. sym link ./buildroot-image-output to either your new image in ./buildroot/output/image
|
|
or the existing image at /courses/e190ax/buildroot-image-output on Tera.
|
|
This might require first deleting the empty buildroot-image-output directory.
|
|
2. Then run ./testvector-generation/logBuildrootMem.sh to generate RAMs.
|
|
3. Then run ./testvector-generation/logAllBuildroot.sh to generate testvectors.
|
|
|
|
These latter two steps require QEMU.
|
|
Note that you can only have one instance of QEMU open at a time!
|
|
At least on Tera, it seems. Check "ps -ef" to see if anybody else is running QEMU.
|