您的位置:首页 > 其它

重新编译龙芯梦兰loongnix系统内核添加iptables_nat模块

2017-02-08 00:00 627 查看
摘要: 龙芯 loongnix 内核 编译

龙芯梦兰发布的基于fedora21的loongnix系统,但系统没有iptables_nat模块,导致无法安装docker应用。

为了安装docker应用,只能重新编译内核加入iptables_nat模块。

在网上找了很多重新编译内核的资料,发现都不太适合龙芯的系统。

自己摸索着重新编译,最终成功步骤如下:

开始之前,确认系统已经安装了必要的软件包:

audit-libs-devel


binutils-devel


elfutils-devel


git


hmaccalc


newt-devel


pciutils-devel


perl-ExtUtils-Embed


python-devel


rpmdevtools


zlib-devel


1: 获得源码

可以去mirror.lemote.com上获取对应版本的源码包,我使用的源码包文件:kernel-4.4.25-2.fc21.loongson.server.2.src.rpm

2:用如下命令安装

rpm -ivh kernel--4.4.fc21.loongson.server.2.src.rpm
正在升级/安装...
1:kernel-4.4.25-2.fc21.loongson.ser################################# [100%]

这个命令把 RPM 目录写入了
${HOME}/repbuild/SOURCES
${HOME}/rpmbuild/SPECS
${HOME}
是您的用户主目录。

3:用如下命令准备内核源码树:

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=mipsel kernel.spec

现在,内核源码树就位于
~/rpmbuild/BUILD/kernel-4.4.fc21.loongson/linux-4.4.25-2.custom.fc21.loongson.server.2.mips64el
目录。

4:改变内核源码树目录

cd ~/rpmbuild/BUILD/kernel--4.4.fc21.loongson/linux--4.4.fc21.loongson/

5: 选择所需的配置文件

cp configs/kernel-4.4.25-mips64el.config .config

6:运行下面的命令

make mrproper ( 去除编译过的档案 - 很重要, 每次重编时都要记得做 )
make oldconfig
make menuconfig

7:选中下面的模块:

Linux Kernel Configuration
-> Networking support
-> Networking options
-> Network packet filtering framework(netfilter)
-> Core netfilter configuration
-> Netfilter connection tracking support
-> Netbios name service protocal support(new)
-> Netfilter Xtables support (required for ip_tables)

需要包含xt_conntrack模块
Linux Kernel Configuration
-> Networking support
-> Networking options
-> Network packet filtering framework(netfilter)
-> IP: Netfilter Configuration
-> IPv4 connection tracking support (require for NAT)
-> IP tables support (required for filtering/masq/NAT)
-> MASQUERADE target support
-> REDIRECT target support

8:编译 & 安装 Kernel

依序执行下列指令 :

make -j9 all ( 需花一段时间 )
make -j9 modules_install
make install

9:新Kernel写入到GRUB

备份旧的grub配置文件

cp grub2/grub.cfg grub2/grub.cfg.bak

更新grub配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

10:重启系统后查询系统nat模块是否添加成功

#lsmod
Module                  Size  Used by
fuse                   99126  3
cfg80211              264539  0
rfkill                 18355  1 cfg80211
ebtables               27720  0
ip6_tables             18493  0
iptable_nat             1991  0
nf_conntrack_ipv4      13512  1
nf_defrag_ipv4          1635  1 nf_conntrack_ipv4
nf_nat_ipv4             5999  1 iptable_nat
nf_nat                 13749  1 nf_nat_ipv4
nf_conntrack           88967  3 nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ipv4
iptable_mangle          1848  0
iptable_raw             1580  0
iptable_filter          1656  1
ip_tables              18175  4 iptable_filter,iptable_mangle,iptable_nat,iptable_raw
x_tables               21685  6 ip_tables,iptable_filter,ebtables,iptable_mangle,ip6_tables,iptable_raw
dm_mirror              16043  0
dm_region_hash          8471  1 dm_mirror
dm_log                 10163  2 dm_region_hash,dm_mirror
snd_hda_intel          20677  0
snd_hda_codec         104369  1 snd_hda_intel
snd_hda_core           38782  2 snd_hda_codec,snd_hda_intel
joydev                 11783  0
snd_hwdep               7538  1 snd_hda_codec
snd_seq                65617  0
snd_seq_device          3792  1 snd_seq
snd_pcm                95955  3 snd_hda_codec,snd_hda_intel,snd_hda_core
snd_timer              23393  2 snd_pcm,snd_seq
shpchp                 28859  0
nfsd                  362647  1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息