我與QEMU仿真的二三事[吐槽&經驗]


前情提要:現在需要的環境是虛擬機ubuntu中安裝qemu仿真環境,使之可以仿真物聯網設備的固件們。我由於各種各樣的原因,已經搭過好多次了,但依舊每次都會出現新問題[哭泣]。言歸正傳,在這里我就把我遇到的一些問題總結一下,獲得經驗值+100。【題目也可以叫做:我與Ubuntu相愛相殺的那些年?】


【經驗一】

目標固件二進制基本上都是32位的,所以首選是32bit的Ubuntu系統。但是現在具有i386鏡像的Ubuntu最新的就是16.04了,所以用的是Ubuntu16.04的i386鏡像。但是安裝了VMware tools之后,發現仍舊不能使用主機與虛擬機之間復制粘貼或拖拽,只能退而求其次的使用了共享文件夾。但是這時候,問題又來了,可能會出現/mnt文件夾下啥也沒有的情況,正常的應該是/mnt/hgfs路徑下就是設置的共享文件夾,這時候只需要重新安裝VMware tools就可以解決了。

不過,也有可能一開始安裝的是open-vm-tools,這個我試過,仍然不能夠復制粘貼和拖拽,估計就是32位系統的老問題。但是如果此時也出現了設置了共享文件夾但是/mnt下啥也沒有的情況,那就有點難辦了,據我的經驗來看,這時候想要重新安裝vmware tools是行不通的,因為VMware Workstation上重新安裝VMware Tools的按鈕是灰的,我查了一些資料,里邊的方法在我這里都沒有奏效,所以我直接重裝的Ubuntu,然后直接安裝的VMware Tools。【其實也可以試試把open-vm-tools卸載掉,再裝VMware Tools】

綜上:使用Ubuntu16.04-i386不能實現快捷的主機與虛擬機之間的復制粘貼和拖拽,只能使用共享文件夾。解決/mnt下找不到共享文件夾的辦法是安裝VMware Tools。

【經驗二】

換源的問題,一般常用的就是阿里源、清華源等等吧,但是有時候按照從網上找的教程里貼出的源更換后仍舊出現找不到想要的軟件包的問題,這個時候,別想換回Ubuntu系統自帶的源,因為update需要的時間太久了太久了太久了。所以只需要去找一下其他的教程,再嘗試着換一下。不知道為什么,也沒仔細比對過教程中的源有什么區別,不過有些教程的源在update的時候會出現Error,但是有些就不會。反正就多找一些,挨個試,什么時候不會出Error,那就應該可以了。

貼一個我試着沒問題的教程,點擊

【經驗三】

因為32位虛擬機不能愉快的復制粘貼,想要查東西的時候,有點不方便,所以還想在Ubuntu中安一個搜狗輸入法。安裝之前請先換源,要不然,太慢了...

主要參考的是教程1教程2,主要步驟有:①安裝fcitx;②從搜狗官網下載相應位數的deb軟件包;③使用  dpkg -i  命令安裝輸入法;④在“system settings”-"language support"中進行一些設置(ibus改為fcitx);⑤在右上角 configureFcitx 中添加搜狗輸入法。

Ps. 之前就是源的問題,總是找不到fcitx包。

【經驗四】

因為32位Ubuntu不能復制粘貼的問題實在是讓人耿耿於懷,所以試了一下使用64位的Ubuntu怎么樣。64位的系統就好用多了,在這個系統上,直接安裝的FAT集成工具,里邊集成了binwalk以及qemu的系統模式,要使用qemu的用戶模式的話,還需要 sudo apt-get install qemu-user-static 命令安裝一下,不過注意一點是,這樣直接用apt-get安裝的qemu版本是2.5.0,然后也是64位的。如果要仿真32位的二進制的話,還需要安裝支持32位程序的二進制庫。方法很簡單,三條命令即可解決。見教程1教程2

【經驗五】

再說一下qemu版本的問題,不管是在64位Ubuntu16.04系統上,還是32位的系統;不管是用FAT中集成安裝的qemu還是用apt-get命令安裝的qemu,版本都是2.5.0!!這個是一個較低的版本了,現在最高版本是5.2.0,所以如果要運行較低版本的固件的二進制的話,2.5.0不會出現什么問題;但如果固件的二進制版本較高,可能會出現以下的問題:

google之后說是qemu版本需要升級。

【經驗六】

QEMU要升級版本,使用源碼編譯安裝。我把我編譯安裝最新版本5.2.0的qemu的步驟寫在了這里(排坑指南)。不過遺憾的是,安裝高版本的qemu只能解決 qemu: Unsupported syscall: 384 的報錯,另一個 lib(36):func(xxx):reason(xxx):NA:0; 的錯誤還是沒有解決,不過好像這個和加密SSL什么的有關系...maybe是升級后的固件添加了加密的東西,不能隨隨便便讓人分析了?對加密的固件這一塊還沒了解過...不過加密也只是猜測,真正的原因也還不清楚(如果有大佬知道的話,請多多指教,感激不盡)。

qemu5.2.0仿真固件二進制報錯:

【經驗七】

快照是個好東西 :)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM