能力值:
( LV2,RANK:10 )
|
-
-
2 楼
跟那没关系吧,Grub吧
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
这个和grub没关的吧,因为是从U盘启动,所以上电自检后加载的是U盘第一扇区,这个扇区是自己写的,作用就是在U盘查找并加载Loader,Loader再查找加载Kernel,开启保护模式后就跳到Kernel入口...
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
1.端口0x1f0--0x1f7这个端口是IDE接口硬盘使用的,换到笔记本的SATA接口上面就变了
2.建议乖乖的使用扩展int 13h中断读写磁盘,就是一个实模式/保护模式切换的问题,具体可以参看ntldr的实现方式
3.如果执意想使用IO端口的方式读写磁盘,那么请遍历PCI设备,查找到南桥存储控制器所在的Bus/Dev/Func 然后根据PCI规范读取相关的PCI配置空间以得到相关的IO端口信息
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
你的意思是台式机和笔记本的硬盘的接口不一样,我再去看看ATA手册,希望能找到线索...
我曾看到过你说的那种实/保护模式切换读取的方式,但从长远来看,个人觉得这不是一个较好的最终方案,我偏向于端口操作.我虽然尝试写系统,但有好多硬件接口知识匮乏,最要命的是不知道从哪里查资料!昨天初步看了PCI,看来得深入下去了.谢谢大虾.
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
还有啊,不是说台式机的端口和笔记本不一样,是如果台式机你在BIOS里开启了AHCI和不开启AHCI的端口也是不一样的~
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
我打开电脑看了一下SATA控制器的信息,然后问你一下,这个中断19是什么情况?8259只支持16个中断啊,难道这个是会像异常一样触发中断?
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
[QUOTE=zevenfly;1178918]
我打开电脑看了一下SATA控制器的信息,然后问你一下,这个中断19是什么情况?8259只支持16个中断啊,难道这个是会像异常一样触发中断?[/QUOTE]
8259是几百年前的玩意了~奔腾以后的PC都是APIC的,也就是说1994年以后的PC都是APIC,一个APIC有一组24条IRQ线
|
能力值:
( LV9,RANK:190 )
|
-
-
10 楼
你参考一下老毛挑U盘PE系统的u盘引导程序就会明白!
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
我参考那个作甚?那个跟APIC有关系?
|
能力值:
( LV3,RANK:20 )
|
-
-
12 楼
对于中断号超过15这个问题,刚好这几天我看到相关的资料,说是有2种方法,一种增加中断号,另一种是共享中断号...看来中断控制器以后也要重新写了...
对了,我在bios里设置SATA为兼容模式用老的端口方式成功读出硬盘了,但是读不出U盘.
另外, 这几天我也看了PCI配置空间,初步可以实现读取配置空间和遍历设备,但没弄明白那6个地址的意思,求点拨.
|
能力值:
( LV3,RANK:20 )
|
-
-
13 楼
现在能够顺利引导,但就是到了保护模式读不了U盘...难道要自己写USB底层驱动?
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
没必要 你自己看一下相关的中断的说明就行了
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
你好,请问你知道16位实模式下U盘读操作该怎么进行吗? 我现在想把一个软盘引导的系统改成u盘引导的系统,我的理解是系统本身是不需要修改的(读到内存里都一样,不必关心怎么读进来的),但引导区程序需要修改,因为软盘和U盘存储结构不同,虽然都用int 0x13进行读操作,但是读的过程和方法显然是不同的。软盘属于磁盘,有磁头、柱面等概念,但U盘不属于磁盘,U盘用的是闪存。
|
|
|