public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox