无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wintoflash
打印 上一主题 下一主题

[讨论] 使用高版本 GCC 编译 GRUB4DOS

    [复制链接]
61#
发表于 2023-5-27 20:32:27 来自手机 | 只看该作者
debug=3,看看反馈信息。

点评

附图1就是debug 3的截图呀?  详情 回复 发表于 2023-5-27 21:10
回复

使用道具 举报

62#
发表于 2023-5-27 21:10:49 | 只看该作者
2011yaya2007777 发表于 2023-5-27 20:32
debug=3,看看反馈信息。

附图1就是debug 3的截图呀?
回复

使用道具 举报

63#
发表于 2023-5-27 21:21:05 来自手机 | 只看该作者
信号不好,刚才没有图。看反馈信息,没有问题。可能是linux参数错误。要不试一试强制loader2协议启动。

点评

title /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso debug 3 find --ignore-floppies --ignore-cd --set-root /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso map /linux2/pentoo/pe  详情 回复 发表于 2023-5-27 21:51
回复

使用道具 举报

64#
发表于 2023-5-27 21:51:11 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-5-27 21:56 编辑
2011yaya2007777 发表于 2023-5-27 21:21
信号不好,刚才没有图。看反馈信息,没有问题。可能是linux参数错误。要不试一试强制loader2协议启动。

title /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
debug 3
find --ignore-floppies --ignore-cd --set-root /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso
map /linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso (hd32)
map --hook
kernel --loadfile2 (hd32)/boot/pentoo isoboot=/linux2/pentoo/pentoo-amd64-hardened-2023.0_p20230526.iso init=/linuxrc nox nodhcp secureconsole overlayfs max_loop=256 dokeymap video=uvesafb:mtrr:3,ywrap,1024x768-16 console=tty0 net.ifnames=0 scsi_mod.use_blk_mq=1 ipv6.autoconf=0 usbcore.usbfs_memory_mb=0 looptype=squashfs loop=/image.squashfs cdroot verify
initrd (hd32)/boot/pentoo.igz
pause

加了--loadfile2参数也不行啊。
想请问下,上面的截图里面,loop=\image.squashfs,好像是不太对啊?不应该是loop=/image.squashfs的吗?左斜杠才对吧?
我的菜单里面都是左斜杠,怎么截图里面出来的是右斜杠啊?有无影响呢?


loadfile2协议2.png (13.85 KB, 下载次数: 199)

loadfile2协议2.png
回复

使用道具 举报

65#
发表于 2023-5-28 17:49:49 | 只看该作者
使用 gcc11.3 编译 g4eext,会在文件头部增加 16 字节:
00000000   04 00 00 00 10 00 00 00  05 00 00 00 47 4E 55 00            GNU
00000016   02 00 00 C0 04 00 00 00  03 00 00 00 00 00 00 00     ?     
这影响外置命令执行。

1. 编译时增加什么参数,避免这 16 字节。
2. 生成外部命令后使用脚本删除这 16 字节。

Makefile 文件内容如下:
ifeq ($(CC),cc)
     CC := gcc
endif
OBJCOPY := objcopy
RM      := rm
MV      := mv
MKDIR   := mkdir

DATE = $(shell date -u +%Y-%m-%d)

GCCVERSIONGTEQ5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 5)

CFLAGS := -Wl,--build-id=none -m64 -mno-sse -nostdlib \
          -fno-zero-initialized-in-bss -fno-function-cse \
          -fshort-wchar -fno-jump-tables -Wl,-N

ifeq "$(GCCVERSIONGTEQ5)" "1"
        CFLAGS += -no-pie
else
        CFLAGS += -fPIE
endif

OBJECTS := $(patsubst %.c,%.o,$(wildcard *.c)) fat/fat.o
MODULES := $(patsubst %.c,%.mod,$(wildcard *.c)) fat/fat.mod

.PHONY: all
all: prepare $(MODULES)
        zip -9 -j ../g4eext-$(DATE).zip bin/*

%.o: %.c
        $(CC) $(CFLAGS) -Iinclude/ $< -o $@

%.mod: %.o
        $(OBJCOPY) -O binary $< $@
#        $(MV) $@ bin/$$(basename -s .mod $@)
        $(MV) $@ bin/$$(basename $@ .mod)

.PHONY: prepare
prepare:
        $(MKDIR) -p bin

.PHONY: clean
clean:
        $(RM) -f *.o *.mod bin/*

点评

用 dd ?  详情 回复 发表于 2023-5-29 09:18
回复

使用道具 举报

66#
 楼主| 发表于 2023-5-29 09:18:02 | 只看该作者
2011yaya2007777 发表于 2023-5-28 17:49
使用 gcc11.3 编译 g4eext,会在文件头部增加 16 字节:
00000000   04 00 00 00 10 00 00 00  05 00 00 0 ...

用 dd ?
  1. dd if=$< of=$@ bs=1 skip=16
复制代码

回复

使用道具 举报

67#
发表于 2023-5-29 21:29:42 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-5-30 05:00 编辑
用 dd ?

终于使用dd搞定了。各种因素综合考虑,比预想的复杂一些。

$< 是当前 .o 文件,$@ 是当前 .mod 文件。
回复

使用道具 举报

68#
发表于 2023-5-30 16:53:48 | 只看该作者
奇怪了,W超版你可以使用gcc各版本编译成功grldr,而我只能使用gcc-11.3编译成。使用其他版本编译,错误提示没有_start,然后退出。

点评

你是不是没装对应版本的 gcc-multilib 比如用的是 gcc-10,那就要装 gcc-10-multilib 我是用 update-alternatives 来切换 GCC 版本的。 [attachimg]527370[/attachimg]  详情 回复 发表于 2023-5-31 22:05
回复

使用道具 举报

69#
发表于 2023-5-30 17:28:29 | 只看该作者
学习
回复

使用道具 举报

70#
 楼主| 发表于 2023-5-31 22:05:19 | 只看该作者
2011yaya2007777 发表于 2023-5-30 16:53
奇怪了,W超版你可以使用gcc各版本编译成功grldr,而我只能使用gcc-11.3编译成。使用其他版本编译,错误提 ...

你是不是没装对应版本的 gcc-multilib
比如用的是 gcc-10,那就要装 gcc-10-multilib
我是用 update-alternatives 来切换 GCC 版本的。

点评

在一个系统里安装多个gcc版本?之前看过这种骚操作,感觉依赖冲突问题很不好处理啊?  详情 回复 发表于 2023-6-1 05:31
回复

使用道具 举报

71#
发表于 2023-6-1 05:31:55 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-6-1 06:45 编辑
wintoflash 发表于 2023-5-31 22:05
你是不是没装对应版本的 gcc-multilib
比如用的是 gcc-10,那就要装 gcc-10-multilib
我是用 update-al ...


在一个系统里安装多个gcc版本?之前看过这种骚操作,感觉依赖冲突问题很不好处理啊?高版本的ubuntu,低版本的gcc有的依赖根本就安装不上啊?
回复

使用道具 举报

72#
发表于 2023-6-1 09:30:45 | 只看该作者
你是不是没装对应版本的 gcc-multilib

是没有装。

sudo apt install -y gcc7-multilib gcc8-multilib gcc9-multilib gcc10-multilib
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
E: 无法定位软件包 gcc7-multilib
E: 无法定位软件包 gcc8-multilib
E: 无法定位软件包 gcc9-multilib
E: 无法定位软件包 gcc10-multilib

在网上搜了搜,说是更新源,添加了清华源还是不行。

点评

gcc-10-multilib 你写错了  详情 回复 发表于 2023-6-1 10:04
回复

使用道具 举报

73#
 楼主| 发表于 2023-6-1 10:04:21 | 只看该作者
2011yaya2007777 发表于 2023-6-1 09:30
是没有装。

sudo apt install -y gcc7-multilib gcc8-multilib gcc9-multilib gcc10-multilib

gcc-10-multilib
你写错了
回复

使用道具 举报

74#
发表于 2023-6-1 10:39:54 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-6-1 11:02 编辑

我不懂,是照抄埃及朋友的。
已经成功下载并编译成功!
谢谢wintoflash超级版主!
回复

使用道具 举报

75#
发表于 2023-6-1 12:37:04 来自手机 | 只看该作者
包名字可以模糊搜索
apt search package_name
或者
apt search package_name|grep "package_name"
回复

使用道具 举报

76#
发表于 2023-6-1 12:55:18 来自手机 | 只看该作者
试一试,要学的挺多。
回复

使用道具 举报

77#
发表于 2023-6-4 16:58:37 | 只看该作者
@wintoflash
今天上传了外部命令补丁。
修改 ubuntu 为 22.04,gcc 为 11。
但是卡在初始化。
提示:
E: Failed to fetch http://azure.archive.ubuntu.com/ ... ubuntu2.1_amd64.deb  404  Not Found [IP: 40.119.46.219 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error: Process completed with exit code 100.

点评

现在编译通过了。 暂时禁止了 fbinst, loadbin, makemod, makerom, wee, weesetup 等 Windows 下工具的编译。这些玩意要用 mingw 来编译。  详情 回复 发表于 2023-6-4 17:41
回复

使用道具 举报

78#
 楼主| 发表于 2023-6-4 17:41:37 | 只看该作者
2011yaya2007777 发表于 2023-6-4 16:58
@wintoflash
今天上传了外部命令补丁。
修改 ubuntu 为 22.04,gcc 为 11。

现在编译通过了。
暂时禁止了 fbinst, loadbin, makemod, makerom, wee, weesetup 等 Windows 下工具的编译。这些玩意要用 mingw 来编译。
回复

使用道具 举报

79#
发表于 2023-6-4 18:00:21 来自手机 | 只看该作者
好的。明天把我 grub4dos,grub4efi 推上去。

点评

grub4dos那边用的是chenall的编译脚本,写死了gcc版本。我给chenall提了issue,还没回复。 https://github.com/chenall/grub4dos-build/issues/1  详情 回复 发表于 2023-6-4 18:10
回复

使用道具 举报

80#
 楼主| 发表于 2023-6-4 18:10:17 | 只看该作者
2011yaya2007777 发表于 2023-6-4 18:00
好的。明天把我 grub4dos,grub4efi 推上去。

grub4dos那边用的是chenall的编译脚本,写死了gcc版本。我给chenall提了issue,还没回复。
https://github.com/chenall/grub4dos-build/issues/1

点评

破github又卡又墙,chenall没有看到这个issue吧。按说是有邮件提醒的呀?chenall没有注意到吧。  详情 回复 发表于 2023-6-4 21:50
回复

使用道具 举报

81#
发表于 2023-6-4 18:30:49 来自手机 | 只看该作者
这个补丁我一起推上去。不知道还有没有其他问题,到时再请教你。

点评

你们几个高手还是加个微信好了,github沟通感觉不太畅快啊。  详情 回复 发表于 2023-6-4 22:18
回复

使用道具 举报

82#
发表于 2023-6-4 21:50:47 来自手机 | 只看该作者
wintoflash 发表于 2023-6-4 18:10
grub4dos那边用的是chenall的编译脚本,写死了gcc版本。我给chenall提了issue,还没回复。
https://gith ...

破github又卡又墙,chenall没有看到这个issue吧。按说是有邮件提醒的呀?chenall没有注意到吧。
回复

使用道具 举报

83#
发表于 2023-6-4 22:18:25 来自手机 | 只看该作者
2011yaya2007777 发表于 2023-6-4 18:30
这个补丁我一起推上去。不知道还有没有其他问题,到时再请教你。

你们几个高手还是加个微信好了,github沟通感觉不太畅快啊。
回复

使用道具 举报

84#
发表于 2023-6-5 11:16:19 | 只看该作者
把grub4dos推送上去了。
修改了 .github/workflows 及 .travis.yml,似乎没有起作用,仍然使用 ubuntu-18.04 编译。
卡在 “调用专用编译环境进行编译”

Run chenall/grub4dos-build@main
Run $GITHUB_ACTION_PATH/tmate.sh
Run cd $GITHUB_ACTION_PATH && chmod +x ./start-grubdev.sh && ./start-grubdev.sh
......
E: Unable to locate package gcc-4.8
E: Couldn't find any package by glob 'gcc-4.8'
E: Unable to locate package gcc-4.8-multilib
E: Couldn't find any package by glob 'gcc-4.8-multilib'
Error: Process completed with exit code 100.

chenall/grub4dos-build@main, $GITHUB_ACTION_PATH/tmate.sh,  ./start-grubdev.sh 这些都不在现有的文件包内。

点评

前面说了,这个得chenall来弄。 https://github.com/chenall/grub4dos-build/blob/main/start-grubdev.sh 他写死了 gcc 版本。  详情 回复 发表于 2023-6-5 11:51
回复

使用道具 举报

85#
 楼主| 发表于 2023-6-5 11:51:49 | 只看该作者
2011yaya2007777 发表于 2023-6-5 11:16
把grub4dos推送上去了。
修改了 .github/workflows 及 .travis.yml,似乎没有起作用,仍然使用 ubuntu-18. ...

前面说了,这个得chenall来弄。
https://github.com/chenall/grub4 ... in/start-grubdev.sh
他写死了 gcc 版本。

点评

前一段时间刚好比较忙.. 刚看到 yaya 已经处理好了  详情 回复 发表于 2023-6-18 16:30
回复

使用道具 举报

86#
发表于 2023-6-9 18:20:05 来自手机 | 只看该作者
G4D,G4E 成功发布,可以从两个官网地址下载了。
回复

使用道具 举报

87#
发表于 2023-6-18 16:30:28 | 只看该作者
wintoflash 发表于 2023-6-5 11:51
前面说了,这个得chenall来弄。
https://github.com/chenall/grub4dos-build/blob/main/start-grubdev.s ...

前一段时间刚好比较忙..

刚看到 yaya 已经处理好了

点评

能不能解决一下 efi 分支这个报错 [attachimg]528180[/attachimg]  详情 回复 发表于 2023-6-18 21:02
回复

使用道具 举报

88#
 楼主| 发表于 2023-6-18 21:02:03 | 只看该作者
chenall 发表于 2023-6-18 16:30
前一段时间刚好比较忙..

刚看到 yaya 已经处理好了

能不能解决一下 efi 分支这个报错

点评

已处理,应该下次就不报错了.  发表于 2023-7-5 20:36
回复

使用道具 举报

89#
发表于 2023-6-19 22:48:04 | 只看该作者
小白一枚,借宝地求教个问题:几年前我学习细细哥的U盘启动VHD的帖子,随便找个成品PE,再借助FbinstTool就可以看到存在的UD分区,随便编辑菜单文件,现在新版的PE,为什么隐藏分区全都无法查看了?是需要什么新的软件工具才行吗?

点评

fbinst 1.6 和 1.7 版本是不兼容的。 现在用 fbinst 1.7 做的 ud,必须用 1.7 版本的 fbinst / FbinstTool 来打开。  详情 回复 发表于 2023-6-20 18:35
回复

使用道具 举报

90#
 楼主| 发表于 2023-6-20 18:35:07 | 只看该作者
chesson 发表于 2023-6-19 22:48
小白一枚,借宝地求教个问题:几年前我学习细细哥的U盘启动VHD的帖子,随便找个成品PE,再借助FbinstTool就 ...

fbinst 1.6 和 1.7 版本是不兼容的。
现在用 fbinst 1.7 做的 ud,必须用 1.7 版本的 fbinst / FbinstTool 来打开。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 08:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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