Skip navigation.
Home
The QNX Community Portal

View topic - System Hangs at Boot

System Hangs at Boot

Discussion about the QNX6 OS.

System Hangs at Boot

Postby cciarleg » Tue Apr 26, 2011 7:00 pm

Hi again,

I am trying to get a custom kernel to boot on a PC104 board.

I can build the image and transfer it to the hard drive successfully. (Finally figured that out!)

However, after starting pterm in the background, the boot just hangs forever-I can't press any keys or esc or open a terminal etc.

I have made the .ifs file from the buildfile.

The kernel runs a series of scripts on startup-started in the buildfile. It is these scripts that seem to be hanging.

So the buildfile calls:
mountdev.sh -> mounts the hard drive
start0.sh-> does nothing and calls start1.sh->starts rest of the boot programs

start1.sh hangs after starting the pterm on the last line:
pterm /proc/boot/ksh &

I am trying to figure out where the failure is in the files and am not sure where to go from here. I am wondering how to determine if the failure is in the pterm start line above or if the failure occurs later on in the buildfile after these scripts have been run.

The 3 files have been attached.
Attachments
AMPRO Files.zip
bld
mountdev.sh
start1.sh
(3.34 KiB) Downloaded 112 times
cciarleg
Active Member
 
Posts: 23
Joined: Sat Jan 29, 2011 1:15 am

RE: System Hangs at Boot

Postby mario » Tue Apr 26, 2011 9:25 pm

If you can, start tcpip and qconn then use the IDE to do diagnostic.
mario
QNX Master
 
Posts: 4132
Joined: Sun Sep 01, 2002 1:04 am

RE: System Hangs at Boot

Postby cciarleg » Thu Apr 28, 2011 11:53 pm

Thanks mario-I have tried this and everything seems to be okay-at least when I telnet in.

However-its very annoying that I don't have a terminal or anything when I attach the keyboard/mouse/screen, and I am going to need it later I think when I configure this drive for a bridge network.

Is there something I can add to the script to prompt a display of a login terminal? How is this setup when building a kernel?

Thanks.
cciarleg
Active Member
 
Posts: 23
Joined: Sat Jan 29, 2011 1:15 am

Postby Tim » Fri Apr 29, 2011 5:23 pm

cciarleg,

Looking at your script everything seems to be doing exactly what is expected.

devc-con -n6
waitfor /dev/con1
display_msg "Opening con1"
reopen /dev/con1
### mountdev.sh finds adlink bootable hard disk and mount it as /
[+session] /proc/boot/mountdev.sh
### start0.sh starts start1.sh inturn, all the drivers are started
### in start1.sh script. The log will be in start1.log
[+session] /adlink/start0.sh &
reopen /dev/con2
[+session] ksh &

It runs your start0.sh script. Then you launch ksh into the background as a daemon process. Hence it's not attaching to the console. Try removing the & after the ksh.

Note: If you ever exit/logout of this console, you'll never get back in again because at that point there is nothing to restart ksh. This is why I typically use tinit to perpetually re-open consoles.

Tim
Tim
Senior Member
 
Posts: 1390
Joined: Wed Mar 10, 2004 12:28 am

Postby cciarleg » Thu May 19, 2011 12:07 am

Hi Tim,

After a pause in the project:

I had a look at that. I tried removing the & after ksh and nothing changed. System still hung after "Starting terminal"

I also tried removing the & after ksh starts in start1.sh and got a memory fault and the hang.

Not sure where in the script the hang is coming from yet.

*On a side note, with some compatibility issues between the processors, this script:

http://www.diamondsystems.com/support/faqs/64

boots the wrong drives, but spits out a terminal in the end. Can't see how my initializations are any different? I've tried to modify the calls to be similar but still no command line interface.
cciarleg
Active Member
 
Posts: 23
Joined: Sat Jan 29, 2011 1:15 am

Postby Tim » Thu May 19, 2011 9:49 pm

cciarleg,

Looking again in your build file I see:

1) [+session] /adlink/start0.sh &

But you don't have a start0.sh. At least not in the zip archive you uploaded. You only have a start1.sh. I doubt this is the problem but you can at least clean this up if there is no longer a start0.sh.

2) reopen /dev/con2
[+session] ksh &

This means you are starting your terminal on console 2, not console 1. By default you see console 1 when you exit photon/boot QNX. You need to press CTRL-ALT-2 to get to console 2. Your login may be there waiting for you.


I looked in the my own build script and mine ends with

reopen /dev/con1
[+session] login &
reopen /dev/con2
[+session] login &
reopen /dev/con3
[+session] login &
reopen /dev/con4
[+session] login &

Which gives me 4 consoles waiting at the login prompt (with a -f username you can autologin).

Tim

P.S. I can't access the script you linked to without a user account there.
Tim
Senior Member
 
Posts: 1390
Joined: Wed Mar 10, 2004 12:28 am

Postby cciarleg » Mon May 23, 2011 3:55 pm

ah-sorry about that-didn't realize.

I seem to have found a solution for now. As is, I tried the commands to switch to different consoles without success.

I then removed everything relating to io-display, photon, windows manager, etc. from the script.

After that, while I still get photon errors, I am able to change to a different console with a command line. I will need to look into the script to see exactly which line removed was causing the issues.

Thanks for the help!
cciarleg
Active Member
 
Posts: 23
Joined: Sat Jan 29, 2011 1:15 am


Return to QNX6 - OS

Who is online

Users browsing this forum: No registered users and 2 guests