wsl2 - Ubuntu 22.04 + VSCode + bochs + xfce4 + VcXsrv

笔者环境 wsl2 - Ubuntu 22.04

0. 安装WSL2 & VSCode & 终端

网上教程千千万,请自行查找

WSL2WSL2安装教程_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

VSCodeVisual 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什么的)

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博客

Linux下bochs打开黑屏解决方法

特别鸣谢:ZGY

操作系统实验 & bochs 环境配置的更多相关文章

  1. 《Orange‘s》 Bochs环境配置

    安装配置bochs之前先写一个简单的引导扇区用来测试: org 07c00h mov ax,cs mov ds,ax mov es,ax call DispStr jmp $ DispStr: mov ...

  2. win10操作系统下Android环境配置

    Windows命令行调试unity(Android)应用环境变量配置准备步骤:先下载好我们需要的Android SDK和JDK. Android SDK推荐地址:http://tools.androi ...

  3. OVS + dpdk 安装与实验环境配置

    ***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装       0:安装必要的工具            make            gcc           ...

  4. 01->OpenGL 实验环境配置(glut)及简单实例

    --  简介  -- OpenGL是通过数学等理论知识定义3D或2D模型,由计算机通过流水线渲染技术进行渲染,产生逼真的场景图像,电影和游戏中的特效都有用到.每每看到精美的画面,真想自己也能做出如此作 ...

  5. Win8操作系统下IIS如何配置asp.net的运行环境(win7同样)

    一.把鼠标放在电脑屏幕的左下角然后右击,弹出如下图菜单,选择“程序和功能”(快捷键win+X).(win7点击电脑左下角的“开始”,然后点击“控制面板”打开程序与功能界面): 二.进入程序与功能界面后 ...

  6. 国产操作系统deepin安装与配置Node-RED环境

    1.1. 测试机配置清单 部件名称 版本号 备注 处理器 Intel Core i5 3320M 显卡 自带集显 内存 8G DDR3单通道 显示插口 VGA*1,HDML*1 1.2. 系统安装及配 ...

  7. NetFPGA-1G-CML从零开始环境配置

    NetFPGA-1G-CML从零开始环境配置 前言 偶得一块NetFPGA-1G-CML,跟着github对NetFPGA-1G-CML的入门指南,一步步把配置环境终于搭建起来,下面重新复现一下此过程 ...

  8. Linux 操作系统下为网卡配置ip

    Linux操作系统下为网卡配置ip by:授客 QQ:1033553122 1.   Linux单一网卡设置多IP的配置方法 在Linux下网卡接口逻辑名被称为eth0,eth1,eth2,..... ...

  9. VS + Qt5Designer + Anaconda环境配置

    最近打算做一个模型训练工具,从来都不喜欢做UI的我,最终把目光放在了QtDesigner上.配环境的过程中在网上翻阅了不少博客,但大多是pycharm或者是VScode,使用VS的似乎不多.所以打算记 ...

  10. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

随机推荐

  1. [Leetcode 787]中转K站内最便宜机票

    题目 n个城市,想求从src到dist的最廉价机票 有中转站数K的限制,即如果k=5,中转10次机票1000,中转5次机票2000,最后返回2000 There are n cities connec ...

  2. HBase架构、模型、特点

    如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704 1.HBase概述 H ...

  3. Matlab %叁

    ###本章内容十分多 第三章:Variables and Data access Data Types numeric:double.single.int8(16.32.64bit[integer]) ...

  4. linux软件安装篇

    nginx篇 第一件事情 cd /etc/yum.repo.d mv CentOS-Base.repo CentOS-Base.repo.bak wget -O CentOS-Base.repo ht ...

  5. 智汇成城 ,创赢未来 | AI+产业峰会智慧城市专场在深成功举办!

    11月4日下午,由福田区人才工作局指导,广州英码信息科技有限公司和共达地创新技术(深圳)有限公司联合主办,深圳市人工智能行业协会承办的AI+产业峰会之智慧城市专场活动在深圳市南山区成功举办. &quo ...

  6. 算法学习01—Java底层的正整数与负整数

    算法学习01 - Java 底层的正整数与负整数 本节课学到的知识 编写一个方法,打印出 int 类型数字的二进制长什么样 为什么 int 类型的最大值是 2^32 - 1,最小值是 -2^32 负整 ...

  7. 观察APP运行日志

    一.Android采用log工具打印日志,他将各类日志分为五个等级 1.log.e:表示错误信息,比如可能导致程序崩溃的异常 2.log.w:表示警告信息 3.log.i:表示一般信息 4.log.d ...

  8. 咕咕list

    做完以后会留在榜上一天,这样显得咕咕list长一些 CF666E Forensic Examination(done on 2023.2.6) dp选做

  9. 一款基于js/jquery标签拖拽排序小组件

    这是一个基于jQuery写的拖拽小组件,写了大概两三天,刚好可以在前端方面练练手.拖拽原理是使用绝对定位+鼠标元素位置实现. GitHub地址:https://water1996.github.io/ ...

  10. InnoDB 索引深入剖析

    InnoDB页 将数据划分为若干个页(page),以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16KB.也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少 ...