当前位置: 首页 > news >正文

xv6-x86在ubuntu14.04 i386下正常编译、调试,在ubuntu23.04下编译各种报错--google镜像

来源

原git仓库 xv6-x86(xv6-public)

文档 mit 6.828/2023/

文档 MIT 6.828/2018/xv6/book-rev11.pdf

原readme

注:

  • xv6-x86(xv6-public) 已经被放弃了, 原作者转向了xv6-riscv
  • xv6-x86文档来源:mit-pdos/xv6-book.git, 它需要 heirloom-doctools 来编译成pdf,但 heirloom-doctools太旧了 ,估计要ubuntu16或14能编译此pdf?猜测 编译出来的pdf就是 MIT 6.828/2018/xv6/book-rev11.pdf,因此不需要自己编译pdf了

环境

uname -a
#Linux xx 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxcat /etc/issue
#Linux Mint 21.1 Vera \n \lcat /etc/debian_version
#bookworm/sid

准备

sudo  apt install    qemu-system-x86
 make -nB qemu

make_-nB_qemu.log

展开的Makefile比对: xv6-x86 和 xv6-riscv (仅kernel部分)

在ubuntu23.04 x64下编译 xv6-x86代码, make时各种报错. 需要转移到老版本ubuntu14.04 i386下编译xv6-x86

比如

z@mm:/crk/xv6-x86$ make qemugcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie   -c -o sh.o sh.c
sh.c: In function ‘runcmd’:
sh.c:58:1: error: infinite recursion detected [-Werror=infinite-recursion]gcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie   -c -o sh.o sh.c
sh.c:57:1: error: attributes should be specified before the declarator in a function definition57 | void| ^~~~
sh.c: In function ‘main’:
sh.c:168:7: error: implicit declaration of function ‘runcmd’ [-Werror=implicit-function-declaration]168 |       runcmd(parsecmd(buf));gcc -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -Werror -fno-omit-frame-pointer -fno-stack-protector -fno-pie -no-pie   -c -o mp.o mp.c
In function ‘mpconfig’,inlined from ‘mpinit’ at mp.c:101:14:
mp.c:83:10: error: array subscript -48806446 is outside array bounds of ‘void[2147483647]’ [-Werror=array-bounds]83 |   if(conf->version != 1 && conf->version != 4)

ubuntu14.04 i386 @docker

docker安装

省略

docker镜像加速

cat /etc/docker/daemon.json 
{
"registry-mirrors":"https://xxxx.mirror.aliyuncs.com"
}#登陆阿里云官网 --->  docker镜像加速 ---> https://xxxx.mirror.aliyuncs.com  (xxxx是每个个人阿里云账户不同)

xxx

ubuntu 14.04 docker镜像

在这里找到了 ubuntu 14.04 docker镜像名: hub.docker

sudo docker pull i386/ubuntu:14.04
sudo docker run --name ubuntu-1404-i386-a -itd -v /crk:/crk i386/ubuntu:14.04

ubuntu 14.04 docker实例 内 编译 xv6-x86

进入docker实例终端

进入docker该实例终端sudo docker exec -it ubuntu-1404-i386-a bash

apt国内源配置

apt国内源:

# https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
echo '清华ubunt14.04 apt源' >  /etc/apt/sources.list
apt update
安装 gcc、gdb、qemu
apt install build-essential gdb
apt install qemu-system-x86
编译、运行
cd /crk/xv6-x86/
make clean
make qemu-nox
#正常编译, 正常启动qemu#备注:  qemu-nox: 即 -nographic 
调试
准备
echo 'add-auto-load-safe-path /crk/xv6-x86/.gdbinit' >   /root/.gdbinit
gdb调试

详见:两窗口调试:gdb-server、gdb

以下简单描述 ‘两窗口调试:gdb-server、gdb’

  1. gdb-server窗口
cd /crk/xv6-x86/
make qemu-nox-gdb
#gdb-server在25000端口等待
  1. gdb窗口

cd /crk/xv6-x86/
gdb
#即连接到25000端口的gdb-server,可以开始正常调试#备注:  /crk/xv6-x86/.gdbinit 中配置了 连接25000端口
http://www.lryc.cn/news/224423.html

相关文章:

  • 关于unity中 编辑器相关逻辑的记录
  • linux安装配置MongoDB并设置开机启动
  • 1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0...‘ for column编码错误
  • K8S篇之谈谈kubelet的上报机制
  • 混沌系统在图像加密中的应用(小波混沌神经网络)
  • Node.js中的文件系统(file system)模块
  • react组件间通信之context
  • 京东数据分析:2023年10月京东洗衣机行业品牌销售排行榜
  • QQ恢复聊天记录,就用这3个方法!
  • 高能数造电池3D打印智能制造小试线,开启全固态电池数字化新时代
  • stable diffusion为什么能用于文本到图像的生成
  • c语言刷题第10周(16~20)
  • Vue.js 响应式系统深度剖析
  • LabVIEW如何才能得到共享变量的引用
  • 界面控件DevExtreme图表和仪表(v23.1) - 新功能(Angular,React,Vue,jQuery)
  • Rust和isahc库编写代码示例
  • Win10笔记本开热点后电脑断网的解决方法
  • 跨链知识指南
  • 字符编码转换时发生内存越界引发的摄像头切换失败问题的排查
  • git修改之前的commit提交的作者信息和邮箱信息
  • 《视觉SLAM十四讲》-- 相机与图像
  • 欧科云链:成本与规模之辨——合规科技如何赋能香港Web3生态?
  • 【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位
  • SPASS-探索性分析
  • 电子印章怎么弄?三步教你电子印章在线生成免费教程!
  • 以技术创新引领行业发展,飞凌嵌入式获双项省级荣誉
  • 在Google Kubernetes集群创建分布式Jenkins(二)
  • GEE:GEE中调用 Math.js 教程
  • 迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器
  • Opencv for unity 下载