seabios如何Debug

现在igd assign又出问题了,在i3-6100的平台上,显示器没有任何输出!

从dmesg和Qemu的输出都看不出问题,难道在Bios阶段就出问题了?从Seabios的源码看,确实做了初始化的操作。看一下Bios的打印吧!

查看Bios打印在文档docs/Debugging.md,中说的很清楚。简单来说就这几步:

1 打开配置CONFIG_DEBUG_SERIAL,然后编译。

2 创建管道文件,mkfifo qemudebugpipe。

3 启动虚拟机,加入配置:-chardev pipe,path=qemudebugpipe,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios。

4 用脚本查看打印输出:./scripts/readserial.py -nf qemudebugpipe。

获得如下打印信息:

00.057: Intel IGD OpRegion enabled at 0x07ffe000, size 8KB, dev 00:02.0

00.057: Intel IGD BDSM enabled at 0x07700000, size 8MB, dev 00:02.0

00.067: PCI: init bdf=00:1f.0 id=8086:a143

00.067: PCI: Using 00:02.0 for primary VGA

没有任何有价值的错误信息!抓狂中!没办法发maillist了!

等待回复中!这个时间也不能浪费,我决定打开Qemu的Trace,看看Trace信息中有没有有价值的信息!

上面的信息有误,Bios的打印信息很有价值,基本定位了问题根源。而且虚拟机是卡死在bios阶段!具体就是卡在vgarom_setup阶段,bios无法从IGD获取vga rom。这个就是问题的根源,为什么无法获取vga rom?找到问题所在,是解决问题的第一步,总算有点收获了。

收到Alex的邮件回复:

Assuming IGD is the primary graphics on the host, my guess would be that the host system boots in pure UEFI mode and the VGA ROM is not installed into the VGA option ROM.  Look in the BIOS settings to see if you can boot into legacy/compatibility/CSM mode.  If this causes you to be unable to boot the installed OS, boot with a live CD, dump the VGA option ROM to a file and upload that file somewhere safe.  Reboot, return the BIOS to the original settings, boot the system, and copy the ROM file to the host system.  Make a backup of the ROM file and run rom-fixer (https://github.com/awilliam/rom-parser) on it to fix the checksum and device ID (run lspci -nns 00:02.0 to determine what the device ID should be).  Modify your vm XML to include aand cross your fingers.  If it doesn't work, check your security configuration to make sure the file is somewhere that libvirt has access to it.  Thanks,

经过深入分析,我发现情况和Alex想的不太一样,他以为问题是bios无法找到vga rom,但真实的情况是bios可以找到IGD里面的vga rom,并且能够成功的拷贝出来,问题出在运行vga rom上,卡死在运行vga rom上,我回邮件给到他,不知道这个问题如何处理。

既然是vga rom运行出问题,搞清楚vga rom是什么很有必要,网上找到一个vga bios reference

直接看代码是王道,通过log信息可以看到程序调用流程:

00.073: Scan for VGA option rom[vgarom_setup]

00.079: Attempting to init PCI bdf 00:02.0 (vd 8086:5912)[init_pcirom]

00.079: Attempting to map option rom on dev 00:02.0[map_pcirom]

00.079: Option rom sizing returned fe000000 ffff0000

00.080: Inspecting possible rom at 0xfe000000 (vd=8086:5912 bdf=00:02.0)

00.080: Copying option rom (size 65536) from 0xfe000000 to 0x000c0000[copy_rom]

00.084: Checking rom 0x000c0000 (sig aa55 size 128)[init_optionrom -> is_valid_rom]

00.084:Running option rom atc000:0003[callrom ->__callrom ]

程序卡死在__callrom上了,进一步往里跟,发现是卡死在方法call16里面的嵌套汇编代码里面了。

上面代码的目的就是初始化optionrom,那optionrom是什么呢?这个optionrom是VBIOS,intel gpu vbios相关信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容