还是CF的问题,xtang帮忙看看吧

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。
回复
vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

还是CF的问题,xtang帮忙看看吧

帖子 vansharp » 周二 3月 30, 2010 8:37 pm

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%

版上各位帮分析分析,多谢了!

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周二 3月 30, 2010 10:42 pm

你是在同一台机器上做 fdisk,然后起动的吗?

还是在一台机器上做fdisk等初始化,然后把卡拿去别的机器用?

你说有时看得见、有时看不见,这是在不同的机器上吗?还是在同一台机器上有时看见有时看不见?

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

在同一机器上

帖子 vansharp » 周三 3月 31, 2010 11:03 am

谢谢,xtang。是在同一PC104的开发板(有DOC和CF卡)上。我在BIOS里设置的驱动顺序是SCSI(DOC设备),C(CF设备)。利用在DOC上的QNX系统去操作CF卡。
CF有时加载成功,有时不成功。是通过shutdown或者掉电重启启动QNX系统后通过df命令去查询的。请问是我上述的格式化CF命令有问题吗?

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 3月 31, 2010 11:29 am

你的初始化应该没什么问题,如果初始化、使用都是在同一机器上,我还想不出来别的有什么问题。你能肯定硬件上(CF卡本身)没有问题吗?

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周三 3月 31, 2010 2:53 pm

谢谢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启动镜像引导起来只在屏幕上显示输出:
;
(按键盘键在屏幕上输出的都是;;;;;;;)

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周三 3月 31, 2010 2:58 pm

修改后的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指教。
(第一次制作启动镜像,看不错哪里有问题 :oops:

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

帖子 xtang » 周三 3月 31, 2010 5:20 pm

代码: 全选

#mount one QNX 4 filesystem as /
mount /dev/hd0t77 / 
这个似乎可以不要。上面的automount语句应该就可以了。

然后为什么你的启动文件里有一串 dinit -h ... ? 每次开机都要初始化硬盘?

还有,你开机只看到;号吗?连那个什么 "Welcome to QNX Neutrino 6.4.0 on PC CompBIOS system"也没有看到吗?

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周三 3月 31, 2010 6:58 pm

dinit -h -q /dev/hd1t77 是我用DOC上的系统镜像启动去初始化CF时用的,发现出去注释掉这条命令的话,CF就是加载不成功。
所以我在做CF卡的启动镜像时也加载了这句。
CF的启动镜像起来时就只出现;呀,连Welcome to QNX Neutrino 6.4.0 on an PC compatible BIOS system都没有。所以搞得不知道问题出在哪里了呢

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周三 3月 31, 2010 7:14 pm

首先谢谢xtang.
补充一点:开发板上DOC的QNX启动镜像是6.2的,所以初始化CF用的所以指令都是6.2的,相应生成的文件系统也是qnx4。但是copy到CF上的启动镜像aa.ifs是我用qnx 6.4.0制作的,做镜像是也是用qnx4文件系统的。不知道这样做会不会有问题?!请xtang指教。
还有按照你上面所说的意思注释掉了相关命令,发现CF启动镜像起来的现象还是一样的。

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周三 3月 31, 2010 7:20 pm

我想实现的目标是在DOC上跑qnx 6.4系统镜像。
开发板上现有的资源是DOC, CF卡以及能启动的DOC上的qnx 6.2的镜像。由于手上没有其他启动盘,所以我的思路是:
1. 利用DOC上的qnx 6.2的启动镜像,去初始化CF卡;
2. 制作CF卡上的qnx 6.4启动镜像;
3.利用CF的qnx 6.4启动镜像再去操作DOC,重新制作DOC的qnx 6.4启动镜像;
不知道这样的思路有没问题 :?: 请xtang指教。

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周四 4月 01, 2010 10:53 am

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这种方式是行不通的呢?!请指教。

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周四 4月 01, 2010 5:29 pm

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)

2) Compressed: Zlib或者LZO
Hit Esc for .altboot......................................................................
unsupported compression type

3) Compressed: UCL
Hit Esc for .altboot......................................................................
(无其他输出信息)

这是不是说明先利用qnx 6.2或者qnx 6.3启动镜像盘去制作qnx 6.4的启动镜像是行不通的呢?还有其他什么办法吗? 请指教。

vansharp
Senior Member
帖子: 49
注册时间: 周五 1月 16, 2009 10:40 am

帖子 vansharp » 周二 4月 06, 2010 1:29 pm

:) 谢谢xtang以版上各位的关注。结个贴,希望版上活跃些。
关注如何从6.2升级到6.4的启动镜像这个问题是我的思路有问题。
其实只要用VMWare装QNX6.4的开发环境,再用读卡器将CF(USB设备)挂载到6.4系统里去初始化CF,制作启动镜像就可以了。(即不需要直接先开发板上制作启动镜像)。当然这也只是一种解决思路。

中国魂
Senior Member
帖子: 12
注册时间: 周三 4月 07, 2010 9:20 am

Re: 还是CF的问题,xtang帮忙看看吧

帖子 中国魂 » 周五 4月 23, 2010 3:12 pm

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%

版上各位帮分析分析,多谢了!

因为讨论问题的两位都没有留下联系方式
所以我还是没太看懂
这个到底要怎么做呢
怎么镜像过去啊
我也需要做跟这差不多的工作的
望指教

回复