All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jim Cromie <jim.cromie@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Adrian Bunk <bunk@stusta.de>,
	Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.17-rc4-mm1 nfsroot build err, looks related to klibc
Date: Wed, 17 May 2006 17:25:25 -0600	[thread overview]
Message-ID: <446BB0E5.50003@gmail.com> (raw)
In-Reply-To: <446B5BC7.7080105@zytor.com>

[-- Attachment #1: Type: text/plain, Size: 2263 bytes --]


some of the argument processing in nfsmount/main.c is looks broken,
where hostname gets pulled from argv[optind].  I changed it to [1]
and things worked better.

tweaks and debug patch attached, presumably it explains it clearly, if 
wrongly.

heres several loops-of { add printfs, rebuild, look at output }
I did along the way:

IP-Config: eth0 guessed nameserver address 192.168.42.1
IP-Config: eth0 complete (from 192.168.42.1):
 address: 192.168.42.100   broadcast: 192.168.42.255   netmask: 
255.255.255.0
 gateway: 0.0.0.0          dns0     : 192.168.42.1     dns1   : 0.0.0.0
 rootserver: 192.168.42.1 rootpath: /nfshost/truck
eth0: state = 4
kinit: do_mounts
kinit: name_to_dev_t(/dev/nfs) = dev(0,255)
kinit: root_dev = dev(0,255)
NFS-Root: mounting 192.168.42.1:/nfshost/truck on /root with options 'none'
arg 0: NFS-Mount'
[   22.656000] Kernel panic - not syncing: Attempted to kill init!
arg 1: 192.168.4[   22.660000]  2.1:/nfshost/tru<0>Rebooting in 5 
seconds..ck'
arg 2: /root'
kinit options done: args remaining: 2
arg 0: NFS-Mount
arg 1: 192.168.42.1:/nfshost/truck
arg 2: /root
rem_name: 192.168.42.1:/nfshost/truck rem_path: /nfshost/truck
server 0 hostname 192.168.42.1
server 12aa8c0 hostname 192.168.42.1
path /nfs_root
stat: No such file or directory


the last 2 lines bothers me - since its the local path, on a 
as-yet-umounted root,
I dont know what it means to 'stat' such a path.

So I //d it, and resumed.  I got farther this time..

path /nfs_root
nfs_mount: rem_name 192.168.42.1:/nfshost/truck, hostname 192.168.42.1, 
server 12aa8c0, rem_path /nfshost/truck, path /nfs_root
connect: Network is unreachable
connect: Network is unreachable
Port for 100003/3[tcp]: 0
NFS over TCP not available from 192.168.42.1
Checking for init: /sbin/init
Checking for init: /bin/init
Checking for init: /etc/init
Checking for init: /bin/sh
kinit: init not found!


I repeated with the laptop firewall down, same result.
 netstat -tl agrees.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign 
Address             State
tcp        0      0 *:nfs                       
*:*                         LISTEN


the eth0 driver is builtin.

So, Im stuck for a clue.  Older kernels run fine

tia
-jimc

[-- Attachment #2: diff.linux-2.6.17-rc4-mm1-ska.20060517.165919 --]
[-- Type: text/plain, Size: 2894 bytes --]

diff -ruNp -X dontdiff -X exclude-diffs linux-2.6.17-rc4-mm1/usr/kinit/nfsmount/main.c linux-2.6.17-rc4-mm1-ska/usr/kinit/nfsmount/main.c
--- linux-2.6.17-rc4-mm1/usr/kinit/nfsmount/main.c	2006-05-17 14:57:55.000000000 -0600
+++ linux-2.6.17-rc4-mm1-ska/usr/kinit/nfsmount/main.c	2006-05-17 16:47:59.000000000 -0600
@@ -203,13 +203,19 @@ int nfsmount_main(int argc, char *argv[]
 			return 1;
 		}
 	}
+	fprintf(stderr, "%s options done: args remaining: %d\n",
+		progname, optind);
+	for (c=0; argv[c]; c++)
+		fprintf(stderr, "arg %d: %s\n", c, argv[c]);
+
+	// optind++; // remove the 'NFS-Mount'
 
 	if (optind == argc) {
 		fprintf(stderr, "%s: need a path\n", progname);
 		return 1;
 	}
-
-	hostname = rem_path = argv[optind];
+	c = 1;
+	hostname = rem_path = argv[c]; //optind];
 
 	if ((rem_name = strdup(rem_path)) == NULL) {
 		perror("strdup");
@@ -217,25 +223,30 @@ int nfsmount_main(int argc, char *argv[]
 	}
 
 	if ((rem_path = strchr(rem_path, ':')) == NULL) {
-		fprintf(stderr, "%s: need a server\n", progname);
+		fprintf(stderr, "%s: need a server address: (%s) ng\n",
+			progname, hostname);
 		return 1;
 	}
 
 	*rem_path++ = '\0';
+	fprintf(stderr, "rem_name: %s rem_path: %s\n", rem_name, rem_path);
 
 	if (*rem_path != '/') {
-		fprintf(stderr, "%s: need a path\n", progname);
+		fprintf(stderr, "%s: now need a path\n", progname);
 		return 1;
 	}
 
+	fprintf(stderr, "server %x hostname %s\n", server, hostname);
 	server = parse_addr(hostname);
+	fprintf(stderr, "server %x hostname %s\n", server, hostname);
 
 	if (optind <= argc - 2)
 		path = argv[optind + 1];
 	else
 		path = "/nfs_root";
 
-	check_path(path);
+	fprintf(stderr, "path %s\n", path);
+	//check_path(path);
 
 #if! _KLIBC_NO_MMU
 	/* Note: uClinux can't fork(), so the spoof portmapper is not
@@ -247,6 +258,10 @@ int nfsmount_main(int argc, char *argv[]
 		return 1;
 #endif
 
+	fprintf(stderr,"nfs_mount: "
+	       "rem_name %s, hostname %s, server %x, rem_path %s, path %s\n",
+	       rem_name, hostname, server, rem_path, path);
+
 	if (nfs_mount(rem_name, hostname, server, rem_path, path,
 		      &mount_data) != 0)
 		return 1;
diff -ruNp -X dontdiff -X exclude-diffs linux-2.6.17-rc4-mm1/usr/kinit/nfsroot.c linux-2.6.17-rc4-mm1-ska/usr/kinit/nfsroot.c
--- linux-2.6.17-rc4-mm1/usr/kinit/nfsroot.c	2006-05-17 14:57:55.000000000 -0600
+++ linux-2.6.17-rc4-mm1-ska/usr/kinit/nfsroot.c	2006-05-17 15:41:33.000000000 -0600
@@ -97,12 +97,15 @@ int mount_nfs_root(int argc, char *argv[
 	}
 
 	DEBUG(("NFS-Root: mounting %s on %s with options '%s'\n",
-	       argv[a - 1], mtpt, opts ? opts : "none"));
+	       nfs_argv[1], mtpt, opts ? opts : "none"));
 
 	nfs_argv[a++] = mtpt;
 	nfs_argv[a] = NULL;
 	assert(a <= NFS_ARGC);
 
+	for (ret = 0; ret<a; ret++)
+		DEBUG(("arg %d: %s'\n", ret, nfs_argv[ret]));
+
 	if ((ret = nfsmount_main(a, nfs_argv)) != 0) {
 		ret = -1;
 		goto done;

  parent reply	other threads:[~2006-05-17 23:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-16  1:36 2.6.17-rc4-mm1 nfsroot build err, looks related to klibc Jim Cromie
2006-05-16  4:11 ` H. Peter Anvin
2006-05-16 10:18   ` Adrian Bunk
2006-05-16 19:04     ` H. Peter Anvin
2006-05-17  7:12       ` Jim Cromie
2006-05-17 16:14         ` H. Peter Anvin
2006-05-17 17:17           ` Jim Cromie
2006-05-17 17:22             ` H. Peter Anvin
2006-05-17 18:15               ` Jim Cromie
2006-05-17 23:25               ` Jim Cromie [this message]
2006-05-16  5:47 ` Jim Cromie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=446BB0E5.50003@gmail.com \
    --to=jim.cromie@gmail.com \
    --cc=bunk@stusta.de \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.