Problem with init process

Juan
Hi all,

I've purchased recently a micro2440 module and SDK board. After perform
some testing with the board several weeks, no I'm trying to boot linux with
NFS rootfs and busybox 1.19.4 but I'm having problems with the init
process.

My bootargs are next:

bootargs=console=ttySAC0,115200 noinitrd init=/sbin/init mini2440=0tb
root=/dev/nfs rw nfsroot=A.B.C.2:rootfs_path
ip=A.B.C.3:A.B.C.2::255.255.255.0:mini2440=0tb:eth0:off

(NOTE: I wrote A.B.C. and rootfs_path so I don't want to specify my private
LAN addreses, nor my filesystem structure ;)


Now the last output on the console is next:

VFS: Mounted root (nfs filesystem) on device 0:11.
Freeing init memory: 164K
Warning: unable to open an initial console.
nfs: server A.B.C.2 not responding, still trying


My rootfs includes all the devices needed, created with mknod command, in
order to boot linux and get the console, but I ever get the "unable to open
initial console" message. The rootfs /dev directory listing is next:

crw-rw-rw-. 1 root root   5,  1 jun  7 16:52 console
crw-rw-rw-. 1 root root   1,  3 jun  4 13:08 null
crw-rw-rw-. 1 root root   4,  0 jun  4 13:07 tty
crw-rw-rw-. 1 root root   4,  0 jun  4 13:07 tty0
crw-rw-rw-. 1 root root   4,  1 jun  4 13:07 tty1
crw-rw-rw-. 1 root root   4,  2 jun  4 13:08 tty2
crw-rw-rw-. 1 root root   4,  3 jun  4 13:08 tty3
crw-rw-rw-. 1 root root   4,  4 jun  4 13:08 tty4
crw-rw-rw-. 1 root root 204, 64 jun  4 13:08 ttySAC0
crw-rw-rw-. 1 root root 204, 65 jun  4 13:09 ttySAC1
crw-rw-rw-. 1 root root 204, 66 jun  4 13:09 ttySAC2


And the /etc/inittab file includes the next line:

ttySAC0::respawn:/sbin/getty -L ttySAC0 115200 vt100 # GENERIC_SERIAL


Anyone could help me to find what the problem is?


Thank you in advance

Juan

davef
Try adding to /etc/inittab

::respawn:sbin/getty -L 9600 tty1 vt100

There might be some stuff you have to enable in the kernel;

Device Drivers  --->
  Character devices  --->
    [*] Virtual terminal
    [*]   Enable character translations in console
    [*]   Support for console on virtual terminal
 
NFS problem.

Have you got the /etc/exports file set up correctly on the host?

Have a look in /var/log/syslog

Juan
Hi Dave,

Thank You very much for your quick answer. The kernel I'm using for is
downloaded from FriendlyARM resources, the version is: 2.6.32.2.

I've tried with the binaries from the DVD, also with my own compiled
binaries with same result.

So, I've compiled again the kernel adding the next options:

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y  <-- this is the only one change applied
# CONFIG_DEVKMEM is not set
CONFIG_MINI2440_HELLO_MODULE=y  <-- this is because I don't compile modules
CONFIG_LEDS_MINI2440=y
CONFIG_MINI2440_BUTTONS=y
CONFIG_MINI2440_BUZZER=y
CONFIG_MINI2440_ADC=y
# CONFIG_SERIAL_NONSTANDARD is not set


And with the change proposed to inittab as follows:

ttySAC0::respawn:/sbin/getty -L ttySAC0 115200 vt100 # GENERIC_SERIAL
tty1::respawn:sbin/getty -L 9600 tty1 vt100


But I've got no positive result... and I'm absolutely blocked by this
issue.


Thanks again and Best Regards

Juan

davef
>Warning: unable to open an initial console.

I assume you searched for this error on this site.  It has come up quite
often.

Do you still get your NFS error OR did you track that one down?

Juan
Hi again,

Yes, I've readed a lot, here and in other websites, before I made the post.
About the log of my NFS server, here it is the last output:

Jun  8 15:39:11 host xinetd[1363]: START: tftp pid=15271 from=192.168.100.3
Jun  8 15:39:22 AMD64x2 rpc.mountd[1553]: authenticated mount request from
192.168.100.3:887 for "rootfs_path" ("rootfs_path")
Jun  8 15:44:41 host rpc.mountd[1553]: authenticated mount request from
192.168.100.3:691 for "rootfs_path" ("rootfs_path")


NOTE: again I've modified sensible data (to me) as hostname and path.

davef
It looks like the NFS side is working OK.  Do you still get the two
messages:

> Warning: unable to open an initial console.
> nfs: server A.B.C.2 not responding, still trying

This was the thread that was near the top of my memory bank:

http://www.friendlyarm.net/forum/topic/3822

Sorry, I don't recall having to face this particular problem.

micro2440 with 0tb.  This means you are running the 3.5" NEC touchscreen?

I assume you had a working platform which could operate off NAND.  Have you
ever tried using an SD card for kernel and root filesystem?

How about posting your entire bootup messages

Juan
Attachment: arranque_uimage-2.6.32.txt (18.45 KB)
Hi,

I've read before the message you posted yesterday. About your comment
there, I can say to you that I've compiled kernel and busybox with the same
toolchain. About the touchscreen, I haven't purchased it.

I attach a text file with the boot log.


Regards

Juan

Dave Festing
Attachment: my-nfs-boot-log.txt (9.48 KB)
Juan,

Attached find my NFS boot log.

A few things I would focus on:

0tb, means the 3.5"NEC touchscreen.  Try just leave it blank, mini2440=

mtd: partition "root" extends beyond the end of device "NAND 128MiB 3,3V
8-bit" -- size truncated to 0x7aa0000
0x000000000000-0x000040000000 : "nand"
mtd: partition "nand" extends beyond the end of device "NAND 128MiB 3,3V
8-bit" -- size truncated to 0x8000000
dm9000 Ethernet Driver, V1.31

I have seen this message in previous threads on here, see if they were
resolved and/or are important.


> Warning: unable to open an initial console.
> nfs: server A.B.C.D not responding, still trying

I wonder if the first warning is because NFS in not working or maybe it is
expecting a local console and you are not providing one.  The virtual
terminal stuff, I think is only needed when you want to run the
touchscreen.  Maybe, try removing that from your kernel configuration.

You are attaching a heap of USB devices!!  How big is your kernel?

We need an expert here!

Juan
Hi Dave,

Thank you for your help and quick responses. I tried to boot without the
mini2440=0tb option and got the same error.

About the mtd message and the VT kernel option, I'll continue this
afternoon, maybe tomorrow, and will post the results here as soon as
possible.

And yes, I think that the USB drivers could be checked off to get a smaller
vmlinux... in fact, I didn't pay attention on them before.


Regards

Juan

Juan
Hi again,

I've made some changes to the .config file of the kernel, that was
practically a copy of the one provided with the board, and added sysfs
support so wasn't provided. The result continue to be the same.

On the other hand, I've take a look at the mtd message in the forum, and
others, and my conclussion is that has no importance. In fact, I've deleted
the root partition and added it again with mtdparts command, and the
message still appears on the boot log.

The meaning of the mtd  message is that the partition is considered to be
greater, I don't know why, but it is detected the real capacity and is
truncated to accommodate the size to the real one.

I'll continue struggling...


Thank you & Regards

Juan

davef
> I assume you had a working platform which could operate off NAND.  Have >
you ever tried using an SD card for kernel and root filesystem?

Let's check a few things . . . how big is the flash and does Supervivi
support NFS?

> Have you got the /etc/exports file set up correctly on the host?

Maybe, post what you have in this file on the host.

> I've deleted the root partition and added it again with mtdparts command

Is that selection [s] in Supervivi?  Never used it. 

Still struggling too!

Juan
I'm sorry, as you say I forgot to post some info asked for.

The /etc/exports contains the next options:

rootfs  *(rw,fsid=0,no_subtree_check,sync,no_root_squash)


The flash has 128 MB capacity, supervivi has no NFS support and I'm working
with u-boot:

U-Boot 1.3.2-mini2440 (May 30 2012 - 17:33:06)

I2C:   ready
DRAM:  64 MB
NOR Flash not found. Use hardware switch and 'flinit
Flash:  0 kB
NAND:  128 MiB
Found Environment offset in OOB
USB:   S3C2410 USB Deviced                                              In:
 serial
Out: serial                     
Err: serial

davef
u-boot and trying to load a YAFFS2 filesystem according to your bootlog.txt

My understanding is that that doesn't work.

Supervivi = YAFFS2
u-boot = JFFS2

My NFS doesn't have the fsid=0 in it, if it makes any difference.

Juan
Well,

You say that the problem is the mtd partition so it is YAFFS2, but I've
deleted and recreated it with u-boot, so it must be empty or to be JFFS2...
and the inittab does not mount mtd partitions.

As far as you say, a possible solution will be to avoid that the kernel try
to mount the mtd partitions in any way...

The other one is to make a JFFS2 image with the rootfs, copy it to the NAND
and work in this way... but I need more a flexible development
environtment, like NFS partition.

Well, in that case then I'll try again to compile a 3.0 kernel with JFFS2
support, but I had another problem with it that was the reason to use the
2.6.32 from FriendlyARM.

This is another history, but the problem I had with the 3.0 kernel is that
I was unable to compile with NFS support, so the make command does not show
the kernel configuration options with menuconfig option, although they are
included in the fs/nfs/Kconfig,  and I can't compile with manually
generated/edited .config file so ever is overwritten by the one generated
by make menuconfig... and I'm not an expert editing Kconfig files to fix
this.


Regards

Juan

Juan
About the problem with CONFIG_NFS_FS and kernel 3.0.

I forgot to mention that, of course, the options required by NFS:
CONFIG_NETWORK_FS=y, CONFIG_INET=y and CONFIG_FILE_LOCKING=n are selected.

davef
With reference to the thread of 2012-06-14 10:32:06 did you just change to
u-boot at that time?  If so, then my comment:
> u-boot and trying to load a YAFFS2 filesystem according to your
bootlog.txt
is not valid.  Because I did not see a bootlog from you using u-boot.

I don't know if it is the way the bootloader mounts the partitions that
dictates what type of filesystem image that you have to use, but:

u-boot requires a uImage which is JFFS2 and
Supervivi requires a zImage which is YAFFS2

You can convert a default zImage to a uImage by:

# sudo ./uboot/mini2440/tools/mkimage –A arm –O linux -T kernel -C none –a
0x30008000 –e 0x30008000 -d kernel-bin/arch/arm/boot/zImage output/uImage

for a 64M machine, maybe the others as well.

> As far as you say, a possible solution will be to avoid that the kernel >
try to mount the mtd partitions in any way...

I don't think I am trying to say that!

> but I need more a flexible development
> environtment, like NFS partition.

NFS partition?  As far as I am aware all you need is a NFS capable
bootloader in NAND and the rest of NAND can hold another kernel and root
filesystem, if you want. Or be empty.

First step, have a look at this:
http://billforums.station51.net/viewtopic.php?f=1&t=17

Next, your comment about your kernel 3.0 not supporting NFS needs to be
addressed.

Do you realise that you are in for a lot of work to get the mainline
kernels to work on the mini2440?

Are you aware of the offerings from Pengutronix?  Maybe, reading the
Quickstart guide and the section on NFS might help.

Juan
Attachment: arranque_imagen_3.0.txt (8.6 KB)
> With reference to the thread of 2012-06-14 10:32:06 did you just change
to u-boot at that time?

I'm using u-boot since the begining of my tests with compiled kernel
instead of the one precharged on the board.

> You can convert a default zImage to a uImage by:

# sudo ./uboot/mini2440/tools/mkimage –A arm –O linux -T kernel -C none –a
0x30008000 –e 0x30008000 -d kernel-bin/arch/arm/boot/zImage output/uImage


Yes, I do.

> Do you realise that you are in for a lot of work to get the mainline
kernels to work on the mini2440?

Yes, but the mini2440 platform is included as an option while configuring
the kernel.

As you can see in the attached document, at this moment I'm capable of
booting an uImage, but without NFS support I can't start the system.


> Are you aware of the offerings from Pengutronix?

No, I will take a look.



Thanks again

Juan

davef
I guess I must have come to the wrong conclusion when I saw the word
<yaffs> in your posted boot message. I haven't seen that word in my boot
messages for the last 12 months or more. 

> Yes, but the mini2440 platform is included as an option while configuring
> the kernel.

Perhaps, without all the patches to get it to work properly.  Haven't
checked mainline kernels for a year or so.

Away for the next two days, so good luck!

Juan
Attachment: arranque_linux-3.0_OK.txt (8.05 KB)
Good morning,

I'm proud to say that, finally, I've compiled and made work, over my
micro2440 SDK board, a mainline kernel 3.0 compiled with Crosstool NG 1.12
and glibc 2.9.

My problem with NFS was solved after some cheking at the Kconfig file in
the folder fs/nfs/ of the kernel tree and selecting CONFIG_FIE_LOCKING=y,
instead of CONFIG_FIE_LOCKING=n, as I read before in the documentation.

The kernel compiled OK, with several patches applied by myself before to
solve some compile errors, and started with NFS root file system.

I attach the boot log. When I have a little of free time, I will make and
post a little howto.


Thanks a lot to Dave for his support

Juan

davef
Glad you got there in the end.  Checked my kernel config and
CONFIG_FIE_LOCKING=y as well.  Thanks to Pengutronix!