本章节主要内容为:中兴新支点服务器操作系统(CGSL)内核编译和定制功能ATCA的介绍。
注:本Linux新人培训教程以中兴新支点服务器操作系统(CGSL)为例。
内核编译可以让用户更换系统内核,使用最新内核的新特性,定制自己想要的系统等。用户可以根据自己的实际需要来选择了解此内容。下面我们将分步骤演示内核的编译过程。
12.1.内核编译 1.要进行内核编译,我们首先需要下载最新稳定的内核版本,用户可自行前往 kernel官网 下载自己想要的内核源代码。 2.将下载好的压缩包放在 /usr/src/ 目录下,此目录一般为内核代码存放目录,此处我们下载的源代码是 4.9 版本.tar.xz 格式的压缩包,解压步骤为 xz -d linux-4.9.tar.xz 将.tar.xz 先解压为 tar 包,再运行 tar -xvf linux-4.9.tar 命令将 tar 最终解压到 linux-4.9 目录。 3.要成功编译内核,我们还需要用到 ncurses 库,首先到 ncurses 官网下载源代码并安装。下载解压后进入到ncurses 目录,依次运行 ./configuremakemake install 即可安装好 ncurses库。用户也可以通过终端直接安装 ncurses 依赖库的方法解决依赖关系。 4.一切准备步骤完成后,就可以进行我们的内核配置编译了。首先进入到内核目录,运行 make xconfig 即可启动内核配置图形界面,如下图 12-1 所示,修改后点击保存图标后退出;或者也可以 make menuconfig 进入菜单式配置界面,如下图 12-2 所示,方向键切换行,空格键选择是否勾选,完成后按【Save】回车保存后【Exit】退出即可。
图 12-1 图形化配置
图 12-2 菜单式配置 5.配置完成后,就可以进行内核的编译了,使用一条简单的命令 make all -j4即可,此过程根据机器性能会花 20~40 分钟,如下图 12-3 所示。
图 12-3 内核编译 注意:如果编译过程提示致命错误:缺少 openssl/bio.h、openssl/opensslv.h 等类似错误消息,是系统缺少openssl库引起的,终端运行 yum install openssl-devel 命令安装该库,重新编译错误便会消失。 6.编译内核之后就到了安装内核的部分了,主要以下分为几步进行: ① 安装模板 在内核目录运行 make modules_install 会创建对应的目录,并把对应的模块文件拷贝到目录/libs/modules/。 ② 拷贝 bzImage 文件 bzImage 文件是内核映像文件,是启动内核所必需的,我们应当把它拷贝到/boot 目录下。 首先切换到/boot 目录下,新建一个文件夹: # mkdir mykernel 把 bzImage 拷贝到该目录下: #cp/usr/src/linux-4.9/arch/x86/boot/bzImage ./mykernel/ 把 bzImage 命令为一般格式: # cd /boot/mykernel # mv bzImage vmlinuxz-4.9.0 ③ 制作 initrd 文件 使用 mkinitrd 命令制作 initrd-4.9.0: # mkinitrd /boot/mykernel/initrd-4.9.0.img 4.9.0 ④ 修改 grub 启动项 grub 启动配置文件 grub.cfg 路径为/boot/grub2/,先 cd 到该目录,vim命令进入编辑: # vim grub.cfg 我们主要修改以下的内容: 1) 如图 12-4,把 set timeout=0 这一行的 0 改为 5 或者 10 等数字,该项为设置启动系统时等待选择内核的秒数。
图 12-4 2) 如图 12-5,找到配置文件方框部分的内容,该内容为内核启动参数的模板,将这块内容全部复制出来,在下方粘贴修改。
图 12-5 3) 如图 12-6,模板前面的内容主要为内核的描述等,用户可根据自身需要进行修改;我们主要修改下方两个方框的内容: 将 linux16 /boot/vmlinuxz-4.8.6-201.fc21.x86_64 这一行改为 linux16 /boot/mykernel/vmlinuxz-4.9.0; 将 initrd16 /boot/initramfs-4.8.6-201.fc21.x86_64.img 这一行改为initrd16 /boot/mykernel/initrd-4.9.0.img 修改完成后,:wq 保存退出。
图 12-6 以上步骤全部完成后,重新启动系统,成功编译安装内核的话,将会出现如图 12-7 的启动画面,第二项 NSDL 4.9.0 即为我们新编译的内核,方向键选择回车即可启动该内核。进入系统,终端输入 uname -r 可以确认系统运行内核的确为新的 4.9.0,如下图 12-8 所示。
图 12-7
图 12-8
12.2.定制功能ATCA 12.2.1.概述 编写本节的目的在于详细地说明 CGSL V3.02 系列版本中 ATCA 单板上驱动的升级安装的操作步骤。 12.2.2.驱动安装准备 本文档适用于 CGSL V3.02 系列版本的 e1000 网卡驱动、qla2xxx 光纤驱动、(细化的)SBCO 和SBCW 点灯驱动和 KCS 驱动接口的升级或安装。从 atca-drivers-2.0.0 版本开始,驱动包中包含了e1000 网卡驱动、qla2xxx 光纤驱动、细化的 SBCO 和 SBCW 点灯驱动和 KCS 驱动接口。低于atca-drivers-2.0.0 版本的驱动包中只包含 e1000 网卡驱动、qla2xxx 光纤驱动和 SBCO 和 SBCW 点灯驱动。请根据需要选择驱动包版本。 如果是缺省安装,系统中已经包含这几个驱动的升级和安装命令。对于不含升级安装命令的系 统,需要手工安装 CGSL 提供的 RPM 包。可以通过下面的命令来确认系统是否已经安装了 RPM 驱动包: rpm –qa |grep atca-drivers 如果有形如“atca-drivers-1.1.0-zte”或“atca-drivers-2.0.0-el5”的显示,则表示系统已经自带了驱动程序。否则需要手工安装驱动的 RPM 包或通过安装系统程序来安装驱动。 12.2.2.1.手工安装驱动的 RPM 包 在系统没有自带 RPM 包的情况下,需要执行如下步骤: 1、获取 RPM 包 请根据系统所用版本到 ISO 安装光盘中获取相应的 RPM 包,其名称为: atca-drivers-1.1.0-zte.i386.rpm(32 位系统) 或 atca-drivers-1.1.0-zte.x86_64.rpm(64 位系统)。 2、安装 RPM 包 rpm –ivh atca-drivers-1.1.0-zte.i386.rpm 或 rpm –ivh atca-drivers-1.1.0-zte.x86_64.rpm 3、检查确认 正确安装完成后,e1000update、sbcoled、sbcwled 和 qla2xxxupdate 这四个命令会被添加到/usr/bin/目录下。 12.2.2.2.安装系统补丁程序 1、安装系统补丁程序 从 V3.02.00.P3 开始,系统补丁程序中包含了 atca-drivers-2.0.0 驱动包。请根据所需补丁程序版本号下载补丁程序并按照手册说明安装。 2、检查确认 正确安装完成后,e1000update、sbcoled、sbcwled、qla2xxxupdate 和 sbckcs 这五个命令会被添加到/usr/bin/目录下。 12.2.3.e1000 驱动的升级 12.2.3.1.e1000 驱动升级说明 该驱动会将 e1000 驱动版本升级至 7.6.15.4-NAPI 版本,并自动加载到内存中,适用于需要升级e1000 驱动的场景。当系统使用 e1000 网卡使用的是低版本的 e1000e 驱动时,也会将其更换为新版本的 e1000 驱动。 12.2.3.2.e1000 驱动安装步骤 1、执行 cd 命令转到用户目录下: [root@localhost ~]#cd 2、确认需要升级 e1000 驱动后即可执行 e1000update 命令执行升级操作。执行结果示例如下: [root@localhost ~]# e1000update Begin to update e1000 driver ... ... Finished: update operation successful. 3、升级后的结果确认 执行上述操作后,e1000 驱动就被自动更新,可以通过执行“modinfo e1000”和“ethtool -i ethx”(请使用实际的网卡名替代 ethx)来检查版本号是否为 7.6.15.4-NAPI;如果是,表明驱动更新成功。如果还需要测试与 GES 间的连接灯的显示,则要重启系统。如果重启后,与 GES 之间的网络连接指示灯恢复正常,表明驱动升级正确。 12.2.4.点灯驱动的安装 12.2.4.1.点灯驱动安装说明 该操作适用于 SBCO/SBCW 单板上需要安装面板上 LED 的点灯驱动的情况。配置后,驱动会被自动加载到内存中并开始工作。 在 atca-drivers-2.0.0 版本的驱动包中,提供了细化的点灯驱动控制功能,可以设置 ACT 灯和HOST 默认的颜色;并提供了功能接口函数,用于设置 ACT 为绿色和对 HOST 灯进行闪烁控制。对于 atca-drivers-2.0.0 版本之前的驱动包,只能将 ACT 灯和 HOST 灯置为熄灭状态。 12.2.4.2 SBCO.点灯驱动安装步骤 1、执行 cd 命令转到用户目录下: [root@localhost ~]#cd 2、执行 SBCO 单板的点灯驱动安装命令 sbcoled: [root@localhost ~]# sbcoled 3、升级后的结果确认 执行完毕之后,SBCO 单板的点灯驱动就会被自动加载到内存中,面板上 ACT 和 HOST 指示灯由原先的橙色变为灯灭。 也可以通过执行测试程序来确认, SBCO 单板上的点灯测试程序为: /lib/modules/sbcoled/sbcoledtest-`uname -r`。执行后,ACT 和 HOST 灯会按照打印提示的颜色闪烁。 如果安装的是细化的 SBCO 点灯驱动,会在系统中添加点灯控制的头文件和库函数文件。 库函数的路径与操作系统的位数有关,如下所示: 32 位系统: /usr/local/include/ leddrv_common_param.h /usr/local/lib/libleddrv-dynamic.so /usr/local/lib/libleddrv-static.a 64 位系统: /usr/local/include/ leddrv_common_param.h /usr/local/lib64/libleddrv-dynamic.so /usr/local/lib64/libleddrv-static.a 12.2.4.3.SBCW 点灯驱动安装步骤 1、执行 cd 命令转到用户目录下: [root@localhost ~]#cd 2、执行 SBCW 单板的点灯驱动安装命令 sbcwled: [root@localhost ~]# sbcwled 3、升级后的结果确认 执行完毕之后,SBCW 单板的点灯驱动就会被自动加载到内存中,面板上 ACT 和 HOST指示灯由原先的橙色变为灯灭。 也可以通过执行测试程序来确认,SBCW单板上的点灯测试程序为: /lib/modules/sbcwled/sbcwledtest-`uname -r`。执行后,ACT 和 HOST 灯会按照打印提示的颜色闪烁。 如果安装的是细化的 SBCW 点灯驱动,会在系统中添加点灯控制的头文件和库函数文件。 库函数的路径与操作系统的位数有关,如下所示: 32 位系统: /usr/local/include/ leddrv_common_param.h /usr/local/lib/libleddrv-dynamic.so /usr/local/lib/libleddrv-static.a 64 位系统: /usr/local/include/ leddrv_common_param.h /usr/local/lib64/libleddrv-dynamic.so /usr/local/lib64/libleddrv-static.a 12.2.5.qla2xxx 驱动的安装 12.2.5.1.qla2xxx 驱动升级说明 当在单板上通过 Qlogic 光纤控制器(FC)使用光纤连接磁阵后,如果出现指示灯亮为黄色或者不是处于交叉闪烁状态的情况,就需要升级 qla2xxx 系列驱动。 12.2.5.2.qla2xxx 驱动安装步骤 1、执行 cd 命令转到用户目录下: [root@localhost ~]#cd 2、确认需要升级 qla2xxx 系列驱动后即可执行 qla2xxxupdate 命令执行升级操作。执行结果示例如下: [root@localhost ~]# qla2xxxupdate Begin to update qla2xxx drivers for FC ... ... Finished: update operation successful. 3、升级后的结果确认 当升级完成后,光纤连接口的指示灯由黄色变成绿灯,如果连接了磁阵,指示灯会交替闪烁。 使用 lsmod 命令查询,可以获取到内存中加载的模块,形如: [root@localhost ~]# lsmod |grep qla qla2400 238592 0 qla2xxx_conf 335368 1 qla2xxx 348960 1 qla2400 intermodule 37892 2 qla2xxx_conf,qla2xxx scsi_mod 196697 8 qla2xxx,scsi_dh,sg,libata,mptspi,mptscsih, scsi_transport_spi,sd_mod [root@localhost ~]# 12.2.6 KCS 驱动接口的安装 12.2.6.1 KCS 驱动接口功能说明 KCS 驱动功能给用户层提供了获取单板板位信息的功能接口,它通过 CGSL 系统中的 IPMI 协议内核驱动模块来与 BMC 通信,获取相关单板的架、框、槽信息。为了能获取正确的槽位信息,需要满足如下个条件: 一是需要单板上的 IPMC 支持该功能; 二是要有 root 用户权限来开启系统的 IPMI 服务和访问 IPMI 字符设备。 提示:支持槽位信息查询的 IPMC 版本请咨询平台。 在需要使用该功能时,通过执行 sbckcs 命令就可以安装 KCS 驱动接口功能所需的头文件和库文件。 12.2.6.2.KCS 驱动接口安装步骤 1、执行 cd 命令转到用户目录下: [root@localhost ~]#cd 2、确认需要使用 KCS 驱动接口后,即可执行 sbckcs 命令执行安装操作。执行结果示例如下: [root@localhost ~]# sbckcs 3、升级后的结果确认 KCS 驱动接口安装之后,会在系统中添加 KCS 驱动接口的头文件和库函数文件。库函数的路径与操作系统的位数有关,如下所示: 32 位系统: /usr/local/include/sbc_kcs_common.h /usr/local/lib/libsbc-kcs.so /usr/local/lib/ libsbc-kcs.a 64 位系统: /usr/local/include/sbc_kcs_common.h /usr/local/lib64/libsbc-kcs.so /usr/local/lib64/libsbc-kcs.a 为了方便测试,提供了获取单板槽位的测试程序,该命令路径如下所示: [root@localhost lib]# cd /usr/local/bin/ [root@localhost bin]# ./sbc-testslot 12.2.6.3.配置 IPMI 服务 IPMI 服务能否成功启动与硬件相关,请先确认硬件是否支持。在拥有 root 用户权限之后,可以通过如下步骤来确认和开启 IPMI 服务。 1、确认系统是否已经开启了 IPMI 服务。如果开启了该服务,执行“service ipmi status”命令的响应示例如下: [root@ZXUN-CG2 ~]# service ipmi status ipmi_msghandler module loaded. ipmi_si module loaded. ipmi_devintf module loaded. /dev/ipmi0 exists. 2、在系统没有开启 IPMI 服务的情况下,执行“service ipmi start”启动服务。如果硬件不支持,会显示相应的提示信息。成功的执行结果示例如下: [root@ZXUN-CG2 ~]# service ipmi start Starting ipmi drivers: [确定] 3、如果需要重启 ipmi 服务可以执行“service ipmi restart”,示例如下: [root@ZXUN-CG2 ~]# service ipmi restart Stopping all ipmi drivers: [确定] Starting ipmi drivers: [确定] 4、如果要设置 ipmi 服务在系统启动时自动启动,可以执行“chkconfig ipmi on”命令来设置: [root@ZXUN-CG2 ~]# chkconfig ipmi on
相关主题 |