无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 7778|回复: 23
打印 上一主题 下一主题

GRUB4DOS for UEFI 外部命令编译环境搭建完毕

[复制链接]
1#
发表于 2020-11-18 11:41:41 | 显示全部楼层
是不是把指针直接转成32位整型数据了?64位下要用64位的整型。
如果不是的话,加上 -Wno-int-to-pointer-cast 应该就可以了吧
回复

使用道具 举报

2#
发表于 2020-11-21 20:57:04 | 显示全部楼层
2011yaya2007777 发表于 2020-11-21 20:49
已经解决。对编写 GRUB4DOS 外部命令感兴趣,有能力的坛友,欢迎再次讨论。

现在uefi64支持外部命令了?
能不能在外置命令中取得 system_table 和 image_handle?
回复

使用道具 举报

3#
发表于 2020-11-22 18:55:40 | 显示全部楼层
话说我编译原版外部命令遇到两个错误:
git clone https://github.com/chenall/grubutils
cd grubutils/g4dext
chmod +x build
./build

点评

我再看一下,很久没有弄这些了,估计有一些文件已经丢失了^_^  详情 回复 发表于 2020-11-23 09:26
回复

使用道具 举报

4#
发表于 2020-11-22 20:48:30 | 显示全部楼层
本帖最后由 wintoflash 于 2020-11-22 20:50 编辑

编译命令是什么?

我用的是
CFLAGS = -nostdlib -DASM_BUILD_DATE=\""$(ASMDATE)"\" -fno-reorder-functions -fno-strict-aliasing -fno-exceptions -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-zero-initialized-in-bss -fno-function-cse -fno-jump-tables --entry main -Wl,-N -Wl,--build-id=none -m64 -mno-sse -Wl,-Ttext -Wl,0 -fPIE
我只把 -m32 改成了 -m64
回复

使用道具 举报

5#
发表于 2020-11-23 09:33:19 | 显示全部楼层
本帖最后由 wintoflash 于 2020-11-23 09:41 编辑
chenall 发表于 2020-11-23 09:26
我再看一下,很久没有弄这些了,估计有一些文件已经丢失了^_^

昨天晚上我研究了一下,把编译报错都修复了,同时去掉build脚本,改用Makefile来组织编译。
https://github.com/a1ive/grubutils
编译方法:
make -C umbr
make -C g4dext
grubutils里面的fbinst之类的还没弄好。

另外,grub4dos里面的 setcolor 函数改变了,但是g4dext/vbe.c里面的 setcolor 函数没有随之改变。
https://github.com/chenall/grubu ... d/g4dext/vbe.c#L159
https://github.com/chenall/grubu ... ude/grub4dos.h#L487

点评

现在的话用cmake会比较多吧 自动生成Makefile  详情 回复 发表于 2020-11-23 10:13
我已经添加了权限,grub4dos和grubutil你都可以直接更新代码。 你直接更新就好了^_^,我可以偷懒。  详情 回复 发表于 2020-11-23 10:00
回复

使用道具 举报

6#
发表于 2020-11-23 09:50:23 | 显示全部楼层
2011yaya2007777 发表于 2020-11-23 09:42
我感觉一是定位函数 0x8300 和变量 0x8308 的位置。
二是程序代码 c 文件内,含有像
#define disk_read ...

grub4dos是如何执行外部命令的?
EFI下的外部命令,不如直接弄成EFI应用程序格式的,在grub4dos下弄个protocol,里面提供grub4dos的一些函数指针,执行外部命令的时候相当于chainloader,把system_table和image_handle传进去。
回复

使用道具 举报

7#
发表于 2020-11-23 10:32:29 | 显示全部楼层
求道者 发表于 2020-11-23 10:13
现在的话用cmake会比较多吧
自动生成Makefile

我不太熟悉cmake,这种小工程没必要用cmake吧。
而且 grub4dos的外部命令文件格式比较奇怪。
如果你改成cmake了你也可以提交pr啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-9 00:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表