devb-eide &
waitfor /dev/hd1 10
#erase flash Partition
#echo “Erasing Flash Partitions”
fdisk /dev/hd1 delete -a
#display new Partitions in /dev
mount -e /dev/hd1
fdisk /dev/hd1 add -s1 -t 77 -b -p 100
fdisk /dev/hd1 loader
fdisk /dev/hd1 show
#display new partions in /dev so should not slay devb-eide
mount -e /dev/hd1
#echo “Initializing Flash Partitions”
dinit -h -q /dev/hd1t77
#display new partions in /dev so should not slay devb-eide
mount -e /dev/hd1
#copy programming boot image
#echo “Installing ifs boot loader”
mount -t qnx4 /dev/hd1t77 /hd1t77
cp /srtm/aa.ifs /hd1t77/.boot
利用上述方式加载的CF分区为什么会出现有时能显示,有时看不到的现象
利用df命令的结果是:(hd0设备是DOC)
情形一:
/dev/hd0 15920 14496 1424 92% /
/dev/hd1t77 3931199 5929 3925270 1% /hd1t77/
/dev/hd1 3931200 3931200 0 100%
情形二:
/dev/hd0 15920 14496 1424 92% /
/dev/hd1 0 0 0 100%
版上各位帮分析分析,多谢了!
xtang1
March 30, 2010, 2:42pm
2
你是在同一台机器上做 fdisk,然后起动的吗?
还是在一台机器上做fdisk等初始化,然后把卡拿去别的机器用?
你说有时看得见、有时看不见,这是在不同的机器上吗?还是在同一台机器上有时看见有时看不见?
谢谢,xtang。是在同一PC104的开发板(有DOC和CF卡)上。我在BIOS里设置的驱动顺序是SCSI(DOC设备),C(CF设备)。利用在DOC上的QNX系统去操作CF卡。
CF有时加载成功,有时不成功。是通过shutdown或者掉电重启启动QNX系统后通过df命令去查询的。请问是我上述的格式化CF命令有问题吗?
xtang1
March 31, 2010, 3:29am
4
你的初始化应该没什么问题,如果初始化、使用都是在同一机器上,我还想不出来别的有什么问题。你能肯定硬件上(CF卡本身)没有问题吗?
谢谢xtang.经检查应该是我注释了命令
dinit -h -q /dev/hd1t77的原因。
利用如下去初始化CF就不存在CF卡偶尔不现在的现象了
devb-eide &
#display new Partitions in /dev
mount -e /dev/hd1
#echo “Initializing Flash Partitions”
dinit -h -q /dev/hd1t77
#display new partions in /dev so should not slay devb-eide
mount -e /dev/hd1
#copy programming boot image
#echo “Installing ifs boot loader”
mount -t qnx4 /dev/hd1t77 /hd1t77
但是当我利用bsp-x86bios修改制作的启动镜像aa.ifs拷贝到hd1t77/.boot下后
(cp aa.ifs /hd1t77/.boot)再重启开发板试图从CF卡启动QNX 6.4的镜像时又出现如下问题:
利用CF启动镜像引导起来只在屏幕上显示输出:
;
(按键盘键在屏幕上输出的都是;;;;;;
修改后的bsp-x86bios.bsh文件内容如下:
Programs require the runtime linker (ldqnx.so) to be at a fixed location
procmgr_symlink …/…/proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
Start up some consoles
devc-con -n4 &
reopen /dev/con1
display_msg Welcome to QNX Neutrino 6.4.0 on PC CompBIOS system
slogger &
Start the pci server
seedres
pci-bios &
waitfor /dev/pci
Some common servers
pipe &
mqueue &
devc-ser8250 -e &
devc-pty &
\
Start a debug server for debugging programs
waitfor /dev/ser1
[+session] pdebug /dev/ser1 &
display_msg Starting DOC Driver …
devb-doc blk automount=hd0t77:/ &
#mount one QNX 4 filesystem as /
mount /dev/hd0t77 /
display_msg Starting CompactFLASH Driver …
devb-eide &
display_msg new parttions in /dev so should no slay devb-eide
mount -e /dev/hd1
dinit -h -q /dev/hd1t77
mount -e /dev/hd1
display_msg Installing ifs boot loader
mount -t qnx4 /dev/hd1t77 /hd1t77
display_msg Starting Ethernet driver …
io-pkt-v4-hc -d rtl ioport=0x80004000 -p tcpip &
waitfor /dev/socket 10
ifconfig en0 192.192.1.4
route add 192.192.1.1
\
These env variables inherited by all the programs which follow
SYSNAME=nto
TERM=qansi
Start some extra shells on other consoles
reopen /dev/con2
[+session] sh &
reopen /dev/con3
[+session] sh &
Start a high priority shell just in case…
reopen /dev/con4
[pri=25 +session] sh &
Start the main shell
reopen /dev/con1
[+session] sh
[+session] login -p
请问是bsh文件里哪里有问题呢,请xtang指教。
(第一次制作启动镜像,看不错哪里有问题 )
xtang1
March 31, 2010, 9:20am
7
#mount one QNX 4 filesystem as /
mount /dev/hd0t77 /
这个似乎可以不要。上面的automount语句应该就可以了。
然后为什么你的启动文件里有一串 dinit -h … ? 每次开机都要初始化硬盘?
还有,你开机只看到;号吗?连那个什么 "Welcome to QNX Neutrino 6.4.0 on PC CompBIOS system"也没有看到吗?
dinit -h -q /dev/hd1t77 是我用DOC上的系统镜像启动去初始化CF时用的,发现出去注释掉这条命令的话,CF就是加载不成功。
所以我在做CF卡的启动镜像时也加载了这句。
CF的启动镜像起来时就只出现;呀,连Welcome to QNX Neutrino 6.4.0 on an PC compatible BIOS system都没有。所以搞得不知道问题出在哪里了呢
首先谢谢xtang.
补充一点:开发板上DOC的QNX启动镜像是6.2的,所以初始化CF用的所以指令都是6.2的,相应生成的文件系统也是qnx4。但是copy到CF上的启动镜像aa.ifs是我用qnx 6.4.0制作的,做镜像是也是用qnx4文件系统的。不知道这样做会不会有问题?!请xtang指教。
还有按照你上面所说的意思注释掉了相关命令,发现CF启动镜像起来的现象还是一样的。
我想实现的目标是在DOC上跑qnx 6.4系统镜像。
开发板上现有的资源是DOC, CF卡以及能启动的DOC上的qnx 6.2的镜像。由于手上没有其他启动盘,所以我的思路是:
利用DOC上的qnx 6.2的启动镜像,去初始化CF卡;
制作CF卡上的qnx 6.4启动镜像;
3.利用CF的qnx 6.4启动镜像再去操作DOC,重新制作DOC的qnx 6.4启动镜像;
不知道这样的思路有没问题 请xtang指教。
xtang你好!
折腾了几次我想CF卡在Qnx 6.2的启动镜像的初始化下是正常了。然后我利用QNX 6.4 BSP包制作的启动镜像加载到CF卡上后起来的现象如下:
His Esc for .altboot…
…
…Unable to find boot process 0 (inode 136608905)
这是不是说明我上面的设想不行呢?!就是在qnx 6.2的启动镜像下去格式化CF卡,再去加载QNX 6.4的启动镜像到CF这种方式是行不通的呢?!请指教。
xtang你好!
我发现利用qnx 6.3.2制作的CF卡启动镜像就能正常启动,顺利跑到boot script。
修改qnx 6.4.0的buildfile发现启动镜像的压缩格式不一样了,采用几种压缩格式的情形如下:
1). Compressed: No compression
Hit Esc for .altboot… unable to find boot process 0 (inode 136608905)
Compressed: Zlib或者LZO
Hit Esc for .altboot…
unsupported compression type
Compressed: UCL
Hit Esc for .altboot…
(无其他输出信息)
这是不是说明先利用qnx 6.2或者qnx 6.3启动镜像盘去制作qnx 6.4的启动镜像是行不通的呢?还有其他什么办法吗? 请指教。
谢谢xtang以版上各位的关注。结个贴,希望版上活跃些。
关注如何从6.2升级到6.4的启动镜像这个问题是我的思路有问题。
其实只要用VMWare装QNX6.4的开发环境,再用读卡器将CF(USB设备)挂载到6.4系统里去初始化CF,制作启动镜像就可以了。(即不需要直接先开发板上制作启动镜像)。当然这也只是一种解决思路。
11124
April 23, 2010, 7:12am
14
vansharp:
devb-eide &
waitfor /dev/hd1 10
#erase flash Partition
#echo “Erasing Flash Partitions”
fdisk /dev/hd1 delete -a
#display new Partitions in /dev
mount -e /dev/hd1
fdisk /dev/hd1 add -s1 -t 77 -b -p 100
fdisk /dev/hd1 loader
fdisk /dev/hd1 show
#display new partions in /dev so should not slay devb-eide
mount -e /dev/hd1
#echo “Initializing Flash Partitions”
dinit -h -q /dev/hd1t77
#display new partions in /dev so should not slay devb-eide
mount -e /dev/hd1
#copy programming boot image
#echo “Installing ifs boot loader”
mount -t qnx4 /dev/hd1t77 /hd1t77
cp /srtm/aa.ifs /hd1t77/.boot
利用上述方式加载的CF分区为什么会出现有时能显示,有时看不到的现象
利用df命令的结果是:(hd0设备是DOC)
情形一:
/dev/hd0 15920 14496 1424 92% /
/dev/hd1t77 3931199 5929 3925270 1% /hd1t77/
/dev/hd1 3931200 3931200 0 100%
情形二:
/dev/hd0 15920 14496 1424 92% /
/dev/hd1 0 0 0 100%
版上各位帮分析分析,多谢了!
因为讨论问题的两位都没有留下联系方式
所以我还是没太看懂
这个到底要怎么做呢
怎么镜像过去啊
我也需要做跟这差不多的工作的
望指教