说明:因为在麒麟系统上有个accton命令无法使用,报错:
accton: function not implemented
翻墙查了一下资料,可能是内核没有开启CONFIG_BSD_PROCESS_ACCT这个模块
为了进一步验证,我们准备自己编译一个内核试试,这里准备了一个centos7的x86系统,里面的模块是开着的
命令也是正常使用
[root@localhost ~]# accton /var
Turning on process accounting, file set to '/var'.
accton: Is a directory
[root@localhost ~]# uname -r
3.10.0-1062.el7.x86_64
现在我们自己编一个内核,然后把这个模块给去掉再看看,是否也会报那个function not implemented的错误。
kernel源码路径:
Index of /kernel/linux/kernel/(国内加速)
这里我们选择linux-4.4.283这个,下载到本地,解压
这里我们拷贝一份物理机的配置文件到该目录
[root@localhost linux-4.4.283]# cp /boot/config-3.10.0-1062.el7.x86_64 .config
并注释BSD那两个模块
然后可以通过make menuconfig启动配置文件界面,如果不认识就可以不用修改(像我就不修改......)
然后就可以使用make命令编译了,等待ing,最后如下
编译模块:
make modules_install INSTALL_MOD_PATH=temp
[root@localhost linux-4.4.283]# cp temp/lib/modules/4.4.283/ /lib/modules/ -af
[root@localhost linux-4.4.283]# make install
sh ./arch/x86/boot/install.sh 4.4.283 arch/x86/boot/bzImage \
System.map "/boot"
[root@localhost linux-4.4.283]#
[root@localhost linux-4.4.283]#
[root@localhost linux-4.4.283]# reboot
Connection closing...Socket close.
然后reboot机器即可
验证一下accton这个命令,报错跟麒麟系统一样。
查看config文件,在当前目录生成
- [root@localhost linux-4.4.283]# ls -al .config
- -rw-r--r--. 1 root root 159718 Sep 3 17:24 .config
- [root@localhost linux-4.4.283]#
- [root@localhost linux-4.4.283]# cat .config|grep BSD
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_BSD_DISKLABEL=y
- CONFIG_PPP_BSDCOMP=m
- # CONFIG_ISDN_PPP_BSDCOMP is not set
- # CONFIG_MMC_WBSD is not set
- [root@localhost linux-4.4.283]#