在CF卡中保存hive based registry的问题,急求解决

wintolinux 2008-12-03 01:27:06
小弟在ce platfrom builder 5.0定制CE,加入hive的就不能开机了,黑屏,键盘没反映。
时间紧急,急求兄弟帮忙!!!

1,目标平台是X86主板,芯片组为INTEL 852,用了INTEL 852的BSP包。
2,存储设备为CF卡,主板认作IDE4;也用IDE硬盘试过,一样不能开机,但关闭hive选项就可以。
3,我在Catalog里加入了Hive-Based Registry
4,加变量FILESYS_FSREGHIVE,并在platform.reg里加入如下内容:

; @CESYSGEN IF FILESYS_FSREGHIVE
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="\\Registry\\system.hv"
"PROFILEDIR"="\\Registry"
"Start DevMgr"=dword:1 ;这里设为1就不能开机了,黑屏,键盘没反映
[HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ]
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\Drivers\Resources\IO]
"Flags"=dword:1000
IF BSP_NOPCIBUS !
; @CESYSGEN IF CE_MODULES_ATAPI
IF BSP_NOIDE !
[$(PCI_BUS_ROOT)\Template\GenericIDE]
"Flags"=dword:1000
ENDIF BSP_NOIDE !
; @CESYSGEN ENDIF CE_MODULES_ATAPI
ENDIF BSP_NOPCIBUS !
; @CESYSGEN IF CE_MODULES_TRUEFFS
IF BSP_NODOC !
[$(BUILTIN_ROOT)\TrueFFS]
"Flags"=dword:1000
ENDIF BSP_NODOC !
; @CESYSGEN ENDIF CE_MODULES_TRUEFFS
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
;"MountFlags"=dword:2
"MountBootable"=dword:1
; END HIVE BOOT SECTION
; @CESYSGEN ENDIF FILESYS_FSREGHIVE
...全文
366 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqm_44944 2009-03-30
  • 打赏
  • 举报
回复
别忘了添加驱动啊!
sky116524792 2009-03-09
  • 打赏
  • 举报
回复
最近 搞DOM的HIVE 启动 ,有些牌子的dom 启动超过了,但是有些牌子的dom就是黑屏啊 。。。
不知道怎么办啊 、、、?求助!
求助!!
求助 !!
Seven_zhangxw 2008-12-23
  • 打赏
  • 举报
回复
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
"MountAsRoot"=dword:1
"Flags"=dword:1000


注意这个"Flags"=dword:1000,将common.reg文件里面的所有
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\xxx]
都增加一行
"Flags"=dword:1000
试试看
我也会最近试验一把的,祝你好运
lmlmlmnew 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wintolinux 的回复:]
to lmlmlmnew:
如果你用的大容量的并且格式化为HDD的CF卡可能会有一些错误,我遇到的是不支持DMA,可以在ATAPI的驱动的注册表中使其不支持DMA就可以了~
ZIP格式的CF应该没什么问题。

如何修改ATAPI的驱动使其不支持DMA?那主板是不是要做相应的设置(使用PIO模式)?

另CF卡如何使用ZIP格式?
[/Quote]
你去ATAPI的驱动文件夹里面,找那个注册表,里面关于DMA有很详细的注释的,不用改BIOS。
具体的位置我不太记得了,应该很好改的。
ZIP格式用USBOOT软件格式化一下就好了,但必须<256MB。

我前段时间刚做完并且咱俩的环境基本上是一致的,并且我也在出现过你现在的情况,所以按我那个注册表那么改应该是可以通过的了。

现在我改作单片机,机器被重格,以前的资料都差不多没了,所以才没说出详细的~~~

wintolinux 2008-12-18
  • 打赏
  • 举报
回复
to shuiyan:

IF BSP_NOPCIBUS !
; @CESYSGEN IF CE_MODULES_ATAPI
IF BSP_NOIDE !
[$(PCI_BUS_ROOT)\Template\GenericIDE]
"Flags"=dword:1000
ENDIF BSP_NOIDE !
; @CESYSGEN ENDIF CE_MODULES_ATAPI
ENDIF BSP_NOPCIBUS !

这里面没有加入CF卡的驱动,或者硬盘的驱动。而因为boot.hv加载时,没加载存储驱动,后续就无法从存储器(CF/硬盘)找到后续需要的system.hv/user.hv。

我要如何加入CF卡的驱动?好像就是PCMIA的设备吧。PCMIA的驱动已加上了。而且不开启HIVE的情况下可以正常操作CF卡
wintolinux 2008-12-18
  • 打赏
  • 举报
回复
to lmlmlmnew:
如果你用的大容量的并且格式化为HDD的CF卡可能会有一些错误,我遇到的是不支持DMA,可以在ATAPI的驱动的注册表中使其不支持DMA就可以了~
ZIP格式的CF应该没什么问题。

如何修改ATAPI的驱动使其不支持DMA?那主板是不是要做相应的设置(使用PIO模式)?

另CF卡如何使用ZIP格式?
wintolinux 2008-12-18
  • 打赏
  • 举报
回复
不好意思,出差刚回来.
答hzdysymbol的问题
1. 你知道你的CF卡驱动是通过Storage Manager加载还是Device.exe加载?
这个我无法确定,但在Storage Manager里能看到IDE Hard Disk(其实就是CF卡)
2. CF卡或硬盘在没有Enable Hive的时候使用正常吗?也就是说在Image起来后可以正常在CF卡或硬盘上建文件,复制文件等操作,断电重起后数据保存
不打开hive时确认正常
3. 看你的驱动除了CF卡好象还有DOC,或别的Flash吗?
使用的存储介质有CF卡,DOM或IDE的硬盘。
4. 4,加变量FILESYS_FSREGHIVE,这个变量不需要另外加的
这个不加也试过。
5. 添加了Hive Base Feature后有做过Clean Sysgen吗?
贴一份没有Enable Hive时可以使用的正常的注册上来,所以跟Flash,CF,HD相关的注册表项都要有
有做过Clean Sysgen,至于完整的注册表因为太大无法上传。
snow_haoxue 2008-12-11
  • 打赏
  • 举报
回复
如果关掉HIVE,系统可以正常启动,而开启的话没有启动,那么原因多数在于文件系统没有能够在正确的时间加载
检查你的相关驱动是否已经在os的window目录下找到,可以在HIVE关闭的状态下启动机器,察看机器的注册表(我是因为犯了这样的错误系统无法启动的);如果ok,再检查一下你的相关驱动是否能够正确挂载(可以在关闭HIVE的状态下进行);如果可以,检查你的注册表设置,相关设置最好看MSDN的,因为每个人的情况不一定一样。

祝好运
xqhrs232 2008-12-11
  • 打赏
  • 举报
回复
你有CF卡的驱动吗?MS应该没有提供吧!
shuiyan 2008-12-11
  • 打赏
  • 举报
回复
IF BSP_NOPCIBUS !
; @CESYSGEN IF CE_MODULES_ATAPI
IF BSP_NOIDE !
[$(PCI_BUS_ROOT)\Template\GenericIDE]
"Flags"=dword:1000
ENDIF BSP_NOIDE !
; @CESYSGEN ENDIF CE_MODULES_ATAPI
ENDIF BSP_NOPCIBUS !

这里面没有加入CF卡的驱动,或者硬盘的驱动。而因为boot.hv加载时,没加载存储驱动,后续就无法从存储器(CF/硬盘)找到后续需要的system.hv/user.hv。
wdmoona 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xqhrs232 的回复:]
你有CF卡的驱动吗?MS应该没有提供吧!
[/Quote]

我们公司自己设计板卡,自己开发驱动,,

牛人也不少,只是我没在那个环境下,大部分东西还是得靠自己摸索,郁闷
Seven_zhangxw 2008-12-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wdmoona 的回复:]
前段时间也在X86下做过HIVE,同样的问题黑屏无法启动,关注```
[/Quote]

我的也是
wdmoona 2008-12-04
  • 打赏
  • 举报
回复
前段时间也在X86下做过HIVE,同样的问题黑屏无法启动,关注```
lmlmlmnew 2008-12-04
  • 打赏
  • 举报
回复
我的和你环境基本一致,也在网上找了很多关于HIVE的,直接按网上的来,没有成功过。主要的原因可能是网上的资料都是ARM的x86的少些。

首先,添加2个环境变量在Platform-〉Setting-〉Enviroment里添加。PRJ_ENABLE_FSMOUNTASROOT = 1和PRJ_ENABLE_FSREGHIVE = 1。

然后可以在Platform.reg里面加下面的注册项,也可以在Common.reg中直接搜寻并添加相应的项,建议你先在Common.reg里面查到并看一下具体修改了哪些,弄明白原因再在Platform.reg中添加。

[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="Documents and Settings\\system.hv"
"ProfileDir"="Documents and Settings"
"DefaultUser"="Default"
"RegistryFlags"=dword:1
"Flags"=dword:0
"Start DevMgr"=dword:1

; @CESYSGEN ELSE
; HIVE BOOT SECTION
IF PRJ_BOOTDEVICE_ATAPI
[HKEY_LOCAL_MACHINE\init\BootVars]
"Flags"=dword:3
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
"MountAsRoot"=dword:1
"Flags"=dword:1000
ENDIF

IF PRJ_BOOTDEVICE_MSFLASH


[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd.dll"
"Flags"=dword:00000064
"Paging"=dword:1
"EnableCache"=dword:1
"CacheSize"=dword:0
"Util"="fatutil.dll"
"CacheDll"="diskcache.dll"
"Flags"=dword:1000

; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
"AutoMount"=dword:1
"AutoPart"=dword:0
"AutoFormat"=dword:0
"MountFlags"=dword:0
"DefaultFileSystem"=""
"PartitionDriverName"="MSPART"
"Folder"=LOC_STORE_DEFAULT_FOLDER
"Flags"=dword:1000

; HIVE BOOT SECTION
; @CESYSGEN IF CE_MODULES_ATAPI
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
"Name"="IDE Hard Disk Drive"
"Folder"=LOC_STORE_HD_FOLDER

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile\FATFS]
"EnableCacheWarm"=dword:0
"Flags"=dword:1000

如果你用的大容量的并且格式化为HDD的CF卡可能会有一些错误,我遇到的是不支持DMA,可以在ATAPI的驱动的注册表中使其不支持DMA就可以了~
ZIP格式的CF应该没什么问题。
没使用过硬盘。
hzdysymbol 2008-12-03
  • 打赏
  • 举报
回复
1. 你知道你的CF卡驱动是通过Storage Manager加载还是Device.exe加载?
2. CF卡或硬盘在没有Enable Hive的时候使用正常吗?也就是说在Image起来后可以正常在CF卡或硬盘上建文件,复制文件等操作,断电重起后数据保存
3. 看你的驱动除了CF卡好象还有DOC,或别的Flash吗?
4. 4,加变量FILESYS_FSREGHIVE,这个变量不需要另外加的
5. 添加了Hive Base Feature后有做过Clean Sysgen吗?
贴一份没有Enable Hive时可以使用的正常的注册上来,所以跟Flash,CF,HD相关的注册表项都要有
hzdysymbol 2008-12-03
  • 打赏
  • 举报
回复
最近忙着在学习Android,等下班或别的时间帮你看看吧

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧