飞腾CPU如何使用PXE方式安装麒麟桌面系统?

简介: 飞腾CPU如何使用PXE方式安装麒麟桌面系统?

科技背景_副本 公众号_副本.png

一、环境准备

图1 | 硬件环境

名称

软件版本

配件

D2000+X100 PC机1台

(以下称为“飞腾PC机”)

uefi固件版本:

edk2-code-3.5.0.rar 

Pbf版本:

image_fix_d2000_v1.70.rar 

x100固件版本:x100_pack_v1.7-0909.tar

NVME硬盘1块

显示器 1 台

USB 键鼠 1 套

X86笔记本1台

Windows 10 专业版 22H2

TTL转USB串口线1条

| 软件环境

说明

名称

备注

获取方式

麒麟系统iso镜像文件

Kylin-Desktop-V10-GFB-Release-2205-Build05-ARM64.iso

通过麒麟获取

grub配置文件

grub.cfg

需要根据环境配置进行修改

后台回复“软件环境搭建”获取

uefi下网络启动efi执行文件

netbootaa64.efi

FTP、DHCP工具

Tftpd64_SE-4.64-setup.exe

或者tftp32 server版本

NFS工具

nfs1169.exe

初始内存磁盘

initrd.lz

从麒麟系统iso镜像中casper目录下获取

内核文件

vmlinuz

从麒麟系统iso镜像中casper目录下获取



二、环境搭建

图2 | PXE硬件环境搭建


将飞腾PC机的网口通过网线接到x86笔记本的网口,且设置笔记本网口IP为192.168.50.242(这个可以自己修改,这里是整文统一用这个IP,故特此说明)

将飞腾PC机的显示接口接显示器。

将飞腾PC机的USB接USB键鼠。

将飞腾PC机的D2000调试串口通过TTL转USB线接到x86笔记本上。




三、UEFI PXE功能确认

图3 | Boot device界面

启动飞腾PC机电源,在F2、F8、F12选择阶段,按F2进入的BOOT选择界面。如图3所示,若出现PXE选项,则认为UEFI的PXE功能是正常启动的。


图4 | GMAC开启

若未出现PXE选项,可以确定以下两个方面:

一是网线是否插好:可以通过x86笔记本的网络设置看有线网卡是否有连接。

二是需要确定固件中是否开启了网络MAC。在图4界面中选择“Enter Setup”→“Advanced Features”,查看“Enable Gmac0”“Enable Gmac1”是否是Enable状态。(因飞腾CPU有两路MAC,若不确定飞腾PC机接的是哪一路,建议这两个都Enable)


四、笔记本软件环境配置


01

X86笔记本网络配置

图5 | x86 笔记本MAC设置

找到与飞腾PC机相连的网口,配置其IP为192.168.50.242,配置网关192.168.50.1。DNS不要设置。

(这个IP地址一定要记好,后面很多配置都和这个IP相关。)


图6 | x86 笔记本防火墙关闭

同时要关闭x86笔记本的所有防火墙。


02

文件依赖环境搭建

新建一个文件夹,这里建在E盘,取名为pxe。将netbootaa64.efi(前面“环境准备”章节有网盘链接)放到pxe文件夹中。在pxe中新建iso文件夹,将麒麟iso镜像解压进去。

再在pxe文件中新建文件夹boot,boot内再建grub文件夹,将grub.cfg(前面“环境准备”章节有网盘链接)放到grub文件夹中。

图7 | 麒麟iso解压后文件夹


在pxe文件中新建文件夹casper,将图7文件夹中的casper文件夹下的initrd.lz和vmlinuz文件复制进来。

最后文件结构如图8(iso文件夹我没展开,里面是麒麟的iso镜像解压后的文件)。

图8 | 文件结构


03

TFTP,DHCP服务器

Tftpd64软件配置

安装Tftpd64_SE-4.64-setup.exe(前面“环境准备”章节有网盘链接)

Tftpd64软件用于tftp服务器和DHCP服务器。使用管理员权限打开软件。

进入“settings”。在“GLOBAL”标签中确定“TFTP server”和“DHCP server”功能是开启的。(我这里只开启了这两个功能)

图9 | 服务配置


Tftp标签配置,主要就是设置tftp目录,我们这里指向我们刚才新建的E:\pxe,其次就是咱们的TFTP的IP地址要选择到咱们前面设置的IP,即192.168.50.242。

图10 | TFTP配置


DHCP标签配置,主要也是约束IP,这里填入x86笔记本的IP 192.168.50.242,对应的网关192.168.50.1。主要两个配置项为“Boot File”,需要指定到我们前面E:\pxe下的netbootaa64.efi文件。因为我们tftp指定了路径是E:\pxe,所以这里就只填文件名netbootaa64.efi即可。

另外,最下面的“bind DHCP to this address”,要选择x86笔记本IP 192.168.50.242。

图11 | DHCP配置


DHCP环境验证

在图3界面中选择进入“UEFI Shell”。

使用ifconfig命令查看当前的飞腾PC机IP,首次进来应该是没有IP的。

> ifconfig -l eth0

 name         : eth0

 Media State  : Media present

 policy       : static

 mac addr     : 98:0E:24:5E:FB:79

ipv4 address : 0.0.0.0

 subnet mask  : 0.0.0.0

 default gateway: 0.0.0.0

 Routes (0 entries):

 DNS server   :


使用DHCP自动获取IP,使用命令“ifconfig -s eth0 dhcp”。

再次查看,可以看到有IP了192.168.50.243,这就可以说明Tftpd64的DHCP功能是正常的。

> ifconfig -s eth0 dhcp

> ifconfig -l eth0

 name         : eth0

 Media State  : Media present

 policy       : dhcp

 mac addr     : 98:0E:24:5E:FB:79

 ipv4 address : 192.168.50.243

 subnet mask  : 255.255.255.0

 default gateway: 192.168.50.1

 Routes (2 entries):

 Entry[0]

 Subnet : 192.168.50.0

 Netmask: 255.255.255.0

 Gateway: 0.0.0.0

 Entry[1]

 Subnet : 0.0.0.0

 Netmask: 0.0.0.0

 Gateway: 192.168.50.1

 DNS server   :


同时可以在Tftpd64的DHCP server中可以查看log,确实也是分配了192.168.50.243。

图12 |


之后在飞腾PC机上ping一下x86笔记本(IP 192.168.50.242),确保网络是通的。(要不通记得查下防火墙)

> ping 192.168.50.242

InstallProtocolInterface:

41D94CD2-35B6-455A-8258-D4E51334AADD F7FFFEA0

Ping 192.168.50.242 16 data bytes.

16 bytes from 192.168.50.242 :icmp_seq=1 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=2 ttl=0 time0~19ms

16 bytes from 192.168.50.242 :icmp_seq=3 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=4 ttl=0 time0~19ms

16 bytes from 192.168.50.242 :icmp_seq=5 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=6 ttl=0 time0~19ms

6 packets transmitted, 6 received, 0% packet loss, time 0ms

Rtt(round trip time) min=0~19ms max=0~19ms avg=0~19ms


04

NFS服务器

NFS软件配置

安装nfs1169.exe(前面“环境准备”章节有网盘链接)。NFS软件用于NFS服务器。使用管理员权限打开软件。

设置如下:

图13 |


在haneWIN nfs 服务器软件“输出”标签,点击“编辑输出表文件”,

填写NFS的文件路径,-public是权限,-name是在软件里显示的名字(名字可以自己起)。

因为我们把麒麟的iso解压到了E:\pex的iso文件夹里,所以我们这里NFS文件路径填写e:\pxe\iso。

这里特别强调,-name的名字是要记住的,后面需要用,我们这里是kylin-nfs。

图14 | haneWIN配置


点击“重启服务器”

图15 |


如窗口没有变化,需要通过别的方式重启一下。

从win开始菜单找到“haneWIN软件”的“重启所有服务”,以管理员方式去执行。

图16 | 重启NFS服务


执行后,再去点haneWIN的“重启服务器”,上面窗口的nfs路径发生改变。

图17 |


NFS验证

我们的测试方式是在x86笔记本上“自己测自己”。

先开启win的NFS服务。在“控制面板”→“程序和功能”→“启用或关闭windows功能”中,选中“NFS服务”中的“NFS客户端”和“管理工具”。

图18 | 开启NFS服务


进入cmd命令行,执行mount命令。

我们mount一下我们的NFS,挂载NFS目录到某个盘符(如Z盘)。

这里需要注意:我们现在电脑ip是192.168.50.242,通过haneWIN把我们的e:\pxe\iso,name成了kylin-nfs,所以我们这里要mount的不是pxe iso而是kylin-nfs,也就是使用haneWIN脚本里name后的名字。

图19 | mount成功


如果挂不成功,会报错。下图我就是挂的/pxe/iso目录,这个是不对的。

图20 | mount失败

图21 | 挂载前

图22 | 挂载后


05

脚本修改

软件环境搭建完毕,下面进行相关配置工作。

PXE启动原理介绍

图23 | PXE原理(图片来源:网络)

①即“三、UEFI PXE功能确认”章节确认的部分。

②即“ DHCP环境验证”章节验证的部分。

③即“Tftpd64软件配置”章图10中配置的。

④即grub.cfg,在“文件依赖环境搭建”章节,放在了E:\pxe\boot\grub文件夹中。grub的配置文件决定了后面系统的启动。

⑤⑥这两步是④之后水到渠成的了。


grub.cfg的配置修改

set default=0
set timeout=5
set color_normal=white/black
set color_highlight=black/light-gray
insmod part_gpt
insmod part_msdos
insmod gzio
menuentry "Net Install Kylin" {
linux  /casper/vmlinuz boot=casper netboot=nfs ip=dhcp nfsroot=192.168.50.242:/kylin-nfs rootwait ro locale=zh_CN KEYBOARDTYPE=pc KEYTABLE=us ignore_uuid quiet
initrd  /casper/initrd.lz
}
menuentry "Install UOS" {
set gfxpayload=keep
linux /uos/vmlinuz console=tty boot=live netboot=nfs nfsroot=192.168.1.5:/opt/nfs/uos/ ip=192.168.1.10 componentsunion=overlay locales=zh_CN.UTF-8 livecd-installer
initrd /uos/initrd.img
}

下面我们就grub.cfg里面需要修改的内容做说明。

这是最终的grub.cfg文件,含有两个启动项,一个是麒麟的,一个是UOS的。此处主要说明麒麟部分:

1. `menuentry "Net Install Kylin" `: 这是一个菜单项的标题,显示在启动菜单中供选择。在这个例子中,菜单项的标题是"Net Install Kylin"。

2. `boot=casper`: 设置Linux内核的引导参数,告诉内核使用"Casper"启动模式。

在Ubuntu和一些基于Ubuntu的Linux发行版中,"Casper"是一个用于实现Live CD/Live USB功能的启动模式。Live CD/Live USB是一种可在计算机上运行操作系统而无需进行实际安装的方式。"Casper"模式通过在内存中加载完整的操作系统,并将根文件系统挂载为只读模式,使用户可以在没有对硬盘进行写入的情况下使用操作系统。

3. `netboot=nfs`: 指定网络启动模式,告诉内核通过NFS进行网络引导。

4. `nfsroot=192.168.50.242:/kylin-nfs`: 指定NFS根目录的位置。这里的`192.168.50.242:/kylin-nfs`表示NFS服务器的IP地址和共享路径。和“NFS验证”章节验证的一样,我们NFS的目录需要是haneWIN配置里name后的名字,也就是kylin-nfs。

5. `linux /casper/vmlinuz`: 指定Linux内核的位置。这里的`/casper/vmlinuz`是内核映像文件的路径。因为这个是需要采用TFTP的方式下载的,又因为我们TFTP设置的路径为E:\pxe(参看图10),且我们将麒麟iso中的内核vmlinuz放在了E:\pxe\casper目录下,所以我们这里指定内核位置就可以了。

6. `initrd /casper/initrd.lz`: 指定用于启动的初始内存盘(initrd)的位置。这里的`/casper/initrd.lz`是初始内存盘文件的路径。这个同理上面的5。

7.  `ip=dhcp`: 使用DHCP协议获取网络配置信息,包括IP地址、子网掩码、网关等。

8.  `rootwait`: 等待根文件系统准备就绪后再启动。

9. `ro`: 将根文件系统以只读模式挂载,防止意外修改。

10. `locale=zh_CN`: 设置系统的本地化语言为简体中文。

11. `KEYBOARDTYPE=pc`: 指定键盘类型为"pc"。

12. `KEYTABLE=us`: 指定键盘布局为美式英语。

13. `ignore_uuid`: 忽略根文件系统的UUID,使用设备路径进行引导。

14. `quiet`: 在启动过程中禁用大部分内核消息的显示,使启动过程更加静默。


06

启动安装

这时候再在界面中选择“UEFI PXEv4”,等待进入麒麟安装界面。

相关文章
|
6月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
3月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
150 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
21天前
|
存储 人工智能 vr&ar
转载:【AI系统】CPU 基础
CPU,即中央处理器,是计算机的核心部件,负责执行指令和控制所有组件。本文从CPU的发展史入手,介绍了从ENIAC到现代CPU的演变,重点讲述了冯·诺依曼架构的形成及其对CPU设计的影响。文章还详细解析了CPU的基本构成,包括算术逻辑单元(ALU)、存储单元(MU)和控制单元(CU),以及它们如何协同工作完成指令的取指、解码、执行和写回过程。此外,文章探讨了CPU的局限性及并行处理架构的引入。
转载:【AI系统】CPU 基础
|
21天前
|
人工智能 缓存 并行计算
转载:【AI系统】CPU 计算本质
本文深入探讨了CPU计算性能,分析了算力敏感度及技术趋势对CPU性能的影响。文章通过具体数据和实例,讲解了CPU算力的计算方法、算力与数据加载之间的平衡,以及如何通过算力敏感度分析优化计算系统性能。同时,文章还考察了服务器、GPU和超级计算机等平台的性能发展,揭示了这些变化如何塑造我们对CPU性能的理解和期待。
转载:【AI系统】CPU 计算本质
|
5月前
|
缓存 监控 Linux
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
|
2月前
|
人工智能 缓存 并行计算
【AI系统】CPU 计算本质
本文深入探讨了CPU计算性能,分析了算力敏感度及技术趋势对CPU性能的影响。文章通过具体数据和实例,解释了算力计算方法、数据加载与计算的平衡点,以及如何通过算力敏感度分析优化性能瓶颈。同时,文章还讨论了服务器、GPU和超级计算机等不同计算平台的性能发展趋势,强调了优化数据传输速率和加载策略的重要性。
58 4
|
2月前
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
86 4
|
2月前
|
存储 人工智能 vr&ar
【AI系统】CPU 基础
CPU,即中央处理器,是计算机的核心组件,负责执行指令和数据计算,协调计算机各部件运作。自1946年ENIAC问世以来,CPU经历了从弱小到强大的发展历程。本文将介绍CPU的基本概念、发展历史及内部结构,探讨世界首个CPU的诞生、冯·诺依曼架构的影响,以及现代CPU的组成与工作原理。从4004到酷睿i系列,Intel与AMD的竞争推动了CPU技术的飞速进步。CPU由算术逻辑单元、存储单元和控制单元三大部分组成,各司其职,共同完成指令的取指、解码、执行和写回过程。
50 3
|
2月前
|
缓存 人工智能 算法
【AI系统】CPU 计算时延
CPU(中央处理器)是计算机系统的核心,其计算时延(从指令发出到完成所需时间)对系统性能至关重要。本文探讨了CPU计算时延的组成,包括指令提取、解码、执行、存储器访问及写回时延,以及影响时延的因素,如时钟频率、流水线技术、并行处理、缓存命中率和内存带宽。通过优化这些方面,可以有效降低计算时延,提升系统性能。文中还通过具体示例解析了时延产生的原因,强调了内存时延对计算速度的关键影响。
46 0
|
3月前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。