CN102567051A - 一种制备龙芯平台图形化安装系统的方法及装置 - Google Patents
一种制备龙芯平台图形化安装系统的方法及装置 Download PDFInfo
- Publication number
- CN102567051A CN102567051A CN2011104186063A CN201110418606A CN102567051A CN 102567051 A CN102567051 A CN 102567051A CN 2011104186063 A CN2011104186063 A CN 2011104186063A CN 201110418606 A CN201110418606 A CN 201110418606A CN 102567051 A CN102567051 A CN 102567051A
- Authority
- CN
- China
- Prior art keywords
- installation
- kernel
- godson
- file
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种制备龙芯平台图形化安装系统的方法及装置,该方法包括:生成应用于龙芯平台的软件仓库;删除anaconda图形化安装系统中龙芯架构不支持的内容,设置支持龙芯架构的内容,基于修改后的anaconda图形化安装系统构建图形化安装程序;将龙芯的内核源码置于anaconda图形化安装系统的存储内核的目录中并进行内核配置,以生成龙芯的安装内核;删除buildinstall脚本中龙芯不支持的内容,加载适用于龙芯的设备驱动和内核模块,基于修改后的buildinstall脚本来生成内存虚拟文件系统映像文件。本发明改变现有龙芯平台系统的安装方式,将手动安装方式改为自动安装方式,节省安装时间。
Description
技术领域
本发明涉及一种硬件基础平台安装系统的制备方法,尤其涉及一种制备龙芯平台图形化安装系统的方法及装置。
背景技术
国产CPU——龙芯平台是我国自主可控软硬件基础平台,针对龙芯平台已开发出多个版本的国产操作系统。目前的操作系统已日趋成熟,具备通用桌面环境,集成主流配置工具与管理工具,提供典型应用需求服务能力,兼容国产数据库与中间件及第三方应用软件,已在多个核高基项目中部署实施。
龙芯平台现有的操作系统安装方式是通过基于一个完整系统的压缩包的拷贝解压来进行安装的,图1为龙芯平台架构上基于压缩包解压安装流程示意图,其具体的安装流程包括以下步骤:
步骤110,制作系统压缩包(以下简称系统tar包)和内核vmlinuz,通过应用tar命令将一个完整的操作系统制作成一个压缩格式为tar的系统压缩包,并编译一个支持initrd的内核vmlinuz,将所得的系统压缩包和内核拷贝到安装介质上。
步骤120,制作内存虚拟文件系统映像文件(以下简称initrd.img),先将一个完整的操作系统裁减成一个只支持最基本功能的字符环境,然后将所得的字符环境制作成一个不超过20M大小的initrd.img,拷贝到安装介质上。
步骤130,通过加载内核vmlinuz和initrd.img来启动字符环境,在龙芯平台PMON环境下使用load命令加载已拷贝到安装介质上的内核,并使用initrd命令加载安装介质上的initrd.img启动字符环境。
步骤140,分区并挂载目标分区,在字符环境中,通过分区命令fdisk进行分区,并使用mount命令挂载用于安装操作系统的目标分区。
步骤150,解压系统tar包至目标分区中,在字符环境中,使用tar命令解压安装介质上的系统tar包至步骤140所挂载的目标分区中。
步骤160,手动引导启动安装后的操作系统,在龙芯平台PMON环境下使用load命令来加载处于目标分区中的内核,通过“g console=tty root=/dev/目标分区”命令启动新安装的系统。
步骤170,修改自动引导启动文件,在新系统启动后,修改自动引导启动文件,亦即/boot/boot.cfg文件,将内核vmlinuz和initrd的信息补充至/boot/boot.cfg文件中,以保证下一次系统能自动引导启动,不用进行步骤160的手工操作。
图1所示的这种安装模式还处于原始的克隆方式,其中步骤110以及步骤120需要开发人员进行操作。由于对系统tar包的大小有严格的限制,因此系统tar包的制作较困难;由于不能将所有服务、系统工具、配置工具等进行全部集成,如果用户需要使用未集成的工具,则需要在操作系统安装后,开发人员根据用户反馈的具体需求再将相关工具制作成单独的组件提供给用户进行手动安装该工具,因此系统tar包的维护也很麻烦。在安装系统时仍需要熟悉龙芯平台且有专业基础的安装人员来进行安装,一般用户无法参与到安装过程中。
在图1所示的这种安装模式中,系统tar包解压时会产生大量的冗余文件且不易删除,手动无法查找和删除,需要使用专用的linux清理垃圾工具才能将其删除。系统tar包拷贝解压的方式,无法扩展,不支持系统层面的升级更新,只能是格式化硬盘分区然后重新安装。系统tar包解压安装方式会造成安装后系统中的一些隐藏文件和链接文件出现丢失和错误,无法正确的使用,只能在安装后经过人工分析错误原因然后再解决。由于制作系统tar包的系统环境是固定的,当需要安装的机器硬件出现变化时,系统安装出现错误。例如,在更换显示器后,由于和原有的系统环境不一致,导致显卡驱动安装错误,系统启动后的无法正常显示。
在图1所示的这种安装模式中,不提供对系统环境进行基本设置,例如系统默认语言、键盘布局、时区、网络、主机名、根口令等无法进行私有定制。例如,如果制作的系统tar包是英文环境的,则安装后的系统也是英文环境的,只能是在安装后重新修改默认语言配置文件才能使系统处于中文环境中。
现有的操作系统安装方式中,还有一种基于软件包安装机制,例如,目前X86架构平台上主流的安装方法就是一种基于软件包的安装方法。
软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类。每一个这种包都是包含了软件信息、程序文件、图标、文档和管理脚本等的压缩文件。基于软件包的安装方法,以软件包作为基本的制定单元,以需求为原则对其进行取舍,通过选择软件包来定制安装适合实际需要的Linux系统。
Linux系统的发行版本为Redhat的安装程序anaconda是目前最常用的基于软件包安装的程序之一,它的全部程序都是由Python语言完成。图2是X86平台架构上基于软件包安装方式的anaconda安装流程示意图,anaconda安装具体步骤如图2所示:
步骤210,制作软件仓库。通过使用createrepo命令制作软件仓库,然后将软件仓库拷贝到安装介质上。其中,软件仓库是一种特别的目录,它包含欲提供给用户的所有软件包及其索引文件。
步骤220,制作python图形化安装程序。应用Python语言设计一系列python脚本程序,调用python gtk库创建一个图形化的安装程序。完成如下功能:
1)底层调用分区工具Gparted实现图形化分区方式,支持自定义分区和默认分区等多种分区方式;
2)利用软件管理程序yum从软件仓库自动定位和获取正确的软件包并安装到目标分区,利用comps文件管理和设置安装的软件包,并提供自定义选择和默认选择软件包的功能;
3)设置本地环境,包括本地化环境变量,字体集,键盘映射等。
生成自动引导映像程序目录。通过使用脚本文件buildinstall来制作内核vmlinuz和initrd.img,并将步骤220中获得的图形化安装程序制作成install.img,然后利用syslinux引导的方式,将内核vmlinuz、initrd.img以及install.img生成自动引导映像程序目录。将自动引导映像程序目录拷贝到安装介质上。
步骤240,基于自动引导映像程序引导安装程序。用户通过安装介质上的自动引导映像程序目录,自动加载系统内核vmlinuz和initrd.img,由于系统内核vmlinuz存在于系统的启动映像程序目录之中,在系统启动时由Linux调入至初始磁盘,由此磁盘上的程序为加载运行安装程序的第一阶段加载程序。这是个可执行程序,它执行加载硬盘驱动模块,将磁盘上的整个安装环境调入内存,并作为根分区挂载,在映像程序结束运行后,释放其自身所占的内存,并将控制转移到真正的图形化系统安装程序中。
步骤250,启动图形化安装环境。系统安装程序启动图形化安装环境,允许用户与安装程序进行交互,实现图形化分区,用户通过选择软件包的方式进行自动安装,以定制用户所需的服务、系统工具和配置工具等,并且对系统环境进行基本设置,例如系统默认语言、键盘布局、时区、网络、主机名、根口令等进行私有定制,完成整个系统的安装过程。
步骤260,自动引导启动安装后的系统。
系统安装程序将已安装的系统引导信息传递给grub启动引导程序,通过grub引导并启动新安装的系统。
图2所示的这种安装方式解决了基于tar包拷贝解压进行安装而产生的技术缺点,将安装的功能细化到软件包层面,通过选择安装软件包的不同定制安装不同需求的操作系统,但是现有的anaconda安装程序只支持常见的X86架构,并不支持龙芯的MIPS架构。
龙芯平台是我国自主可控的硬件基础平台,今后在各个领域的运用将非常广泛,原有的安装方式根本不能满足实际的安装需求,因此,需要一种安装方法使其可以支持龙芯平台安装需求。
本发明涉及到的相关技术术语的名词解释:
tar:是将某一目录下所有文件打包并压缩归档成一个文件,在本文是指将整个系统中的所有文件打包并压缩成一个文件。
PMON:Prom Monitor,PMON是一个兼有BIOS和boot loader部分功能的开放源码软件,多用于嵌入式系统。
vmlinuz:可引导的、压缩的内核。
initrd.img:内存虚拟文件系统映像文件。
install.img:安装程序映像文件。
Python:是一种面向对象的脚本语言。
发明内容
本发明所要解决的技术问题之一是需要提供一种制备龙芯平台图形化安装系统的方法及装置。
为了解决上述技术问题,本发明提供了一种制备龙芯平台图形化安装系统的方法及装置,该制备龙芯平台图形化安装系统的方法包括:
生成要应用于龙芯平台的软件仓库;
检测并删除所述anaconda图形化安装系统的安装脚本中龙芯平台架构不支持的内容,在所述安装脚本中设置用于支持龙芯平台架构的内容,以得到适用于龙芯平台的修改后的安装脚本,基于安装脚本被修改后的anaconda图形化安装系统来构建图形化安装程序;
将龙芯平台的内核源码置于所述anaconda图形化安装系统的用于存储内核的目录中并进行内核配置,并对配置后的内核进行编译,以生成适应于龙芯平台的安装内核;
检测并删除所述anaconda图形化安装系统的buildinstall脚本文件中龙芯平台不支持的内容,在所述buildinstall脚本文件加载适用于龙芯平台的设备驱动和内核模块,以得到修改后的buildinstall脚本文件,基于所述修改后的buildinstall脚本文件来生成内存虚拟文件系统映像文件;以及将所述软件仓库、所述图形化安装程序、所述安装内核和所述内存虚拟文件系统映像文件复制到安装介质上各自的指定路径。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,所述安装介质上的指定路径为要安装龙芯操作系统的龙芯平台的PMON源码所指定的路径。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,构建所述图形化安装程序的步骤还包括:设置所述安装脚本中的架构信息和所述软件包仓库的获取路径;生成适用于龙芯平台的comps文件。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,所述进行内核配置的处理具体包括:在内核配置模式中,对龙芯系列类型、龙芯服务器类型、龙芯架构的存储数据方式和龙芯的CPU类型进行选择以完成对内核的配置。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,生成所述内存虚拟文件系统映像文件的处理还包括:安装支撑运行环境的软件包,建立安装目录树;在所述buildinstall脚本文件中设置所述龙芯平台安装内核的安装路径和版本号;在所述buildinstall脚本文件中的init脚本中设置为dbus分配的gid号和uid号。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,生成内存虚拟文件系统映像文件的处理还包括:在所述buildinstall脚本文件中的load脚本中构建用于获取所述龙芯平台图形化安装程序的位置的获取方法。
根据本发明另一方面的制备龙芯平台图形化安装系统的方法,在所述获取方法中,首先查找所述龙芯平台图形化安装程序的位置,若查找到,则将查找到的位置传递给method函数,load脚本通过处理method函数,获取所述位置并对所述龙芯平台图形化安装程序进行加载,否则,返回错误信息并退出安装。
根据本发明的另一方面,还提供了一种制备龙芯平台图形化安装系统的装置,包括:加载模块,其在PMON源码中设置加载方法,来获取所述安装介质上的所述龙芯平台安装内核和所述内存虚拟文件系统映像文件的所述指定路径,以启动所述图形化安装程序完成系统的安装;以及引导模块,其在anaconda源码中设置引导方法,以启动安装后的系统。
根据本发明另一方面的制备龙芯平台图形化安装系统的装置,所述加载方法根据所述安装介质的不同构建不同的加载命令,其中,所述安装介质为光盘、USB闪存盘、远程服务器或硬盘。
根据本发明另一方面的制备龙芯平台图形化安装系统的装置,所述引导方法,判断硬盘上的第一个分区是否存在用于存储系统引导信息的文件,若不存在,则返回所述图形化安装程序中的分区列表,将所述用于存储系统引导信息的文件设置在硬盘上的第一个分区。
与现有技术相比,本发明可以具有以下优点。
本发明提供了一种制备龙芯平台图形化安装系统的方法,该制备方法通过将anaconda图形化安装系统作为原型,进行迁移与二次开发以构造一种适用于龙芯平台图形化安装系统,使得所构造的龙芯平台图形化安装系统支持龙芯平台mips架构。
本发明提供了一种利用anaconda图形化安装系统来生成龙芯平台图形化安装系统的制备方法,该制备方法通过修改anaconda图形化安装系统的脚本以及龙芯平台的PMON源码,改变了现有龙芯平台操作系统的安装方式,将手动安装方式改为自动安装方式,节省了安装人员的时间。
该制备方法由于将anaconda图形化安装系统作为原型,减轻了开发人员的脑力劳动,克服了现有技术对开发人员制作系统tar要求多维护困难、无法根据用户的需要进行定制化安装系统、需要有专业的安装人员进行安装、操作界面不友好、用户无法参与到安装过程、无法设置基本的系统环境、硬件变化导致安装失败以及无法升级更新等缺陷,实现一种更易用、功能更完善的图形化安装方法,支持用户与安装程序进行交互,定制个性化操作系统。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是龙芯平台架构上基于压缩包解压安装方法流程示意图;
图2是X86平台架构上基于软件包安装方式的anaconda安装方法流程示意图;
图3是根据本发明实施例的一种制备龙芯平台图形化安装系统的方法的流程示意图;
图4是根据本发明实施例的一种制备龙芯平台图形化安装系统的装置的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明的一个实施例说明了一种制备龙芯平台图形化安装系统的方法,图3示出了根据本发明实施例的一种制备龙芯平台图形化安装系统的方法的流程示意图。下面参考图3来进行详细说明。
步骤310,生成要应用于龙芯平台的软件仓库。
具体地,将所有能在龙芯平台上安装运行的软件包构建成龙芯平台的软件仓库,并将其复制到安装介质上。
具体地,将所有能在龙芯平台上安装运行的软件包*.mipsel.rpm根据不同的功能分别复制到不同的目录中,然后将这些类别不同的目录整合到一个server目录下。通过使用createrepo命令将server目录制作成软件仓库,然后将软件仓库复制(拷贝)到安装介质上。其中,软件仓库是一种特别的目录,它包含欲提供给用户的所有软件包及其索引文件。
步骤320,检测并删除所述anaconda图形化安装系统的安装脚本中龙芯平台架构不支持的内容,在所述安装脚本中设置用于支持龙芯平台架构的内容,以得到适用于龙芯平台的修改后的安装脚本,基于安装脚本被修改后的anaconda图形化安装系统来构建图形化安装程序。
由于龙芯架构与x86架构不同,一些在x86架构上的设备和功能无法实现,因此需要修改anaconda图形化安装系统中的安装脚本使其能正确的执行基本的安装操作,进行一些安装基本设置、选择安装分区、选择软件包和分区文件系统等操作,通过对安装脚本进行修改以构建一款龙芯平台install.img。
更具体地,修改anaconda图形化安装系统的架构脚本,加入支持龙芯mips架构的代码,并取消对grub包的需求。由于龙芯平台PMON环境不支持文件系统ext4,删除anaconda图形化安装系统的架构脚本中支持ext4文件系统的代码。设置安装脚本中的时区代码和软件包仓库的获取路径,修改架构信息,例如修改时区脚本,增加支持北京时区的代码,编写龙芯平台所需的comps文件,并且修改步骤310所得的软件包仓库的获取路径。由于龙芯平台不支持虚拟化,修改软件包分组脚本,将支持虚拟化的软件包分组删除。由于龙芯平台64位不支持java并且龙芯平台32位对java的支持也不是很理想,因此屏蔽掉java相关的检查和应用。最后将构建的图形化安装程序复制到安装介质中。
步骤330,将龙芯平台的内核源码置于anaconda图形化安装系统的用于存储内核的目录中并进行内核配置,并对配置后的内核进行编译,以生成适应于龙芯平台的安装内核。
举例而言,以现有的龙芯3A系列主板为例,可以构建一款基于龙芯MIPS架构且支持龙芯3A系列主板以及基础外设的统一安装内核。
具体地,首先从龙芯服务器上获取龙芯内核源码tar包,将其下载并解压到anaconda图形化安装系统的目录/usr/src/kernel中,然后,通过命令makemenuconfig进入内核配置模式对内核和内核模块进行如下配置:
1.1选择龙芯系列的类型。
在内核配置模式中,对龙芯系列类型、龙芯服务器类型、龙芯架构的存储数据方式和龙芯的CPU类型进行选择以完成对内核的配置。
开启选项Machine selection中System type选择龙芯系列类型,选择龙芯3A系列机器Loongson family of machines、Machine type选择Loongson 3AServer;一般地,存储数据的方式有Little endian和Big endian两种,但在龙芯MIPS架构中只支持little endian存储数据方式,所以在Endianess selection中选择开启little endian选项;Cpu selection中选择Loongson 3A选项,通过以上操作来支撑龙芯的平台架构。
1.2选择支持初始RAM磁盘的配置。
由于在安装程序的过程中,需要通过设置初始内存镜像来加载内核模块,因此通过打开General setup中Initial RAM filesystem and RAM disk(initramfs/initrd)support和Support Initial ramdisks compressed using gzip选项以使得内核支持初始RAM磁盘。
1.3选择兼容内核的配置。
打开Networking support、PCI support、EISA support、Support forhot-pluggable devices等选项,使得定制的内核得到网络的支持和IPC机制的支持,因为在龙芯平台上的很多程序,即便它没有进行网络通讯,它也用这些方式进行进程间通讯。上述打开的其他的选项是对PCI、EISA设备的支持,是提高安装内核硬件兼容性的必要选项。对于并口设备而言,为了自动检测连接到并口设备,打开Parallel port support、Parallel port support、PC-stylehardware、IEEE 1284transfer modes等选项。
打开Loadable module support中Enable loadable module support和Kernelmodule loader选项,以支持可加载的内核模块置入内核中。
打开Multiple devices driver support(RAID and LVM)和RAID support选项,将模块md.o置入内核当中,如果不将md.o置入内核,仅将其作为一般的内核模块用于加载,则raid分区将无法作为根分区启动系统。这主要是因为raid设备需要在启动之初对硬盘进行读写,以决定raid分区的位置,类型等参数。
对于常见的IDE设备支持,也将其置入内核,这样保证了安装程序可以直接从硬盘、软盘、光驱启动,而无须额外的设置。
1.4选择用于制定内核模块的设备。
为了支持软件RAID设备和逻辑卷管理的分区,将以下这些设备定制为内核模块:Linear(append)mode、RAID-0(striping)mode、RAID-1(mirroring)mode、RAID-4/RAID-5mode、Multipath I/O support、Logical volume manager(LVM)support。
打开SCSI support选项,将支持SCSI设备全部作为内核模块。这些内核模块经过压缩后存入初始内存镜像,以便在使用SCSI控制器时,系统能够插入正确的设备驱动模块。
打开Network device support选项,对网络设备包括ARCnet、Appletalkdevices、Ethernet、PPP、SLIP、Token Ring等类型的设备提供支持,这些设备的驱动程序都可作为内核模块。
需要说明的是,龙芯平台中的驱动程序是内核的一部分,它们提供了硬件向上层的抽象接口,在启动过程中,当某些必备的驱动程序无法使用时,系统启动就此中止。但是不能将所有的驱动程序都编译到内核当中去,因为这样会无限制地加大内核的容量,对于系统资源,尤其是引导过程中的非常有限的可用存储资源是难以承受的,因此把某些驱动程序编译成内核模块,通过加载这些内核模块来使用这些驱动程序。
将上述选项配置保存起来,通过make命令编译内核生成vmlinux。通过make modules命令将上述制定的内核模块配置编译生成内核模块kernelmodules和system.map。
将所编译生成的内核vmlinuz、system.map放在/boot目录下,将生成的kernel modules放在/lib/modules目录下,编写一个kernel.spec文件,制作一个完整可用的rpm软件包。
需要说明的是,内核模块是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序,多指设备驱动、伪设备驱动,如网络设备和文件系统。例如需要为一个NCR 810SCSI卡配置SCSI驱动,但是内核中没有这个部分。因此需要重新配置并重构内核。Kernel modules就是这样一种可在系统启动后的任何时候动态连入内核的代码块。当不需要使用某种模块时,可以将该种模块从内核中卸载并删除。
另外,由于内核是一个非常复杂的代码块,并且含有多个不同的全局符号,System.map文件是用作符号表的。当编译一个新内核时,原System.map中的符号信息就会出现错误。随着每次内核的编译,就会产生一个新的System.map文件,并且需要用该文件取代原来的文件。当内核运行出错时,通过System.map文件中的符号表解析可以查到一个地址值对应的变量名,就可以根据符号表的信息找到内核运行出错的原因,便于对内核进行调试。
综上所述,本步骤所构建的安装内核满足完备和精简的要求。完备的内核是指:如果安装程序要对某方面的功能进行支持的话,必须在内核中也提供相应的支持。精简的内核是指:对于安装程序不需要的功能,内核一定不要支持,而且能作为模块存在的,就一定要把它设置为模块。这样定制出来的内核很小,保证了定制的内核以及必须的硬盘驱动模块能放入启动映像中。由于龙芯平台不同、系列主板不同以及硬件外设不同,内核需要支持的功能也不同,但由于成本和时间的不允许,开发多个不同系列的安装内核显然不太现实,我们仅需要对安装基础功能的支持即可,因此,可以定制一款基于龙芯MIPS架构,支持龙芯3A系列主板,支持基础外设的安装内核。
步骤340,检测并删除所述anaconda图形化安装系统的buildinstall脚本文件中龙芯平台不支持的内容,在所述buildinstall脚本文件加载适用于龙芯平台的设备驱动和内核模块,以得到修改后的buildinstall脚本文件,基于所述修改后的buildinstall脚本文件来生成内存虚拟文件系统映像文件。
通常,内核中只保留了一些基本的启动代码,而一些类似于设备驱动程序的代码被编译成可加载的内核模块,这些内核模块需要initrd.img文件来加载执行以减小内核的尺寸。
具体地,由于Linux系统的安装程序anaconda本身并不支持龙芯mips平台,因此重新构造一个新的anaconda运行环境。将anaconda安装系统中不支持龙芯平台的rpcbind以及rpcbind所依赖的nfs-utils软件包删除,构造全新的mk-image.mips脚本,使其支持龙芯平台的mips体系架构,然后修改龙芯平台中内核vmlinuz的安装路径和版本号,加载龙芯平台底层设备所需驱动,加载编译的龙芯平台安装内核模块,安装支撑最小运行环境的软件包,建立安装目录树,构造支持龙芯平台的initrd.img映像文件。
由于龙芯平台上dbus服务无法正确的生成uid号和gid号,这样会导致initrd.img加载失败,所以通过修改anaconda安装系统中的init脚本为dbus分配合理的gid和uid号,开启dbus服务实现高级进程间的通信。
需要说明的是,init脚本是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。
另外,由于龙芯平台上无法自动获取install.img的位置,因此本实施例buildinstall脚本文件中的load脚本中构建用于获取所述龙芯平台图形化安装程序的位置的获取方法,本实施例称为load-askmethod方法,该方法首先查找install.img的位置,如果没有查找到则返回错误信息,告知用户install.img不存在并退出安装,如果有则将install.img的位置传递给method函数,load脚本通过处理method函数,获取install.img的位置并加载至内存中。
最后,将软件仓库、图形化安装程序、安装内核和所述内存虚拟文件系统映像文件复制到安装介质上各自的指定路径。所述安装介质上的指定路径为要安装龙芯操作系统的龙芯平台的PMON源码所指定的路径。
将上述已经制备好的龙芯平台图形化安装系统安装至要利用该系统进行安装龙芯操作系统的装置上,在所述装置上,安装人员可以通过代码引导安装程序,但是,此种方法浪费安装人员的时间以及安装时较繁琐。
另外,本发明优选地,通过构造适合于龙芯平台图形化安装系统的装置,以完成龙芯操作系统的自动的安装。
根据本发明的另一个实施例提供一种制备龙芯平台图形化安装系统的装置,图4是根据本发明实施例的一种制备龙芯平台图形化安装系统的装置的结构示意图。该装置包括加载模块41和引导模块42,下面详细说明该装置所包括的模块的功能。
加载模块41,其在要安装龙芯操作系统的装置的PMON源码中设置加载方法,来获取所述安装介质上的所述龙芯平台安装内核和所述内存虚拟文件系统映像文件的所述指定路径,以启动所述图形化安装程序完成系统的安装。
具体地,通过对要安装龙芯操作系统的龙芯平台的PMON源码进行修改,设计了一种适用于龙芯平台图形化安装系统的加载方法,该方法被称为install-askmethod加载方法,其将安装介质中的安装程序加载至内存中。
通常,任何一个操作系统在任何一个硬件平台上的运行都需要一个加载(引导)的过程,即初始化软件环境、把内核从安装介质引导至内存当中去,并开始运行。
更具体地,通过对PMON源码进行修改所构建的加载方法根据所使用的安装介质的不同使用不同的加载命令,来获取安装介质上龙芯平台安装内核和initrd.img映像文件的位置,启动映像文件nitrd.img中的init脚本,完成自动化引导装载的功能,以启动步骤320所构建的图形化安装程序install.img。该方法分别设计了安装介质为光盘、U盘、远程tftp服务器和硬盘这几种安装介质的安装方式。
需要说明的是,本模块中设置的加载方法与X86架构有明显的不同。X86架构的anaconda安装系统的加载方法是syslinux加载方法,而龙芯平台并不支持syslinux,无法生成引导映像程序目录,不能使用原有的syslinux加载方法将initrd.img和内核构造成一个完整的安装环境,所以重新构建加载方法install-askmethod。
引导模块42,其在anaconda源码中设置引导方法,以启动安装后的系统。
具体地,通过对anaconda源码进行修改,构建一种通过判断硬盘上的第一个分区是否存在用于存储系统引导信息的文件的方法来引导安装后的系统。
更具体地,由于龙芯架构不支持grub的引导方式,因此修改anaconda设置引导页面,取消grub选项,改为通过PMON直接读取文件系统。将已安装的系统引导信息传递至boot.cfg文件中,通过构建的引导方法来识别并引导安装后的系统。原有的anaconda程序允许用户将引导信息安装在MBR或任意分区的第一个扇区,但由于PMON无法识别其他分区的boot.cfg文件,因此修改anaconda代码只允许用户将引导信息写入第一块硬盘的第一个分区上的boot.cfg文件,增加一个判断条件,判断硬盘上的第一个分区有无/boot/boot.cfg文件,如果没有/boot/boot.cfg文件则返回一个警告信息,说明此时PMON没有自动化启动脚本,如果选择继续安装,则提示需要在安装完成后手动引导启动安装后的系统,即手动加载所安装系统所在分区的内核和initrd.img;如果选择返回,则返回图像化安装化境中的图形化分区的分区列表,将系统安装在硬盘的第一个分区上,并在此分区上创建/boot/boot.cfg文件。如果有/boot/boot.cfg文件,则将安装后的系统的分区地址上的内核地址和initrd.img地址传递过来,并写入到该boot.cfg中,通过该引导方法,可以成功将安装后的系统进行引导。
综上所述,本发明制备了一种龙芯平台图形化安装系统,克服了现有技术对开发人员制作系统压缩包要求多维护困难、无法根据用户的需要进行定制化安装系统、需要有专业的安装人员进行安装、操作界面不友好、用户无法参与到安装过程、无法设置基本的系统环境、硬件变化导致安装失败和无法升级更新等缺陷,实现一种更易用、功能更完善的图形化安装方法,支持用户与安装程序进行交互,定制个性化操作系统。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种制备龙芯平台图形化安装系统的方法,其特征在于,包括:
生成要应用于龙芯平台的软件仓库;
检测并删除所述anaconda图形化安装系统的安装脚本中龙芯平台架构不支持的内容,在所述安装脚本中设置用于支持龙芯平台架构的内容,以得到适用于龙芯平台的修改后的安装脚本,基于安装脚本被修改后的anaconda图形化安装系统来构建图形化安装程序;
将龙芯平台的内核源码置于所述anaconda图形化安装系统的用于存储内核的目录中并进行内核配置,并对配置后的内核进行编译,以生成适应于龙芯平台的安装内核;
检测并删除所述anaconda图形化安装系统的buildinstall脚本文件中龙芯平台不支持的内容,在所述buildinstall脚本文件加载适用于龙芯平台的设备驱动和内核模块,以得到修改后的buildinstall脚本文件,基于所述修改后的buildinstall脚本文件来生成内存虚拟文件系统映像文件;以及
将所述软件仓库、所述图形化安装程序、所述安装内核和所述内存虚拟文件系统映像文件复制到安装介质上各自的指定路径。
2.根据权利要求1所述的方法,其特征在于,
所述安装介质上的指定路径为要安装龙芯操作系统的龙芯平台的PMON源码所指定的路径。
3.根据权利要求1所述的方法,其特征在于,构建所述图形化安装程序的步骤还包括:
设置所述安装脚本中的架构信息和所述软件包仓库的获取路径;
生成适用于龙芯平台的comps文件。
4.根据权利要求1所述的方法,其特征在于,所述进行内核配置的处理具体包括:
在内核配置模式中,对龙芯系列类型、龙芯服务器类型、龙芯架构的存储数据方式和龙芯的CPU类型进行选择以完成对内核的配置。
5.根据权利要求1所述的方法,其特征在于,生成所述内存虚拟文件系统映像文件的处理还包括:
安装支撑运行环境的软件包,建立安装目录树;
在所述buildinstall脚本文件中设置所述龙芯平台安装内核的安装路径和版本号;
在所述buildinstall脚本文件中的init脚本中设置为dbus分配的gid号和uid号。
6.根据权利要求1所述的方法,其特征在于,生成内存虚拟文件系统映像文件的处理还包括:
在所述buildinstall脚本文件中的load脚本中构建用于获取所述龙芯平台图形化安装程序的位置的获取方法。
7.根据权利要求6所述的方法,其特征在于,在所述获取方法中,
先查找所述龙芯平台图形化安装程序的位置,若查找到,则将查找到的位置传递给method函数,load脚本通过处理method函数,获取所述位置并对所述龙芯平台图形化安装程序进行加载,否则返回错误信息并退出安装。
8.一种制备龙芯平台图形化安装系统的装置,其特征在于,包括:
加载模块,其在PMON源码中设置加载方法,来获取所述安装介质上的所述龙芯平台安装内核和所述内存虚拟文件系统映像文件的所述指定路径,以启动所述图形化安装程序完成系统的安装;以及
引导模块,其在anaconda源码中设置引导方法,以启动安装后的系统。
9.根据权利要求8所述的装置,其特征在于,
所述加载方法根据所述安装介质的不同构建不同的加载命令,
其中,所述安装介质为光盘、USB闪存盘、远程服务器或硬盘。
10.根据权利要求8所述的装置,其特征在于,
所述引导方法,判断硬盘上的第一个分区是否存在用于存储系统引导信息的文件,若不存在,则返回所述图形化安装程序中的分区列表,将所述用于存储系统引导信息的文件设置在硬盘上的第一个分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110418606.3A CN102567051B (zh) | 2011-12-14 | 2011-12-14 | 一种制备龙芯平台图形化安装系统的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110418606.3A CN102567051B (zh) | 2011-12-14 | 2011-12-14 | 一种制备龙芯平台图形化安装系统的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567051A true CN102567051A (zh) | 2012-07-11 |
CN102567051B CN102567051B (zh) | 2015-03-25 |
Family
ID=46412554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110418606.3A Active CN102567051B (zh) | 2011-12-14 | 2011-12-14 | 一种制备龙芯平台图形化安装系统的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567051B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902554A (zh) * | 2012-09-04 | 2013-01-30 | 中标软件有限公司 | 一种龙芯平台的linux操作系统安装方法 |
CN103049300A (zh) * | 2012-12-17 | 2013-04-17 | 福建天晴数码有限公司 | C和c++代码在支持flash的web平台上运行的方法 |
CN103309706A (zh) * | 2013-05-24 | 2013-09-18 | 中标软件有限公司 | 基于Linux操作系统的内存文件系统制备方法及单元 |
CN103324474A (zh) * | 2013-05-22 | 2013-09-25 | 中标软件有限公司 | 基于Linux操作系统跨体系构造ISO的方法及模块 |
CN104423972A (zh) * | 2013-08-20 | 2015-03-18 | 中国人民解放军装备学院 | 基于国产飞腾平台的操作系统图形化安装方法 |
CN104484217A (zh) * | 2014-12-31 | 2015-04-01 | 闻泰通讯股份有限公司 | 分区配比编译适配方法 |
CN106775799A (zh) * | 2016-01-29 | 2017-05-31 | 新华三技术有限公司 | 一种脚本获取方法及装置 |
CN107229496A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种辅助机、待测机、终端测试系统和方法 |
CN108920215A (zh) * | 2018-07-18 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种通过initramfs收集系统日志的方法 |
CN109240646A (zh) * | 2017-06-09 | 2019-01-18 | 龙芯中科技术有限公司 | 应用程序开发工具的构建方法、装置、设备和存储介质 |
WO2019020074A1 (zh) * | 2017-07-28 | 2019-01-31 | 紫光华山信息技术有限公司 | 操作系统的安装 |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式系统配置方法 |
CN111124488A (zh) * | 2019-12-11 | 2020-05-08 | 山东超越数控电子股份有限公司 | 一种基于龙芯处理器的Debian系统移植方法 |
CN111949668A (zh) * | 2020-09-23 | 2020-11-17 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN112068889A (zh) * | 2020-07-31 | 2020-12-11 | 江苏航天龙梦信息技术有限公司 | 一种龙芯主机的网络启动实现 |
CN112506614A (zh) * | 2020-12-08 | 2021-03-16 | 西安雷风电子科技有限公司 | 一种支持多架构终端的idv系统初始化部署方法 |
CN112835596A (zh) * | 2021-02-03 | 2021-05-25 | 广东中兴新支点技术有限公司 | 通用操作系统的安装方法、系统、装置及存储介质 |
CN113377386A (zh) * | 2021-06-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 一种无解压的安装包安装方法、装置以及设备 |
CN117591170A (zh) * | 2024-01-18 | 2024-02-23 | 麒麟软件有限公司 | 一种龙芯PMON平台支持基于OSTree系统的方法及装置、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699403A (zh) * | 2009-10-27 | 2010-04-28 | 北京锐安科技有限公司 | 一种图形化安装分布式系统的方法 |
CN101989222A (zh) * | 2010-11-22 | 2011-03-23 | 连云港杰瑞深软科技有限公司 | 一种龙芯仿真器终端 |
-
2011
- 2011-12-14 CN CN201110418606.3A patent/CN102567051B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699403A (zh) * | 2009-10-27 | 2010-04-28 | 北京锐安科技有限公司 | 一种图形化安装分布式系统的方法 |
CN101989222A (zh) * | 2010-11-22 | 2011-03-23 | 连云港杰瑞深软科技有限公司 | 一种龙芯仿真器终端 |
Non-Patent Citations (1)
Title |
---|
于辰涛: "构造Linux的图形化安装程序", 《WWW.IBM.COM/DEVELOPERWORKS/CN/LINUX/SDK/INSTALL/PART1/》, 1 September 2001 (2001-09-01) * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902554A (zh) * | 2012-09-04 | 2013-01-30 | 中标软件有限公司 | 一种龙芯平台的linux操作系统安装方法 |
CN102902554B (zh) * | 2012-09-04 | 2016-09-21 | 中标软件有限公司 | 一种龙芯平台的linux操作系统安装方法 |
CN103049300A (zh) * | 2012-12-17 | 2013-04-17 | 福建天晴数码有限公司 | C和c++代码在支持flash的web平台上运行的方法 |
CN103049300B (zh) * | 2012-12-17 | 2015-08-26 | 福建天晴数码有限公司 | C和c++代码在支持flash的web平台上运行的方法 |
CN103324474A (zh) * | 2013-05-22 | 2013-09-25 | 中标软件有限公司 | 基于Linux操作系统跨体系构造ISO的方法及模块 |
CN103309706A (zh) * | 2013-05-24 | 2013-09-18 | 中标软件有限公司 | 基于Linux操作系统的内存文件系统制备方法及单元 |
CN104423972A (zh) * | 2013-08-20 | 2015-03-18 | 中国人民解放军装备学院 | 基于国产飞腾平台的操作系统图形化安装方法 |
CN104484217A (zh) * | 2014-12-31 | 2015-04-01 | 闻泰通讯股份有限公司 | 分区配比编译适配方法 |
CN104484217B (zh) * | 2014-12-31 | 2017-11-28 | 闻泰通讯股份有限公司 | 分区配比编译适配方法 |
CN106775799A (zh) * | 2016-01-29 | 2017-05-31 | 新华三技术有限公司 | 一种脚本获取方法及装置 |
CN107229496A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种辅助机、待测机、终端测试系统和方法 |
CN109240646A (zh) * | 2017-06-09 | 2019-01-18 | 龙芯中科技术有限公司 | 应用程序开发工具的构建方法、装置、设备和存储介质 |
US11023153B2 (en) | 2017-07-28 | 2021-06-01 | New H3C Information Technologies Co., Ltd. | Installation of operating system |
WO2019020074A1 (zh) * | 2017-07-28 | 2019-01-31 | 紫光华山信息技术有限公司 | 操作系统的安装 |
CN108920215A (zh) * | 2018-07-18 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种通过initramfs收集系统日志的方法 |
CN110045982A (zh) * | 2019-03-28 | 2019-07-23 | 宋子杰 | 一种基于源代码聚合的嵌入式系统配置方法 |
CN111124488A (zh) * | 2019-12-11 | 2020-05-08 | 山东超越数控电子股份有限公司 | 一种基于龙芯处理器的Debian系统移植方法 |
CN112068889A (zh) * | 2020-07-31 | 2020-12-11 | 江苏航天龙梦信息技术有限公司 | 一种龙芯主机的网络启动实现 |
CN111949668A (zh) * | 2020-09-23 | 2020-11-17 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN111949668B (zh) * | 2020-09-23 | 2023-05-05 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN112506614A (zh) * | 2020-12-08 | 2021-03-16 | 西安雷风电子科技有限公司 | 一种支持多架构终端的idv系统初始化部署方法 |
CN112506614B (zh) * | 2020-12-08 | 2023-02-24 | 西安雷风电子科技有限公司 | 一种支持多架构终端的idv系统初始化部署方法 |
CN112835596A (zh) * | 2021-02-03 | 2021-05-25 | 广东中兴新支点技术有限公司 | 通用操作系统的安装方法、系统、装置及存储介质 |
CN112835596B (zh) * | 2021-02-03 | 2023-11-14 | 广东中兴新支点技术有限公司 | 通用操作系统的安装方法、系统、装置及存储介质 |
CN113377386A (zh) * | 2021-06-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 一种无解压的安装包安装方法、装置以及设备 |
CN117591170A (zh) * | 2024-01-18 | 2024-02-23 | 麒麟软件有限公司 | 一种龙芯PMON平台支持基于OSTree系统的方法及装置、存储介质 |
CN117591170B (zh) * | 2024-01-18 | 2024-04-12 | 麒麟软件有限公司 | 一种龙芯PMON平台支持基于OSTree系统的方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102567051B (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567051A (zh) | 一种制备龙芯平台图形化安装系统的方法及装置 | |
US9779111B2 (en) | Method and system for configuration of virtualized software applications | |
US8365164B1 (en) | Portable software applications | |
US9864600B2 (en) | Method and system for virtualization of software applications | |
US7356816B2 (en) | Method and apparatus for multiplatform migration | |
CN111399865A (zh) | 一种基于容器技术自动构建目标文件的方法 | |
US8886995B1 (en) | Fault tolerant state machine for configuring software in a digital computer | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
US20090007105A1 (en) | Updating Offline Virtual Machines or VM Images | |
CN110088733A (zh) | 虚拟机迁移的基于存储层的编排 | |
US20120079474A1 (en) | Reimaging a multi-node storage system | |
CN102200921A (zh) | 智能引导设备选择和恢复 | |
US20080307216A1 (en) | Method and apparatus for booting a computer system | |
US11307907B2 (en) | Information handling system and method to automatically synchronize operating system and boot firmware languages | |
US8316361B2 (en) | Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner | |
CN110688137A (zh) | 应用交付方法和装置、存储介质 | |
US9557983B1 (en) | Flexible storage application deployment mechanism | |
US8549545B2 (en) | Abstraction of computer disk image cloning capabilities from bootable media | |
US20150212866A1 (en) | Management system for service of multiple operating environments, and methods thereof | |
CN101840337B (zh) | 一种适用于捕包应用的裁减系统定制方法 | |
KR102423056B1 (ko) | 부팅 디스크 변경 방법 및 시스템 | |
US11500646B1 (en) | Tracking heterogeneous operating system installation status during a manufacturing process | |
Matzigkeit et al. | the GNU GRUB manual | |
CN108139914B (zh) | 用于引导过程修改的系统和方法 | |
Guide | HP Reliable Transaction Router Installation Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |