找回密码
 注册
快捷导航
查看: 24552|回复: 93

[BIOS] 关于T420/T520刷coreboot升级Ivy Bridge (说明和预编译固件已更新)

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

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
发表于 2015-11-25 14:53:17| 字数 1,103| - 中国–北京–北京–海淀区 电信/北京大学 | 显示全部楼层 |阅读模式
本帖最后由 vimacs 于 2016-2-21 21:39 编辑

之前有网友发现我的签名机T420用上了Ivy Bridge,然后找到了coreboot官网关于T420的wiki页面,然后很多网友也想试试。不过我打算先说明一些情况,让大家清醒一下。

首先,Sandy Bridge的硬件是兼容Ivy Bridge CPU的,只要BIOS支持就没问题,但是Intel说过不会给移动平台提供支持。而coreboot的Sandy/Ivy Bridge平台初始化代码(包括CPU,南桥,北桥,核显等)是通过逆向了Intel FSP之后重写的,Sandy/Ivy的代码除了核显相关的代码之外都是相同的,于是我在10月份的时候让coreboot社区帮忙做个T420的移植,然后弄了台T420测了一下,果然上3代i7没有问题,证实了我的想法。(T520,X220,T420s也能上Ivy Bridge CPU,但X220,T420s要BGA)此前也有人尝试更改原厂BIOS用上Ivy Bridge的,但是难度非常大,用开源社区的成果是最简单的。

关于coreboot的问题,此前有人咨询过我,我建议新手看一下我写的一点说明: https://www.coreboot.org/User:IruCai#Notes

现在T420/IVB的测试我已经做了一些了,大家可以先了解一些信息:
1. 支持的操作系统: Linux支持得很好,Windows通过VGA BIOS也能支持
2. 只测试过1600x900的屏幕,1366x768未测试。根据版上的讨论,FHD屏是通过eDP转LVDS实现的,实际输出是LVDS,可能也支持。2K屏通过板上DP输出转出,VGA BIOS可能支持。
3. 缺少的原厂固件的特性: 温度控制和电源管理可能不如原厂固件(CPU满载过热时不会及时降频,我的签名机现在是靠thermald防止CPU过热的),无法设置充电阈值
4. bug: 可能比原厂固件更挑内存,如果出现概率性的启动失败,建议重插内存,其他问题请看wiki
5. 有的功能只有7系芯片组支持: USB 3.0,显卡的3屏输出

今天在T520上也试了一下,很幸运的是,我手上的T520的BIOS芯片是SOIC-8封装的(coreboot wiki上面说的那台不是),拆下主板后用夹子夹住后连接编程器就能刷写了。不过为了方便,建议还是把BIOS芯片下面那个焊接位焊上排针或者排母,方便日后救砖。

说明和固件下载已经放在我的bitbucket上 https://bitbucket.org/iruatpku/coreboot-builds 使用前一定要备份自己的BIOS! 我已经提供了我用的config文件和构建步骤。

评分

参与人数 1资产值 +510 收起 理由
HOPE + 510 赞一个!

查看全部评分

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2015-11-25 23:20:56| 字数 136| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
QUOTE:
阿注哥 发表于 2015-11-25 15:30
楼主既然在这开帖了,想必是有讨论讨论的意思。
这两天也看了些相关的资料,还是有些顾虑。不知道楼主试 ...

我一直都是用GRUB payload.
thinkfan没用过,之前是用/proc/acpi/ibm/fan手动设置的。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2015-11-26 18:27:06| 字数 104| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
QUOTE:
nintenlang 发表于 2015-11-26 16:21
有这能耐,不如把430BIOS改成支持420键盘

就是因为没能耐才用现成的东西啊。键盘映射可能是EC固件规定的,改这个比改BIOS难度大多了。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2015-11-26 18:29:12| 字数 134| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
QUOTE:
阿注哥 发表于 2015-11-26 15:38
按照JJ的FHD方案,似乎是没有问题?因为它只是在输出信号上作了转换,不是么?

如果还是LVDS输出可能没问题。如果是eDP输出的话,也许系统启动后可以显示,但是在启动到系统GPU驱动工作之前屏幕会什么都显示不出来。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2015-11-26 20:05:03| 字数 89| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
QUOTE:
阿注哥 发表于 2015-11-26 19:57
有没有试试过这个页面提供的方法?

我已经试过好几种VGA BIOS了,包括X230的,桌面H61主板的(BIOS有IVB支持).
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-1-2 22:11:50| 字数 482| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
本帖最后由 vimacs 于 2016-1-2 22:22 编辑
QUOTE:
bios420 发表于 2016-1-2 09:07
t420刷了coreboot后成功启动Linux但总是无法启动Windows

1.

1. 刷入之后能开机并且不会半小时后自动关机就说明操作正确。
2. Windows的兼容性一直没什么时间研究,也没兴趣,我可能到寒假才有时间弄一下了。触摸板的问题是因为我在默认的BIOS设置里面禁用了,用coreboot源码包里面的util/nvramtool可以设置。
3. 以root的身份flashrom -p internal:laptop=force_I_want_a_brick -r <file>可以读取BIOS的内容,把-r <file>换成-w <file>是写入。
4. 那个GRUB界面可以定制的(自己编译一个......),Windows legacy启动似乎只能靠私有的VGA BIOS,此外Sandy Bridge CPU的话是可以用Windows的。你也可以尝试借助Clover看看能不能用UEFI方式启动Windows>=8的系统。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-1-4 11:27:51| 字数 458| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
QUOTE:
bios420 发表于 2016-1-4 03:48
多谢回复,尝试编译这个,但已经搞了一天编译5次了还是没有启动成功。求助帮我看下怎样才能行
我基本按 ...

我终于明白了,的确是要把PCI ID设成相应核显的ID(HD3000的8086:0126或者HD4000的8086:0166),刚刚试了一下,终于在IVB下跑起WinPE了。注意用一个新一点的VGA BIOS,你可以暂时拿X230/T430的试一下。

获取源码的话你再主线代码那里git cherry-pick FETCH_HEAD吧,因为那个分支还没有rebase到主线,恰好有个很严重的问题没修复,我之后在wiki上补一下编译方法。还有,用SeaBIOS的话不要设置"Run PCI option ROM"那个选项,因为SeaBIOS会运行VGA BIOS.

EHCI调试是暂时最方便的方法了,印象中树莓派的OTG接口被用来供电了,你可以看看笔记本主板的USB口能不能先把树莓派带起来。USB转TTL和EHCI调试用的不是一种信号,所以应该是不能用的。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-1-4 11:28:10| 字数 485| - 中国–北京–北京–海淀区 联通/北京大学 | 显示全部楼层
本帖最后由 vimacs 于 2016-1-4 11:29 编辑
QUOTE:
bios420 发表于 2016-1-4 03:48
多谢回复,尝试编译这个,但已经搞了一天编译5次了还是没有启动成功。求助帮我看下怎样才能行
我基本按 ...

我终于明白了,的确是要把PCI ID设成相应核显的ID(HD3000的8086:0126或者HD4000的8086:0166),刚刚试了一下,终于在IVB下跑起WinPE了。注意用一个新一点的VGA BIOS,你可以暂时拿X230/T430的试一下。

获取源码的话你在主线代码那里git cherry-pick FETCH_HEAD吧,因为那个分支还没有rebase到主线,恰好有个很严重的问题没修复,我之后在wiki上补一下编译方法。还有,用SeaBIOS的话不要设置"Run PCI option ROM"那个选项,因为SeaBIOS会运行VGA BIOS.

EHCI调试是暂时最方便的方法了,印象中树莓派的OTG接口被用来供电了,你可以看看笔记本主板的USB口能不能先把树莓派带起来。USB转TTL和EHCI调试用的不是一种信号,所以应该是不能用的。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-1-28 13:08:36| 字数 379| - 中国–广东–深圳 电信 | 显示全部楼层
本帖最后由 vimacs 于 2016-1-28 13:10 编辑
QUOTE:
bios420 发表于 2016-1-28 12:39
又拆了一遍机子,测试了下官方旧版bios终于内存能上1866了,但coreboot还是只有1600猜测可能是coreboot初始 ...

昨天我看了下gerrit,的确是coreboot锁了内存频率,虽然nb/sandybridge/raminit.c里面写着支持到2133,但是romstage.c里面限制到了1600. https://review.coreboot.org/#/c/13487/

那个ME固件应该是HM系列芯片组用的,如果它的编码方式和使用的密钥一样的话就可以,你需要确保系统不会半小时后自动关机。

硬盘加密用GRUB做应该不难吧: https://www.coreboot.org/GRUB2#LUKS_disk_openning
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-2-21 21:44:08| 字数 193| - 中国–北京–北京–海淀区 电信通/北京大学 | 显示全部楼层
QUOTE:
金陵老游侠 发表于 2015-12-2 19:18
楼主有心了!赞!
不知道为什么T520的bios不好刷?如果能上Ivy Bridge,那三代i7四核CPU性能就太有优势了 ...

今天拆了一台T520,发现我那台BIOS是SOP8封装的,也很好刷。之前说不好刷是因为看到coreboot wiki上说T520用的不是SOP8,需要焊接(其实这个焊接操作也不算麻烦)。不同的机子情况不一样。
回复 支持 反对

使用道具 举报

911

回帖

43

积分

7000

资产值

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

注册时间
2015-1-5
 楼主| 发表于 2016-10-20 21:42:54| 字数 99| - 中国–北京–北京–海淀区 教育网/北京大学 | 显示全部楼层
QUOTE:

手上没有机器。
直接参考 T420s 和 T520 做一个应该可以,注意 W520 有四个内存槽,这个地方要做个修改。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 03:38 , Processed in 0.129901 second(s), 38 queries , Gzip On, OPcache On.

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

返回顶部