自制 i386 平台 NetBSD 5.1 稳定版 ISO

NetBSD的安装、升级、更新等日常问题请在这里讨论。

版主: lionux

回复
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 leo » 2011-09-15 14:07

OpenBSD 5.0发行版尽管还有1个多月才面世,不过snapshots里已经没有packages了,本来不看好的OpenBSD 4.9 也发行了4个多月了,居然一个补丁也没有出,看来确实是稳定,不过基于个人喜好,还是不太愿意用这个OpenBSD版本,先利用这个时间差玩一下NetBSD 5.1吧,release的时间也不短了,应该pkgsrc全处理好了。先制作一个稳定版镜像。目标自然还是server。

1. 设置cvs路径:

代码: 全选

$ export CVS_RSH="ssh"
$ export CVSROOT="[email protected]:/cvsroot"
2. 获取稳定版源代码(单文件的用户指南原来这里有错误,请读者注意,请参看NetBSD主页上提供的的分章节的版本):

代码: 全选

$ cd /usr
$ cvs checkout -r netbsd-5 -P src
3. 稍后更新更新稳定版源代码

代码: 全选

$ cd /usr/src
$ cvs update -Pd
$ cd /usr/xsrc
$ cvs update -Pd
4. 设置静态编译选项:

代码: 全选

# echo "LDSTATIC=-static" >> /etc/mk.conf
5. 首先先创建 /usr/obj 目录

代码: 全选

mkdir /usr/obj
6. 构建编译工具

代码: 全选

# cd /usr/src
# ./build.sh -m i386 tools
提示:如果以前构建过,只需要更新工具即可:

代码: 全选

# ./build.sh -u -m i386 tools
这是成功构建工具后的提示信息:

代码: 全选

===> Tools built to /usr/src/tooldir.NetBSD-5.1-i386
===> build.sh ended:   Thu Sep 15 00:41:02 CDT 2011
===> Summary of results:
         build.sh command: ./build.sh -u -m i386 tools
         build.sh started: Thu Sep 15 00:39:21 CDT 2011
         NetBSD version:   5.1_STABLE
         MACHINE:          i386
         MACHINE_ARCH:     i386
         Build platform:   NetBSD 5.1 i386
         HOST_SH:          /bin/sh
         No /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake, needs building.
         Bootstrapping nbmake
         TOOLDIR path:     /usr/src/tooldir.NetBSD-5.1-i386
         DESTDIR path:     /usr/src/destdir.i386
         RELEASEDIR path:  /usr/src/releasedir
         Created /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake
         makewrapper:      /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake-i386
         Updated /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake-i386
         Tools built to /usr/src/tooldir.NetBSD-5.1-i386
         build.sh ended:   Thu Sep 15 00:41:02 CDT 2011
===> .
我们可以看一下具体构建的工具:

代码: 全选

# ls /usr/src/tooldir.NetBSD-5.1-i386/bin
i386--netbsdelf-addr2line    i386--netbsdelf-size         nbhost-mkdep                 nbnroff
i386--netbsdelf-ar           i386--netbsdelf-strings      nbindxbib                    nbpax
i386--netbsdelf-as           i386--netbsdelf-strip        nbinstall-info               nbpaxctl
i386--netbsdelf-c++          nbasn1_compile               nbinstallboot                nbpic
i386--netbsdelf-c++filt      nbatf-compile                nbjoin                       nbpwd_mkdb
i386--netbsdelf-cpp          nbawk                        nblex                        nbrefer
i386--netbsdelf-dbsym        nbcap_mkdb                   nblorder                     nbrpcgen
i386--netbsdelf-fdisk        nbcat                        nbm4                         nbsed
i386--netbsdelf-g++          nbcksum                      nbmake                       nbsoelim
i386--netbsdelf-gcc          nbcompile_et                 nbmake-i386                  nbstat
i386--netbsdelf-gcc-4.1.3    nbconfig                     nbmakefs                     nbstrfile
i386--netbsdelf-gccbug       nbcrunchgen                  nbmakeinfo                   nbsunlabel
i386--netbsdelf-gcov         nbctags                      nbmakewhatis                 nbtbl
i386--netbsdelf-install      nbdb                         nbmenuc                      nbtexi2dvi
i386--netbsdelf-ld           nbdisklabel-i386             nbmkcsmapper                 nbtexi2pdf
i386--netbsdelf-lint         nbeqn                        nbmkdep                      nbtexindex
i386--netbsdelf-mdsetimage   nbfile                       nbmkesdb                     nbtsort
i386--netbsdelf-nm           nbgenassym                   nbmklocale                   nbuudecode
i386--netbsdelf-objcopy      nbgencat                     nbmknod                      nbyacc
i386--netbsdelf-objdump      nbgmake                      nbmktemp                     nbzic
i386--netbsdelf-ranlib       nbgroff                      nbmsgc
i386--netbsdelf-readelf      nbhexdump                    nbmtree
6. 手动配置内核
各人的平台需要不同,请自行优化和修建内核,这里只是示例,所以我们采用原有内核。

代码: 全选

# cd /usr/src/sys/arch/i386/conf
# cp GENERIC JIARUN
# vi JIARUN
# /usr/src/tooldir.NetBSD-5.1-i386/bin/nbconfig JIARUN
7. 构建新内核

代码: 全选

# cd /usr/src
# ./build.sh -u -m i386 kernel=JIARUN
构建完成后的报告:

代码: 全选

===> Kernels built from JIARUN:
  /usr/src/sys/arch/i386/compile/obj/JIARUN/netbsd
===> build.sh ended:   Thu Sep 15 01:34:17 CDT 2011
===> Summary of results:
         build.sh command: ./build.sh -u -m i386 kernel=JIARUN
         build.sh started: Thu Sep 15 01:07:49 CDT 2011
         NetBSD version:   5.1_STABLE
         MACHINE:          i386
         MACHINE_ARCH:     i386
         Build platform:   NetBSD 5.1 i386
         HOST_SH:          /bin/sh
         TOOLDIR path:     /usr/src/tooldir.NetBSD-5.1-i386
         DESTDIR path:     /usr/src/destdir.i386
         RELEASEDIR path:  /usr/src/releasedir
         makewrapper:      /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake-i386
         Updated /usr/src/tooldir.NetBSD-5.1-i386/bin/nbmake-i386
         Building kernel without building new tools
         Building kernel:  JIARUN
         Build directory:  /usr/src/sys/arch/i386/compile/obj/JIARUN
         Kernels built from JIARUN:
          /usr/src/sys/arch/i386/compile/obj/JIARUN/netbsd
         build.sh ended:   Thu Sep 15 01:34:17 CDT 2011
===> .

然后将内核复制到 /,因为构建用户岛和发行版时可能会有到新内核,所以我重新启动了主机。
重启后,
8. 构建用户岛和创建发行版

代码: 全选

# ./build.sh -u -m i386 release
....
 
===> Summary of results:
         build.sh command: ./build.sh -u -m i386 release
         build.sh started: Fri Sep 16 08:14:48 CDT 2011
         NetBSD version:   5.1_STABLE
         MACHINE:          i386
         MACHINE_ARCH:     i386
         Build platform:   NetBSD 5.1_STABLE i386
         HOST_SH:          /bin/sh
         No /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake, needs building.
         Bootstrapping nbmake
         TOOLDIR path:     /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386
         DESTDIR path:     /usr/src/obj/destdir.i386
         RELEASEDIR path:  /usr/src/obj/releasedir
         Created /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake
         makewrapper:      /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake-i386
         Updated /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake-i386
         Successful make release
         build.sh ended:   Fri Sep 16 16:20:37 CDT 2011
===> .
9. 构建X及其发行版

代码: 全选

# ./build.sh -x -u -m i386 release
......
===> Summary of results:
         build.sh command: ./build.sh -x -u -m i386 release
         build.sh started: Fri Sep 16 16:27:56 CDT 2011
         NetBSD version:   5.1_STABLE
         MACHINE:          i386
         MACHINE_ARCH:     i386
         Build platform:   NetBSD 5.1_STABLE i386
         HOST_SH:          /bin/sh
         TOOLDIR path:     /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386
         DESTDIR path:     /usr/src/obj/destdir.i386
         RELEASEDIR path:  /usr/src/obj/releasedir
         makewrapper:      /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake-i386
         Updated /usr/src/obj/tooldir.NetBSD-5.1_STABLE-i386/bin/nbmake-i386
         Successful make release
         build.sh ended:   Fri Sep 16 19:20:22 CDT 2011
===> .
done!


详细说明请参看:http://www.gobsd.org/thread2624.html

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 leo » 2011-09-16 2:58

如果编译出错,去掉mk.conf里面的静态编译选项试试。(新经验)

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 lionux » 2011-10-01 18:37

没有使用/usr/obj 目录啊

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 leo » 2011-10-01 21:16

在我的印象里、不建立这个目录就无法编译,有相关的错误提示。

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 lionux » 2011-10-02 8:05

编译时可加参数 -o ../obj -t ../tools 还可以建个tools目录,避免src源码目录下混乱。

hlwork
钴 Co
帖子: 89
注册时间: 2010-10-19 18:48

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 hlwork » 2011-10-13 16:40

lionux 写了:编译时可加参数 -o ../obj -t ../tools 还可以建个tools目录,避免src源码目录下混乱。
在mk.conf里设置BSDOBJDIR,TOOLDIR效果是不是一样?

wkx9dragon
锌 Zn
帖子: 493
注册时间: 2010-02-02 18:00

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 wkx9dragon » 2011-11-22 15:38

我今天编译了一下,好像不交叉编译的话,
./build.sh tools && ./build.sh -U release
就可以了。如果嫌慢的话,-j n(表示并行编译,我的cpu是4核,我就是 -j 4)
如果嫌src目录乱,就挪移到/tmp/src 目录下就可以了,重启后,干干净净也不怕忘。如果怕伤硬盘,还可以tmpfs /tmp 目录。

leo

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 leo » 2012-03-04 15:11

下面4款主机 那款好点?请各位给个意见
[email protected]

none
铁 Fe
帖子: 67
注册时间: 2012-02-29 11:41

回复: 自制 i386 平台 NetBSD 5.1 稳定版 ISO

帖子 none » 2012-03-04 22:12

对我来说,ob4.9和5.0性能一下子提高了不少,跟现在服务器用的OB45, OB47有很大改观,很满足了。网络服务方面性能一直还是快的,满意

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客