安裝simics+GEMS

來源:互聯網
上載者:User

一.   安裝環境

       伺服器:x86, intel四核

       作業系統:RHEL4.1.1

       GCC:4.1.1

       Hostname: localhost.localdomain

       Usr: root

       GEMS: Gems-2.1

       SIMICS: simics- 3.0.31

       輔助軟體:FlEXlm11.6.1.0

       參考: GEMS_Ubuntu.pdf

二.   安裝SIMICS_3.0 + GEMS_2.1

1.  安裝FLEXlm

      申請simics註冊碼時,會有FLEXlm的下載連結.選擇符合自己安裝環境的那款.

      解壓並安裝:

           tar –zxvf lmgrd_i86_re3.tar.gz

           tar –zxvf lmutil-i86_re3.tar.gz

           ./lmadmin-i86_re3-11_1_0.bin

       擷取lmhostid:  ./lmutil lmhostid

2. 設定環境變數

      vim ./root/.bash_profile

     添加如下欄位:

        export GEMS=/root/gems

        export SIMICS_INSTALL=$GEMS/simics-3.0.31

        export SIMICS_EXTRA_LIB=./modules

        export PYTHONPATH=./modules

     退出vim後reboot

3. SIMICS安裝

a)  在/root目錄建立gems檔案夾

      mkdir gems

      cd gems

      tar xvf simics_path/simics-pkg-20-3.0.31-linux.tar

b) 安裝SIMICS

     cd simics-3.0-install

    ./install-simics.sh

       當提示輸入序號時,找到註冊成功後,隨註冊檔案一起寄過來的註冊說明--”smics_reg.doc”, 輸入其中的序號

c)註冊

      i.   安裝完成後,將註冊檔案simics_3.0.lic複製到$GEMS/simics-3.0.31/licenses

      ii.   修改 simics_3.0.lic: 將第二行的this_host替換為伺服器的hostname. (最好是預設的主機稱:localhost.localdomain, 這與安裝作業系統時的設定有關, 安裝好後再手動修改主機名稱的話,認證總是失敗!). 在第三行末尾添加vtech路徑. 如果沒有,請重新安裝FLEXlm.

      iii.  ./lmgrd –c $GEMS/simics-3.0.31/licenses/simcs_3_0.lic

4. GMES安裝

a)  解壓gems-release2.1.tar.gz

             cd $GEMS

             tar –zxvf gems_path/gems-release2.1.tar.gz

             cp –r $GEMS/gems-2.1/* $GEMS

             rm –r $GEMS/gems-2.1

b) 建立工作站

         Mkdir $GEMS/simics_3_workspace

         Cd $SIMICS_INSTALL/bin

         ./workspace-setup $GEMS/simics_3_workspace

c)  修改makesymlinks.sh

         cd scripts

          vim makesymlinks.sh

          在echo “Making symlink for import directory”後面添加 ln –s $SIMICS_INSTALL/import import

d)  運行makesymlinks.sh

         cd $GEMS/simics_3_workspace

         ../scripts/makesymlinks.sh

e) 連結simics workspace

         cd $GEMS

         ln –s simics_3_workspace simics

f)  修改$GEMS/common/Makefile.simics_version

         SIMICS_VERSION := 3.0

g)  修改$GEMS/common/Makefile.common

          CC_VERSION=4.1.1

          HOST_TYPE=x86-linux,並注釋掉原來的賦值

          對ifeq($(SIMICS_VERSION),3.0)後的以下兩項進行修改

         SIMICS_ROOT := $(GEMS_ROOT)/simics

         SIMICS_INCLUDE_ROOT := $(SIMICS_INSTALL)/src/include

h) 修改$GMES/ruby/module/Makefile

         CC_VERSION=4.1.1

         修改GEMS_ROOT, 即注掉For Simics 2.x後面的語句, 解注For Simics 3.0後面的語句

          HOST_TYPE=x86-linux,並注釋掉原來的賦值

i)  修改$GMES/opal/module/Makefile

         CC_VERSION=4.1.1

         修改GEMS_ROOT, 即注掉For Simics 2.x後面的語句, 解注For Simics 3.0後面的語句

         HOST_TYPE=x86-linux,並注釋掉原來的賦值

j) 修改$GMES/tourmaline/module/Makefile

        CC_VERSION=4.1.1

        HOST_TYPE=x86-linux,並注釋掉原來的賦值

5.  編譯ruby

       cd $GEMS/ruby

       make PROTOCOL=MOSI_SMP_bcast DESTINATION=MOSI_SMP_bcast

 

注: 此處常見錯誤:

1).出現錯誤:SIM_hap_register_callback

答:在ruby.c檔案中,將SIM_hap_register_callback改為SIM_hap_add_callback

2).找不到libelf.so.0時,會出現

/root/simics-3.0.31/x86-linux/bin/libsimics-common.so: undefined reference to `elf_nextscn'

/root/simics-3.0.31/x86-linux/bin/libsimics-common.so: undefined reference to `elf64_getshdr'

…………………

    答:到網上下載安裝libelf.so.0

3).出現錯誤: Simics SLA not accepted, Exiting since in batch-mode,

    答:運行workspcae 中的simics軟體: ./simics

4).出現錯誤:

Using the Simics 3.0 API for ruby module

CCLD ruby.so

Make[2]: ***[/opt/gems-2.1/simics_3_workspace/x86-linux/obj/ modules/ruby.so]錯誤2

Make[2]: ***正在刪檔案”opt/gems-2.1/simics_3_workspace/x86-linux/obj/modules/ruby.so”

    答: 這個錯誤讓我鬱悶兩周了,最後發現是因為中文系統的原因, 我的青春啊,死的心都有了!!在/root/.bash_profile中添加一項

export LC_ALL=en_US.UTF-8

6. 編譯opal

         cd $GEMS/opal

         make module DESTINAION=MOSI_SMP_bcast

三.   安裝solaris 10

1.  下載如下檔案(其它版本不行)

       sol-10-u2-ga-sparc-v1.iso;

       sol-10-u2-ga-sparc-v2.iso;

       sol-10-u2-ga-sparc-v3.iso;

       sol-10-u2-ga-sparc-v4.iso;

       sol-10-u2-ga-sparc-v5.iso;

2. 安裝

1)  cd $GEMS/simics-3.0.31 /targets/serengeti

2)   vim abisko-sol10_cd-install1.simics

         在if not defined cdrom_path 後面修改

         $cdrom_path= “sol-10-u2-ga-sparc-v1.iso_path”

3)  vim abisko-sol10_cd-install2.simics

          在while $idx < 6 後面修改

          $cdrom_path[$idx] = (“sol-10-u2-ga-sparc-v” + $idx + “.iso”)

4)  Cd ../../bin

a) ./simics ../targets/serengeti/abisko-sol10-cd-install1.simics

          當終端裡提示出現”now exit simics and continue with the abisko-sol10-cd-install2.simics”時, 輸入命令exit, 退出

b) ./simics ../targets/serengeti/abisko-sol10-cd-install2.simics

         當終端裡提示出現”now exit simics and continue with the abisko-sol10-cd-install3.simics”時, 輸入命令exit, 退出

c) ./simics ../targets/serengeti/abisko-sol10-cd-install3.simics

         simics> exit

5) 啟動simics

        vim ../targets/serengti/abisko-setup.inc lude

        將第一句改為if not defined os {$os = “solaris10”}

       ./simics -x tartgets/serengeti/abisko-common.simics

       simics〉continue

注: 此處常見錯誤

1)  unable to qualify my own domain name (abisko) -- using short name

       答:在/etc/hosts檔案的最後一行尾添加 localhost.localdomain.com也就是($(hostname).com)

2) showmount: tesler: RPC: Program not registered

       Do you want to continue? (y or n):   Broadcast Message from root (pts/4) on

       tesler Wed May 22 17:47:15...

       False Alarm:  The system tesler will not be brought down.

       showmount: tesler: RPC: Program not registered

       Shutdown aborted.

       答:solaris老有這樣的問題,輸入命令

           Share –F nfs /mnt

           Unshared /mnt

 

四.   安裝SIMICSFS

1.  概述

詳情查看simics-3.0.31/doc/simics-user-guide-unix.pdf檔案, SimicsFS用於實現目標機和虛擬機器間的檔案傳輸. 支援solaris7,8,9,10,以及linux核心2.0,電2.2, 2.4, 下載 https://www.simics.net/pub/ 安裝和編譯方法在 README_2.4和
README_2.6 檔案 將檔案拷貝到目標機上的方法有network, loopback disk access, 或CD-ROM

主要有如下限制:

虛擬OS

限制

Linux

訪問方式是唯讀. (實驗支援寫操作)

Solaris

不支援Truncating files (截短的檔案).

Other

不支援

 核心版本小於 2.4的linux上, SimicsFS 核心模型是 hostfs.之後的版本才叫simicsfs, 因此安裝在低版本的linux目標機上時,將下面simicsfs 部分替換成 hostfs.

2. 目標機是linux

1) 在目標機上建立目錄 /lib/modules/version/kernel/fs/simicsfs/ ,其中version是目標機的核心版本.

2) 將新編譯的 SimicsFS模型檔案拷貝到目標機的/lib/modules/version/kernel/fs/simicsfs/ 目錄下,注:不大於2.4的linux版本下,模型檔案名稱是simicsfs.o ,linux2.6版本的叫simicsfs.ko

3) 在目標機上建立掛載點 mkdir /host.

4) 在目標機的/etc/fstab檔案中添加下面的內容(用掛載點替換/host)

         special      /host      simicsfs     noauto,ro      0 0

         注意: ro表示唯讀, rw表示支援實驗寫操作.

5) 在目標機上掛載SimicsFS:  mount /host

         這樣, SimicsFS 就可以工作了, 在目標機上通過ls /host 可以得到主機檔案清單.

         早期的Simics版本稱為hostfs而不是simicsfs. 參考setup_simicsfs.sh

3. 目標機是solaris

1)    為方便向目標機中傳遞simics-3.0.31/import/sun4u/mount_simicsfs和simics-3.0.31/import/sun4u/simicsfs-sol10到目標機,我們將二者做成ISO檔案,即:

      cd $GEMS/simics-3.0.31/import/sun4u/

      mkdir sol10-simicsfs

      cp mount_simicsfs sol10-simicsfs

      cp simicsfs-sol10 sol10-simicsfs

      cd sol10-simicsfs

      mv mount_simicsfs mount

      mv simicsfs-sol10 simicsfs

      cd ../

       mkisofs –o 10.iso –J –r sol10-simicsfs  //-o輸出檔案名, –J與windows相容, -r與unix/linux相容

      sol10-simicsfs.iso即為所需要的鏡相檔案

2)    運行./simcis –x ../target/serengeti/abisko-common.simics

       simics> continue

3)    當XTerm中出現#,即啟動完成後,Ctrl+C退回到simcis>介面載入10.iso檔案

       simics>new-file-cdrom 10.iso_path

       simics> cd0.insert iso

       simics> con0.input “mount -F hsfs -o  ro /dev/dsk/c0t6d0s0 /mnt\n”

       simics> con0.input “mkdir /usr/lib/fs/simicsfs\n”

4)   複製檔案mount_si,並重新命名為mount,

      simics> con0.input “cp –r /mnt/mount /usr/lib/fs/simicsfs\n”

5)  複製檔案simicsfs ,

      simics> con0.input “cp –r /mnt/simicsfs /usr/kernel/fs/sparcv9\n”

6)  在目標機的/etc/vfstab檔案中添加一行,即

     simics> con0.input “echo simicsfs  -       /host   simicsfs  -       no      - >>/etc/vfstab\n”

7)  在目標機上建立掛載點 並添加路徑:

    simics> con0.input “mkdir /host\n”

    simics> continue

8) 目標機運行時,輸入命令

    mount /host

   ls /host 查看主機上的檔案清單

4. 使用simicsFS

  預設在/host下訪問主機上的檔案.也可以通過命令 <hostfs>.root command來修改掛載點, 如simics> hfs0.root /home/alice/sandbox ,新命令在下次掛載simicsFS時生效.

  注: 載入檢查點時,上次被掛載的SimicsFS的中檔案不變.

注: 此處常見錯誤:

1)      製作ISO檔案時, mkisofs –o sol10-simicsfs.iso –J –r sol10-simicsfs

製作ISO檔案成功,但是運行simics並載入時出現錯誤:

simcis> cd0.insert iso

Argument error: argument 1 (iso) given to ‘<scsi-cdrom>’.insert has the wrong type; object expected. SYNOPSIS: <scsi-cdrom>.insert medium

答: 開始一直以為是光碟片製作的有問題, 換了好多種方式製作光碟片,如dd if=filedirectory of=sol10-simicsfs.iso, mkisofs –o sol10-simicsfs.iso –Jrv filedirectory等, 但是都得到相同的結果,後來發現是因為ISO檔案名稱中包含了英文字母的問題, 在simics命令列載入ISO檔案時,檔案名稱只能包含數字!

 

五.   載入,配置ruby和opal

1. 配置simics

          ./simics –stall

         simics> instruction-fetch-mode instruction-fetch-trace

         simics> istc-disable

         simics> dstc-disable

         simics> cpu-switch-time 1

         simics> read-configuration file.simics_path

2. 載入ruby 和opal

         simics> load-module ruby

         simics> load-module opal  //一般不需要載入opal

3. 配置ruby 和opal

         ruby0.setparam g_NUM_PROCESSORS 1

         ruby0.setparam g_MEMORY_SIZE_BYTES 4294967296

         ruby0.init

 

         opal0.init

4. 運行ruby和opal

         ruby0.dump-stats 

         opal0.sim-step 10000000000

         opal0.listparam

         opal0.stats

 

注: 此處常見錯誤:

1) Error loading module ‘ruby’: Failed to load module ‘ruby’ (‘/root/gems/simics_3_workspace/x86-linux/lib/ruby.so’): “version ‘Gcc_4.2.0’ not found (required by /usr/lib/libstdc++.so.6)”或Error loading module ‘ruby’: Module ‘ruby’ not found

答: ldd ruby.so可以發現ruby.so依賴的庫函數, 移除libgcc_s.so.1

2) 載入ruby後,儲存檢查點, 重新啟動該檢查點時,出現錯誤:

Physical memory object cannot be found. If you are NOT compiling Ruby and you see this message, something is wrong. This message is part of the normal complication process.

答: 載入ruby一般是運行目標機前的最後一個操作, 載入ruby後是不支援檢查點操作的.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.