重新编译龙芯梦兰loongnix系统内核添加iptables_nat模块
2017-02-08 00:00
627 查看
摘要: 龙芯 loongnix 内核 编译
龙芯梦兰发布的基于fedora21的loongnix系统,但系统没有iptables_nat模块,导致无法安装docker应用。
为了安装docker应用,只能重新编译内核加入iptables_nat模块。
在网上找了很多重新编译内核的资料,发现都不太适合龙芯的系统。
自己摸索着重新编译,最终成功步骤如下:
开始之前,确认系统已经安装了必要的软件包:
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 目录写入了
3:用如下命令准备内核源码树:
现在,内核源码树就位于
4:改变内核源码树目录
5: 选择所需的配置文件
6:运行下面的命令
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
依序执行下列指令 :
9:新Kernel写入到GRUB
备份旧的grub配置文件
更新grub配置文件
10:重启系统后查询系统nat模块是否添加成功
龙芯梦兰发布的基于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
相关文章推荐
- 编译时向内核添加新设备 模块的方式动态的将驱动加入内核,但这种方式加入的驱动程序,当系统重新启动时, 还需要重新用模块的方式进行插入,如果是系统内常用的设备驱动采用这种方式进行加载, 就会很不方便。
- 利用模块添加系统调用(不重新编译内核)
- 利用模块添加系统调用(不重新编译内核)
- 利用模块添加系统调用(不重新编译内核)
- Linux 内核编译 添加系统调用
- 【转】linux内核编译与系统调用的添加(适合3.0及以后版本内核)
- 在Linux内核中添加系统调用,并编译内核
- 编译 linux 内核及添加系统调用
- 【Linux编译内核】Linux添加系统调用
- Linux 内核编译 添加系统调用
- 双系统重新编译内核后,win7启动项消失问题
- linux内核编译与系统调用的添加(适合3.0及以后版本内核)
- 龙芯内核添加系统调用介绍
- Linux 内核编译 添加系统调用
- 【Linux】Linux添加系统调用以及内核编译过程
- ubuntu 8.10 添加系统调用函数 及 内核编译
- linux-3.4.6内核添加yaffs2文件系统支持后编译出错
- Linux 内核编译 添加系统调用
- 在2.6内核下不编译内核给iptables添加模块
- Linux编译内核(4.2.6)并添加系统调用