然后就不亮了
不亮了
了
玩了这么多年电脑,折腾过这么多主板,还真没见过BIOS Restore Default会死的
莫非这个BIOS自带炸弹? (逃
于是乎开始寻思怎么刷BIOS
首先主板上找到这BIOS的Flash是Winbond W25Q64
Google之,这芯片支持SPI协议读写
小时候刷过BIOS,玩过编程器
可是编程器在家里,没带来学校,我也很无奈啊
上淘宝?
淘宝得3天,也就是说3天没电脑用。
我他可等不急。
咦不就是SPI嘛,瞄向身边的东西
单片机?算了吧,折腾太辛苦,速度太慢。
咦树莓派不是有SPI吗?
随手Google(这个网站不存在的)百度了一下Raspberry Pi W25Q64
沃!德!天!有!人!写!了!驱!动!https://github.com/nopnop2002/Raspberry-W25Q64
看到了希望,焊上线。直接飞线,连把芯片吹下来都省了。
测试了一下驱动,能读能写,没毛病
于是Google了一下ASUS K56CM BIOS,下到了一个完整的8MB的BIOS镜像(感谢提供的那位大哥)
然后呢根据那个驱动提供的涵数,YY写了一个读入8MB BINARY文件并写进去的程序。(大概就是写了三个FOR,只做了一点微小的贡献,谢谢大家)
FILE *fp;
int nVal;
fp = fopen("/home/pi/K56CM.BIN", "r");
int shanqui = 1;
int alli = 1;
for(alli = 1;alli<=2048;alli++){
n = W25Q64_eraseSector(alli-1,true);
printf("Erase Sector(%d): n=%d\n",alli-1,n);
for(shanqui = 1;shanqui<=32;shanqui++){
int fuckingi = 1;
for(fuckingi = 1;fuckingi <= 128;fuckingi++){
nVal = 0;
fread(&nVal, 1, 1, fp);
fseek(fp,(((alli*4096)+(shanqui*128)-128)-4096)+fuckingi,SEEK_SET);
wdata[fuckingi-1]=nVal;
printf("%02X", wdata[fuckingi-1]);
}
n = W25Q64_pageWrite(alli-1, (shanqui*128)-128, wdata, 128);
printf("page_write(%d,%d,d,128): n=%d\n",alli-1,(shanqui*128)-128,n);
走起
看着 Konsole Console 一行行地跳动 简直爽过吸大麻(说得好像我吸过一样)
爽过XXO%^#%^!#%~$#$#%^(*&(*^.....
噢对了提醒下各位小伙伴,华硕K56CM这个BIOS序列号在偏移00230000(十六进制)处,如图
拆线上电
屏幕亮的一瞬间真的爽过吸大麻
改过的程序(写入8MB Binary)放到Github上了,大家只要git clone就能用了
https://github.com/liyafe1997/Raspberry-W25Q64-Write-Binary
本文地址:https://www.liyanfeng.com/post/118.html(如转载,需注明本原文地址)