栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

VMware Workstation虚拟机搭建ubuntu5.04(linux 2.6.10-5)系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VMware Workstation虚拟机搭建ubuntu5.04(linux 2.6.10-5)系统

VMware Workstation虚拟机搭建ubuntu5.04(linux 2.6.10-5)系统

目录
      • 概述
      • 第一章
        • 1.1 平台环境
          • 1.1.1 主机系统版本:
          • 1.1.2 VMware Workstaion 软件版本:
        • 1.2 下载ubuntu5.04 安装镜像
          • 1.2.1 下载地址:
          • 1.2.2 选择镜像:
        • 1.3 安装ubuntu5.04
          • 1.3.1 Step 1-新建虚拟机:
          • 1.3.2 Step 2-进入ubuntu安装界面:
        • 1.4 安装ubuntu5.04过程中出现的bug
          • 1.4.1 BUG 1:安装完后,重启发现还需要再安装。
          • 1.4.2 BUG 2: 安装过程中,出现找不到CDROM的情况:
          • 1.4.3 BUG 3: 安装完成后,出现 X server相关问题
          • 1.4.4 BUG 4: 安装过程中,出现连接不上网络的情况:
      • 第二章
        • 2.1 更新软件源
          • 2.1.1 Step 1-修改root用户密码
          • 2.1.2 Step 2-修改source.list
            • 2.1.2.1 source.list文件修改规则
            • 2.1.2.2 寻找合适的软件源地址
            • 2.1.2.3 动手修改
            • 2.1.2.4 修改hosts
        • 2.2 安装 linux-headers 搭建编译环境
          • 2.2.1 安装 linux-headers(kernel-2.6.10源码)
          • 2.2.2 搭建编译环境:
          • 2.2.3 测试编译及安装驱动:
        • 2.3 安装vmwaretools实现与主机共享文件
          • 2.3.1 挂载vmwaretools的相关镜像到CDROM
        • 2.4 安装 openssh-server ,实现主机下mobaxterm访问虚拟机


概述

  由于学习《Linux Device Drivers 3rd Edition》这本书时,其中使用的环境为linux 2.6.10,为了可以测试书中的案例程序,更好的学习这本书,因此想搭建linux2.6.10的环境。
  搭建该环境的方法有很多种,可以通过安装流行的ubuntu版本,再在ubuntu里面使用qemu搭建虚拟机,移植linux2.6.10;或是买一块板子移植linux2.6.10;为了简单起见(其实并不简单),不需要过多关注系统移植,可以直接在vmware workstation中搭建ubuntu5.04,该系统使用的linux版本就是2.6.10。
  该文共分为两章,第一章为简单安装ubuntu5.04,第二章为进一步搭建编译内核模块的环境,及ubuntu5.04的源更新,及安装vmwaretools以方便与主机互传文件,及安装openssh-server方便通过mobaxterm连接ubuntu。

  文本内容若有不足,还望各位同仁不吝赐教。

By Jax    

2022年7月3日   

coolbeaner@126.com   


第一章 1.1 平台环境 1.1.1 主机系统版本:

  该版本并无要求,能跑 VMware Workstaion固定版本就行。

1.1.2 VMware Workstaion 软件版本:

  网上找到的资料8.x版本也能安装ubuntu5.04,尝试过是可以的,因为ubuntu5.04发布时间为2005年,因此大于2005年的版本应该都可以,尽量选择高版本,高版本一般会向下兼容。

1.2 下载ubuntu5.04 安装镜像 1.2.1 下载地址:
  • 由于该版本比较老,因此不太容易找到,以下是ubuntu官方维护的网站,应该是长久支持的:
  • https://old-releases.ubuntu.com/releases/

1.2.2 选择镜像:
  • 选择 Ubuntu 5.04 (Hoary Hedgehog)
    Hoary 是该版本的名字,该名字很重要的,后续修改源的时候会用到。

  选择 Install CD版 ,因为live CD版我尝试过,只是安装后进入系统,下次启动还需要挂载CDROM,且重新安装,有点类似U盘装win10的轻版操作系统WINPE,因此upZ选择install版。

  • 选择CPU架构,这里其实也无所谓,虚拟机会模拟的,但powerpc我没安装过。upZ选择AMD64。

  • 下载完毕。

1.3 安装ubuntu5.04 1.3.1 Step 1-新建虚拟机:
  • 在VMware Workstaion中点击创建新的虚拟机 or 点击左上角文件–>新建虚拟机。

  • 点击 自定义,之后点击下一步。

  • 硬件兼容选择16.x就可以,8.x的upZ尝试过也可以,8.x一下没有尝试过。

  • 选择刚才下载的镜像存放路径,upZ的是 E:sys_isoubuntu-5.04-install-amd64.iso。

  • 填写虚拟机名字,及安装路径。upZ的是 Ubuntu 5.04 及 D:Program Files (x86)Virtual
    Machinesubuntu 5.04

  • 默认下一步

  • 毕竟是老版系统,内存upZ选择2G,觉对够用。

  设置不当易出BUG

  • 网络需要选择桥接,NAT模式该系统不支持,会导致后面安装连不上网。

  • 默认下两步

  硬盘根据情况,upZ选择20G够用了。

  • 默认下两步

  设置不当易出BUG

  • 到这里需要 自定义硬件,否则安装时会挂载不上CDROM

  设置不当易出BUG

  • 选择 新CD/DVD–>高级

  设置不当易出BUG

  • 选择IDE方式。

  • 点击完成,开始进入按照界面。

1.3.2 Step 2-进入ubuntu安装界面:
  •   进入安装界面,由于默认安装会出现X11 server启动问题,因此这里选择server安装(server就是服务器版本,无可视化界面。),在命令行输入server,敲击回车。

  • language可以随便选择,UPZ选择English。

  • 如果选择中文,location这里会有中国选项,UPZ这里选择的是English,因此需要找到CHINA,当前界面没有,因此选择Other

  • 找到CHINA

  • 一路回车

  • 填写用户名

  • 填写密码

  • 回车,重启

  • 登陆用户

  • 安装成功

1.4 安装ubuntu5.04过程中出现的bug 1.4.1 BUG 1:安装完后,重启发现还需要再安装。
  • 安装的镜像是Live版,需要安装install版。详见 “下载ubuntu5.04安装镜像->选择镜像”小节。
1.4.2 BUG 2: 安装过程中,出现找不到CDROM的情况:

  默认的SATA设备节点方式ubuntu5.04不支持,关闭客户机系统,修改虚拟设备节点为IDE(SCSI应该也可以,UPZ没有尝试,需要选一下节点,避免和硬盘挂载节点冲突。),后重启。详见 “安装ubuntu5.04-> Step 1-新建虚拟机->选择IDE方式。”部分。

1.4.3 BUG 3: 安装完成后,出现 X server相关问题

  安装的是default版,有界面,界面使用的是X server,由于这个问题UPZ查了好久没解决,因此选择安装server版,无界面,若有朋友知道如何正面解,还请不吝赐教。
安装选择server版,便无此问题。详见 “安装ubuntu5.04-> Step 2-进入ubuntu安装界面” 小节。

1.4.4 BUG 4: 安装过程中,出现连接不上网络的情况:

  • 关闭客户机系统,设置虚拟机设置选项->网络适配器->网络连接,选择桥接模式or自定义:

  设置后重启,详见 “安装ubuntu5.04-> Step 1-新建虚拟机->网络需要选择桥接,NAT模式该系统不支持,会导致后面安装连不上网。”部分。


第二章

  到第一章结束,简单的ubuntu5.04环境就搭建完成了,但是了解linux kernel编程的人都知道,linux device driver modules的编译分为两种,第一种为内部编译,第二种是外部编译,不管是哪种方式,都需要有linux kernle 的源码,而当前搭建的环境中并没有,如下图可以看到在/lib/modules/2.6.10-5-amd64-generic/目录下并没有build目录,因此需要安装linux-headers等,需进行以下步骤的配置安装。


2.1 更新软件源 2.1.1 Step 1-修改root用户密码
  • 为了待会操作的方便,UPZ想切换到root用户,避免反复的敲sudo。但会发现切换用户发现,管理员用户不可用。

  • 因为安装时并没有指定root用的密码信息,因此这里修改一下密码就可以了。

2.1.2 Step 2-修改source.list
  • 可以看到当前是可以联网的,关于网络配置在第一章中介绍过。

  • 但在使用apt-get update时会出现以下情况

  • 在apt-get upgrade时也会出现一样情况

  • 在使用apt-get安装软件时也会出现类似的情况:Please insert the disc labeled “xxx” in the
    drive ‘/cdrom/’ and press enter 的情况。

  • 该原因是/etc/apt/source.list文件中配置获取软件package的方式是选择CDROM的方式,也就是光盘的方式。

  • 可以看到是通过cdrom的方式

  • 在改行最前面加入#,把它注释掉。

  • 修改后直接再apt-get install 软件名会发现,找不到package,因为没有软件源了。

  • 因此需要在网上找软件源的地址,然后添加到source.list中。
2.1.2.1 source.list文件修改规则

  在此需要补充一个很重要的知识,从而避免踩坑(UPZ在此步骤踩了很多坑)。

  • 详见:https://blog.csdn.net/u012843189/article/details/80964287
  • 由于连接中这位大神讲解的很详细,因此下文只做简单的介绍:
  • 可以看到系统自带的source.list文件中,一共三组,每组有两行,分别以deb、deb-src开头。每行分四个部分,如下图。

  • 而这四部分分别是: deb、url、codename、components,
  • 其格式为:
  # simple format
  deb  url  codename components
  deb-src url codename components
  # full format
  deb  url  codename components
  deb-src url codename components
  
  deb  url  codename-security components
  deb-src url codename-security components
  
  deb  url  codename-updates components
  deb-src url codename-updates components
  
  deb  url  codename-proposed components
  deb-src url codename-proposed components
  
  deb  url  codename-backports components
  deb-src url codename-backports components
  • 该四部分含义分别为:
  1. deb & deb-src

1). deb:二进制包仓库
2). deb-src:二进制包的源码库

  1. url:库所在的地址,可以是网络地址,也可以是本地的镜像地址
  2. codename: Ubuntu版本的代号。可以用命令lsb_release -sc来查看当前系统的代号。
  3. components: 软件的性质(free或non-free等)
  • 其中第三部分,在每组中都不同,其“codename-”后面跟的名字含义如下:
  1. security - Important Security Updates.
  2. updates - Recommended Updates.
  3. proposed - Pre-released Updates.
  4. backports - Unsupported Updates.
  • "codename"及"codename-xxx"这些目录文件在 url/dists/中都可以查看到。
  • 例如:url = http://cn.archive.ubuntu.com/ubuntu
    注意:url != http://cn.archive.ubuntu.com/ubuntu/dists
    填写source.list文件时不要写 url + /dists/,它会自动找的。

  • 其中第四部分,在每组中都不同,”components“包含如下:
  1. main: 完全的自由软件。
  2. restricted: 不完全的自由软件。
  3. universe: Ubuntu官方不提供支持与补丁,全靠社区支持。
  4. multiverse:非自由软件,完全不提供支持和补丁
  • 一般每行都填写这四个关键词,使用空格隔开(多写无害,系统会自动筛选可用项)。
2.1.2.2 寻找合适的软件源地址
  •   如果你还记得第一章安装ubuntu5.04时提到的ubuntu的版本名字的话。那么你应该熟悉__Hoary__,没错它就是ubuntu5.04的版本名字,也就是__codename__。我们看到在中国ubuntu源中并没有hoary对应的源,因此这个源不能用。

若不信的话你可以尝试下,会报以下错误:

  1. 取消注释:

  1. 敲apt-get update 回车后报错:

  1. 敲apt-get update > t.log 回车后查看t.log文件,查具体错误原因,会发现404:

  • 一般两种情况造成的:

    • 第一:是无法解析 http://cn.archive.ubuntu.com/ubuntu 这个网址。
    • 第二:是这个网站中确实没有你想要的版本名。

    但如果能ping的话,就证明不是第一种情况,实践发现确实不能ping通:

  • UPZ修改了下hosts文件,修改过程不做介绍,该修改方法后面会介绍,结果如下:

    可以ping通:

  • 再次apt-get update 依旧报同样错,因此可以证明网站中没有hoary版本。

  •   这时需要找有hoary的仓了,由于ubuntu5.04版本有些老旧,所以普通的软件源网站都没有,清华源和阿里源UPZ也查过没有。经百般搜索UPZ找到了一个专门维护老版本系统软件源网站:

  • http://old-releases.ubuntu.com/ubuntu/

  • 点击进入dists,发现有hoary:

2.1.2.3 动手修改

  我们按照“source.list文件修改规则”小节中介绍的规则对/etc/apt/source.list文件进行修改,如下(由于ubuntu我们安装的是server版,因此没有图像化界面,只能一个字符一个字符的敲,因此需要仔细一些,避免敲错,敲错会报上小节讲到的__404错误__):

  #将原文件中所有的行都注释掉(在行最前面加#)
  #将以下信息写入文件中
  #deb-src 是下载源码的,可以不使用,网速慢,或者不稳定的话,容易报各种错误(302、404、etc....)
  deb  http://old-releases.ubuntu.com/ubuntu/  hoary main multiverse restricted universe 
  # deb-src http://old-releases.ubuntu.com/ubuntu/ hoary main multiverse restricted universe 
  
  deb  http://old-releases.ubuntu.com/ubuntu/  hoary-security main multiverse restricted universe 
  # deb-src http://old-releases.ubuntu.com/ubuntu/ hoary-security main multiverse restricted universe 
  
  deb  http://old-releases.ubuntu.com/ubuntu/  hoary-updates main multiverse restricted universe 
  # deb-src http://old-releases.ubuntu.com/ubuntu/ hoary-updates main multiverse restricted universe 
  
  deb  http://old-releases.ubuntu.com/ubuntu/  hoary-proposed main multiverse restricted universe 
  # deb-src http://old-releases.ubuntu.com/ubuntu/ hoary-proposed main multiverse restricted universe 
  
  deb  http://old-releases.ubuntu.com/ubuntu/  hoary-backports main multiverse restricted universe 
  # deb-src http://old-releases.ubuntu.com/ubuntu/ hoary-backports main multiverse restricted universe 

2.1.2.4 修改hosts

  修改完毕后执行 apt-get update,如果之前虚拟机访问过该源网站,应该会直接执行,如果没有,有可能报404错误,原因是无法解析域名(在这里并不是网址,因为它不带/ubuntu/,注意区别)。因此就需要修改/etc/hosts。

  •   无法解析域名,就是系统不能根据地址分析出域名的实际ip地址,这时候需要在hosts文件中告诉它,格式为:
	ip domain_name
  •   域名我们知道了是: http://old-releases.ubuntu.com/ubuntu/
      ip我们通过查询工具获取,链接地址: https://site.ip138.com/
      输入域名,点击查询

  • 解析到的结果如下,可以随便选一个

  • 按照hosts格式,在文件最后添加:
	185.125.190.40 http://old-releases.ubuntu.com

  • 执行apt-get update

  • 执行apt-get upgrade

2.2 安装 linux-headers 搭建编译环境 2.2.1 安装 linux-headers(kernel-2.6.10源码)
  • 查看系统内核当前的版本号:

  • 使用apt-get install linux-headers-$(uname -r) 命令安装 linux-headers:

  • 此时在/lib/modules/2.6.10-5-am64-generic 目录下就会有build的软连接:

  • 进入build之后敲ls -l,会发现,他们都是指向linux-headers-2.6.10-5的软连接:

  • 在/usr/src目录下会有linux-headers-2.6.10-5的文件夹:

  • 进入该目录,就会发现熟悉的linux-2.6.10的源码了:

2.2.2 搭建编译环境:
  • 使用apt-get install gcc -y 命令安装 gcc:

  • 使用apt-get install make 命令安装 make:

2.2.3 测试编译及安装驱动:
  • 环境已经搭建完成,现在测试一下好不好使,首先编写一个简单的k_test.c驱动程序:

  • 然后编写一个简单的Makefile:

  • 敲make后,编译成功:

  • 敲insmod k_test.ko:

  • dmesg 可以看到,我们在程序中打印的“This is k_test_init“:

  • 敲rmmod k_test.ko:

  • dmesg 可以看到,我们在程序中打印的“This is k_test_exit“:

2.3 安装vmwaretools实现与主机共享文件

  正常编写代码时,一般通过source insight等软件,当然也有很多大神习惯使用vim,但与主机共享文件还是很有必要的。UPZ习惯使用主机编写软件,通过共享文件将文件传到虚拟机进行编译,现在有ubuntu5.04系统,编译完成后就可以直接安装测试了。

2.3.1 挂载vmwaretools的相关镜像到CDROM
  • 和正常安装vmwaretools的流程不太相同,正常的为以下操作:

  •   如果选择这样操作,会默认安装最新版本的vmwaretools,而安装时会依赖一些库,由于系统版本太老,导致库太老了,因此会提示系统的glibc的版本太老了,安装时会报以下错误:

  •   因此需要安装兼容老系统的vmwaretools版本,首先确认下cdrom节点没有被挂载,以免待会挂载镜像时失败,如果有被挂载的话,就使用umount xxx
    卸载掉,或者直接重启电脑(如果遇到节点busy的话,对于新手来说强制卸载比较麻烦,不如直接重启),UPZ这里没有挂载cdrom节点:

  • 在列表中右击虚拟机系统->设置:

  • 选择CD/DVD(IDE):

  • 点击浏览:

  • 找到VMware安装的位置:

  • 找到linuxPreGlibc25.iso,点击打开,此为兼容老系统的vmwaretools版本镜像:

  • 拷贝及解压文件等操作,执行以下操作:
	#以下执行环境为root用户,请切换到root用户
	#挂载cdrom 到 /mnt
	mount /dev/cdrom /mnt
	#在/root 下创建 vm 文件夹
	cd 
	mkdir vm
	#拷贝/mnt下所有文件到 当前vm中
	cp /mnt
    $initmodfile = '/etc/sysconfig/kernel';
    if ($gSystem{'distribution'} eq 'suse') {
        $syscmd = join(' ', $binary, $kernelList, $initrdList);
    } else {
        $syscmd = $binary;
    }
	
    $initmodfile = '/etc/sysconfig/kernel';
    if ($gSystem{'distribution'} eq 'suse') {
        $syscmd = join(' ', $binary, $kernelList, $initrdList);
    } else {
        $syscmd = join(' ', $binary, '-o', "/boot/initrd-$kernRel.img", $kernRel);
    }
  • 修改后如下:

  • 再次进入vmware-tools-distrib目录下执行./vmware-install.pl,一路回车,安装成功:

  • 此时,进入/mnt 目录下,发现生成了文件夹/hgfs,但里面并没有东西:

  • 这是因为此时只安装好了vmware-tools,还没有配置共享,配置如下,在列表中右击虚拟机系统->设置:

  • 点击 选项->共享文件夹->总是启动:

  • 点击 添加:

  • 填写主机路径(主机共享的文件夹)UPZ共享了桌面的tmp文件:

  • 一路确认完成,重启虚拟机:

  • 再次进入/mnt/hgtfs/文件下,发现有tmp文件,进入,可以查看到主机共享的文件:

2.4 安装 openssh-server ,实现主机下mobaxterm访问虚拟机

  因为ubuntu5.04虚拟机命令行界面看起来太不友好,因此UPZ决定通过主机mobaxterm来访问ubuntu5.04虚拟机,该步骤不太复杂,具体如下

  • 使用sudo apt-get install openssh-server -y安装openssh-server:

  • 使用ifconfig查看虚拟机ip:

  • 可以看到ip为192.168.1.4:

  • 在mobaxterm中新建一个terminal,使用ssh连接虚拟机:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号