分页: 1 / 1

《NetBSD指南-31.4.2.生成依赖包并手动重新编译》

发表于 : 2010-03-08 3:34
leo
生成依赖包并编译内核通过下面的命令实现:

代码: 全选

$ cd ../compile/MYKERNEL
$ make depend
$ make
有可能出现错误导致编译中断; 这可能因为很多原因,但是最常见的原因是 config(8)未能发现配置文件中的某个错误. 有时编译失败是因为硬件问题 (常常是因为有缺陷的RAM芯片): 编译过程对系统的消耗不同于一般的应用程序. 另一个典型的错误原因是: 激活选项B时, 要求禁用选项A。全部的编译过程可能持续数分钟到几个小时不等, 要看你的硬件。

make目录成功后会在编译目录下生成一个准备用于安装的 netbsd 文件。
交叉编译的注意事项
对交叉编译一个sparc64内核来说, 应该使用交叉编译器工具链中的 nbmake-sparc64 shell wrapper, 它会让 make(1) 应用所有交叉编译sparc64平台的所需设定:

代码: 全选

% cd ../compile/MYKERNEL/
% /usr/src/tooldir.NetBSD-4.0-i386/bin/nbmake-sparc64 depend
% /usr/src/tooldir.NetBSD-4.0-i386/bin/nbmake-sparc64
这个过程需要折腾一会儿, 然后会析出一个内核:

代码: 全选

...
text    data     bss     dec     hex filename
5016899  163728  628752 5809379  58a4e3 netbsd
% ls -l netbsd
-rwxr-xr-x  1 feyrer  666  5874663 Dec  2 23:17 netbsd
% file netbsd
netbsd: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV), statically linked, not stripped 
现在你可以将这个名为 netbsd 的内存传送到一台UltraSPARC 机器(通过NFS, FTP, scp等)的硬盘上并启动, 也可以直接使用NFS在交叉编译的机器上启动。