Gem 5 IOError: Не удается найти путь к системным файлам.Полная настройка симуляции System X86 - PullRequest
1 голос
/ 27 мая 2019

У меня уже установлен Gem5. Я пытаюсь сделать полную симуляцию системы. Я добавил M5_PATH

echo "export M5_PATH==/home/sam/security/gem5/full/" >> ~/.bashrc

Я поместил все образы системы и файлы конфигурации в следующую директорию:

  :~/security/gem5/full$ ls
binaries  configs  config-x86.tar.bz2  disks  x86-system.tar.bz2  x86-system.tar.bz2.1

Я изменил путь в файле SysPaths.py на следующий:

                paths = [ '/dist/m5/system', 'full' ]

И обновил следующую строку в Benchmark.py

            return env.get('LINUX_IMAGE', disk('linux-x86.img'))

Gem5 успешно скомпилирован, и я запускаю следующее:

 ./build/X86/gem5.opt configs/example/fs.py  --disk-image=/home/sam/security/gem5/full/disks/linux-x86.img 

Но я получаю ошибку, что не могу найти путь к системным файлам.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "build/X86/python/m5/main.py", line 438, in main
    exec(filecode, scope)
  File "configs/example/fs.py", line 335, in <module>
    test_sys = build_test_system(np)
  File "configs/example/fs.py", line 93, in build_test_system
    cmdline=cmdline)
  File "/home/sam/security/gem5/configs/common/FSConfig.py", line 614, in makeLinuxX86System
    makeX86System(mem_mode, numCPUs, mdesc, self, Ruby)
  File "/home/sam/security/gem5/configs/common/FSConfig.py", line 539, in makeX86System
    disk0.childImage(mdesc.disk())
  File "/home/sam/security/gem5/configs/common/Benchmarks.py", line 59, in disk
    return disk(self.diskname)
  File "/home/sam/security/gem5/configs/common/SysPaths.py", line 63, in __call__
    raise IOError("Can't find a path to system files.")
IOError: Can't find a path to system files.

1 Ответ

2 голосов
/ 27 мая 2019

gem5 требователен к некоторым именам путей, но вам не нужно его исправлять, чтобы получить достойную настройку образа.

Например, эта рабочая установка с gem5 e2656006df442a995bf80ee03fa9700d6ec14537 по существу работает:

M5_PATH=/full/path/to/system \
  build/X86/gem5.opt \
  configs/example/fs.py \
  --disk-image /any/path/to/rootfs.ext2 \
  --kernel /any/path/to/vmlinux

и /full/path/to/system содержит:

./disks/linux-bigswap2.img
./binaries/x86_64-vmlinux-2.6.22.9

Оба этих файла - макеты, которые я сгенерировал отсюда с:

dd if=/dev/zero of=./binaries/linux-bigswap2.img count=1 bs=16k
touch disks/x86_64-vmlinux-2.6.22.9

Да, это ужасный обходной путь к самоуверенному поиску изображений в gem5 ... кто-то должен действительно пропатчить gem5, чтобы не искать эти изображения, если вы передаете --disk-image и --kernel сами ...

Как всегда, попробуйте отладить его с помощью отпечатков и PDB: тогда должно быть просто выяснить, почему что-то не работает для вас.

...