Grub报告“ NOT SUPPORT TAG 0x0a”

问题描述

我正在制作一个操作系统 Grub报告说“ NOT SUPPORT TAG 0x0a”(如果它是真实的)。那么我将无法指定加载内核的地址。那么我该如何链接?还是grub在标准中指定了目标地址? 这是我的标题

.section .mbt2std
tag_start:
.long 0xE85250D6
.long 0
.long tag_end-tag_start
.long -1*(tag_end-tag_start + 0 +  0xE85250D6)

.vbe:
.short 5
.short 0
.long 20
.long 1024
.long 768
.long 32
.vbe_e:
.long 0
.rl:
.short 10
.short 0
.long 24
.long 0x100000
.long 0xffffffffffffffff
.long 4096
.long 0x100000
.rl_e:

.short 0
.short 0
.long 8
tag_end:


解决方法

我不确定所有符合GRUB的加载器在任何情况下都支持所有标签。标签0a(10)用于重定位,不适用于您的静态代码。您的链接描述文件将VMA设置为0x100000,因此GRUB2将自动从内存中的0x100000(1 MiB标记)开始加载内核和数据。我从来没有亲自使用过这个标签。

其他观察结果:

  • 您可以使用BindingProvider bp = (BindingProvider)port; bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,endpointURL); Client client = ClientProxy.getClient(port); client.getInInterceptors().add(new ChangeSoapFaultCodeInterceptor()); return port.sayRuntimeException(); 在标签之间添加所需的8字节对齐方式,这样可以使对齐方式更容易维护。可以在此Stackoverflow answer中找到一个示例。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...