之前在哪个博客看的用MobaXterm,一直有报错,没有gui,换成VcXsrv就ok了。
网站:Download VcXsrv Windows X Server (sourceforge.net)
下载后进入目录,执行xlaunch.exe
,前两项直接过,最后记得选上Disable access control
。
在WSL环境下,vim ~/.bashrc
,在末尾新增:
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
新增后执行source ~/.bashrc
命令。
换源
安装依赖(记不清具体哪些了,本人也装了几次,以下有可能不全,可以网上找个多的)
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev libsdl1.2-dev bximage vgabios build-essential nasm
前几次装都是apt-get install bochs bochs-x
,结果不行。
解决:依次执行以下
wget https://sourceforge.net/projects/bochs/files/bochs/2.7/bochs-2.7.tar.gz
tar zxvf bochs-2.7.tar.gz
cd bochs-2.7/
./configure --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11
make
make install
至此就安装好了。
进入自己的目录下,执行code .
,可以打开vscode并自动连接到了WSL(没有vscode也没关系)。
执行bochs
,输入4
,再输入配置文件名称bochsrc
,再输入7
退出,能看到当前目录下生成的bochsrc
文件。
将bochsrc
文件中display_library: x
改为display_library: x, options="gui_debug"
将bochsrc
文件中boot: floppy
改为boot: disk
新建文件boot.asm
mov ax, 3
int 0x10
mov ax, 0xb800
mov ds, ax
mov byte [0], 'h'
mov byte [2], 'e'
mov byte [4], 'l'
mov byte [6], 'l'
mov byte [8], 'o'
halt:
jmp halt
times 510 - ($ -$$) db 0
db 0x55, 0xaa
执行:
nasm boot.asm –o boot.bin
再执行bximage
生成一个名为test.img
的16M的虚拟硬盘,注意末尾的ata0-master: type=disk, path="test.img", mode=flat
,替换掉bochsrc
文件中的原值。
执行:
dd if=boot.bin of=test.img bs=512 count=1 conv=notrunc
最后执行bochs -q
,出现界面,大功告成。(下图是按了Continue [c]
那个按键)