一种制备龙芯平台图形化安装系统的方法及装置的制作方法

文档序号:6441286阅读:603来源:国知局
专利名称:一种制备龙芯平台图形化安装系统的方法及装置的制作方法
技术领域
本发明涉及一种硬件基础平台安装系统的制备方法,尤其涉及一种制备龙芯平台图形化安装系统的方法及装置。
背景技术
国产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包解压时会产生大量的冗余文件且不易删除,手动无法查找和删除,需要使用专用的Iinux清理垃圾工具才能将其删除。系统tar 包拷贝解压的方式,无法扩展,不支持系统层面的升级更新,只能是格式化硬盘分区然后重新安装。系统tar包解压安装方式会造成安装后系统中的一些隐藏文件和链接文件出现丢失和错误,无法正确的使用,只能在安装后经过人工分析错误原因然后再解决。由于制作系统tar包的系统环境是固定的,当需要安装的机器硬件出现变化时,系统安装出现错误。例如,在更换显示器后,由于和原有的系统环境不一致,导致显卡驱动安装错误,系统启动后的无法正常显示。在图1所示的这种安装模式中,不提供对系统环境进行基本设置,例如系统默认语言、键盘布局、时区、网络、主机名、根口令等无法进行私有定制。例如,如果制作的系统 tar包是英文环境的,则安装后的系统也是英文环境的,只能是在安装后重新修改默认语言配置文件才能使系统处于中文环境中。现有的操作系统安装方式中,还有一种基于软件包安装机制,例如,目前X86架构平台上主流的安装方法就是一种基于软件包的安装方法。软件包(Software Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类。每一个这种包都是包含了软件信息、 程序文件、图标、文档和管理脚本等的压缩文件。基于软件包的安装方法,以软件包作为基本的制定单元,以需求为原则对其进行取舍,通过选择软件包来定制安装适合实际需要的 Linux系统。Linux系统的发行版本为Redhat的安装程序anaconda是目前最常用的基于软件包安装的程序之一,它的全部程序都是由Python语言完成。图2是X86平台架构上基于软件包安装方式的anaconda安装流程示意图,anaconda安装具体步骤如图2所示步骤210,制作软件仓库。通过使用creater印ο命令制作软件仓库,然后将软件仓库拷贝到安装介质上。其中,软件仓库是一种特别的目录,它包含欲提供给用户的所有软件包及其索引文件。步骤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生成自动引导映像程序目录。将自动引导映像程序目录拷贝到安装介质上。
步骤M0,基于自动引导映像程序引导安装程序。用户通过安装介质上的自动引导映像程序目录,自动加载系统内核vmlinuz和initrd. img,由于系统内核vmlinuz存在于系统的启动映像程序目录之中,在系统启动时由Linux调入至初始磁盘,由此磁盘上的程序为加载运行安装程序的第一阶段加载程序。这是个可执行程序,它执行加载硬盘驱动模块, 将磁盘上的整个安装环境调入内存,并作为根分区挂载,在映像程序结束运行后,释放其自身所占的内存,并将控制转移到真正的图形化系统安装程序中。步骤250,启动图形化安装环境。系统安装程序启动图形化安装环境,允许用户与安装程序进行交互,实现图形化分区,用户通过选择软件包的方式进行自动安装,以定制用户所需的服务、系统工具和配置工具等,并且对系统环境进行基本设置,例如系统默认语言、键盘布局、时区、网络、主机名、根口令等进行私有定制,完成整个系统的安装过程。步骤沈0,自动引导启动安装后的系统。系统安装程序将已安装的系统引导信息传递给grub启动引导程序,通过grub引导并启动新安装的系统。图2所示的这种安装方式解决了基于tar包拷贝解压进行安装而产生的技术缺点,将安装的功能细化到软件包层面,通过选择安装软件包的不同定制安装不同需求的操作系统,但是现有的anaconda安装程序只支持常见的X86架构,并不支持龙芯的MIPS架构。龙芯平台是我国自主可控的硬件基础平台,今后在各个领域的运用将非常广泛, 原有的安装方式根本不能满足实际的安装需求,因此,需要一种安装方法使其可以支持龙芯平台安装需求。本发明涉及到的相关技术术语的名词解释tar 是将某一目录下所有文件打包并压缩归档成一个文件,在本文是指将整个系统中的所有文件打包并压缩成一个文件。PMON =Prom Monitor, PMON是一个兼有BIOS和boot loader部分功能的开放源码软件,多用于嵌入式系统。vmlinuz 可引导的、压缩的内核。initrd. img 内存虚拟文件系统映像文件。install, img 安装程序映像文件。Python 是一种面向对象的脚本语言。

发明内容
本发明所要解决的技术问题之一是需要提供一种制备龙芯平台图形化安装系统的方法及装置。为了解决上述技术问题,本发明提供了一种制备龙芯平台图形化安装系统的方法及装置,该制备龙芯平台图形化安装系统的方法包括生成要应用于龙芯平台的软件仓库;检测并删除所述anaconda图形化安装系统的安装脚本中龙芯平台架构不支持的内容,在所述安装脚本中设置用于支持龙芯平台架构的内容,以得到适用于龙芯平台的修改后的安装脚本,基于安装脚本被修改后的anaconda图形化安装系统来构建图形化安装
6程序;将龙芯平台的内核源码置于所述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,生成要应用于龙芯平台的软件仓库。
具体地,将所有能在龙芯平台上安装运行的软件包构建成龙芯平台的软件仓库, 并将其复制到安装介质上。具体地,将所有能在龙芯平台上安装运行的软件包tmipsel.rpm根据不同的功能分别复制到不同的目录中,然后将这些类别不同的目录整合到一个server目录下。通过使用creater印ο命令将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 1 ^ ^ @ 5 /usr/src/kernel Φ, MB, fflill^·^ makemenuconf ig 3 入内核配置模式对内核和内核模块进行如下配置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 for hot-pluggable devices等选项,使得定制的内核得到网络的支持和IPC机制的支持,因为在龙芯平台上的很多程序,即便它没有进行网络通讯,它也用这些方式进行进程间通讯。 上述打开的其他的选项是对PCI、EISA设备的支持,是提高安装内核硬件兼容性的必要选项。对于并口设备而言,为了自动检测连接到并口设备,打开Parallel port support、 Parallel port support、PC—style hardware>IEEE 1284transfer modes 等tiJf Loadable module support 中 Enable loadable module support 禾口 Kernel module loader选项,以支持可加载的内核模块置入内核中。打开 Multiple devices driver support (RAID and LVM)禾口 RAID support 选项, 将模块md. ο置入内核当中,如果不将md. ο置入内核,仅将其作为一般的内核模块用于加载,则raid分区将无法作为根分区启动系统。这主要是因为raid设备需要在启动之初对硬盘进行读写,以决定raid分区的位置,类型等参数。对于常见的IDE设备支持,也将其置入内核,这样保证了安装程序可以直接从硬盘、软盘、光驱启动,而无须额外的设置。1. 4选择用于制定内核模块的设备。为了支持软件RAID设备和逻辑卷管理的分区,将以下这些设备定制为内核模块Linear (append) mode、RAID-O (striping) mode> RAID-I (mirroring)mode> RAID-4/ RAID-5mode> Multipath 1/0 support、Logical volume manager (LVM) support。打开SCSI support选项,将支持SCSI设备全部作为内核模块。这些内核模块经过压缩后存入初始内存镜像,以便在使用SCSI控制器时,系统能够插入正确的设备驱动模块。打开 Network device support 选项,对网络设备包括 ARCnet> Appletalk devices,Ethernet,PPP,SLIP,Token Ring等类型的设备提供支持,这些设备的驱动程序都可作为内核模块。需要说明的是,龙芯平台中的驱动程序是内核的一部分,它们提供了硬件向上层的抽象接口,在启动过程中,当某些必备的驱动程序无法使用时,系统启动就此中止。但是不能将所有的驱动程序都编译到内核当中去,因为这样会无限制地加大内核的容量,对于系统资源,尤其是引导过程中的非常有限的可用存储资源是难以承受的,因此把某些驱动程序编译成内核模块,通过加载这些内核模块来使用这些驱动程序。将上述选项配置保存起来,通过make命令编译内核生成vmlinux。通过make modules命令将上述制定的内核模块配置编译生成内核模块kernelmodules和system, map。将所编译生成的内核vmlinuz、system, map放在/boot目录下,将生成的kernelmodules放在/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中,通过该引导方法,可以成功将安装后的系统进行引导。综上所述,本发明制备了一种龙芯平台图形化安装系统,克服了现有技术对开发人员制作系统压缩包要求多维护困难、无法根据用户的需要进行定制化安装系统、需要有专业的安装人员进行安装、操作界面不友好、用户无法参与到安装过程、无法设置基本的系统环境、硬件变化导致安装失败和无法升级更新等缺陷,实现一种更易用、功能更完善的图形化安装方法,支持用户与安装程序进行交互,定制个性化操作系统。本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
权利要求
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所述的装置,其特征在于,所述引导方法,判断硬盘上的第一个分区是否存在用于存储系统引导信息的文件,若不存在,则返回所述图形化安装程序中的分区列表,将所述用于存储系统引导信息的文件设置在硬盘上的第一个分区。
全文摘要
本发明公开了一种制备龙芯平台图形化安装系统的方法及装置,该方法包括生成应用于龙芯平台的软件仓库;删除anaconda图形化安装系统中龙芯架构不支持的内容,设置支持龙芯架构的内容,基于修改后的anaconda图形化安装系统构建图形化安装程序;将龙芯的内核源码置于anaconda图形化安装系统的存储内核的目录中并进行内核配置,以生成龙芯的安装内核;删除buildinstall脚本中龙芯不支持的内容,加载适用于龙芯的设备驱动和内核模块,基于修改后的buildinstall脚本来生成内存虚拟文件系统映像文件。本发明改变现有龙芯平台系统的安装方式,将手动安装方式改为自动安装方式,节省安装时间。
文档编号G06F9/445GK102567051SQ20111041860
公开日2012年7月11日 申请日期2011年12月14日 优先权日2011年12月14日
发明者兰雨晴, 刘艳彬, 夏颖, 张永军, 方贞 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1