歡迎關注公眾號 摸魚范式
前言
本教程通過win10下的docker實現,過程簡單,不需要自己進行破解,同時是通過wsl方式實現,比虛擬機效率會更加高一些。
鏡像是由網友制作的,eetop鏈接為:http://bbs.eetop.cn/thread-883833-1-1.html
僅供個人學習使用
win10下安裝docker
在官網找到win10的docker安裝包,進行安裝
下載穩定版即可
使用前要安裝wsl2,作為docker在win10下的后端支持
下載好以后直接雙擊安裝即可
docker配置
在拉取鏡像之前,先為docker設置鏡像加速器,推薦阿里雲的docker鏡像加速服務
注冊以后,進入控制台,容器鏡像服務->鏡像加速器
然后打開docker的設置界面,Docker Engine,將剛剛的鏈接復制到下面
應用並重啟即可。
默認的docker的目錄是在c盤下的,鏡像將來會占用c盤空間,接下來移動docker的目錄
首先關閉docker,然后創建一個目錄D:\SoftwareData\wsl\docker-desktop-data
打開cmd,wsl -l -v
可以看到由有兩個docker,我們只需要移動第二個就可以了
依次執行,
wsl --shutdown
wsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar
檢查以下目標目錄有沒有生成對應的文件docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\ D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar --version 2
移動完成
啟動docker容器
通過開始菜單啟動docker以后,打開cmd,拉取鏡像docker pull phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
大概有十幾G,耐心等待。
鏡像拉取完畢以后,啟動鏡像docker run -it -p 5902:5902 -p 1234:22 --hostname lizhen --mac-address 02:42:ac:11:00:02 -v //d/mydata:/mnt/mydata phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
-p 5902:5902
是進行端口映射,這個端口是用來VNC連接的,后面-p 1234:22,是用來ssh連接的,--hostname lizhen --mac-address 02:42:ac:11:00:02
是在配置主機名和mac地址,和license綁定的,不能修改。-v //d/mydata:/mnt/mydata
是將win10下的目錄//d/mydata
掛載到容器的/mnt/mydata
上,便於數據交換。
使用ssh連接的方式是因為當前存在一些bug,
docker exec -it ee bash
方式進入容器的話,編譯會出現錯誤,通過ssh則不會出現問題。
進入到容器內部以后就可以使用了,每次進入都需要使用命令lmgrd
激活license
舊版本的鏡像沒有設置開機啟動license,現在新版本的鏡像不需要每次進入都使用
lmgrd
激活license了,可以省略這一步
測試一下vcs是否正常,進入到我們掛載的目錄mnt/mydata
,下面是tb.sv
的內容
module tb ();
initial begin
$display("hello vcs");
end
endmodule
vcs tb.sv
進行編譯,然后./simv
進行仿真
接下來試一下vnc遠程桌面,通過命令vncserver -geometry 1920x1080 :2
在容器內啟動vnc
win10中打開vncviewer,配置連接,地址是127.0.0.1:5902
進行連接,連接密碼為zhenchen
進入圖形化界面
下面試一下vcs和verdi的聯合仿真,同樣還是前面的tb.sv
vcs tb.sv -debug_all -lca -kdb
./simv -gui=verdi
接下來測試ssh連接,首先要修改一下容器的root密碼,因為ssh並沒開放root密碼為空登錄,默認的root密碼是空的。通過命令passwd
即可修改密碼。
然后再開一個命令行,通過命令 ssh -p 1234 root@127.0.0.1
就能夠通過ssh遠程訪問
其他
進入容器后,直接exit
會退出容器,如果在啟動容器時加上-d
,容器會在后台繼續運行
通過docker ps -a
可以查看容器的狀態
如果想要再啟動容器,可以通過docker start ee
啟動容器,ee
是容器ID的前兩位,不用全部打完也可以
啟動容器后如果要進入容器,通過指令docker exec -it ee bash
就能進入了
刪除容器可以通過指令docker rm -f ee
,刪除容器不會把剛剛掛載的文件夾刪除,不用擔心。
追加
原作者還提供了另外的幾個鏡像
phyzli/centos8_xfce4_tigervnc_hspice2010,2060年到期,需要lmgrd;
phyzli/centos8_xfce4_tigervnc_virtuosoic617_mmsim15_calibre2015,virtuoso永久,calibre2015 4963年到期,不需要掛載license;
這兩個鏡像的hostname和mac地址都和synopsys2016一致。