无忧启动论坛

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

[发布] 增强 GRUB4DOS 菜单编辑功能,支持动画,支持精简字库,支持图形菜单

    [复制链接]
1#
发表于 2023-1-28 20:53:32 | 显示全部楼层
本帖最后由 求道者 于 2023-1-28 21:44 编辑

所以说文字和高亮框现在只支持216色吗?
#E7EFFF和#0000CE这两种色没法显示吗?


  1. color normal=0x0f highlight=0xf9
  2. setmenu --lang=zh --keyhelp-off --triangle-off --ver-off --auto-num-on --box x=120 w=120 y=6  l=0 --font-spacing=0:10
复制代码

然后w填0能让GRUB4DOS自动适应菜单条目的宽度吗?


高亮框右侧的边缘的几乎和文字贴在一起了。
怎么调整?

回复

使用道具 举报

2#
发表于 2023-1-28 21:49:54 | 显示全部楼层
本帖最后由 求道者 于 2023-1-28 22:34 编辑
2011yaya2007777 发表于 2023-1-28 21:28
color normal=0xffffff highlight=0xff


基本上我想弄成这个效果。
高亮那的背景颜色不是白色是#E7EFFF rgb(231, 239, 255)。
高亮里字体颜色也不是青色是#0000CE rgb(0, 0, 206)。
·这两个颜色似乎都弄不出来。

-----------------------------------------------------------
高亮里用24位色,似乎是改成高亮字体的颜色了。
选框颜色在哪调整?
还是选框调不了?



还有就是高亮框右侧的边缘的几乎和文字贴在一起了。
怎么调整?

字体现在也完全没渲染是吧?
------------------------------------------------------------

高亮选框不知道怎么调整。
但是由于没有高亮选框了。
所以选框和最后一个字的间隔就无所谓了。
最终效果还蛮和谐的。
能接受?
-----------------------------------------------------------
丫丫能不能把ZSTD加到GRUB4DOS里?
解压速度和LZ4类似。
但压缩比高很多。
--------------------------------------------------------
lzma压缩字体,G4D加载会乱码?


回复

使用道具 举报

3#
发表于 2023-1-29 11:06:41 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 11:15 编辑
2011yaya2007777 发表于 2023-1-29 08:57
highlight=0x00e7efff000000ce    前4位是背景色,后4位是前景色




linux下用lzma压了字体,还真就乱码了。
在现在这阶段gzip确实不是最好的选择,但g4d扩展麻烦确实是这样的。
与其修补g4d,不如魔改grub2,起码grub2的文件系统的支持主线自己就弄完了,所有主流压缩算法也支持,主题也有现成的,就是没有磁盘仿真,UD支持啥的,还有些U启bug延续自grub1就应该没被主线修复,不支持批处理。
bash的语法不是特别好。
用lua会好点吧。
毕竟正经的脚本语言。
bash我个人的体验来说,体验不太行。
不能调用API,对数组支持也不好。
换到grub2,传统模式下的状态都会好很多,磁盘碎片,内存支持之类的。
他们的汇编环境也更新了。
grub4dos,没必要继续开发了。

点评

linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。 ----- 我的grub2分支是有ud支持的。zstd压缩支持也移植过,不过没推送到我的github上。 zstd确实不错。  详情 回复 发表于 2023-1-29 11:16
回复

使用道具 举报

4#
发表于 2023-1-29 11:24:41 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 11:29 编辑
wintoflash 发表于 2023-1-29 11:16
linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。
-----
我的grub2分支是有ud ...


老实说,我觉得主线自己就应该放弃现有的类bash语法,随便找个现代点的脚本语言解析器,grub2又没有为其开发的脚本只有些乱七八糟的配置文件。
重写配置没什么包袱。
为其开发的mod,又是调用的API,完全不存在什么兼容性问题。
而且我认为mod在脚本语言中就作为类库导入就行,执行文件只认可.efi,有些.efi支持参数传入,现在grub2还不支持。
而且最好全面函数化。
所有命令调用全是用的函数的方式。
就像现在的autohotkey2做了所有命令的函数化。

点评

我当然支持。早就想把这个傻逼bash解析器删了。 我的grub2分支是支持lua的,以前还尝试移植过python。 个人觉得lua/micropython都行。 grub2的gfxmenu主题系统我也不喜欢。我去年试过移植lvgl,后来太监了。 htt  详情 回复 发表于 2023-1-29 11:29
回复

使用道具 举报

5#
发表于 2023-1-29 11:30:26 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

类bash连bash都没完全支持就很可笑。
回复

使用道具 举报

6#
发表于 2023-1-29 11:33:02 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

现在grub2不也不支持函数吗?
现代脚本语言最显著的特征就是支持函数了吧。
c++不是还有对象吗?

点评

grub2那个傻逼bash也支持函数啊。 https://github.com/supergrub/supergrub/blob/master/menus/sgd/autoiso.cfg  详情 回复 发表于 2023-1-29 11:39
回复

使用道具 举报

7#
发表于 2023-1-29 11:35:03 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-1-29 11:22
按说g4d支持gzip,lzma,lz4。可是怎么不支持安装字库?如果字库已经压缩成gzip,那就不能再继续压缩成lzma ...


我从文泉驿点阵宋转出的hex,还没压缩 。
我待会试试wintoflash氏说的参数。
回复

使用道具 举报

8#
发表于 2023-1-29 11:37:35 来自手机 | 显示全部楼层
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

导入图形库固然是不错,但grub2现有的主题不是天文数字?用户能复用这些主题的话,可以省很多事。

点评

想顺便支持鼠标/触摸屏。 gfxmenu那一套东西太僵硬了,而且bug太多。  详情 回复 发表于 2023-1-29 11:41
回复

使用道具 举报

9#
发表于 2023-1-29 11:47:22 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 11:51 编辑
wintoflash 发表于 2023-1-29 11:41
想顺便支持鼠标/触摸屏。
gfxmenu那一套东西太僵硬了,而且bug太多。

我就猜到你想用图形库写GUI。
gfxmenu他是主题模块,易用就够了。
开发好不好用就没所谓。
脚本引擎移植工作量本身就巨大,现在还移植一个图形库,而且这显然不是第一阶段该做的工作。
况且能在脚本里用调用函数写GUI不是更易用吗?

点评

gfxmenu也是可以和图形库共存的,将来等到lvgl成熟了,可以解析主题之后直接送给lvgl绘制就行。 gfxmenu的主要问题还是它绘制图像的部分有很多bug,不能稳定复现,也不好调试。 这个的优先级确实不高。  详情 回复 发表于 2023-1-29 11:53
回复

使用道具 举报

10#
发表于 2023-1-29 11:53:50 | 显示全部楼层
wintoflash 发表于 2023-1-29 11:39
grub2那个类bash也支持函数啊。
https://github.com/supergrub/sup ... nus/sgd/autoiso.cfg

grub2能搞的东西太少了。
高级功能我几乎没用过。
他这个语法和资源匮乏度。
就把人劝退。
我对GRUB2的了解仅限于模组多。
回复

使用道具 举报

11#
发表于 2023-1-29 11:56:24 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 11:58 编辑
wintoflash 发表于 2023-1-29 11:53
gfxmenu也是可以和图形库共存的,将来等到lvgl成熟了,可以解析主题之后直接送给lvgl绘制就行。
gfxmenu ...

直接重构GFXMENU嘛,反正新的图形库移植了,怎能不试试?
但这显然没啥优先度。
G4D的特性与兼容手段移植,和脚本引擎移植才是第一阶段该做的工作。
最好是让主线接受这些想法。
连脚本都不支持。
谈什么易用性?
可以说是完全没搞头。

点评

主线是不接受这些想法的。以前bean移植过lua,进了主线。后来官方又把lua从主线里面删了,弄得bean很不高兴。 你所说的g4d的特性,也就是bios下的map吧,这个超出了我的能力。 其他我没看出有啥特别的。  详情 回复 发表于 2023-1-29 12:23
回复

使用道具 举报

12#
发表于 2023-1-29 12:09:36 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 12:11 编辑
sunsea 发表于 2023-1-29 12:08
g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zst ...

UEFI下可能zstd的实现可能都要重新写。
但grub2有现成的。

不如说grub2有一堆现成的新特性。
但缺少对旧事物兼容。

点评

大概是用习惯了,我感觉现有g4d这样比grub2舒服很多,命令也比较精简。  详情 回复 发表于 2023-1-29 12:15
回复

使用道具 举报

13#
发表于 2023-1-29 12:14:21 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 12:22 编辑
2011yaya2007777 发表于 2023-1-29 08:57
highlight=0x00e7efff000000ce    前4位是背景色,后4位是前景色
末尾增加一个空格

猜到了,但后续都加空格就很繁琐。
没有选择框的风格似乎也挺不错。
就放弃了。
上面已经回答。我喜欢高亮字符没有背景色,而前景色要明显区别于未选菜单项。第二张图差别太小。
高亮选择 highlight=0xce 挺好,你可以试一试


从鹿身上取了个色。
应该是这样。
原图也是对比度并不高。
深蓝色和淡蓝色。


回复

使用道具 举报

14#
发表于 2023-1-29 12:25:32 | 显示全部楼层
sunsea 发表于 2023-1-29 12:15
大概是用习惯了,我感觉现有g4d这样比grub2舒服很多,命令也比较精简。

所以说不能用复杂点的语法。
dos系跳转就是goto。
编程上也不推荐goto。

现代语言都用if。
可读性好些。
而且更不容易犯错。
我不喜欢DOS语法。

点评

我个人感觉还行。反正这个环境也不能要求太高,以短小精悍为主,cmd系语法挺够用的。有更多需求那就是外部命令了。不能拿正经编程要求脚本。不过正经搞起来lua什么的确实还行,但我估计开发者没这个精力。  详情 回复 发表于 2023-1-29 12:29
回复

使用道具 举报

15#
发表于 2023-1-29 12:28:02 | 显示全部楼层
wintoflash 发表于 2023-1-29 12:23
主线是不接受这些想法的。以前bean移植过lua,进了主线。后来官方又把lua从主线里面删了,弄得bean很不高 ...

从保守的角度来讲。
这种破坏性的更新,那是不可能会出现在小更新里的。
怕不是下个大版本才有可能。

点评

bean移植lua的时候grub2的版本是1.9x,在2.0发布前被官方删了。他们都是一些gnu旧时代的老古董,比较排斥非gnu的东西。  详情 回复 发表于 2023-1-29 12:47
回复

使用道具 举报

16#
发表于 2023-1-29 13:07:24 来自手机 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 13:33 编辑
wintoflash 发表于 2023-1-29 12:47
bean移植lua的时候grub2的版本是1.9x,在2.0发布前被官方删了。他们都是一些gnu旧时代的老古董,比较排斥 ...


难说,毕竟在国外许可证问题是真的会引来官司。
大清自有国情在此。
开源协议有没法律效力。
只是道德层面的约束,当然没人在意许可证。
这是很大的问题。
如果许可证没法律效应就不可会有openwrt。

甚至说Linus选择GNU协议也是为了项目的延续。
钱不钱的我不在乎,就是不喜欢非自由。
你用了我的库还非自由?
nmsl!
你能赚钱更好,我只关注开源,贡献代码能让项目活得更好,让商业也能驱动开源。
而不是为爱发电。
国内很多项目就是因为国情在此,还在纠结钱的那点鸡毛蒜皮的小事,没办法做大的。
Linus是北欧人,吃穿不愁,当然是更多的想到了项目的未来,为爱发电必然无法长久,特别是linus这种体量的项目。
国内的人diss GNU就让我觉得很搞笑,层次还是低。
商业公司选择bsd许可证,不是为了方便开发者。
是方便自己随时闭源。
这种事太多了。

国内这个环境唯一的好处大概是可以无视许可证乱搞吧。
不过你真拿微软泄漏的源代码搞东西,微软搞死你也是分分钟的事吧,只看愿不愿意。

点评

grub官方不接受lua不是许可证的问题。 他们就是不想在项目的关键部分引入一个外部的项目。(虽然说lua就是适合这种情况的) 比如Linux的使用这么广泛,GNU他们就是看不顺眼,觉得Linux还是不够“清真”,非得再搞  详情 回复 发表于 2023-1-29 14:38
回复

使用道具 举报

17#
发表于 2023-1-29 18:17:20 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 18:26 编辑
wintoflash 发表于 2023-1-29 14:38
grub官方不接受lua不是许可证的问题。
他们就是不想在项目的关键部分引入一个外部的项目。(虽然说lua就 ...

引入二进制黑盒子确实不清真,总有人不会妥协的。
但大部分人肯定能够忍受。
比方说,商业级的GPU有SR-IOV,而消费级有芯片相同的卡。
AMD这种对开源友好的厂商,都会用驱动里二进制bold和固件锁死这部分功能。
其他厂家别说了。
你如果是开发这部分的码农,你也会上头,无法接受,觉得不清真。
但显然大部分人不会管这东西。

然后一些旧GPU型号通过硬刷BIOS,改驱动,安装额外模块,就能用上这些功能。
不清真的东西在Linux下多了去了。
厂家没开源的bold里多少藏了点乱七八糟的东西。
比方说INTEL的无线固件强制开启了AX210/200的LAR,无法关闭,偏偏现有驱动他们没做好,导致AX210/200无法当AP用,不然的话就有便宜WIFI6路由可以用了,但牙膏厂就是把驱动里的禁用LAR关了(5.4之后,LAR禁用开关失效),然后驱动有没整好,然后就没有然后了,遇到这种你能怎么样?这东西就是由无线网卡不开源的固件锁死的,一点办法都没有,这种东西多了去了,都不能算是不清真,简直是汤里的老鼠屎。


https://github.com/coolsnowwolf/lede/issues/9976

回复

使用道具 举报

18#
发表于 2023-1-29 18:54:27 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 19:00 编辑

wintoflash氏,你那个grub2分支停止维护是了吧?
但是wimboot还能编译吗?
移植到更新版的GRUB2能搞吗?
似乎没法从iso9660引导BOOTMGR.EFI。

点评

我的grub2分支里面wimboot是依赖于map的,不能独立出来用。 https://github.com/Mexit/MultiOS-USB/issues/4 这里面有我单独移植的一个uefi下用的wimboot模块,官方grub2 20.4/2.06, redhat grub2 应该都可以用。  详情 回复 发表于 2023-1-29 19:00
回复

使用道具 举报

19#
发表于 2023-1-29 19:02:28 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 19:08 编辑
wintoflash 发表于 2023-1-29 19:00
我的grub2分支里面wimboot是依赖于map的,不能独立出来用。
https://github.com/Mexit/MultiOS-USB/issu ...

顺便问一下,grub2没法从iso9660引导BOOTMGR.EFI吗?





点评

我觉得这个帖子已经跑题了。 你这是启动loopback挂载的ISO里面的bootmgfw.efi?有啥用? 两方面的问题:1.官方grub2 chainloader加载efi时对根设备的处理有问题,这个我已经反馈给官方了,我的分支里面修了。2.  详情 回复 发表于 2023-1-29 19:13
回复

使用道具 举报

20#
发表于 2023-1-29 19:19:26 | 显示全部楼层
本帖最后由 求道者 于 2023-1-29 19:21 编辑
wintoflash 发表于 2023-1-29 19:13
我觉得这个帖子已经跑题了。
你这是启动loopback挂载的ISO里面的bootmgfw.efi?有啥用?

我在做混合ISO。
用来在UEFI下做USB-CDROM启动。(U盘量产了一个CD-ROM的LUN)。
几乎所有的文件都塞在iso9660下。

现在这个情况。
wimboot能抢救吗?

点评

可以。我当初移植wimboot就是为的这个。  详情 回复 发表于 2023-1-29 19:27
回复

使用道具 举报

21#
发表于 2023-1-29 19:36:05 | 显示全部楼层
wintoflash 发表于 2023-1-29 19:27
可以。我当初移植wimboot就是为的这个。

行吧,我编译看看。
回复

使用道具 举报

22#
发表于 2023-1-29 19:45:35 | 显示全部楼层
wintoflash 发表于 2023-1-29 19:13
我觉得这个帖子已经跑题了。
你这是启动loopback挂载的ISO里面的bootmgfw.efi?有啥用?
1.官方grub2 chainloader加载efi时对根设备的处理有问题

对了这个补丁在哪?
干脆顺便编译了。

点评

https://lists.gnu.org/archive/html/grub-devel/2022-08/msg00334.html  详情 回复 发表于 2023-1-29 20:04
回复

使用道具 举报

23#
发表于 2023-1-29 21:58:53 | 显示全部楼层
wintoflash 发表于 2023-1-29 20:04
https://lists.gnu.org/archive/html/grub-devel/2022-08/msg00334.html

编译还蛮费时间的。
回复

使用道具 举报

24#
发表于 2023-1-30 00:06:17 | 显示全部楼层
本帖最后由 求道者 于 2023-1-30 01:24 编辑

打了补丁了似乎没用。
此BUG似乎只出现在iso9660下。
还是同样的报错。
commit='2f4430cc0a44fd8c8aa7aee5c51887667ad3d6c3'
https://git.savannah.gnu.org/git/grub.git


然后我把ISO刻录到U盘上,在实体机里能启动到LBA1的GRUB里,但是GRUB似乎无法检测到iso9660。
在QEMU下也可以模拟USB-CDROM。
同样的结果。
  1. mkisofs -V "BOOTISO" -A "FirPE Boot ISO" -U -max-iso9660-filenames -D -R -J -joliet-long -hide-joliet boot.catalog -no-emul-boot -boot-load-size 4 -b grldr -eltorito-alt-boot -no-emul-boot -eltorito-platform efi -eltorito-boot efiboot.img -o ~/efiboot.iso .
复制代码

efiboot.iso
链接: https://pan.baidu.com/s/1klHl9beuoGhkfW61BSxwgg&pwd=53d7
密码: 53d7

  1. diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c
  2. index 7557eb269..75e9292a9 100644
  3. --- a/grub-core/loader/efi/chainloader.c
  4. +++ b/grub-core/loader/efi/chainloader.c
  5. @@ -32,6 +32,7 @@
  6. #include <grub/efi/api.h>
  7. #include <grub/efi/efi.h>
  8. #include <grub/efi/disk.h>
  9. +#include <grub/efi/memory.h>
  10. #include <grub/command.h>
  11. #include <grub/i18n.h>
  12. #include <grub/net.h>
  13. @@ -239,11 +240,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
  14.    if (! file)
  15.      goto fail;

  16. -  /* Get the root device's device path.  */
  17. -  dev = grub_device_open (0);
  18. -  if (! dev)
  19. -    goto fail;
  20. -
  21. +  dev = file->device;
  22.    if (dev->disk)
  23.      dev_handle = grub_efidisk_get_device_handle (dev->disk);
  24.    else if (dev->net && dev->net->server)
  25. @@ -266,19 +263,16 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),

  26.    if (dev_handle)
  27.      dp = grub_efi_get_device_path (dev_handle);
  28. -
  29. -  if (! dp)
  30. +  
  31. +  if (dp != NULL)
  32.      {
  33. -      grub_error (GRUB_ERR_BAD_DEVICE, "not a valid root device");
  34. +      file_path = make_file_path (dp, filename);
  35. +      if (file_path == NULL)
  36.        goto fail;
  37. -    }

  38. -  file_path = make_file_path (dp, filename);
  39. -  if (! file_path)
  40. -    goto fail;
  41. -
  42. -  grub_printf ("file path: ");
  43. -  grub_efi_print_device_path (file_path);
  44. +      grub_printf ("file path: ");
  45. +      grub_efi_print_device_path (file_path);
  46. +    }

  47.    size = grub_file_size (file);
  48.    if (!size)
  49. @@ -287,7 +281,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
  50.                   filename);
  51.        goto fail;
  52.      }
  53. -  pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12);
  54. +  pages = (grub_efi_uintn_t) GRUB_EFI_BYTES_TO_PAGES (size);

  55.    status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
  56.                               GRUB_EFI_LOADER_CODE,
  57. @@ -370,6 +364,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
  58.      }
  59.    loaded_image->device_handle = dev_handle;

  60. +  /* Build load options with arguments from chainloader command line. */
  61.    if (argc > 1)
  62.      {
  63.        int i, len;
  64. @@ -400,7 +395,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
  65.      }

  66.    grub_file_close (file);
  67. -  grub_device_close (dev);

  68.    /* We're finished with the source image buffer and file path now. */
  69.    efi_call_2 (b->free_pages, address, pages);
  70. @@ -411,9 +405,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),

  71.   fail:

  72. -  if (dev)
  73. -    grub_device_close (dev);
  74. -
  75.    if (file)
  76.      grub_file_close (file);
复制代码



回复

使用道具 举报

25#
发表于 2023-1-30 20:18:49 | 显示全部楼层
本帖最后由 求道者 于 2023-1-30 20:20 编辑
sunsea 发表于 2023-1-29 12:08
g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zst ...
  1.       
  2. 用法:lzma [选项]... [文件]...
  3. 使用 .xz 格式压缩或解压缩文件。

  4.   -z, --compress      强制压缩
  5.   -d, --decompress    强制解压缩
  6.   -t, --test          测试压缩文件完整性
  7.   -l, --list          列出 .xz 文件的信息
  8.   -k, --keep          保留(不要删除)输入文件
  9.   -f, --force         强制覆写输出文件和(解)压缩链接
  10.   -c, --stdout        向标准输出写入,同时不要删除输入文件
  11.   -0 ... -9           压缩预设等级;默认为 6;使用 7-9 的等级之前,请先考虑
  12.                       压缩和解压缩所需的内存用量!(会占用大量内存空间)
  13.   -e, --extreme       尝试使用更多 CPU 时间来改进压缩比率;
  14.                       不会影响解压缩的内存需求量
  15.   -T, --threads=数量  使用最多指定数量的线程;默认值为 1;设置为 0
  16.                       可以使用与处理器内核数量相同的线程数
  17.   -q, --quiet         不显示警告信息;指定两次可不显示错误信息
  18.   -v, --verbose       输出详细信息;指定两次可以输出更详细的信息
  19.   -h, --help          显示本短帮助信息并退出
  20.   -H, --long-help     显示长帮助信息(同时列出高级选项)
  21.   -V, --version       显示软件版本号并退出

  22. 如果没有指定文件,或者文件为"-",则从标准输入读取。

  23. 请使用英文或芬兰语向 <xz@tukaani.org> 报告软件错误。
  24. 请使用中文向 TP 简体中文翻译团队 <i18n-zh@googlegroups.com>
  25. 报告软件的简体中文翻译错误。
  26. XZ Utils 主页:<https://tukaani.org/xz/>
复制代码


没这选项

点评

-eos : write end of stream marker 是这个吗?  详情 回复 发表于 2023-1-30 20:34
那就不知道了。反正我记得Igor Pavlov的lzma.exe是可以输出给g4d能正确使用的lzma的。下载地址在7z的官方网站有个叫LZMA SDK的文件里。  详情 回复 发表于 2023-1-30 20:23
回复

使用道具 举报

26#
发表于 2023-1-30 20:34:29 | 显示全部楼层
  1. LZMA 22.01 (x86) : Igor Pavlov : Public domain : 2022-07-15

  2. Usage:  lzma <command> [inputFile] [outputFile] [<switches>...]

  3. <command>
  4.   e : Encode file
  5.   d : Decode file
  6.   b : Benchmark
  7. <switches>
  8.   -a{N}  : set compression mode : [0, 1] : default = 1 (max)
  9.   -d{N}  : set dictionary size : [12, 30] : default = 24 (16 MiB)
  10.   -fb{N} : set number of fast bytes : [5, 273] : default = 128
  11.   -mc{N} : set number of cycles for match finder
  12.   -lc{N} : set number of literal context bits : [0, 8] : default = 3
  13.   -lp{N} : set number of literal pos bits : [0, 4] : default = 0
  14.   -pb{N} : set number of pos bits : [0, 4] : default = 2
  15.   -mf{M} : set match finder: [hc4, bt2, bt3, bt4] : default = bt4
  16.   -mt{N} : set number of CPU threads
  17.   -eos   : write end of stream marker
  18.   -si    : read data from stdin
  19.   -so    : write data to stdout
复制代码


  -eos   : write end of stream marker
是这个吗?

点评

Igor Pavlov的话直接使用这个程序正常压缩即可得到正确文件。  详情 回复 发表于 2023-1-30 20:37
回复

使用道具 举报

27#
发表于 2023-1-30 20:48:11 | 显示全部楼层
sunsea 发表于 2023-1-30 20:37
Igor Pavlov的话直接使用这个程序正常压缩即可得到正确文件。不需要特别的参数。

linux下的移植还是有差异,不知道是不是BUG。
判断的标头在哪里有人知道吗?
回复

使用道具 举报

28#
发表于 2023-1-31 13:25:59 来自手机 | 显示全部楼层
不显示文字,命令行模式下显示,其他机子上也没问题。
七彩虹H310。

IMG_20230131_132436.jpg (45.15 KB, 下载次数: 161)

IMG_20230131_132436.jpg
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-10 22:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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