Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: About support for rtVAX300

On 2013-01-14 11:36, Holm Tiffe wrote:
Mouse wrote:

root on unicorn:/data/home/exports/rtvax
root file system type: nfs
warning: no /dev/console
panic: init died (signal 0, exit 11)

..no clue why init is dying, but I really don't have device entries.

As of 5.1 (the most recent source tree I have at hand), if init finds
/dev/console missing, it forks a process to run ./sh ./MAKEDEV -MM init
(in /dev/), or if ./MAKEDEV isn't executable then /etc/MAKEDEV.  Exit
code 11 means that even after running that, /dev/console still doesn't
exist.  You may want to check the source for the version you're using
to see if it's true there too.

Have to look how I could create them..

If the NFS server (unicorn, in your case) is unixy enough, you may be
able to cd to /data/home/exports/rtvax/dev and run ./MAKEDEV there.
I'd suggest "./MAKEDEV std", which should at least provide console.

But this isn't my question here.  [...]

That question I'm not competent to answer.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
  X  Against HTML               mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Ok, THX.

At least I could made some devices with mknod, don't know if this is the
right way, since if my memory is correct they have to be created with the
tools from the target OS.
Init doesn't complain about a missing /dev/console anymore.

init sould stop complaining even if you just created a plain file with the name /dev/console, unless I remember wrong... The improtant question is that you create the file node with the right values. Just saying you ran mknod don't give me much confidence. mknod is not really OS specific in that way, but the values you use to mknod are very OS specific, and also differ between the same OS for different architectures.

So, what did you use for values with mknod?

Another questions would be about IPL. What do you mean by "correct" IPL? IPL is interrupt priority level, and it tells what other interrupts will be blocked. I don't think much, if any code should be using IPLs directly, but should use the symbolic IPLs such as IPL_TTY for things at the ttl level (unless I remember wrong, or something changed recently).
Someone can surely correct me on this point.

Now I have a question about the loading and initializing of device drivers
in the kernel.
There are is this static compiled in device list in ka650.c:

static const char * const ka650_devs[] = { "cpu", "sgec", "lance", "uba", NULL 

Those drivers are initialized relative early while booting what the console
is still running in polled mode.
To which time the kernel searches for the other devices that are listed in
the kernel config file like dz or my scn?

That is the autoconfig stuff.

kern/init.main.c: main -> configure
kern/init_main.c: configure -> cpu_configure
arch/vax/vax/autoconf.c: cpu_configure -> rootconf

and after that, it's driven by data structures created by config. (And, of course, I might remember things wrong, as usual...)

So, for each device that potentially can sit at a point, it will call the match function, and if that succeeds, it will call the attach and the print functions.

Why don't you have all the debug printing enabled???


Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt%softjar.se@localhost             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol

Home | Main Index | Thread Index | Old Index