wsl2 - Ubuntu 22.04 + VSCode + bochs + xfce4 + VcXsrv
筆者環境 wsl2 - Ubuntu 22.04
0. 安裝WSL2 & VSCode & 終端
網上教程千千萬,請自行查詢
WSL2: WSL2安裝教程_pengege666的部落格-CSDN部落格
切換清華源:ubuntu | 映象站使用幫助 | 清華大學開源軟體映象站 | Tsinghua Open Source Mirror
備份:sudo cp /etc/apt/sources.list /etc/apt/sources.bak
修改:sudo vim /etc/apt/sources.list
更新:sudo apt update
VSCode:Visual Studio Code - Code Editing. Redefined
安裝外掛:WSL
然後點選左下綠色按鈕,按提示連線WSL
終端:Microsoft Store就有
1. 安裝軟體包
以下命令以行為單位貼上到終端執行
sudo apt update
sudo apt upgrade
sudo apt-get install -y neofetch
sudo apt-get install -y gcc
sudo apt-get install -y vim
sudo apt-get install -y build-essential
sudo apt-get install -y g++
sudo apt-get install -y libgtk2.0-dev
sudo apt-get install -y nasm
sudo apt-get install -y gdb
2. 配置 WSL2 圖形介面
採用 xfce4 + VcXsrv
xfce4是一個輕量級的類Unix的桌面系統,提供桌面環境
VcXsrv提供圖形介面,使在windows子系統wsl裡的操作能夠圖形化顯示
2.1 安裝VcXsrv
下載地址:https://sourceforge.net/projects/vcxsrv/files/latest/download
選擇one large window
一定勾選Disable access control
看到下圖即為成功
*解決高DPI模糊問題
2.2 安裝xfce4
sudo apt install -y xfce4
2.3 配置
開啟 .bashrc:cd ~ & vim .bashrc
在 .bashrc 檔案最後新增
# 配置xfce4
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
新增後執行source ~/.bashrc
命令。
2.4 啟動
sudo startxfce4
此外,當看到防火牆選項時,請同意其透過
小技巧:當在終端執行sudo startxfce4
後,xfce4會在前臺輸出log無法執行其他命令。此時可以再開一個終端視窗執行其他命令(比如開bochs什麼的)
問題解決:
當連線到圖形化桌面時,如果一陣未使用桌面,會導致桌面沒有反應直接卡死
原因:因為xfc4鎖屏了....
解決:把鎖屏刪掉 sudo apt purge xfce4-screensaver
3. 安裝bochs
bochs 2.6.2:https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz
3.1 下載
在Linux下使用wget命令下載
wget https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz
3.2 解壓
* 非必須
*移動原始碼到合適的目錄(筆者這裡放在 ~/OS/實驗3 下)
mv bochs-2.6.2.tar.gz OS/實驗3
*開啟原始碼所在目錄
cd OS/實驗3
解壓
tar -zxvf bochs-2.6.2.tar.gz
3.3 配置
1.進入解壓出來的目錄
cd bochs-2.6.2/
2.生成 Makefile
請在終端貼上下列命令(請整塊貼上)
./configure \
--prefix=/your_path/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11 \
LDFLAGS='-pthread' \
LIBS='-lX11'
下對配置命令進行解析 來源:《作業系統真相還原》
--prefix=/your_path/bochs \ # 指定安裝目錄,安裝目錄替換your_path
--enable-debugger \ # 開啟bochs自身偵錯程式
--enable-disasm \ # 使bochs支援反彙編
--enable-iodebug \ # 啟動io介面偵錯程式
--enable-x86-debugger \ # 使bochs支援x86偵錯程式
--with-x \ # 使用x windows
--with-x11 \ # 使用x11影像使用者介面
下給出筆者所用命令
./configure \
--prefix=/home/fwm-0100/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11 \
LDFLAGS='-pthread' \
LIBS='-lX11'
*3. 修改Makefile
vim Makefile
在92行新增
IBS =-lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lpthread
為啥要搞這步捏? 來源:《作業系統真相還原》
3.4 編譯安裝
編譯:make
安裝:sudo make install
bochs安裝目錄如下:
3.5 配置bochs
開啟bochs程式目錄,筆者這裡是/home/fwm-0100/bochs/bin
建立bochsrc.disk
sudo vim bochsrc.disk
輸入以下內容(注意路徑/home/fwm-0100要改成自己的bochs安裝目錄)
###############################################
######## Configuration file for Bochs #########
###############################################
# 第一步
# 設定Bochs在執行過程中能夠使用的記憶體,本例為32MB
megs: 32
# 第二步
# 設定對應真實機器的BIOS和VGA BIOS
# 對應兩個關鍵字:romimage 和 vgaromimage
# 注意這裡的/home/fwm-0100 要替換為自己的安裝目錄
romimage: file=/home/fwm-0100/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/fwm-0100/bochs/share/bochs/VGABIOS-lgpl-latest
# 第三步
# 設定Bochs所使用的磁碟
# 軟盤的關鍵字為floppy。
# 若只有一個軟盤,則使用floppya即可,若有多個,則為floppya,floppyb…
# floppya: 1_44=a.img, status=inserted
# 第四步
# 選擇啟動磁碟機代號
# 預設從軟盤啟動,將其註釋,我們使用從硬碟啟動
# boot: floppy
boot: disk
# 第五步
# 設定日誌檔案的輸出
log: bochs.out
# 第六步
# 開啟或關閉某些功能
# 關閉滑鼠
mouse: enabled=0
# 開啟鍵盤
keyboard_mapping: enabled=1,map=/home/fwm-0100/bochs/share/bochs/keymaps/x11-pc-us.map
# 硬碟設定
ata0: enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
# gdb支援(需要在配置的時候就開啟,不然會報錯)
# 這樣gdb便可以遠端連線到此機器的1234埠除錯
# gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
################### 配置結束 ###################
3.6 執行bochs
以下操作更加建議直接在圖形化介面下的終端執行命令
進入bochs安裝目錄下的bin目錄,執行./bochs
此時在VcXsrv出現一個bochs的黑色視窗
所有需要輸入的地方請見下圖中框出部分
在終端輸入c
在VcXsrv下的bochs的黑色視窗出現bochs的UI
看到下面的視窗,證明已經成功啦!!!!
常見問題
原因:disk有tab(空格)
解決:刪除配置檔案空格即可
原因:看圖,不應該換行
解決:不換行嘍
原因:配置編譯的時候沒寫gdb
解決:配置檔案就不要加gdb嘍,註釋掉
原因:配置檔案沒有放在bochs安裝目錄的bin目錄下
解決:移動到bin目錄下,如:/home/fwm-0100/bochs/bin
參考文件
《作業系統真相還原》
透過 VcXsrv 在 WSL2 上使用圖形化介面(xfce4) - bluenlq - 部落格園 (cnblogs.com)
WSL2(Ubuntu 22.04.2 LTS) + Win11 + Bochs-Gui_wsl安裝bochs_物與我皆無盡也的部落格-CSDN部落格
WSL2 Ubuntu + Xfce4 一段時間 Xfce4 卡死不動
特別鳴謝:ZGY