Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Apr 2016 08:16:02 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        =?UTF-8?Q?BERTRAND_Jo=C3=ABl?= <joel.bertrand@systella.fr>,  "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Diskless workstation and some minor issues
Message-ID:  <CAOtMX2ggXOe3q5jQXztVDjN68t_rbcBqPtWfUtgoveXREckELg@mail.gmail.com>
In-Reply-To: <1461075243.1232.9.camel@freebsd.org>
References:  <57163991.4000100@systella.fr> <1461075243.1232.9.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 19, 2016 at 8:14 AM, Ian Lepore <ian@freebsd.org> wrote:

> On Tue, 2016-04-19 at 15:58 +0200, BERTRAND Jo=C3=ABl wrote:
> >       > Hello,
> >
> >       > I have installed a diskless workstation (10.2-RELEASE-p14) that
> mounts
> > its rootfs from a NetBSD nfs server. My fstab is :
> >
> > root@pythagore:~ # cat /etc/fstab
> > # Device        Mountpoint      FStype  Options Dump    Pass#
> > 192.168.10.128:/srv/pythagore   /       nfs     nfsv3,tcp,soft,intr,rw
> > 0      0
> > ...
> > 192.168.10.128:/home            /home   nfs     nfsv3,tcp,soft,intr,rw
> > 0      0
> > root@pythagore:~ #
> >
> >       > First question. I have installed this diskless workstation with
> an USB
> > stick. Now, FreeBSD kernel mounts rootfs over NFS. But in a first time,
> > it tries to mount usbus0 (!) :
> >
> > Apr  9 10:48:00 pythagore kernel: Root mount waiting for: usbus2 usbus1
> > usbus0
> > Apr  9 10:48:00 pythagore kernel: uhub0: 2 ports with 2 removable, self
> > powered
> > Apr  9 10:48:00 pythagore kernel: uhub2: 2 ports with 2 removable, self
> > powered
> > Apr  9 10:48:00 pythagore kernel: uhub1: 21 ports with 21 removable,
> > self powered
> > Apr  9 10:48:00 pythagore kernel: Root mount waiting for: usbus2 usbus1
> > usbus0
> > Apr  9 10:48:00 pythagore kernel: ugen0.2:  at usbus0
> > Apr  9 10:48:00 pythagore kernel: ugen2.2:  at usbus2
> > Apr  9 10:48:00 pythagore kernel: uhub3:
> > class 9/0, rev 2.00/0.00, addr 2> on usbus2
> > Apr  9 10:48:00 pythagore kernel: ugen1.2:  at usbus1
> > Apr  9 10:48:01 pythagore kernel: uhub4:
> > class 9/0, rev 2.00/0.00, addr 2> on usbus1
> > Apr  9 10:48:01 pythagore kernel: Root mount waiting for: usbus2 usbus1
> > usbus0
> > Apr  9 10:48:01 pythagore kernel: uhub4: 6 ports with 6 removable, self
> > powered
> > Apr  9 10:48:01 pythagore kernel: uhub3: 8 ports with 8 removable, self
> > powered
> > Apr  9 10:48:01 pythagore kernel: ugen0.3:  at usbus0
> > Apr  9 10:48:01 pythagore kernel: ukbd0:
> > 0/0, rev 1.10/1.12, addr 2> on usbus0
> > Apr  9 10:48:01 pythagore kernel: kbd2 at ukbd0
> > Apr  9 10:48:01 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting devic=
e
> > descriptor at addr 3 failed, USB_ERR_IOERROR
> > Apr  9 10:48:01 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting devic=
e
> > descriptor at addr 3 failed, USB_ERR_IOERROR
> > Apr  9 10:48:01 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:01 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting devic=
e
> > descriptor at addr 3 failed, USB_ERR_IOERROR
> > Apr  9 10:48:02 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:02 pythagore kernel: usbd_setup_device_desc: getting devic=
e
> > descriptor at addr 3 failed, USB_ERR_IOERROR
> > Apr  9 10:48:02 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:02 pythagore kernel: Root mount waiting for: usbus0
> > Apr  9 10:48:02 pythagore kernel: usbd_setup_device_desc: getting devic=
e
> > descriptor at addr 3 failed, USB_ERR_IOERROR
> > Apr  9 10:48:02 pythagore kernel: ugen0.4:  at usbus0
> > (disconnected)
> > Apr  9 10:48:02 pythagore kernel: uhub_reattach_port: could not allocat=
e
> > new device
> > Apr  9 10:48:02 pythagore kernel: Trying to mount root from
> > nfs:192.168.10.128:/srv/pythagore [nfsv3,tcp,soft,intr,rw]...
> > Apr  9 10:48:02 pythagore kernel: NFS ROOT: 192.168.10.128:
> /srv/pythagore
> >
> >       > I don't understand why kernel tries to mount an USB rootfs...
> And I
> > haven't found how fix this trouble.
> >
>
> At this point during booting, the system doesn't know what physical
> device may hold the rootfs, so it waits until it has enumerated all the
> devices on all the USB busses, in case one of them is required to mount
> root (even in the NFS case, it could require a USB network device).
>
> To disable this wait, put hw.usb.no_boot_wait=3D1 in loader.conf.
>
> >       Second trouble. /var/log/message contains a lot of :
> > Apr  9 10:50:00 pythagore atrun[862]: cannot lock /var/at/jobs/:
> > Permission denied
> >
> >       > Of course, lockd and statd are running on nfs server. Permissio=
n
> on
> > /var/at are :
> >
> > root@pythagore:/var/at # ls -al
> > total 8
> > drwxr-xr-x   4 root    wheel  512 Aug 12  2015 .
> > drwxr-xr-x  28 root    wheel  512 Apr 15 09:14 ..
> > drwxr-xr-x   2 daemon  wheel  512 Aug 12  2015 jobs
> > drwxr-xr-x   2 daemon  wheel  512 Aug 12  2015 spool
> > root@pythagore:/var/at #
> >
> >       > I don't understand where is the mistake.
> >
>
> This is a more serious problem.  I have found it to be impossible to
> run a diskless workstation with a persistant /var mounted via NFS
> (either by itself or as a directory within the nfs rootfs).  It's been
> this way for several years.  You can add varmfs=3Dyes to your rc.conf to
> get a working system, but then you have a non-persistant /var which
> really isn't very useful.
>
> Hmm, but the problems I usually have are with /var/run and pidfiles.
>  I've never noticed this /var/at problem (maybe just because I gave up
> trying to run with an nfs-mounted /var before I noticed them).
>
> >       An third trouble, this workstation runs cupsd. When I send a job =
to
> > printer, cupsd run as expected but aborts after job is completed. In
> > /var/log/cups/error_log, I have :
> >
> > E [19/Apr/2016:12:44:34 +0200] Unable to create
> > "/usr/local/etc/cups/printers.conf.N": Operation not permitted
> > E [19/Apr/2016:12:45:12 +0200] Unable to create
> > "/var/cache/cups/job.cache.N": Operation not permitted
> > E [19/Apr/2016:12:45:12 +0200] Unable to create
> > "/var/spool/cups/c00032.N": Operation not permitted
> >
> >       > I have checked permissions on directories (and config file)
> without any
> > result, but I have seen that permissions on /var/spool/cups are
> > overwrittem by cups (to drwx--x---).
> >
>
> This one I can't help with at all, because I gave up on trying to get
> printers to work on freebsd about 10 years ago and haven't had the
> energy to ever try again. :(
>
> -- Ian
>

Check your /etc/exports on the server.  Both of these problems could be
explained if your server has -maproot set (or whatever NetBSD calls it).
For diskless workstations, you must turn that off at the server.

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2ggXOe3q5jQXztVDjN68t_rbcBqPtWfUtgoveXREckELg>