无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2020-11-18 11:04:55 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011yaya2007777 于 2020-11-22 16:19 编辑

在gcc 64位环境编译,遇到以下几个问题,请帮忙解决,谢谢!

#define HOTKEY_MAGIC 0X79654B48
int HOTKEY_FUNC;

hotkey.c: In function 'main':
hotkey.c:454:8: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   i = ((int (*)())HOTKEY_FUNC)((char*)"INIT",(int)HOTKEY_MAGIC);
        ^
hotkey.c:468:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   hkey_data_t *hkd = ((hkey_data_t*(*)(char*,int))HOTKEY_FUNC)(NULL,HOTKEY_MAGIC);
                       ^
/usr/local/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000000004000e8
2#
 楼主| 发表于 2020-11-18 12:46:34 来自手机 | 显示全部楼层
是不警告了,我再看看能不能正确编译。谢谢。
回复

使用道具 举报

3#
 楼主| 发表于 2020-11-21 20:49:22 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2020-11-21 21:35 编辑

已经解决。对编写 GRUB4DOS 外部命令感兴趣,有能力的坛友,欢迎在此讨论。

点评

现在uefi64支持外部命令了? 能不能在外置命令中取得 system_table 和 image_handle?  详情 回复 发表于 2020-11-21 20:57
回复

使用道具 举报

4#
 楼主| 发表于 2020-11-21 21:34:13 来自手机 | 显示全部楼层
应当可以。
回复

使用道具 举报

5#
 楼主| 发表于 2020-11-22 16:26:03 | 显示全部楼层
在 chenall 搭建的基础上,GRUB4DOS for UEFI 外部命令编译环境搭建完毕。
使用热键外置测试通过。
chenall 是否考虑把这个和原始的放在一起,便于下载。
欢迎感兴趣,有能力的坛友试用。


grub4dos_for_uefi外部命令编译环境.rar

7.54 KB, 下载次数: 46, 下载积分: 无忧币 -2

点评

不知道bios和efi的外部命令编写有多大的区别? 我在想如果可能的话可以通过不带的build脚本(或同一个脚本加参数)来编译不同版本的外部命令。 我先测试看看。  详情 回复 发表于 2020-11-23 09:13
回复

使用道具 举报

6#
 楼主| 发表于 2020-11-23 09:35:29 | 显示全部楼层
话说我编译原版外部命令遇到两个错误:

1. fontfile.c 文件内没有定义 p。源码问题。
2. umbr.c 文件头部声明 unbr.h,但是找不到 umbr.c。源码问题。

编译命令是什么?

你是指编译 umbr.c?我见有的 c 文件里带有编译命令,而 umbr.c 里没有。我不懂编译命令。
回复

使用道具 举报

7#
 楼主| 发表于 2020-11-23 09:42:18 | 显示全部楼层
不知道bios和efi的外部命令编写有多大的区别?

我感觉一是定位函数 0x8300 和变量 0x8308 的位置。
二是程序代码 c 文件内,含有像
#define disk_read_hook ((*(int **)0x8300)[31])
#define VSHADOW1 ((unsigned char *)0x3A0000)
都需要修改,不能任意指定内存,需分配内存。

点评

grub4dos是如何执行外部命令的? EFI下的外部命令,不如直接弄成EFI应用程序格式的,在grub4dos下弄个protocol,里面提供grub4dos的一些函数指针,执行外部命令的时候相当于chainloader,把system_table和image_han  详情 回复 发表于 2020-11-23 09:50
回复

使用道具 举报

8#
 楼主| 发表于 2020-11-23 10:05:07 | 显示全部楼层
我已经添加了权限,grub4dos和grubutil你都可以直接更新代码。

很好,开发团队增加一员猛将!
回复

使用道具 举报

9#
 楼主| 发表于 2021-2-5 19:49:36 来自手机 | 显示全部楼层
与grub4dos for bios的字体是一样的。
回复

使用道具 举报

10#
 楼主| 发表于 2021-2-6 13:53:24 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 13:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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