在 xeon-phi 上引导自定义内核

     2023-02-16     251

关键词:

【中文标题】在 xeon-phi 上引导自定义内核【英文标题】:Booting custom kernel on xeon-phi 【发布时间】:2015-04-08 20:36:23 【问题描述】:

我正在尝试在 Xeon-phi 上启动自定义内核,而不是默认的 Linux 内核。在this link,我找到了一种交叉编译内核的方法,该内核使用 k1om-mpss-linux-gcc 交叉编译器成功编译。交叉编译是否足够?我收到错误

mykernel.img 不是 k1om Linux bzImage

编辑: 因此,我使用 /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc 编译器编译了一个简单的 helloworld.c 程序和内核源代码。我在可执行文件上得到了 objdump -f 的两种不同类型的结果。

对于 helloworld.c:

hello: file format elf64-k1om architecture: k1om, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x0000000000400400

对于我的内核:

mykernel: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x0010000c

我使用相同的编译器编译,但它们显示不同的架构。这是什么原因?

【问题讨论】:

你现在用的是什么版本的MPSS,你编译的是哪一个? 我使用的是 3.4.2。我想要做的是用另一个内核替换当前的 linux 内核。现在我的内核应该需要一些补丁,但我无法继续,因为它没有给出任何错误,只是即使在我成功交叉编译后它也无法识别图像。 【参考方案1】:

首先要弄清楚mykernel.img 是什么。尝试在其上运行file

 $ file  /opt/mpss/3.4/sysroots/k1om-mpss-linux/boot/vmlinux-2.6.38.8+mpss3.4
 /opt/mpss/3.4/sysroots/k1om-mpss-linux/boot/vmlinux-2.6.38.8+mpss3.4: ELF 64-bit LSB executable, version 1 (SYSV), statically linked, BuildID[sha1]=0xa4c16ee85c11aca4e78dc4ae46d3827fb74289c1, not stripped

$ objdump -f /opt/mpss/3.4/sysroots/k1om-mpss-linux/boot/vmlinux-2.6.38.8+mpss3.4

/opt/mpss/3.4/sysroots/k1om-mpss-linux/boot/vmlinux-2.6.38.8+mpss3.4:     file format elf64-k1om
architecture: k1om, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000001000000

【讨论】:

对于文件,我得到“x86 引导扇区”,对于 objdump,“文件格式无法识别”。 你有一个磁盘映像而不是 Linux 内核。磁盘映像包括引导扇区、引导加载程序和 Linux 内核。查找以 vmlinux* 开头的其他文件 好的。所以这些是正确的结果-mykernel: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped mykernel: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x0010000c我仍然得到同样的错误mykernel is not a k1om Linux bzImage 也许吧,但它确实应该有 k1om 架构。 看来你没有正确使用交叉编译器,而是使用了原生gcc。【参考方案2】:

原始问题的答案 - 不,不幸的是,它不像交叉编译那么简单。对 MPSS 附带的内核进行了许多更改。我不知道所有的变化,但我知道的一个重要变化是,他们必须在协处理器上添加对更大寄存器集的支持,以便能够在上下文切换时保存状态。

至于为什么文件格式是elf32-i386而不是elf32-k1om -

您引用的网站提到在可能对文件进行一些更改后重新编译 MPSS 附带的内核。您会注意到他们还复制了已安装内核版本的配置文件。所以他们拥有所有文件来完全按照原来的方式重新制作内核。

我怀疑,在您的情况下,a)您的源目录中存在某种配置脚本,该脚本选择了您正在运行的体系结构并在 makefile 运行时造成混乱,或者 b)您的 makefile 不知道k1om 是什么。在任何一种情况下,它都会退回到它认为的最低公分母 i386。正如我所说,这只是我的一个怀疑,但仔细阅读您的 makefile 应该会找到答案。

【讨论】:

为 HP 瘦客户端编译自定义内核并使用 grub 创建可引导 ISO

】为HP瘦客户端编译自定义内核并使用grub创建可引导ISO【英文标题】:CompilingcustomkernelforHPThinclientandcreatingbootableISOwithgrub【发布时间】:2015-08-0602:53:58【问题描述】:我用一个非常好的库制作了简单的操作系统,我编译了所有内... 查看详情

Vue - 在引导表自定义组件上更新数据

】Vue-在引导表自定义组件上更新数据【英文标题】:Vue-UpdateDataonBootstrapTableCustomComponent【发布时间】:2019-04-3017:02:24【问题描述】:我正在尝试在Vue2.0中制作一个自定义组件,以扩展BootstrapVue库<b-table>的现有功能。除... 查看详情

为自定义内核制作可启动的随身碟

...自定义内核,并且能够按照教程中的说明在使用GRUB作为引导加载程序的虚拟机上启动它。我认为如果我可以使用可启动的随身碟在裸硬件上做同样的事情会更有趣。Q1.我想用正常的程序制作一个可启动的linuxpendrive, 查看详情

表单元素上的自定义引导验证

】表单元素上的自定义引导验证【英文标题】:CustomBootstrapvalidationonformelement【发布时间】:2020-07-2417:24:17【问题描述】:我正在注册表中收集ABN(澳大利亚商业号码)。我在这里编写了一些基于ABN验证规则进行验证的javascript:... 查看详情

如何在谷歌计算引擎实例上安装自定义内核?

】如何在谷歌计算引擎实例上安装自定义内核?【英文标题】:HowdoIinstallacustomkernelonagooglecomputeengineinstance?【发布时间】:2017-11-0915:03:28【问题描述】:我想在GoogleComputeEngine实例上安装自定义内核映像。我有一个正在运行的实... 查看详情

在引导程序中自定义下拉样式?

】在引导程序中自定义下拉样式?【英文标题】:Customizingthedropdownstyleinbootstrap?【发布时间】:2016-10-1808:07:55【问题描述】:如果您单击此链接Bootstrapnavbar,然后向下滚动到“响应式导航栏”并单击下拉菜单,则下拉菜单上有一... 查看详情

如何在 WordPress 中实现自定义标头的引导小部件代码?

】如何在WordPress中实现自定义标头的引导小部件代码?【英文标题】:HowtocanimplementbootstrapwidgetcodeforcustomheaderinWordPress?【发布时间】:2019-07-1703:22:25【问题描述】:我在网站上工作,我不是引导程序的专业人士。这是我的主题标... 查看详情

17.在内核源码上增加自定义驱动(代码片段)

...ttps://www.cnblogs.com/standardzero/p/12551189.html前言编写简单的自定义驱动创建相关目录和文件关联上一级目录的Kconfig和Makefile配置&编译 前言在了解了Kconfig和Makefile的相关原理后,是不是有种在源码上自定义驱动的冲动。放心,... 查看详情

AWS EMR 集群在自定义引导时终止

】AWSEMR集群在自定义引导时终止【英文标题】:AWSEMRClusterterminateswhilecustombootstrapping【发布时间】:2015-10-0405:02:58【问题描述】:我正在运行以下命令来创建EMR集群,并且集群在引导阶段终止awsemrcreate-cluster--ami-version3.1.0\\--ami-ver... 查看详情

导航下拉切换问题与引导程序

】导航下拉切换问题与引导程序【英文标题】:NavigationDrop-DownToggleIssueswithBootstrap【发布时间】:2013-04-2700:01:18【问题描述】:我最近在www.seosherpas.com上重新设计了我的Wordpress网站主页。这是根据使用Bootstrap的主题设计的。在Thes... 查看详情

错误 - 在 scikit-learn 中为 SVM 使用自定义内核

】错误-在scikit-learn中为SVM使用自定义内核【英文标题】:Error-UsingcustomkernelsforSVMinscikit-learn【发布时间】:2014-04-1507:27:42【问题描述】:我使用自己定义的内核函数创建了一个SVM实例。当我尝试在创建的模型上运行交叉验证时,... 查看详情

如何在 Wix 自定义引导程序应用程序中进行捆绑更新?

】如何在Wix自定义引导程序应用程序中进行捆绑更新?【英文标题】:HowtodobundleupdateinWixcustombootstrapperapplication?【发布时间】:2020-03-1214:39:20【问题描述】:我正在尝试更新使用自定义引导程序应用程序的捆绑包,但我不知道该... 查看详情

如何防止 wix 自定义引导程序卸载 UI 在升级过程中显示

】如何防止wix自定义引导程序卸载UI在升级过程中显示【英文标题】:HowtopreventwixcustombootstrapperUninstallationUIfromshowingintheupgradeprocess【发布时间】:2019-05-2706:12:24【问题描述】:我有一个自定义引导应用程序安装程序,它与安装、... 查看详情

cortana 自定义技能在 Windows 手机上不起作用

...调用Cortana技能时,它没有调用技能。相反,它一直将我引导到Bing结果。我使用 查看详情

如何在 blazor 组件中显示来自后端的自定义引导警报

】如何在blazor组件中显示来自后端的自定义引导警报【英文标题】:HowdoIdisplayacustombootstrapalertfrombackendinblazorcomponent【发布时间】:2020-08-2404:19:46【问题描述】:我创建了一个可以填写并保存到数据库的简单表单,但我不知道如... 查看详情

R:使用自定义内核(用户定义内核)的 SVM 性能在 kernlab 中不起作用

】R:使用自定义内核(用户定义内核)的SVM性能在kernlab中不起作用【英文标题】:R:SVMperformanceusingcustomkernel(userdefinedkernel)isnotworkinginkernlab【发布时间】:2012-08-1814:30:23【问题描述】:我正在尝试使用用户定义的内核。我知道ker... 查看详情

使用 SASS 函数主题颜色级别在引导程序 4 中创建自定义渐变

】使用SASS函数主题颜色级别在引导程序4中创建自定义渐变【英文标题】:Createcustomgradientinbootstrap4usingSASSfunctiontheme-color-level【发布时间】:2019-09-2012:56:28【问题描述】:我已设置Bootstrap4主题变量如下://custom-theme.scss$primary:green... 查看详情

WIX、引导程序或自定义操作

】WIX、引导程序或自定义操作【英文标题】:WIX,Bootstrapperorcustomactions【发布时间】:2014-01-2911:08:33【问题描述】:我有一个WIX安装程序,需要启动4个其他安装程序。所有文件都在Exe文件中,但我们可能需要使用MSI安装程序添加... 查看详情