无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
1#
发表于 2020-11-2 10:28:30 | 显示全部楼层
本帖最后由 chenall 于 2020-11-2 10:33 编辑

我来迟了。

这个的工作量可不一般,太强悍了!
EFI核心的内容我不太了解帮不上忙^_^,只能在其它方面支持了。

关于代码的问题,我个人是建议直接开一个新的分支上传。

开新分支基本上的操作就是如 #61 的方法。

1. 首先备份当前代码数据(或直接生成补丁)
2. 然后清理当前代码让代码保留在github上的最后一个版本。
3. 开新分支git checkout -b efi
4. 恢复EFI版本代码(或恢复补丁)。
5. 添加所有修改的文件。 git add .
6. 提交本次改动。git commit -m "add efi support ...."
7. 上传新的分支。 git push -u origin efi

你的帐号应该是有上传的权限的。

评分

参与人数 1无忧币 +10 收起 理由
xyzxp + 10 很给力!

查看全部评分

回复

使用道具 举报

2#
发表于 2020-11-3 12:52:11 | 显示全部楼层
印象中imdisk
好像有一个功能可以映射指定内存地址区域作为磁盘的。

如果能用的话可能会简单一些。

另外由于驱动签名的问题,如果能用imdisk或Dokan驱动去实现的话会省事一些。
回复

使用道具 举报

3#
发表于 2020-11-9 15:10:53 | 显示全部楼层
本帖最后由 chenall 于 2020-11-9 15:15 编辑
2011yaya2007777 发表于 2020-11-7 11:05
之所以没有尽快上传代码,一是还有些已知遗留问题需要处理,还要清除众多的内部调试代码。二是不知道怎么 ...



确实因为工作还有家庭的原因,没有足够的精力,基本上我每个星期都会上无优看一下,了解一下最新的一些技术或资讯。

在力所能及的情况下,我很乐意提供一些帮助。

可以把代码打包传给我或上传到某个地方,我拉个新的分支,上传第一个版本。

后续的操作就比较简单了,就是和原来的操作一样。

有空再为新的版本添加自动编译等。
当然了如果有其它人愿意接手,那是最好的了^_^。

回复

使用道具 举报

4#
发表于 2020-11-18 11:45:12 | 显示全部楼层
OK,我下午处理一下。
回复

使用道具 举报

5#
发表于 2020-11-19 13:04:46 | 显示全部楼层
2011yaya2007777 发表于 2020-11-19 12:19
嗷,视乎明白了,是我的操作系统是32位的,在64位系统下编译通不过。等待你的好消息。

我这边是64位(centos)的也可以直接编译通过。。
回复

使用道具 举报

6#
发表于 2020-11-20 08:48:09 | 显示全部楼层
支持linux 启动的pr已经合并

点评

大佬 把 0.4.6a 或者 efi 分支设成主分支吧。  详情 回复 发表于 2020-11-20 09:58
回复

使用道具 举报

7#
发表于 2020-11-26 14:25:58 | 显示全部楼层
2011yaya2007777 发表于 2020-11-26 13:53
现在就可以呀。传递一个ipxe接口。

这个传ipxe接口是指什么?



回复

使用道具 举报

8#
发表于 2020-11-26 15:29:18 | 显示全部楼层
@2011yaya2007777 现在 chainloader 支持启动什么格式的文件?

可以在g4e下启动其它efi文件吗?我直接使用chainloader xxxx.efi都是直接卡死。

使用vmware测试
回复

使用道具 举报

9#
发表于 2020-11-26 15:31:21 | 显示全部楼层
江南一根葱 发表于 2020-11-26 15:06
我目前是折腾网启ipxe,initrd一个iso过来,让g4d来启,好像就算g4d完全不支持网启也可以启动iso wim,
...

目前G4D下真正意义上可写的应该就只有FAT了



回复

使用道具 举报

10#
发表于 2020-12-25 17:03:47 | 显示全部楼层
wintoflash 发表于 2020-12-25 15:39
那好,如果你不再改动外部命令格式的话,等下我把g4e的外部命令推送到grubutils。
chenall有没有打算搞 ...

我是有打算把自动编译从原来的travis-ci转移到github自带的Action。

不过最近时间比较少,还没有去研究。
回复

使用道具 举报

11#
发表于 2021-1-13 11:40:56 | 显示全部楼层
2011yaya2007777 发表于 2021-1-13 11:07
@wintoflash
你 1045# 的 grub4dos-for_UEFI-2021-01-12.7z,是使用什么版本的 gcc 编译的?
如果不是 g ...

grub4dos用gcc不同的版本编译出来的效果会不一样
估计编译时用到了很多hack的内容。
因为不懂得这些编译细节,之前弄那个开发环境时也是找了好几个版本,最后就4.8的是正常的。

回复

使用道具 举报

12#
发表于 2021-1-13 15:56:42 | 显示全部楼层
现在好像都是64位的,travis-ci 也即将停用,我这些天测试看看用github action能不能编译一个可用的出来。

今天试了一些版本都不行,估计要考虑用docker环境了。

点评

我的grub2就是用 github action 自动编译发布的。不过为了让下载地址固定,都是覆盖上一次的文件。 用的是这个 https://github.com/marketplace/actions/automatic-releases 配置文件:https://github.com/a1ive/g  详情 回复 发表于 2021-1-13 18:21
回复

使用道具 举报

13#
发表于 2021-1-14 12:51:04 | 显示全部楼层
试了好几个gcc的版本,编译出来都不能正常使用,目前就只有grubdev环境编译是正常的。
回复

使用道具 举报

14#
发表于 2021-1-14 15:51:40 | 显示全部楼层
我自己重新装了一个32位 ubuntu 编译就正常了,用64位编译出来就是有问题。

可能需要看一下编译脚本有没有什么地方可以调整的了,实在不行的话就只能找一个可以使用32位linux的CI来自动编译了。
回复

使用道具 举报

15#
发表于 2021-1-16 20:23:16 | 显示全部楼层
有条件的试一下这个版本是否正常

grub4dos-for_UEFI-2021-01-16.7z

240.7 KB, 下载次数: 82, 下载积分: 无忧币 -2

点评

外部命令也正常  详情 回复 发表于 2021-1-17 13:45
使用 UltraISO 制作的 BIOS/UEFI 双启动.iso (I9SO9660_Joilet格式),UEFI自然是使用这个版本,Qemu 测试发现: /efi/grub/menu.lst 能识别,可分别 configfile 到 UEFIx64.txt / UEFIx86.txt。 只是: 1.  详情 回复 发表于 2021-1-16 23:08
Qemu 下测试, UEFIx86.txt: clear debug off color light-gray/black light-gray/blue light-blue/black color border=0x08 font /EFI/Grub/Unicode.gz graphicsmode -1 640 setmenu --ve  详情 回复 发表于 2021-1-16 21:44
2021-01-16版本,实体机测试,基于svbus驱动的RAMOS没问题;基于primo驱动的RAMOS没问题。  详情 回复 发表于 2021-1-16 21:03
报告大侠:简直完美! 经Qemu、真机测试,以下菜单完美显示、执行: menu.lst: clear debug off root () calc *0x8272&0xff set UEFIx=%@retval% if %UEFIx%==64 configfile /EFI/Grub/UEFIx64  详情 回复 发表于 2021-1-16 20:52
回复

使用道具 举报

16#
发表于 2021-1-18 14:48:57 | 显示全部楼层
多谢以上各位的测试,没有什么问题的话,以后就会使用这个编译环境进行新版本的自动编译发布。

编译环境来源于 tinycorelinux 和原来那个 grubdev 的环境一样。

这些天我再整理一下。
回复

使用道具 举报

17#
发表于 2021-1-22 09:54:16 | 显示全部楼层
hilsonma 发表于 2021-1-22 09:49
为什么chenall网站那里每次发新版本都是那个2020-12-20的置顶呢,能不能改过来,让最新版本置顶。

这些是 CI 自动生成的页面,因为原来的 CI 已经不能使用了。

正在重新处理,目前自动编译的已经没有可以了,这些天我会处理一下发布页的问题。
回复

使用道具 举报

18#
发表于 2021-1-22 16:45:42 | 显示全部楼层
2011yaya2007777 发表于 2021-1-22 16:27
我提交补丁以后等了一会,见没有编译。
我是想下载官网编译的版本进行测试,成功后再放出其他补丁。
我 ...

正常提交后10分钟左右会自动编译完成。

目前暂时还没有自动发布到grub4dos.chenall.net

编译后的文件可以在 release 里面下载。

对于测试功能,可以考虑创建新的分支,代码上传成功后发一个PR就会针对PR的内容自动编译
编译结果会自动上传到https://transfer.sh并回复下载地址,
这个是我用于测试的PR
https://github.com/chenall/grub4dos/pull/254

后续对于测试的功能还有一些调整,直接在这个测试分支修改并上传,同样会自动编译并回复编译结果。

测试完成之后再使用merge squash 功能合并回主开发分支。
回复

使用道具 举报

19#
发表于 2021-1-22 16:50:28 | 显示全部楼层
2011yaya2007777 发表于 2021-1-22 16:27
我提交补丁以后等了一会,见没有编译。
我是想下载官网编译的版本进行测试,成功后再放出其他补丁。
我 ...

grub4dos-for_UEFI-2021-01-22.7z

这个我试了不可以运行外部命令,估计是由于头文件改变的原因。

有可能的话还得整一个自动测试的功能。^_^

有问题好提早发现。
回复

使用道具 举报

20#
发表于 2021-1-22 16:52:10 | 显示全部楼层
本帖最后由 chenall 于 2021-1-22 16:56 编辑

这些天先把grub4dos.chenall.net自动更新的先弄一下,后续有空的话再想想如何实现自动测试的功能(目前的想法还是使用qemu来测试,得先收集一些用于测试的命令)
另外目前使用的自动编译功能是模块化的,后续想换成64位的编译环境也比较容易,只需要修改自动编译的脚本就行了。

目前的编译环境是使用qemu运行tinycorelinux,编译速度比较慢,后续如果确认64位环境编译没有问题的话我再弄成直接编译的。

回复

使用道具 举报

21#
发表于 2021-1-24 17:28:45 来自手机 | 显示全部楼层
目前的自动编译环境还是32位的,明天有空的话我准备弄成64位的,编译速度会快很多。
回复

使用道具 举报

22#
发表于 2021-2-1 19:33:21 来自手机 | 显示全部楼层
最新版本编译环境是64位的
回复

使用道具 举报

23#
发表于 2021-2-11 07:34:20 来自手机 | 显示全部楼层
现在自动编译的环境是ubuntu 64位的。
回复

使用道具 举报

24#
发表于 2021-2-11 07:39:57 来自手机 | 显示全部楼层
自动编译发布的时间是1月31号,我看到grub4dos.h的更新时间是5天前,稍等我编译一个测试一下。
回复

使用道具 举报

25#
发表于 2021-2-11 07:52:23 来自手机 | 显示全部楼层
https://github.com/chenall/grub4dos-build/releases/tag/latest
回复

使用道具 举报

26#
发表于 2021-5-10 16:39:02 | 显示全部楼层
wintoflash 发表于 2021-5-1 12:51
用 github actions 自动编译发布的 GRUB4EFI 外部命令有问题。
如果系统是 Ubuntu 16.04, GRUB4DOS 外部命 ...

我试了一下,好像是没有回显.我抽空测试下是什么情况.

点评

大神,想问一下hotkey外部命令是你开发的吧。能不能让在title中用^或[]定义的热键用title文本颜色的对比色显示?另外^跟随的字母作热键不隐藏?  详情 回复 发表于 2021-5-10 18:05
回复

使用道具 举报

27#
发表于 2021-5-11 12:04:03 | 显示全部楼层
本帖最后由 chenall 于 2021-5-11 12:58 编辑
wintoflash 发表于 2021-5-1 12:51
用 github actions 自动编译发布的 GRUB4EFI 外部命令有问题。
如果系统是 Ubuntu 16.04, GRUB4DOS 外部命 ...

应该是解决了 @wintoflash

修改了  grubutils g4e 的编译脚本 (我改错了,不过可以正常编译, $cc 需要改为 $(CC) )
应该是 -fPIE 这个参数的关系,改错了的话就会一直使用这个参数,否则如果 gcc 版本高于 5.0 就会使用  -no-pie

因为对编译参数不太了解,你看一下要怎么处理,  有调整的话再顺便修改下.

这个是早上我编译的版本,
https://transfer.sh/U9PCL/grub4dos-for_UEFI-2021-05-11.7z

点评

OK  详情 回复 发表于 2021-5-11 19:23
回复

使用道具 举报

28#
发表于 2021-5-11 13:06:14 | 显示全部楼层
hhh333 发表于 2021-5-10 18:05
大神,想问一下hotkey外部命令是你开发的吧。能不能让在title中用^或[]定义的热键用title文本颜色的对比 ...

好久没有弄,忘得差不多了^_^.

点评

看来代码的可读性看来很重要。对大神来说应该不是事。 如果弄的话希望: 1、单字母热键用^标记,可以在title文本的任何位置,^后的字母不隐藏但要以对比色或自定义色突出显示; 2、组合键(包括F1~12)  详情 回复 发表于 2021-5-11 15:17
回复

使用道具 举报

29#
发表于 2021-5-29 19:19:25 来自手机 | 显示全部楼层
应该是这个 https://github.com/chenall/grubutils/tree/master/grubutils/makemod
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 06:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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