找回密码
 注册
快捷导航
查看: 2392|回复: 18

[BIOS] 【原创】coreboot搭配grub2实现3秒进系统

[复制链接] |自动提醒
阅读字号:
bwyciyv - lin

2122

回帖

59

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-12-13
发表于 2020-1-6 13:58:01| 字数 1,790| - 中国–广东–中山 联通 | 显示全部楼层 |阅读模式
本帖最后由 bwyciyv 于 2020-1-6 13:58 编辑

之前编译的coreboot一直用seabios来启动系统,
跟官方BIOS方式差不多,感觉意义不大,倒不如直接用回官方BIOS.
最近折腾了下coreboot+grub2启动方式, 发现启动速度实在太快了,实现选择OS后能3秒到登陆界面.顺便分享下grub.cfg代码,也想有大神能提供下意见,如何实现grub加载clover来引导黑苹果,或者ramos.

目前测试已经实现以下功能:
1,可以直接加载指定硬盘的Linux内核来启动
2,可以自动搜索所有插上电脑的存储设备类debian系统的启动文件grub.cfg,实现启动系统,包括U盘上的debian类系统.
3,实现热键关机,重启等.

建议编译coreboot时选择payloads时选择grub2就行,grub.cfg文件不要加载.生成coreboot.rom文件后,可以用自己编写好的grub.cfg写入coreboot.rom,方法如下,把coreboot.rom与grub.cfg文件拷到coreboot/build/下
输入命令
./cbfstool coreboot.rom add -f grub.cfg -n etc/grub.cfg -t raw
如果想删除已经写入rom文件的grub.cfg并重新更新写好的grub.cfg
以下命令
./cbfstool coreboot.rom remove -n etc/grub.cfg
./cbfstool coreboot.rom add -f grub.cfg -n etc/grub.cfg -t raw


以下是本人的grub



代码如下:

#以下部分是启动显示时间与默认启动部分,还有加载硬盘,USB设备等支持
timeout=1
default=0
insmod ahci
insmod usb
insmod regexp

#这部分是直接加载硬盘上的内核来启动系统,其中set root='ahci2,msdos1' , 是因为coreboot默认主硬盘位为ahci1,
   而我是用mstat位置来装系统盘,mstat位置为ahci2.
   再下面的root=/dev/sdb1,是因为如果主硬盘插有硬盘的话,mstat就会识别为sdb而不是sda(如果没有主硬盘没有mstat就会识别为sda)


menuentry 'GNU/Linux ' {
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='ahci2,msdos1'
        echo        'Loading Linux vmlinuz kernel ...'
        linux        /vmlinuz root=/dev/sdb1 console=ttyS0,115200
        echo        'Loading initial ramdisk ...'
        initrd        /initrd.img
}

#这是实现自动搜索所有插在电脑上的存储设备上的系统启动文件,只支持类debian系统,其它类linux可以搬葫芦画瓢.
  主要目的是灵活实现启动其它硬盘的系统,重要是实现U盘安装linux.
menuentry 'All/Linux' {
        for x in (*,msdos1) ; do
                if [ -f "$x/boot/grub/grub.cfg" ] ; then
                        menuentry "Load Config from $x" $x {
                                root=$2
                                configfile /boot/grub/grub.cfg
                        }
                fi
                if [ -f "$x/grub/grub.cfg" ] ; then
                        menuentry "Load Config from $x" $x {
                                root=$2
                                configfile /grub/grub.cfg
                        }
                fi
        done
}

#这个,因为还没有装黑苹果,还没有测试,反正是成功启动clover了.
menuentry 'MacOS ' {
        insmod part_msdos
        set root='ahci2,msdos1'
        echo        'Loading macos...'
        linux16        /boot/memdisk iso ram
        echo        'clover...'
        initrd16 /boot/clover.iso
}

#热键关机与启动
menuentry 'Poweroff  [p]' --hotkey='p' {
        halt
}

menuentry 'Reboot  [r]' --hotkey='r' {
        reboot
}


启动效果如图









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 2资产值 +20 收起 理由
super_hkg + 10 精品文章
wuyuwuti + 10 虽然看不懂,但是感觉很厉害

查看全部评分

X230FHD(13.3 1920*1080) coreboot i7-3615QE 8G*2 三星1T+512G SSD
bwyciyv - lin

2122

回帖

59

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-12-13
 楼主| 发表于 2020-1-6 14:06:23| 字数 34| - 中国–广东–中山 联通 | 显示全部楼层
哦,对了,如果主系统是windows的话,看我这帖子没什么用..哈哈
X230FHD(13.3 1920*1080) coreboot i7-3615QE 8G*2 三星1T+512G SSD
回复 支持 1 反对

使用道具 举报

3188

回帖

35

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2010-1-11
发表于 2020-1-6 15:14:56| 字数 216| - 美国–新泽西州–伯灵顿–芒特劳雷尔 Comcast通信公司 | 显示全部楼层
“选择OS后能3秒到登陆界面”这个主要还是固态硬盘的功劳吧,从按下开机按钮到出现选择系统界面才是coreboot和grub的功劳。

grub加载其他efi的例子,自己改改文件名换成clover就好

menuentry "Windows 7" {
        insmod part_gpt
        insmod chain
        set root='(hd0,gpt1)'
        chainloader /EFI/Microsoft/Boot/bootm***.efi
}
回复 支持 1 反对

使用道具 举报

1万

回帖

365

积分

11万

资产值

至尊会员III Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2011-6-21
年全勤勋章2021年全勤勋章2020年全勤勋章2019年全勤勋章2017铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)月全勤勋章年全勤勋章2022年全勤勋章2023年全勤勋章2024
发表于 2020-1-6 15:22:08| 字数 9| - 中国–福建–厦门 电信 | 显示全部楼层
一脸问号的路过……
① X1 Carbon 2021 (9th) i7-1165G7 32g 2T 4G-LTE 3840×2400 + Win 11 LTSC  ② X1 Carbon 2018 (6th) i7-8650U 16g 970 Pro 1T 2560×1440 + Win 11 Pro
③ X61 T9300 4g 128g 1400×1050 + Win 7 Pro  ④ iPad Pro 2021 + Pencil Ⅱ  ⑤ MacBook Air 2023 (Starlight) M2 16g 1T 2880×1864 + macOS Sequoia 15.2
⑥ AMD Ryzen R9 9950X 64g 990 Pro 1T | WD GOLD 4T | Kingston A400 480g + ASUS ATS RTX4070 12g + MSI X870E Carbon WIFI + Win11 Pro for Workstations
回复 支持 反对

使用道具 举报

8160

回帖

90

积分

2万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2017-8-19
发表于 2020-1-6 15:22:18| 字数 22| - 中国–上海–上海 联通 来自手机版 | 显示全部楼层
厉害。能不能分享一下coreboot 如何编译
回复 支持 反对

使用道具 举报

bwyciyv - lin

2122

回帖

59

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-12-13
 楼主| 发表于 2020-1-6 15:22:19| 字数 118| - 中国–广东–中山 联通 来自手机版 | 显示全部楼层
QUOTE:
iwaitiwait 发表于 2020-1-6 15:14
“选择OS后能3秒到登陆界面”这个主要还是固态硬盘的功劳吧,从按下开机按钮到出现选择系统界面才是coreboo ...

目前就是按开机键到登陆4秒,因为显示grub菜单手了一秒
回复 支持 反对

使用道具 举报

bwyciyv - lin

2122

回帖

59

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-12-13
 楼主| 发表于 2020-1-6 16:48:59| 字数 63| - 中国–广东–中山 联通 来自手机版 | 显示全部楼层
QUOTE:
William2006 发表于 2020-1-6 15:22
厉害。能不能分享一下coreboot 如何编译

有时间我写下教程
回复 支持 反对

使用道具 举报

2707

回帖

50

积分

8万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-3-25
发表于 2020-1-6 18:08:42| 字数 5| - 中国–湖南–长沙 电信 | 显示全部楼层
完全看不懂
偏见比无知距离真理更遥远
T460S 12g 512g
回复 支持 反对

使用道具 举报

1818

回帖

39

积分

3万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2017-8-16
年全勤勋章2022月全勤勋章
发表于 2020-1-6 20:18:20| 字数 5| - 中国–江苏–常州 移动 | 显示全部楼层
都是高手啊
回复 支持 反对

使用道具 举报

369

回帖

13

积分

1万

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2010-9-12
铜牌荣誉勋章(注册8年以上会员)
发表于 2020-1-6 22:56:04| 字数 20| - 中国–广西–南宁 电信 | 显示全部楼层
一脸的问号路过,到十楼凑个热闹。高手高手
IBM X60
lenovo X61  X220  W530
回复 支持 反对

使用道具 举报

1039

回帖

22

积分

1万

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2018-12-4
年全勤勋章2022
发表于 2020-1-6 23:54:59| 字数 36| - 中国–北京–北京–丰台区 联通 | 显示全部楼层
这个coreboot和黑果小兵教程下面的一个opencore是一个东西吗
回复 支持 反对

使用道具 举报

bwyciyv - lin

2122

回帖

59

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-12-13
 楼主| 发表于 2020-1-7 02:37:24| 字数 99| - 中国–广东–中山 联通 | 显示全部楼层
QUOTE:
johnsonkee 发表于 2020-1-6 23:54
这个coreboot和黑果小兵教程下面的一个opencore是一个东西吗

不一样,这个是直接写入主板的固件,opencore是在硬盘上的
X230FHD(13.3 1920*1080) coreboot i7-3615QE 8G*2 三星1T+512G SSD
回复 支持 反对

使用道具 举报

1039

回帖

22

积分

1万

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2018-12-4
年全勤勋章2022
发表于 2020-1-7 02:59:33| 字数 66| - 中国–北京–北京–丰台区 联通 | 显示全部楼层
QUOTE:
bwyciyv 发表于 2020-1-7 02:37

不一样,这个是直接写入主板的固件,opencore是在硬盘上的

高端,学习了
回复 支持 1 反对

使用道具 举报

1

回帖

0

积分

35

资产值

入门会员 Rank: 1

注册时间
2020-11-25
发表于 2021-1-28 09:59:49| 字数 9| - 中国–北京–北京 联通 | 显示全部楼层
大佬厉害 学习了!!
回复 支持 反对

使用道具 举报

155

回帖

7

积分

1万

资产值

高级会员 Rank: 2Rank: 2

注册时间
2007-11-24
发表于 2021-1-28 10:35:32| 字数 10| - 中国–广东–广州 联通 | 显示全部楼层
围观,高手,膜拜中!
回复 支持 反对

使用道具 举报

4万

回帖

298

积分

2万

资产值

至尊会员III Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-2-29
银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)
发表于 2021-1-29 16:24:11| 字数 75| - 中国–上海–上海 电信/电信CN2 | 显示全部楼层
QUOTE:
bwyciyv 发表于 2020-1-7 02:37
不一样,这个是直接写入主板的固件,opencore是在硬盘上的

写入主板???主板上bios?
屌丝的逆袭。。。XPS12 6y75/8g/512g nvme
神船TX8 i5-10500/16G/144Mhz/RTX3066/3T nvme3.0
x1c6th i5-8350/16g/1T intel760P+512G M2.2242
T440p/I5-4300m/HD4600+GT730M1G/12GD3/480GSSD+1THDD/FHD72%色域/蓝指摄/无背光键盘/实体三键/AC8260+L450/i5-6200U/16G/256/蓝指摄/FHD72%色域
乐凡F2/赛扬1037U/FHD手触/4+256G Msata/双模机械键盘+ipad pro10.5
回复 支持 反对

使用道具 举报

127

回帖

2

积分

827

资产值

中级会员 Rank: 2Rank: 2

注册时间
2009-9-6
发表于 2021-1-29 23:14:16| 字数 66| - 中国–香港 城市电讯有限公司 | 显示全部楼层
coreboot 也可以啟動 windows,只要用Windows 的bootloader 就可以,大前題coreboot 要放入顯卡bios
回复 支持 反对

使用道具 举报

3

回帖

0

积分

51

资产值

入门会员 Rank: 1

注册时间
2021-6-18
发表于 2021-8-29 17:18:12| 字数 147| - 中国–重庆–重庆 联通 | 显示全部楼层
QUOTE:
super_hkg 发表于 2021-1-29 23:14
coreboot 也可以啟動 windows,只要用Windows 的bootloader 就可以,大前題coreboot 要放入顯卡bios

对windows支持貌似必须使用seabios作为payload,而且还需要vgabios.bin
回复 支持 反对

使用道具 举报

1万

回帖

147

积分

1万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2019-3-18
发表于 2021-8-29 17:31:44| 字数 57| - 中国–浙江–宁波 电信 | 显示全部楼层
这,,,,不管是哪种GRUB, 启动LINUX都是载入内核启动,一直以来就是这样,更别说LINUX默认的GRUB2.
Live goes on, 舞矛论剑... 面朝花开, 心向大海
回复 支持 反对

使用道具 举报

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

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-13 03:00 , Processed in 0.255374 second(s), 58 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部