单vmware虚拟机中的FreeBSD调试内核

STEP
1
编译不含siokernel(注释掉device.hintsdevice sio), 并以附件中的sio.c编译
sio.ko
2
备份当前系统的kernelsio.ko,并更新kernel, 并重启

3
加载虚拟串口驱动
#kldload /path/to/sio.ko
4
测试串口
#ll /dev/cuad*
(可以看到2个串口,如cuad2,cuad3
终端1#cat /dev/cuad2
终端2
#echo test > /dev/cuad3
如果在终端1上看到输出的test,则表明虚拟串口连接成功

在终端1上按CTRL+c终止cat
5
调试内核

为串口联调配置好vmware虚拟机,配置虚拟机中的串口为/dev/cuad2
在主机中执行#kgdb -r /dev/cuad3 kernel.debug进行联调
ADVANTAGE
1
超越硬件的限制

2
软件模拟串口,传输速度可以不受串口速度的限制 BUG
1
对控制信号的模拟不够精确

2
该驱动的加载会导致物理串口不能正常工作(如需使用物理串口,kldunload sio.kokldload备份的sio.ko即可)
3
性能尚有待改进
REFERENCE
1 zzy
Debugging with GNU Project Debugger

2 Interfacing the Serial / RS232 Port
http://www.beyondlogic.org/serial/serial.htm
3 The RS232 Standard
http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html ============================================================================= vmware其实是非常方便的。

首先要配置好各个虚拟机,着重要配置的各个虚拟机的串口,一个作server,一个作client,被调试的当然是server
1.
配置调试机 2. 配置被调试机 3. 在内核中增加调试选项
options     DDB                                        makeoptions DEBUG=-g                                  device    sio0 at isa? port IO_COM1 flags 0x10 irq 4device    sio1 at isa? port IO_COM2 flags 0x80 irq 3
串口1一般用作控制台,在此保留了,串口2才是调试口,注意其标志位为0x80
# config -d /tiny TINY ; cd /tiny; make depend;make   
一是直接在调试机上编译内核,

二是在其他服务器上编译,然后将包含源码以及kernel.debug的目录nfs共享,调试机挂接
三是通过pxe远程引导一个系统在服务器上一目录中单独安装一个相应版本的系统(4.x5.x是不兼容的,请注意),所有的编译操作都在这个目录下进行
当然要chroot到这个目录下。
pxe
远程引导这个系统。这个目录无论在服务器上还是在pxe引导的客户机上的目录映射都是相同的,编译速度和便捷都有保证。
kernel拷贝到被调试机上,启动。同时启动调试机。按ctrl-alt-esc,进入db状态进入调试机
# gdb -k kernel.debug                                  
(kgdb) target remote /dev/cuaa0                     
连接完成后
(kgdb) c                                             
继续执行,在以后的操作中,可以随时在被调试机上中断,进入gdb中。在调试机上就可以设置断点,跟踪调试了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 准备工作 - 下载黑群晖系统镜像文件 - 下载VMware软件并安装 - 准备一台64位的电脑,支持虚拟化技术 2. 创建虚拟机 - 打开VMware软件,点击“新建虚拟机” - 选择“自定义”选项,点击“下一步” - 选择“稍后安装操作系统”,点击“下一步” - 选择“其他”操作系统,选择版本为“64位的FreeBSD”,点击“下一步” - 给虚拟机取一个名称,选择虚拟机存储的路径,点击“下一步” - 设置虚拟机的处理器,建议选择2个或4个处理器,点击“下一步” - 设置虚拟机的内存大小,建议设置为4GB或8GB,点击“下一步” - 选择“使用网络地址转换(NAT)”,点击“下一步” - 选择“SCSI控制器”,点击“下一步” - 选择“使用现有虚拟硬盘”,点击“下一步” - 浏览到黑群晖系统镜像文件的路径,选择“使用此映像”选项,点击“下一步” - 点击“完成”按钮,完成虚拟机的创建 3. 安装黑群晖系统 - 启动虚拟机,在黑屏的界面持续按下键盘上的“F2”键,进入BIOS设置 - 在BIOS设置,将启动顺序调整为“CD-ROM”优先,保存设置并重启虚拟机 - 黑群晖安装程序会自动启动,按照提示进行系统安装 - 在安装过程,需要选择硬盘分区和设置管理员密码等信息 - 安装完成后,重启虚拟机,系统即可正常运行 4. 设置网络连接 - 进入黑群晖系统后,打开“控制面板”,选择“网络”,配置网络连接,以便让黑群晖能够访问互联网和局域网 5. 其他注意事项 - 安装黑群晖时,需要注意选择正确的硬盘分区,不要误删其他系统的数据 - 在使用黑群晖时,需要注意版权问题,不要将黑群晖用于商业用途,以免侵犯他人权益 - 在使用黑群晖时,需要注意系统安全问题,及时更新系统补丁,安装杀毒软件,避免被黑客攻击或病毒感染。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值