ubuntu 22 源码安装bochs

输入以下命令安装

c 复制代码
切换到管理员
创建目录     
mkdir bochs && cd bochs

下载
wget http://downloads.sourceforge.net/sourceforge/bochs/bochs-2.7.tar.gz

解压        
tar -xzf bochs-2.7.tar.gz

进入目录    
cd bochs-2.7

安装依赖项
sudo apt-get update
sudo apt-get install build-essential libx11-dev libxpm-dev libgtk2.0-dev
sudo apt-get install libsdl2-dev libx11-dev
sudo apt-get install libncurses5-dev libncursesw5-dev

配置编译选项
./configure \
    --prefix=/usr \
    --without-wx \
    --with-x11 \
    --with-x \
    --with-term \
    --disable-docbook \
    --enable-cpu-level=6 \
    --enable-fpu \
    --enable-3dnow \
    --enable-long-phy-address \
    --enable-pcidev \
    --enable-usb \
    --enable-all-optimizations \
    --enable-gdb-stub \
    --with-nogui

修改 Makefile 以包含 pthread 库
sed -i 's/^LIBS = /LIBS = -lpthread/g' Makefile

编译 Bochs
make -j$(nproc)

安装 Bochs
sudo make install

可以用bochs生成配置文件,在我这个环境出问题不能用 用一下配置可以正常执行引导代码

c 复制代码
# 设置内存为32MB
megs: 32

# 设置对应机器的BIOS
romimage: file="/usr/share/bochs/BIOS-bochs-latest"
# 设置对应机器的VGA BIOS
vgaromimage: file="/usr/share/bochs/VGABIOS-lgpl-latest" 

# 选择启动盘
boot: disk 

# 设置日志文件的输出
#log: bochs_out.log
#  xchg  bx,bx 断点
magic_break: enabled=1

# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 
ata0-master: type=disk, path="boot.img", mode=flat

keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=false, toggle=ctrl+mbutton

gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

配置调试

菜单栏找到配置默认生成任务 任意点一个 会生成tack.json 在同目录生成 一个文件 launch.json 输入一下内容

c 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [       
        {
            "name": "(onix) kernel debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/kernel.bin",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerServerAddress": "localhost:1234",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
相关推荐
拾光Ծ6 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池
小刘数字化6 小时前
AR数字孪生:重塑工业运维的下一代交互范式
运维·ar
翰德恩咨询6 小时前
华为DSTE咨询洞察:如何规划人才支撑战略落地
运维·服务器·华为
一叶龙洲17 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
敖行客 Allthinker19 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
keyipatience20 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
元Y亨H20 小时前
生产环境监控与故障应急处理(5-5-5 标准)指南
运维
j7~20 小时前
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》
linux·信号处理·volatile·可入重函数·保存信号
观山岳五楼21 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
m0_715646761 天前
20260720
linux·arm