Date: Fri, 18 Apr 2014 12:51:14 -0400 (GMT-04:00) From: John <aqqa11@earthlink.net> To: FreeBSD questions <freebsd-questions@freebsd.org> Subject: Re: where does uname get version number? Message-ID: <28442154.1397839875163.JavaMail.root@mswamui-backed.atl.sa.earthlink.net>
next in thread | raw e-mail | index | archive | help
-----Original Message----- >From: Trond Endrest=C3=B8l <Trond.Endrestol@fagskolen.gjovik.no> >Sent: Apr 18, 2014 9:38 AM >To: John <aqqa11@earthlink.net> >Cc: FreeBSD questions <freebsd-questions@freebsd.org> >Subject: Re: where does uname get version number? > >On Fri, 18 Apr 2014 00:48-0400, John wrote: > >> -----Original Message----- >> >From: Eduardo Morras <emorrasg@yahoo.es> >> >Sent: Apr 17, 2014 3:07 AM >> >To: freebsd-questions@freebsd.org >> >Subject: Re: where does uname get version number? >> > >> >On Wed, 16 Apr 2014 23:39:06 -0400 (GMT-04:00) >> >John wrote: >> > >> >> Do you want me to add the following to /etc/profile ? >> >>=20 >> >> UNAME_v=3D"FreeBSD 9.2-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC >> >> 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC" >> >> export UNAME_v UNAME_r=3D"9.2-RELEASE" >> >> export UNAME_r >> >>=20 >> >> But, then do I have to manually change this version number >> >> in /etc/profile for each upgrade in the future? That would be quite >> >> a hassle for each upgrade to -p5, -p6, ... etc. Is that the way to >> >> go? >> > >> >No, freebsd-update should update your /etc/profile and UNAME_* system v= ars. >> > >> >>=20 >> >> I also tried: >> >>=20 >> >> # unsetenv UNAME_r=20 >> >>=20 >> >> but "uname -r" still shows the incorrect "9.1-RELEASE" even though >> >> all other files mentioned above are in "9.2-RELEASE". >> >>=20 >> >> So still, where did uname get that incorrect version number? >> > >> >If there's no UNAME_* defined, you undefined it with #unsetenv, uname r= eads them from /usr/obj/usr/src/sys/$KERNEL/vers{ion,.c} files. Trond sugge= st to delete them before rebuilding, so they get updated too, nice suggesti= on. Mine sets different information in UNAME_* and vers{ion,.c} files. This= discrepancy should be avoided. >> > >> >--- --- >>=20 >> Thanks. I don't have the folder /usr/obj/usr/src/sys/ . Under /usr/obj= /usr/src/ I only see two folders: lib32 and tmp. >>=20 >> I did find a file /usr/obj/lib32/usr/src/include/vers.c , that contains = the incorrect version: >>=20 >> #define SCCSSTR "@(#)FreeBSD 9.1-RELEASE #0: Mon Jan 21 15:45:14 UTC 201= 3" >> #define VERSTR "FreeBSD 9.1-RELEASE #0: Mon Jan 21 15:45:14 UTC 2013\n = root@:/usr/obj/lib32/usr/src/include\n" >> #define RELSTR "9.1-RELEASE" >>=20 >> That's closer now! However, I never compiled the kernel, I only=20 >> installed 9.0-RELEASE and ran freebsd-update to upgrade to=20 >> 9.2-RELEASE, so don't know how these /usr/obj files were produced. =20 >> I installed virtualbox before, maybe that produced /usr/obj ? >>=20 >> Anyway, I have deleted these folders /usr/src/ and /usr/obj/ , then=20 >> ran svn to install /usr/src/ , and then rebooted. Yet "uname -a"=20 >> still says the incorrect 9.1-RELEASE. Now I don't even have=20 >> /usr/obj , where does uname get that incorrect version now? > >If I understand this at all, freebsd-update simply downloads and=20 >installs precompiled bits and pieces of the base system, including the=20 >kernel. The system needs to be rebooted manually to be able to use an=20 >updated kernel and other long running pieces like init(8). > >Checking out a new working copy of the source tree using svn is only=20 >the first step of a multi-step approach of updating the base system=20 >using the source tree; the remaining steps being compiling the world=20 >and the kernel, installing the kernel, rebooting the system, and if=20 >all goes well, install world, merge any changes to the config files,=20 >and optionally delete obsolete stuff, before doing the final reboot.=20 > >Yes, always perform the final reboot to verify that the system is able=20 >to reboot in case of a panic at a later stage. > >If the new kernel didn't load well, simply reboot, interrupt the boot=20 >loader, unload the bad kernel, load the old kernel=20 >(/boot/kernel.old/kernel), and boot the system, followed by=20 >mv /boot/kernel /boot/kernel.bad, and=20 >mv /boot/kernel.old /boot/kernel. > >Next time, it's sufficient to update the working copy (svn up=20 >/usr/src), rather than erasing /usr/src and do a complete checkout,=20 >before performing the remaining steps as outlined above. > >I haven't tried freebsd-update at all, I've always done my upgrades=20 >using the source, I do find it strange that the new kernel doesn't=20 >identify itself as being newer than the previous kernel. > >And why must freebsd-update fiddle with the UNAME_* env vars? > >--=20 Thanks for the clarification! I don't compile kernel, I only installed 9.0= -RELEASE and binary upgraded to 9.2-RELEASE using freebsd-update. (I'm wor= ried about the lifetime of the SSD in my laptop so am trying to avoid compi= ling, but that's a side topic.) I now totally deleted /usr/src (and /usr/obj), because I don't need them no= w as I now install virtualbox from pkg. But after rebooting, "uname -a" still shows 9.1-RELEASE. As mentioned befo= re, all files such as kernel etc are in 9.2, where does uname get that inco= rrect version now?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?28442154.1397839875163.JavaMail.root>