在opensuse 11.3上编译kernel添加tun设备

原创 2011年01月12日 22:40:00

在opensuse 11.3上编译kernel添加tun设备
需求
编译内核需要安装必要的编译用软件
 
binutils gcc make module-init-tools udev ......
 
获得内核源码
1.使用官方 kernel-source 包
 
不管是安装盘里面自带的还是 YaST -> 软件 -> 在线更新 得到的 kernel-source 软件包都是官方提供的打过补丁的内核源代码。
 

注意: 此包最好与系统中 kernel-default 包版本一致
 
优点: 可直接使用,安全稳定,几乎不会出错
 
缺点: 版本不会是最新的,且已经打过补丁,性能提升空间不大
 
使用说明: 直接安装使用
 
2. 自行下载原始内核代码及补丁
 
原始的内核源代码在 http://www.kernel.org 下载,补丁自行搜索下载或解压使用最新官方 src.rpm 中带的补丁。
 
注意: 使用这种途径需要你对自己的硬件以及 Linux 系统都有相当的了解。折腾的时候小心点,一般没问题。
 
优点: 灵活,版本新,性能提高明显
 
缺点: 可能找不到适合最新版本的某些补丁,要求对整个软硬件系统有相当的了解
 
使用方法: 将下载的 Linux 源代码压缩包解压移动到 /usr/src/ 目录,这里以官方目前最新稳定版内核为例:
 
$wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2
$tar jxf linux-2.6.37.tar.bz2
$su
#mv linux-2.6.37 /usr/src/
 
修改
make menuconfig
从弹出的菜单中, 选择 Device Drivers -> Network device support -> Universal TUN/TAP device driver support 为 M, 然后保存退出
 
编译内核
#make
#make modules_install
#make install
 
更新 kernel-headers
# make headers_install
 
收尾工作
至此,内核已经编译安装完成了,已经在 grub 开始菜单最下面添加了一个启动项。重启可以尝试新内核登录了。还有一些小问题需要解决。将 /usr/src/linux 指向刚编译内核的源码目录
 
#rm /usr/src/linux
#ln -s /usr/src/linux-版本号 /usr/src/linux
之后重启,用 uname -r 检查内核版本。自然,记住还要重新安装显卡驱动。
 
清理旧文件
回到内核源码目录
 
#make clean
删除 /lib/modules 下其他内核版本号对应的目录,即旧版本内核模块文件删除 /boot 下其他内核版本号对应的文件
 
清理 grub 启动列表
你可能不希望失效的原来内核仍然留在开机选单上,那么
 
#mv /boot/grub/menu.lst.old /boot/grub/menu.lst
#rm /boot/*.old && rm /boot/grub*.old
#rm /boot/vmlinuz && rm /boot/initrd
#ln -s vmlinuz-新版本号-default vmlinuz
#ln -s initrd-新版本号-default initrd
 

相关文章推荐

在OpenSUSE 12.1 上编译Dom0(linux kernel 3.2.1) + Xen-4.1.2 + Virt-manager 0.9.0

经验总结: 1. 不要使用独立显卡,因为驱动不支持pv_ops kernel构架 2. 不要使用64位的发行版(ubuntu除外) 步骤: 1. 安装32bit OpenSUSE 12.1 ...
  • sdytlm
  • sdytlm
  • 2011年12月05日 11:02
  • 1761

虚拟网卡TUN/TAP设备使用实例

文章出处:http://blog.csdn.net/solstice/article/details/6579232 转载渊源:这篇文章源自陈硕老师的博客,原文讨论的主题是在绕开操作系统协议...
  • ixidof
  • ixidof
  • 2013年08月21日 16:45
  • 12676

linux TUN 虚拟网卡设备

[网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP] https://blog.kghost.info/2013/03/27/linux-network-tun/ TUN 设备...
  • s1070
  • s1070
  • 2016年08月08日 17:56
  • 482

python实现tun/tap虚拟设备

工作中用到了使用tap/tun设备实现虚拟网络,看到网上的例子都是用C实现的。便想试着用python实现一把,主要就是要重新用ctypes定义相关的结构定义。 代码github地址: https://...

在kernel里添加一个i2c外围设备

在kernel里添加一个已知芯片地址的外围设备的驱动,主要包含申请注册使用等 1. 定义主要变量: static struct i2c_client *key_ic_client; st...

Ubuntu 16.04虚拟网络设备tun安装

Ubuntu 16.04虚拟网络设备tun安装最近编写网络程序,需要用到tun模块,但是官方给的发行版中压根就没有这个模块.不信的话,你可以测试一下:root@ubuntu:~# modinfo tu...

【Linux】Ubuntu14.04虚拟网络设备TUN安装

【Linux】Ubuntu14.04虚拟网络设备TUN安装

调试uip网络协议栈之-tun虚拟设备模拟IP数据包

背景:开发0ip tcp/ip网络协议栈开发过程中需要测试每个协议层的正确性,我先写了最简单的传输层协议UDP。手上没有方便使用的以太网设备做数据包收发,而TAP/TUN分别是可以模拟以太网数据(ET...

Linux下Tun/Tap设备通信原理

Tun/Tap都是虚拟网卡,没有直接映射到物理网卡,是一种纯软件的实现。Tun是三层虚拟设备,能够处理三层即IP包,Tap是二层设备,能处理链路层网络包如以太网包。使用虚拟网络设备,可以实现隧道,如O...

关于 TUN/TAP 设备

长期以来对tun和tap这对兄弟分不太清,今天下定决心研究了一下代码,总算是搞明白了。 首先它们都是从/dev/net/tun里ioctl出来的虚拟设备,一个是通过IFF_TUN,另一个是 IF...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在opensuse 11.3上编译kernel添加tun设备
举报原因:
原因补充:

(最多只允许输入30个字)